【问题标题】:Microdata or JSON-LD? I'm confused微数据还是 JSON-LD?我糊涂了
【发布时间】:2016-10-31 16:35:46
【问题描述】:

即使在谷歌上搜索了几个小时后,我也没有找到明确且更新的答案,所以这里是:

  1. 我知道 Microdata 和 JSON-LD 的优缺点。我也知道 Microdata 是从 W3C 中删除的(因此是从浏览器的 API 中删除的)。我不确定的是,它将如何影响任何专门将微数据用于 SEO 目的的网站。

  2. Google 是否支持用于 SERP 的 JSON-LD?推荐使用什么格式?我正在寻找更新的答案——不是从 2011 年或 2012 年开始的(如果它们仍然适用,请随时发布)。

  3. 对于具有大量内容的动态站点(想想:50000 个视频、图像等),什么更适合:JSON-LD、微数据或 RDFa?为什么?

【问题讨论】:

    标签: seo schema.org microdata json-ld google-rich-snippets


    【解决方案1】:

    支持微数据的消费者支持微数据,无论是否或在何处指定了微数据。

    可以想象,新消费者可能会决定不支持它,但该语法仍然非常流行,并且仍然是 WHATWG 的 HTML 生活标准的一部分,因此它可能不会消失。

    关于消费者谷歌

    几年前,他们的许多功能都不支持 JSON-LD,他们建议作者使用 Microdata(他们也支持 RDFa)。今天不一样了。

    请参阅 Google 的 Markup formats and placement

    推荐使用 JSON-LD 格式。Google 正在为所有基于标记的功能添加 JSON-LD 支持。下表列出了例外情况。我们建议尽可能使用 JSON-LD。

    根据上述表格,Microdata 和 RDFa 支持 Google 的所有数据类型,而 JSON-LD 支持除面包屑功能之外的所有数据类型。

    我不会很重视他们的建议。 They say “结构化数据标记最容易以 JSON-LD 格式表示”,但我认为可以肯定地说,这仅适用于以编程方式生成结构化数据的作者(尤其是来自支持 JSON 的工具)。
    对于手动添加结构化数据标记的作者,使用 Microdata 或 RDFa 通常更容易,并且使用这些语法可以最大限度地降低作者在不更新结构化数据的情况下更新内容的风险(参见DRY principle)。

    JSON-LD vs. Microdata vs. RDFa

    除非您知道(并关心)不支持所有三种语法的消费者,否则没关系。使用对您和您的工具更容易的方法。

    如果你没有偏好,我会说 JSON-LD 或 RDFa,因为与 Microdata 相反,

    • 都是 W3C 建议,
    • 两者都可以在非 HTML5 上下文中使用,
    • 两者都允许(轻松)混合多个词汇表。

    如果您希望结构化数据不与标记“混合”(= 复制内容),则为 JSON-LD,如果您喜欢使用现有标记(= 不复制内容),则为 RDFa。

    【讨论】:

    • 感谢您提供非常简洁的回答。微数据对我非常有用,因为我已经使用twig 分离标记,所以我可以在标记中添加树枝变量并完成它。
    • @unor - 我在一个新问题中引用了这个和你的其他三个答案,如果看到这个,我会对你的答案感兴趣:stackoverflow.com/questions/52375645/…
    • 另外@unor - 这个答案中的建议是否仍然存在,或者两年后你会改变它吗?
    【解决方案2】:

    我选择了JSON-LD,因为它更易于阅读和编译。对于更复杂的字典,发现错误很容易。这是W3CGoogle 推荐的标准。

    一个警告(如果您需要支持它,主要是),截至 2017 年 5 月 16 日,Bing STILL 不支持JSON-LD

    【讨论】:

    【解决方案3】:

    我发现 JSON-LD 确实支持面包屑。我在我的 wordpress 网站上使用最新版本的 Yoast 应用了面包屑,它通过了谷歌搜索控制台在实时页面的丰富结果测试以及提交站点地图后对实时页面的抓取。

    需要注意的是,Google 已弃用 data-vocabulary.org。它需要 schema.org。

    【讨论】:

      【解决方案4】:

      Google 的 Understand how structured data works 现在说:

      Google 建议尽可能对结构化数据使用 JSON-LD。

      在我看来,仍然混入微数据以避免重复长内容,例如articleBody,似乎是合理的,但通常行业一直是 JSON-LD。

      【讨论】:

        【解决方案5】:

        微数据易于使用 Angular 8+ 但是你可以用 json-ld 做同样的事情。

        人性化,您可以使用 json-ld 轻松读取属性,但两者之间没有太大区别。用你知道如何做的事情来赢得时间

        【讨论】:

          猜你喜欢
          • 2022-01-23
          • 2019-01-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-07-05
          • 1970-01-01
          • 2014-08-14
          • 2016-02-16
          相关资源
          最近更新 更多