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

标签 schema.org microdata json-ld structured-data

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

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

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

最佳答案

问题在于消费者会认为所描述的事物不同(或者更准确地说:消费者不知道这些事物是否相同)。

有一种方法可以防止这种情况发生1:give each thing a URI ,如果内容相同,则使用相同的 URI。

这可以通过 JSON-LD 中的 @id 和 Microdata 中的 itemid 来完成。

所以一个简单的情况可能是:

<!-- 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>

如果像 name 这样的属性具有不同的值,消费者处理此问题的明显方法是为该事物指定多个名称。对于消费者只需要一个名称的功能(例如,在丰富的结果中),没有定义将使用哪个 name 值。如果消费者是搜索引擎,它可能会使用其已有的专有算法来处理此类情况。

<小时/>

1 当然,目前尚不清楚所有不同的消费者是否/如何支持它。但这是正确的方法,也是唯一明确的方法。隐式方式包括希望消费者理解通常(但不一定)唯一属性的相同值(例如,urlemailproductID、等)意味着事物是相同的。但这种隐式方式当然可以与显式方式一起使用。

关于schema.org - JSON-LD 和 Microdata 在同一页面上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41034582/

相关文章:

html - 哪种 schema.org 类型应该用于论坛?

seo - 使用 schema.org 在文章中标记标签的正确方法是什么?

html - schema.org 文档是否部分无效?

seo - 在 Schema.org JSON-LD 中使用多个同类项目

xhtml - google plus 不显示来自 xhtml 文档的元信息片段

Schema.org 'Organization' 仅在联系页面或每个页面上?

html - Schema.org 新闻文章 : invalid value for logo property

html - 如何在整个 LocalBusiness 网站中使用微数据

schema.org - Schema.org 中的产品列表

hateoas - 遵循 JSON-LD API 中的所有链接