我遇到了问题: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>
答案 0 :(得分:4)
这不是您的代码的错误。这只是意味着除非您提供此属性,否则Google不会显示某个Rich Snippet(或类似功能)。
但是,position
property没有定义Product
type,所以这没有任何意义。
这似乎是来自Google的新结构化数据功能,尚未记录,因为它链接到404页面:List Page Carousels。也许这是一项正在进行的工作,他们并不打算在他们的测试工具中发布支票。
所以我暂时忽略了这一点。
答案 1 :(得分:4)
我想这是由非显式文档导致的Google方面的实施错误:
https://schema.org/itemListElement明确说明
现有实体最适合您数据中现有内容的简单无序列表。 ListItem与有序列表一起使用时,如果要提供有关该列表中元素的其他上下文,或者同一项可能位于不同列表中的不同位置。
注意:标记中元素的顺序不足以指示订单或元素。 使用带有&#39;位置的ListItem&#39;在这种情况下的财产。
同时说值应该是这些类型中的一种:
=&GT;这意味着隐式, position 元素只能用于排序列表,而排序列表又要求Thing元素包含在 ListItem 中element,提供itemprop 位置。
这也意味着隐式如果 ItemListElement 是 Text 或 Thing ,则应该将列表视为< EM>无序
这是文档有意义的唯一方法。我认为错过了隐式连接。
所以我想相应的操作是为结构化数据测试工具提交错误报告,并接受警告,现在或嵌套产品< / em>在 ListItem 元素中作为解决方法。
答案 2 :(得分:2)
从我的测试中,malefique是正确的解决方案。
此代码使用Structured Data testing tool完全验证:
{
"@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"
}
}
}
]
}
答案 3 :(得分:1)
试试这个
'@type': 'ListItem',
'position': 1,
'item':{
'@type': 'Product',
... product props
}
答案 4 :(得分:1)
我找到了http://schema.org/itemListElement
您必须像<meta itemprop="position" content="1" />
页面底部有一个例子。
答案 5 :(得分:0)
The fix is to stuff your product
into a ListItem
's item
property. The ListItem
gets the position
property. Once you do that, it passes Google's SDTT.
NOTE: It is invalid to have a product offer
on more than 1 URL/URI.
Build out a page (unique URL) for each product offer and that's where you put your structured data / schema.org product offer data; OR, put all your product offers on a single page (URL/URI) - never both. Otherwise, you'll get error All values provided for url must point to the same page.