2

我有一个带有“微数据”和“json+ld”代码的产品页面。两个代码都引用相同的 @id URI 对象(http://www.example.org/product#this)所以我希望“混合/合并”这两个属性,但结构化数据测试工具显示 2“个人“产品如此......

1- Google 是否支持在同一页面中使用两种语法?
2-这实施得好吗?我可以使用微数据的 itemId 和 json+ld 的 @id 将两个代码引用到同一个对象吗?
3- 这会在结构数据索引方面损坏我的页面吗?

谢谢

您可以在测试工具中使用此代码进行检查:

<div itemscope itemtype="http://schema.org/Product" itemid="http://www.example.org/product#this">
    <a itemprop="url" href="http://www.example.org/product">
    <div itemprop="name"><strong>Product Name</strong></div></a>
    <div itemprop="description">Product Description</div>
    <div itemprop="brand" itemscope itemtype="http://schema.org/Organization"><span itemprop="name">Product Brand</span></div>
    <div itemprop="offers" itemscope itemtype="http://schema.org/Offer">        <span itemprop="price">100</span><link itemprop="itemCondition" href="http://schema.org/NewCondition" /> New</div>
</div>
<script type="application/ld+json">
{
  "@context": "http://schema.org/",
  "@id": "http://www.example.org/product#this",
  "name": "Product Name",
  "@type": "Product",
  "image": "http://www.example.com/anvil_executive.jpg",
  "mpn": "925872",
  "brand": {
    "@type": "Thing",
    "name": "ACME"
  },
  "offers": {
    "@type": "Offer",
    "priceCurrency": "USD",
    "price": "119.99",
    "itemCondition": "http://schema.org/UsedCondition",
    "availability": "http://schema.org/InStock"
  }
}
</script>
4

2 回答 2

3

虽然在技术上合并来自两种不同语法(读取微数据和 json-ld)的数据是可行的,并且结构化数据 Linter 证实了这一点,但 Google支持它,这意味着属性不会被合并(并且不会满足 Rich片段的要求)。

我们得到了 SEO World 中几位演员的最终确认,包括Dan BrickleyJarno van Driel

一般来说,您可以并排使用这两种语法,但不会像纯 RDF 应用程序所期望的那样通过 ID 对三元组进行细粒度合并(Dan Brickley 在Twitter 上,2020 年 1 月 14 日,粗体字

--

我认为@danbri 已经很清楚了。非常怀疑你会从其他谷歌员工那里得到不同的答案。(Jarno van Driel 在Twitter 上,2020 年 1 月 14 日)

到目前为止,建议的解决方案是解析微数据并将其发布为 JSON-LD。

于 2020-01-15T08:52:10.203 回答
3

我的猜测是谷歌的结构化数据测试工具不支持不同的语法,因为如果使用相同的语法,它似乎可以工作。但是由于它们仍然正确显示 URI(http://www.example.org/product#this在这两种情况下),您可能会争辩说它只是工具的界面没有合并它们。
然而,据我所知,谷歌并没有记录支持这些主题 URI(但这并不一定意味着他们不支持),所以这对他们来说可能并不重要。

如果使用http://linter.structured-data.org/ ,您的示例可以正常工作:它会创建一个包含两个品牌和两个报价的项目。

于 2015-11-18T11:14:12.620 回答