J'ajoute actuellement certaines propriétés Schema.org sur un site Web et, afin de valider mon travail, j'analyse toutes les pages de l'outil de test de données structurées de Google. Tout va bien sauf une chose, il affiche pour chaque page un message disant Type non spécifié même si il mentionne 0 erreur et 0 avertissements !
En cliquant dessus, vous pouvez voir où se trouve l'erreur dans le document et afficher les balises OG que j'ai remplies. Il affiche le type "og: site web" mais déclare quand même que le type n'est pas reconnu.
Vous pouvez vérifier que cette ligne est présente et lue par l'outil:
<meta property="og:type" content="website" />
Lorsque je vérifie les pages avec d'autres outils spécifiquement liés aux balises OG, je n'ai aucun avertissement.
Je pensais que peut-être un caractère sauvage invisible empêche l'analyse de ces données, mais il voit la valeur…!
Quel est le problème dans mon code? Dois-je m'inquiéter lorsque cet outil n'est pas conçu pour valider spécifiquement les balises OG?
Généralement, un vocabulaire a des classes/types (comme Person
) et des propriétés (comme name
), mais OGP n’a que des propriétés, ce qui est quelque peu inhabituel.
Alors que OGP définit une propriété type
, sa valeur est simplement une chaîne (comme "site Web"), pas une classe RDF réelle.
Un consommateur qui s'attend spécifiquement à l'utilisation du vocabulaire OGP s'en chargera. Un tel consommateur peut supposer que les propriétés OGP d'un document concernent toujours ce document.
Un consommateur général de données RDF préférerait connaître les propriétés. S'il existe une propriété name
dans un document, à qui s'appelle-t-elle? Cela peut être transmis de trois manières:
Fournit un type.
(C’est la name
d’un Person
.)
Indiquez un URI de sujet.
(C’est la name
de la chose identifiée par http://example.com/alice#i
.)
Fournit un type et un URI de sujet.
(C’est le name
du Person
identifié par http://example.com/alice#i
.)
La SDTT de Google entre dans le camp du consommateur général:
Si vous ne fournissez pas de type ni d'URI de sujet ,
<!DOCTYPE html>
<head>
<meta property="og:type" content="website" />
<meta property="og:title" content="Leg pain caused by varicose veins" />
</head>
le SDTT ignore les propriétés OGP:
Si vous ne fournissez qu'un type ,
<!DOCTYPE html>
<head typeof="foaf:Document"> <!-- just an example, don’t use this type -->
<meta property="og:type" content="website" />
<meta property="og:title" content="Leg pain caused by varicose veins" />
</head>
le SDTT ajoute les propriétés à l'élément de ce type, comme prévu.
Mais si vous utilisez un type du vocabulaire Schema.org, le SDTT signale des erreurs, car les propriétés OGP ne sont pas reconnues pour ce type (cela est dû au traitement spécial de Schema.org par SDTT).
Si vous fournissez uniquement un URI de sujet ,
<!DOCTYPE html>
<head resource="/#this-website">
<meta property="og:type" content="website" />
<meta property="og:title" content="Leg pain caused by varicose veins" />
</head>
le SDTT ajoute les propriétés à un élément sans type ("Type non spécifié"), identifié par l'URI, comme prévu.
Cela est également déclenché par un élément base
(donnant un URI pour le document entier), comme si vous en aviez un dans votre page.
Qu'est-ce que cela signifie?
Si vous fournissez les propriétés OGP aux consommateurs spécifiques à OGP (tels que Facebook), vous pouvez conserver votre balisage de cette manière. Ces consommateurs ne s’attendent pas à un type (s’ils le font, ils le documentent).
Si vous utilisez OGP comme n'importe quel autre vocabulaire RDF, vous souhaiterez de toute façon fournir un type ou un URI de sujet, ou idéalement les deux. De Schema.org, des types tels que WebPage
et WebSite
pourraient être pertinents.
Dans ce cas, gardez à l’esprit que de nombreux avertissements et erreurs de SDTT concernent des fonctionnalités de résultats de recherche spécifiques à Google (sans le dire explicitement). Ce n’est donc pas un bon outil pour la vérification générale de vos données structurées.