Schema.org JSON-LD 解密:新手指南

“结构化数据”听起来可能有些令人生畏,但它本质上是为搜索引擎提供清晰、标准化页面内容摘要的一种方式。谷歌、必应等搜索引擎依赖这些结构化信息来展示丰富网页摘要 (rich results) ——那些带有图片、评分或面包屑导航的醒目搜索结果片段。本文将详细解析如何为博客文章手动编写 Schema.org 结构化数据,并采用 JSON-LD 格式,同时以 BlogPosting (文章) 和 BreadcrumbList (导航路径) 为例进行说明。我们将解释 JSON 中每个部分的含义——从 @type​、@id​ 到 headline​ 和 publisher​——以及 WebSite、WebPage、BreadcrumbList 和 BlogPosting 等实体之间是如何关联的。读完本文,即使你使用的是没有插件的自定义博客,也应该能自信地编写自己的 schema 标记。

Schema.org 和 JSON-LD 是什么(为什么你应该关心)?

可以将结构化数据看作是你博客文章的一种“营养标签”或速查表。它以标准化的方式明确地告诉搜索引擎你内容的关键细节。Schema.org 是一个制定这套标准词汇(如 BlogPostingWebPageImageObject 等)的组织(由谷歌、微软等公司支持)。JSON-LD (JavaScript Object Notation for Linked Data) 是我们用来在页面上嵌入这些信息的格式——它基本上是一个位于 HTML 中的 JSON 脚本。这是谷歌推荐的格式,因为它清晰且与可见内容分离(相比于将微数据分散在 HTML 标签中,这种方式更不容易出错)。

简单来说,添加 schema 标记就像给搜索引擎一份结构化的博客文章“简历”。搜索引擎不再需要猜测标题是什么、作者是谁、发布日期是什么等等,因为你已经明确提供了这些信息。根据谷歌的说法,“结构化数据是一种用于提供页面信息和对页面内容进行分类的标准化格式”。通过这样做,你可以帮助搜索引擎更好地理解你的页面,并以更丰富的方式呈现它。例如,带有文章 schema 的页面有资格获得更丰富的搜索结果,如带有更大图片的标题文本,或在摘要中显示面包屑导航。这些增强功能使你的搜索结果更具吸引力,并可能提高点击率——研究表明,带有结构化数据的页面点击率提高了 25%

JSON-LD 与传统 Meta 标签对比: 这与我们熟悉的 <meta>​ 标签(如 description 或 keywords)有何不同?Meta 标签确实很重要,但它们只提供非常基本的信息(标题、描述等),主要用于索引和简单的摘要。 “Meta 标签是基础的 HTML 标签,用于告知搜索引擎诸如页面标题和描述之类的信息……Schema 标记则更进一步。它提供关于你博客文章的详细信息,包括作者、主题以及发布时间。”How to Implement Schema Markup for Blog Posts)概括而言,meta 标签影响搜索结果片段的文本内容,而 schema JSON-LD 则可以影响片段的结构和额外元素(例如显示面包屑导航、发布日期、评论的星级评分等)。它不会直接提高你的排名,但它能改善你在搜索结果中的外观,从而显著增加用户互动。

实例解析:博客文章的 JSON-LD 标记(含面包屑导航)

让我们从一个例子开始。以下是一个博客文章页面的 JSON-LD 结构化数据示例,分为两部分:一部分用于博客文章内容 (BlogPosting​ schema),另一部分用于面包屑路径 (BreadcrumbList​ schema)。在实际操作中,这些代码会放在 HTML 的 <script type="application/ld+json">​ 标签内。

BlogPosting schema 示例(更多详见 BlogPosting - Schema.org Type):

{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "@id": "https://example.com/blog/my-first-post",
  "url": "https://example.com/blog/my-first-post",
  "headline": "My First Blog Post",
  "image": "https://example.com/images/first-post.jpg",
  "datePublished": "2025-05-01T14:30:00Z",
  "dateModified": "2025-05-02T10:00:00Z",
  "author": {
    "@type": "Person",
    "name": "Jane Doe",
    "url": "https://example.com/author/jane-doe"
  },
  "publisher": {
    "@type": "Organization",
    "name": "Example Blog",
    "logo": {
      "@type": "ImageObject",
      "url": "https://example.com/images/logo.png"
    }
  },
  "description": "This is a short summary or excerpt of my first blog post.",
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://example.com/blog/my-first-post"
  }
}

BreadcrumbList schema 示例(更多详见:BreadcrumbList - Schema.org Type):

{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Home",
      "item": "https://example.com/"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Blog",
      "item": "https://example.com/blog/"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "My First Blog Post",
      "item": "https://example.com/blog/my-first-post"
    }
  ]
}

如果这些看起来让人眼花缭乱,别担心!接下来,我们将逐个解析这些示例中的主要字段和实体,以理解它们的含义以及它们之间的相互关系。

解析博客文章 Schema:关键字段详解

上述 BlogPosting JSON-LD 代码段包含多个属性。每个属性在向搜索引擎描述你的博客文章方面都扮演着特定角色。让我们逐一了解主要的属性:

这些是 BlogPosting schema 中的关键字段。它们共同描绘了一幅详细的图景:“此页面 (WebPage) 主要是一篇 BlogPosting,具有这样的标题,由这位作者撰写,于此日期发布,等等。

理解 BreadcrumbList Schema(导航结构)

在第二个 JSON 代码段中,我们有一个 BreadcrumbList。面包屑导航是网站上的一种导航辅助工具(通常你会在页面顶部看到类似首页 > 博客 > 文章标题这样的路径)。在 JSON-LD 中标记它有助于搜索引擎理解网站层级,并可能在搜索结果中显示面包屑路径而不是完整的 URL。实际上,谷歌声明面包屑标记有助于在搜索结果中对页面进行分类。顾名思义,BreadcrumbList 包含一个有序的 ListItem 条目列表,每个条目代表路径中的一个“面包屑”。

在我们的示例中,BreadcrumbList 有三个 ListItem:

每个 ListItem 都有一个 name​(该面包屑的文本)和一个 item​(它指向的 URL)。position​ 表示顺序(从根/主页的 1 开始)。这种结构化的面包屑告诉爬虫“首页 > 博客 > 我的第一篇博客文章”是此内容的路径。它等同于你可能在页面上直观显示的面包屑导航。

这些面包屑导航有何帮助? 它们通过显示清晰的路径来改善搜索结果片段,这比长 URL 更友好。谷歌可能不会显示 example.com/blog/my-first-post​,而是显示首页 > 博客 > 我的第一篇博客文章。它为用户提供了关于页面在网站中所处位置的上下文信息。打个比方,搜索结果中的面包屑导航就像是你网站结构的一个小型路径图。实施 BreadcrumbList 标记 “就像面包屑小径一样……显示了到达某个页面所必须经过的不同层级” ,并帮助搜索引擎在搜索结果中呈现面包屑路径

需要注意的一点是:在某些 JSON-LD 示例中(包括一些 SEO 插件生成的示例),你可能会看到面包屑项目的结构略有不同——有时 item​ 是一个带有 @id​ 和 name​ 的对象,而不是直接的 URL。两种方法都传达相同的信息。我们的示例使用了一种简单的形式,其中每个 item​ 都是一个直接链接。

这些 Schema 实体之间如何关联

既然我们已经分别研究了 BlogPosting 和 BreadcrumbList,让我们放眼全局,看看它们是如何协同工作的。在一个完整的博客页面结构化数据实现中,你可能会有几个实体协同工作。主要的通常包括:WebSiteWebPageBlogPostingBreadcrumbList。它们通常按以下方式连接:

这些 schema 实体像一个团队一样协同工作:WebSite 是整个团队(你的网站),WebPage 是一名队员(特定页面),BlogPosting 是该队员的统计数据(内容详情),而 BreadcrumbList 则是连接队员与团队结构的战术手册(导航路径)。当你在页面的 HTML 中包含所有这些(通常作为一个组合的 JSON-LD 脚本或多个脚本)时,你就在为搜索引擎描绘一幅完整的图画。你等于在说:“这个页面是我网站的一部分,这是它的导航路径(首页 > 博客 > 文章),这个页面上的主要内容是一篇博客文章,详情如下。

整合所有内容(及 SEO 益处)

如果你在没有插件的情况下构建博客,手动添加这种 JSON-LD 是完全可行的。你可以参照上面的示例模板,为每篇文章更新值(标题、日期、名称、URL 等),并将其包含在 HTML 的 <head>​ 或 <body>​ 底部。起初可能感觉繁琐,但一旦理解了各个部分,就会变得很简单。而且回报是值得的:你正在帮助搜索引擎更智能地索引你的内容,并增强你的网站在搜索结果页面上的显示效果。

回顾一下这样做的好处:Schema 标记不会直接提升你的谷歌排名,但它可以显著改善你的搜索结果显示方式,使其更有可能吸引点击。你会得到诸如面包屑路径(而非 URL)、可能被纳入丰富网页摘要功能,以及通常更专业的摘要外观。谷歌和必应都需要这些信息——这是它们使网络更具语义化努力的一部分。通过提供结构化数据,你实际上是在用它们的语言进行交流。正如谷歌文档所指出的, “添加结构化数据可以使搜索结果对用户更具吸引力” (即丰富网页摘要)。用户在点击之前就能看到更多上下文信息(如你的博客名称、文章图片、发布日期等),这有助于建立信任和相关性。

最后,务必测试你的 schema!使用谷歌的富媒体搜索结果测试 (Rich Results Test) 或 Schema.org 的架构标记验证器 (validator) 来确保你的 JSON-LD 没有错误。一个微小的语法错误就可能使整个脚本失效。测试工具会告诉你谷歌是否能读取你的标记,以及它是否有资格获得丰富网页摘要。并且请记住,虽然 schema 有助于改善外观,但你仍应拥有良好的 meta 标签(标题、meta description)——它们与结构化数据协同工作,以实现最佳的 SEO 效果。

你可能也感兴趣