我维护的网站的“产品”页面上出现Google Search Console错误,并且不确定如何解决这些错误。我收到的错误是:
offers或review或aggregateRating之一。
这很简单,可以正常修复,但是我的困惑是我已经在json ld的不同部分中提供了offers
数据。我的产品json ld的结构是
Product{
Offers{
Product {}
Product {}
}
}
其中嵌套产品是同一产品的不同变体。我在网站上没有可用的评论或评分,因此留给我offers
来解决错误。但是,谷歌搜索控制台说,每个嵌套产品都应具有offers
数据,尽管它们已经包含在商品结构中。
这似乎将陷入一个无限循环:我向商品变体中添加商品,并使用itemOffered类型的商品,然后将需要其他商品,等等。
如何组织结构化数据以既支持我的产品->变体层次结构,又取悦Google Search Console并消除我看到的错误?
这里是完整的JSON ld,您可以将其直接复制/粘贴到Structured Data Testing Tool中以查看我正在描述的确切问题。
{
"@context":"http://schema.org/",
"@type":"Product",
"name":"Stripe Knit Sweater",
"url":"http://foobar.gov/product",
"image":[
"http://foobar.gov/product/image1"
],
"description":"this is a description",
"brand":{
"@type":"Thing",
"name":"My Store"
},
"offers":[
{
"@type":"Offer",
"availability":"http://schema.org/InStock",
"price":"64.0",
"priceCurrency":"USD",
"url":"http://foobar.gov/product/url",
"itemOffered":{
"@type":"Product",
/*ERROR IS HERE! : One of offers or review or aggregateRating should be provided.*/
"image":"http://foobar.gov/product/url",
"name":"Small / Blue/Black/Cream Stripe",
"weight":{
"@type":"QuantitativeValue",
"unitCode":"lb",
"value":"0.0 lb"
},
"url":"http://foobar.gov/product/url"
}
},
{
"@type":"Offer",
"availability":"http://schema.org/InStock",
"price":"64.0",
"priceCurrency":"USD",
"url":"http://foobar.gov/product/url",
"itemOffered":{
"@type":"Product",
/*ERROR IS HERE! : One of offers or review or aggregateRating should be provided.*/
"image":"http://foobar.gov/product/url",
"name":"Medium / Blue/Black/Cream Stripe",
"weight":{
"@type":"QuantitativeValue",
"unitCode":"lb",
"value":"0.0 lb"
},
"url":"http://foobar.gov/product/url"
}
}
]
}
根据您的示例,似乎每个Offer
都是Product
的变体。如果是这种情况,我不确定是否需要在变体中嵌套Product
。据我所举的例子,嵌套Product
中唯一的唯一属性是weight
,您可以使用Offer
将其应用于additionalProperty
。
如果以这种方式发送给工具,则所有内容都会验证:
{
"@context": "http://schema.org/",
"@type": "Product",
"name":"Stripe Knit Sweater",
"url":"http://foobar.gov/product",
"image":[
"http://foobar.gov/product/image1"
],
"description":"this is a description",
"brand":{
"@type":"Thing",
"name":"My Store"
},
"offers": [
{
"@type": "Offer",
"availability":"http://schema.org/InStock",
"price":"64.0",
"image":"http://foobar.gov/product/url",
"name":"Small / Blue/Black/Cream Stripe",
"priceCurrency":"USD",
"url":"http://foobar.gov/product/url",
"additionalProperty": {
"@type": "PropertyValue",
"name": "Weight",
"unitCode": "1b",
"value": "0.0lb"
}
},
{
"@type": "Offer",
"availability":"http://schema.org/InStock",
"price":"64.0",
"image":"http://foobar.gov/product/url",
"name":"Medium / Blue/Black/Cream Stripe",
"priceCurrency":"USD",
"url":"http://foobar.gov/product/url",
"additionalProperty": {
"@type": "PropertyValue",
"name": "Weight",
"unitCode": "1b",
"value": "0.0lb"
}
}]
}
Googles Schema Documentation上的[Offer
]指出itemOffered
是推荐字段,并且它“通常是产品”,但不是必须的。还值得注意的是,与文档相反,如果itemOffered
中不存在Offer
,该工具不会警告您
尽管schema.org提供了itemsOffered
作为选项,但不幸的是,没有嵌套Product
的例子。
嵌套Products
或Services
在以下情况下可能有意义:
或:
无论哪种方式,我认为期望都是有道理的。在您的情况下,我认为解决方法是不要只使用嵌套的Product
来描述Offer
。