J'ai un problème: l'outil de test de données structurées de Google m'indique une erreur:
La balise
position
n'existe pas. C'est requis.
Je l'ajoute au balisage. Alors je reçois cette erreur:
La propriété
Position
n'est pas valide pour un objet de typeProduct
Voici mon balisage:
<table id="sale_table" itemscope="" itemtype="http://schema.org/ItemList">
<tbody>
<tr itemprop="itemListElement" itemscope="" itemtype="http://schema.org/Product">
<td class="sale_art_td" itemprop="productID">10496278</td>
<td class="sale_brand_td" itemprop="brand"><span itemprop="name ">--</span></td>
<td class="sale_name_td" itemprop="name">10496278 / Крышка трамблера Daewoo Nexia,Espero DD</td>
<td class="sale_am_td">1.00</td>
<td class="sale_price_td" itemprop="offers" itemscope="" itemtype="http://schema.org/Offer"><meta itemprop="priceCurrency" content="RUR"><span itemprop="price">341.50</span></td>
<td class="sale_buy_td"><a href="javascript:void(0);" class="sale_buy_link" data-id="63455914" data-query="10496278">Купить</a><!--<img src="/upload/badge/sale_cart.png" />--></td>
<td class="hidden">
<meta itemprop="url" content="/partsearch/?q=10496278">
<span itemprop="description">Распродажа: 10496278 / Крышка трамблера Daewoo Nexia,Espero DD по цене 341.50</span>
</td>
</tr>
<tr itemprop="itemListElement" itemscope="" itemtype="http://schema.org/Product">
<td class="sale_art_td" itemprop="productID">76202sx0a12</td>
<td class="sale_brand_td" itemprop="brand"><span itemprop="name ">HONDA</span></td>
<td class="sale_name_td" itemprop="name">76202SX0A12</td>
<td class="sale_am_td">1.00</td>
<td class="sale_price_td" itemprop="offers" itemscope="" itemtype="http://schema.org/Offer"><meta itemprop="priceCurrency" content="RUR"><span itemprop="price">704.00</span></td>
<td class="sale_buy_td"><a href="javascript:void(0);" class="sale_buy_link" data-id="63456060" data-query="76202sx0a12">Купить</a><!--<img src="/upload/badge/sale_cart.png" />--></td>
<td class="hidden">
<meta itemprop="url" content="/partsearch/?q=76202sx0a12">
<span itemprop="description">Распродажа: 76202SX0A12 по цене 704.00</span>
</td>
</tr>
</tbody>
</table>
Ce n'est pas une erreur avec votre code. Cela signifie simplement que Google n’affichera pas un certain extrait de contenu (ou une fonctionnalité similaire) à moins que vous ne fournissiez cette propriété.
Cependant, la propriété position
n'est pas définie pour le type Product
, cela n'a donc aucun sens.
Il semble que ce soit une nouvelle fonctionnalité de données structurées de Google, qui n’a pas encore été documentée, car elle renvoie à une page 404: List Page Carousels . C’est peut-être un travail en cours et ils ne voulaient pas encore publier le chèque dans leur outil de test.
Donc, je l’ignorerais simplement pour le moment.
Je suppose que c'est une erreur d'implémentation du côté de Google causée par une documentation non explicite
https://schema.org/itemListElement indique clairement
Les entités existantes sont idéales pour une liste simple et non ordonnée d'éléments existants dans vos données. ListItem est utilisé avec des listes ordonnées lorsque vous souhaitez fournir un contexte supplémentaire à propos de l'élément de cette liste ou qu'un même élément peut se trouver à des emplacements différents dans des listes différentes.
Remarque: L'ordre des éléments dans votre marge n'est pas suffisant pour indiquer l'ordre ou les éléments. Utilisez ListItem avec une propriété 'position' dans de tels cas.
Dans le même temps, on dit Les valeurs attendues sont de ce type sont:
=> Cela signifie implicitement , que l'élément position ne peut être requis que pour les listes triées, ce qui exige que l'élément Thing soit contenu dans un élément ListItem , qui offre le itemprop position.
Cela signifie également implicitement que si ItemListElement est Texte ou Chose, la liste doit être considérée comme non ordonnée.
C'est la seule façon dont la documentation a du sens. Je suppose que la connexion implicite a été manquée.
Donc, je suppose que l’action appropriée est de déposer un rapport de bogue pour le outil de test de données structurées et de suivre les avertissements pour le moment ou imbriquer le Produit dans unListItem élément comme solution de contournement.
De mon test, Malefique est sur la bonne solution.
Ce code valide entièrement à l'aide de l'outil de test Données structurées :
{
"@context": "http://schema.org",
"@type": "ItemList",
"itemListOrder": "http://schema.org/ItemListOrderDescending",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"item": {
"@type": "Product",
"name": "My product",
"url": "www.example.com",
"offers": {
"@type": "Offer",
"availability": "http://schema.org/InStock",
"price": "100.00",
"priceCurrency": "AUD"
}
}
}
]
}
essaye ça
'@type': 'ListItem',
'position': 1,
'item':{
'@type': 'Product',
... product props
}
J'ai trouvé http://schema.org/itemListElement
vous devez spécifier la position comme suit <meta itemprop="position" content="1" />
Il y a un exemple au bas de la page.