schema.org/BlogPosting图片允许ImageObject和URL,但是Google只允许ImageObject,因此是错误的。预期的标记是:
<!-- my code -->
<div itemprop="image" itemscope itemtype="http://schema.org/ImageObject">
<img src="image.jpg" itemprop="url">
</div>
另一个差异是schema.org/ImageObject建议contentUrl
,但谷歌建议url
,因此以上我的使用。
响应您评论的代码,您的结构仍然不正确。我将逐行介绍:
<!-- your code -->
<div itemscope='itemscope' itemtype='http://schema.org/BlogPosting'>
次要要点,但除非您要使用XHTML,否则itemscope='itemscope'
是错误的。使用itemscope
(如稍后所述)。
<!-- your code -->
<div itemprop='articleBody'>
<div itemscope itemtype="http://schema.org/ImageObject"/>
您的ImageObject是articleBody属性的子级,但是您没有以这种方式关联它。像这样,您有一个没有关联属性的articleBody和一个未关联的ImageObject。你应该用
<!-- my code -->
<div itemprop="image" itemscope itemtype="http://schema.org/ImageObject">
另外,/>
即使您正在尝试使用XHTML,也不正确,因为此元素的确有子元素和closeing </div>
。只需使用>
上面片段中包含的内容即可。
<!-- your code -->
<a href="1.png" itemprop="url"><img itemprop="image sharedContent" src="1.png" /></a>
sharedContent在这里做什么?sharedContent在用作SocialMediaPosting的属性时期望CreativeWork —永远不要用作ImageObject的属性,也不要放在img上。
您的其他代码段(按如下所示放置sharedContent属性)也是错误的。
<!-- your code -->
<div itemscope='itemscope' itemtype='http://schema.org/BlogPosting'>
<div itemprop='articleBody'>
<div itemprop='sharedContent'>
<div itemscope itemtype="http://schema.org/ImageObject"/>
…
尽管sharedContent现在位置正确,但仍需要是CreativeWork。如结构化数据测试工具所示,您的ImageObject仍未与BlogPosting关联。
以下是正确的代码。
<!-- my code -->
<div itemscope itemtype="http://schema.org/BlogPosting">
<div itemprop="articleBody">
<div itemprop="image" itemscope itemtype="http://schema.org/ImageObject">
<a href="1.png" itemprop="url"><img itemprop="image" src="1.png"></a>
</div>
<div itemprop="image" itemscope itemtype="http://schema.org/ImageObject">
<a href="2.png" itemprop="url"><img itemprop="image" src="2.png"></a>
</div>
<div itemprop="image" itemscope itemtype="http://schema.org/ImageObject">
<a href="3.png" itemprop="url"><img itemprop="image" src="3.png"></a>
</div>
</div>
</div>