JSON-LD和Microdata在同一页面上?

Mil*_*hev 7 structured-data microdata schema.org json-ld

我在电子商务产品页面上同时拥有Micro Data和JSON-LD,描述了同样的事情(在我的情况下是产品).由于超出此问题范围的原因,我无法删除这两种格式中的任何一种.我想知道:

  1. 这对谷歌来说是个问题吗?结构化数据测试工具确实显示两个项目(产品)而不是一个.

  2. 如果一个属性(假设产品的名称)在两种格式之间略有不同,那么两种格式中的任何一种,例如JSON-LD是否优先?

uno*_*nor 11

问题是消费者会认为描述了不同的东西(或者更准确地说:消费者不会知道事物是否相同).

有一种方法可以防止这种情况:给每个东西一个URI,如果事情是相同的,那就是相同的URI.

这可以@id在JSON-LD中完成,也可以itemid在Microdata中完成.

所以一个简单的案例可能是:

<!-- markup on the product page, 
     so the fragment "#this" results in an absolute URI like 
     "http://example.com/products/foo#this" -->

<!-- JSON-LD -->
<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "Product",
  "@id": "#this",
  "name": "Foo"
}
</script>

<!-- Microdata -->    
<article itemscope itemtype="http://schema.org/Product" itemid="#this">
  <h1 itemprop="name">Foo</h1>
</article>
Run Code Online (Sandbox Code Playgroud)

如果一个属性name具有不同的值,消费者可以处理这个问题的显而易见的方法就是给这个东西多个名字.对于消费者只需要一个名称(例如,在丰富的结果中)的特征,没有定义name将使用哪个值.如果消费者是搜索引擎,它可能会使用其现有的专有算法来处理此类情况.


¹当然,目前尚不清楚各种消费者是否支持它.但这是正确的方法,这是唯一明确的方法.隐式方式包括希望消费者明白,相同的值通常(但不一定)独特的性质(如url,email,productID,等),意味着东西都是一样的.但是这种隐含的方式当然可以与明确的方式一起使用.