产品的微数据与组织提供

时间:2014-12-12 09:08:58

标签: html microdata rich-snippets google-rich-snippets

我正在尝试为我的产品页面创建Google Rich Snippets。

我使用

创建了一个产品
<div itemscope="" itemtype="http://schema.org/Product">
  ...
</div>

在此产品中,我有一个使用

创建的优惠
<div itemscope="" itemtype="http://schema.org/Product">
  <div itemprop="offers" itemscope="" itemtype="http://schema.org/Offer">
    ...
  </div>
</div>

我想将卖家属性(组织)添加到要约中,但是,我的HTML结构在产品下面有卖方,而不是要约。

<div itemscope="" itemtype="http://schema.org/Product">
  <div itemprop="offers" itemscope="" itemtype="http://schema.org/Offer">
    ...
  </div>
  <div itemprop="seller" itemscope="" itemtype="http://schema.org/Organization">
    ...
  </div>
</div>

但是,这似乎并不令Google结构化数据测试工具满意。

我尝试在组织中使用itemref并在优惠中使用meta - 标记

<div itemscope="" itemtype="http://schema.org/Product">
  <div itemprop="offers" itemscope="" itemtype="http://schema.org/Offer">
    <meta itemprop="seller" itemref="provider">
    ...
  </div>
  <div id="provider" itemscope="" itemtype="http://schema.org/Organization">
    ...
  </div>
</div>

但它似乎仍未将卖方视为本组织。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您没有正确使用itemref

  • 必须在具有itemref的元素上指定itemscope属性。
  • 必须使用itemprop引用元素。

所以你的例子必须如下:

<div itemscope itemtype="http://schema.org/Product">
  <div itemprop="offers" itemscope itemtype="http://schema.org/Offer" itemref="provider">
  </div>
  <div id="provider" itemprop="seller" itemscope itemtype="http://schema.org/Organization">
  </div>
</div>

但是无法正常工作,因为这样,seller属性将添加到ProductOffer这两个项目中。这是无效的,因为Product不能拥有seller属性。

因此,您必须更改嵌套,或者不要在容器Product上使用div

然而,还有一个丑陋的修复:使用itemscope添加虚拟元素:

<div itemscope itemtype="http://schema.org/Product">
  <div itemprop="offers" itemscope itemtype="http://schema.org/Offer" itemref="provider">
  </div>
  <div itemscope>
    <div id="provider" itemprop="seller" itemscope itemtype="http://schema.org/Organization">
    </div>
  </div>
</div>