Veuillez considérer le code suivant marqué d'attributs pour fournir des microdonnées:
<!DOCTYPE html>
<html>
<head>
<title>Micro data test - Normal version</title>
</head>
<body>
<div itemscope itemtype="http://schema.org/Product">
<h1 itemprop="name">Product name</h1>
<img alt="" itemprop="image" src="http://placehold.it/200x200" />
<div itemprop="description">This is the product description.</div>
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<meta content="in_stock" itemprop="availability" />
<span content="GBP" itemprop="priceCurrency">£</span><span itemprop="price">100.00</span>
</div>
</div>
</body>
</html>
L'utilisation de l' outil de test de données structurées de Google donne des résultats positifs.
C'est très bien dans l'exemple de test, cependant, nous voulons implémenter des microdonnées sur une variété de sites dont la structure HTML varie considérablement. Pour implémenter les attributs de cette manière, il faudra que quelqu'un modifie manuellement le balisage HTML sur chacun des sites individuellement.
De préférence, nous aimerions pouvoir appeler une seule fonction qui regroupe toutes les microdonnées en un seul endroit; techniquement, cela est possible en utilisant des balises META de la manière suivante:
<!DOCTYPE html>
<html>
<head>
<title>Micro data test - Meta tag version</title>
</head>
<body>
<meta itemscope itemtype="http://schema.org/Product" itemref="microName microImage microDescription microOffer" />
<meta id="microName" itemprop="name" content="Product name" />
<link id="microImage" itemprop="image" href="http://placehold.it/200x200" />
<meta id="microDescription" itemprop="description" content="This is the product description." />
<meta id="microOffer" itemprop="offers" itemscope itemtype="http://schema.org/Offer" itemref="microCurrency microPrice microAvail" />
<meta id="microAvail" itemprop="availability" content="in_stock" />
<meta id="microCurrency" itemprop="priceCurrency" content="GBP" />
<meta id="microPrice" itemprop="price" content="100.00" />
<div>
<h1>Product name</h1>
<img alt="" src="http://placehold.it/200x200" />
<div>This is the product description.</div>
<div>£100.00</div>
</div>
</body>
</html>
L'utilisation de l' outil de test de données structurées de Google donne les mêmes résultats positifs que le premier test.
Pour référence (nous ne le ferions jamais sur un site réel), l' outil de test de données structurées de Google renvoie une erreur si vous essayez de transmettre des microdonnées masquées par CSS.
Ainsi, le balisage normal et le méta tag produisent les mêmes résultats, cependant, j'ai quelques inquiétudes en raison des déclarations suivantes de Google et Schema.org:
https://support.google.com/webmasters/answer/146750 indique:
En général, Google n'utilisera que des données annotées visibles par l'utilisateur. Les données masquées seront ignorées. Cependant, dans certaines circonstances, il peut être utile de fournir à la fois une version lisible par machine et une version lisible par l'homme de votre contenu. Par exemple, bien que la chaîne de texte "L'anniversaire d'Elvis" soit importante pour de nombreux lecteurs humains, elle n'est pas aussi significative pour les moteurs de recherche que 1935-01-08. De même, les lecteurs humains peuvent déduire la signification du symbole $, mais il peut être utile d'indiquer spécifiquement aux moteurs de recherche si vos prix sont en pesos ou en dollars.
http://schema.org/docs/gs.html indique (par rapport à l'utilisation des balises META):
Cette technique doit être utilisée avec parcimonie. N'utilisez méta avec contenu que pour des informations qui ne pourraient pas être balisées autrement.
http://schema.org/docs/faq.html#13 déclare:
En règle générale, vous ne devez baliser que le contenu visible par les personnes qui visitent la page Web et non le contenu des div masqués ou d'autres éléments de page masqués.
Mes questions sont:
- Bien qu'aucune erreur ne soit renvoyée, serions-nous pénalisés par les moteurs de recherche pour l'utilisation de balises META de cette manière (c'est-à-dire du contenu en double, la dissimulation d'informations, etc.)?
- Si cela ne vous convient pas, pouvez-vous suggérer un moyen de séparer les microdonnées des données réelles ou devrons-nous mordre la balle et l'implémenter en HTML au cas par cas?