問題があります:Googleの構造化データテストツールでエラーが発生します:
タグ
position
は存在しません。必須です。
マークアップに追加します。私がこのエラーを受け取るより:
Position
プロパティは、タイプProduct
のオブジェクトには無効です
これが私のマークアップです:
<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>
これはコードのエラーではありません。これは、このプロパティを指定しない限り、Googleが特定のリッチスニペット(または同様の機能)を表示しないことを意味します。
ただし、 position
property は Product
type に対して定義されていないため、意味がありません。
これはGoogleの新しい構造化データ機能のようですが、404ページにリンクしているため、まだドキュメント化されていません: List Page Carousels 。多分それは進行中の仕事であり、彼らはまだテストツールでチェックを公開することを意味していませんでした。
したがって、今のところは無視します。
これは、明示的なドキュメントではないことが原因である、Google側の実装エラーだと思います。
https://schema.org/itemListElement は明確に述べています
既存のエンティティは、データ内の既存のものの単純で順序付けられていないリストに最適です。 ListItemは、そのリストの要素に関する追加のコンテキストを提供する場合、または同じアイテムが別のリストの別の場所にある可能性がある場合に、順序付きリストで使用されます。
注:マークアップ内の要素の順序は、順序または要素を示すのに十分ではありません。 そのような場合は、「position」プロパティでListItemを使用してください。
同時に言うこれらのタイプの1つであることが期待される値は次のとおりです。
=>これはimplicitlyを意味し、position要素はソートされたリストにのみ必要になることを意味します。 Thing要素がListItem要素内に含まれていることを要求し、itemproppositionを提供します。
また、implicitlyは、ItemListElementがTextまたはThing、リストはUnorderedと見なされます。
これが、ドキュメントが意味を持つ唯一の方法です。暗黙の接続が失われたと思います。
したがって、適切なアクションは、Structured Data Testing Toolのバグレポートを提出し、今のところ警告または回避策として、ListItem要素内にProductをネストします。
私のテストから、malefiqueは適切なソリューションです。
このコードは、 構造化データテストツール を使用して完全に検証します。
{
"@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"
}
}
}
]
}
これを試して
'@type': 'ListItem',
'position': 1,
'item':{
'@type': 'Product',
... product props
}
私は http://schema.org/itemListElement を見つけました
あなたはそのように位置を指定する必要があります<meta itemprop="position" content="1" />
ページの下部に例があります。
修正は、product
をListItem
のitem
プロパティに詰め込むことです。 ListItem
はposition
プロパティを取得します。これを行うと、GoogleのSDTTに合格します。
注:複数のURL/URIに製品offer
を含めることは無効です。
各製品オファーのページ(一意のURL)を作成し、そこに構造化データ/ schema.org製品オファーデータを配置します。または、すべての製品オファーを1つのページ(URL/URI)に配置します-両方を配置することはできません。そうしないと、エラーAll values provided for url must point to the same page.