我在LocalBusiness
列表中有这个片段(基于this example):
<div itemscope itemtype="http://schema.org/LocalBusiness">
<div itemprop="image" itemscope="" itemtype="http://schema.org/ImageObject">
<img itemprop="contentUrl" src="/images/trouwlocatiefotos/medium/315_24_83_Veranda-005.jpg">
</div>
</div>
但是Google's structured data testing tool抛出一个错误:
image
image
字段的值是必需的。为什么它会抛出错误?
直接测试URL:https://search.google.com/structured-data/testing-tool#url=https%3A%2F%2Fwww.wonderweddings.com%2Fweddingvenues%2F315%2Fbeachclub-sunrise
最佳答案
您发布的标记段没有给出引用的错误。所以你的实际标记可能做的事情不同。
似乎您的image
属性没有嵌套在LocalBusiness
项下:
第396行:<div itemscope itemtype="http://schema.org/LocalBusiness">
第372行:<div itemprop='image' itemscope itemtype='http://schema.org/ImageObject'>
不涉及。
所以您的itemref
项实际上没有LocalBusiness
属性。相反,image
属性似乎是在没有任何父项(image
的情况下指定的,这是无效的。
Google的SDTT可能会忽略这个错误,并将itemscope
作为顶级项进行解析,这就是为什么它会自己列出(在ImageObject
和LocalBusiness
旁边)。
怎么解决这个问题?
如果不能移动元素来嵌套它们(如示例片段中所示),可以使用微数据的BreadcrumbList
属性:
<div itemscope itemtype="http://schema.org/LocalBusiness" itemref="business-image"></div>
<div itemprop='image' itemscope itemtype='http://schema.org/ImageObject' id="business-image"></div>