结构化数据完全指南:用 JSON-LD 让 Google 与 Bing 读懂你的网页

结构化数据完全指南:用 JSON-LD 让 Google 与 Bing 读懂你的网页

admin
2026-11-02 / 0 评论 / 9 阅读 / 约 12 分钟 / 正在检测是否收录...

为什么搜索引擎需要结构化数据

搜索引擎爬虫能解析 HTML 的标签与文本,却难以稳定判断“这段文字是文章正文还是侧边栏推荐”“这个数字是评分还是库存”。结构化数据通过在页面中嵌入机器可读的键值对,把实体、属性与关系显式声明出来,从而消除歧义。

Google 与 Bing 均支持基于 Schema.org 词汇表的结构化数据。当页面标记与用户查询意图匹配时,搜索结果可能展示富媒体摘要(Rich Results),例如文章标题上方的面包屑路径、作者信息、发布日期,或商品的价格与评分星级。

富媒体摘要不是排名因素,但能显著提升点击率。Google 官方文档明确指出:结构化数据帮助搜索引擎理解页面内容,并可能获得更丰富的展示样式。

目前主流实现格式有三种:JSON-LD、Microdata、RDFa。Google 推荐优先使用 JSON-LD,因为它与 HTML 结构解耦,维护成本低,且不易因模板改动而失效。

对比维度JSON-LDMicrodataRDFa
嵌入位置<script type="application/ld+json">HTML 标签属性HTML 标签属性
与 DOM 耦合度低,可集中管理高,需逐标签标注高,需逐标签标注
可读性高,独立 JSON 块中,属性分散中,属性分散
Google 推荐度首选支持支持
动态注入难度低,可由 JS 或后端输出高高

JSON-LD 基础语法与核心概念

JSON-LD(JavaScript Object Notation for Linked Data)是一套 W3C 标准,用 JSON 格式表达链接数据。在网页中,它通常置于 <head> 或 <body> 末尾,通过 @context 声明词汇表,通过 @type 声明实体类型。

Schema.org 是 Google、Microsoft、Yahoo 等联合维护的词汇表,定义了数百种类型与属性。常用类型包括 Article、BreadcrumbList、WebSite、Person、Organization、Product、FAQPage 等。

一个最小可用的 JSON-LD 块结构如下:

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "文章标题",
  "datePublished": "2025-01-15T08:00:00+08:00"
}

关键属性说明:

  • @context:固定为 https://schema.org,声明词汇表来源。
  • @type:实体类型,决定搜索引擎按哪套规则解析。
  • @id:全局唯一标识符,用于在同一页面内引用其他实体。
  • mainEntityOfPage:声明该实体所属的主页面 URL。
  • author、publisher:可嵌套 Person 或 Organization 对象。
多个实体可以放在一个 JSON-LD 数组中,通过 @id 互相引用,避免重复描述同一作者或网站。

四种核心类型的完整代码示例

以下示例可直接复制到页面模板中,替换占位符即可使用。建议将多个实体合并为一个 JSON-LD 块,减少重复。

Article:让文章获得富媒体摘要

{
  "@context": "https://schema.org",
  "@type": "Article",
  "@id": "https://example.com/blog/json-ld-guide#article",
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://example.com/blog/json-ld-guide"
  },
  "headline": "结构化数据完全指南:用 JSON-LD 让 Google 与 Bing 读懂你的网页",
  "description": "面向独立站长与前端开发者的结构化数据实战指南。",
  "image": [
    "https://example.com/images/json-ld-cover.jpg"
  ],
  "datePublished": "2025-01-15T08:00:00+08:00",
  "dateModified": "2025-01-20T10:30:00+08:00",
  "author": {
    "@type": "Person",
    "@id": "https://example.com/about#author",
    "name": "张三",
    "url": "https://example.com/about"
  },
  "publisher": {
    "@type": "Organization",
    "name": "示例站点",
    "logo": {
      "@type": "ImageObject",
      "url": "https://example.com/logo.png"
    }
  }
}

注意:headline 建议不超过 110 个字符;image 需为可抓取的绝对 URL,宽高比建议 16:9 且宽度不低于 1200px。

{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "首页",
      "item": "https://example.com/"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "博客",
      "item": "https://example.com/blog/"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "结构化数据完全指南"
    }
  ]
}

position 必须从 1 开始连续递增;最后一项可省略 item,表示当前页面。

WebSite:声明站点与搜索框

{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "@id": "https://example.com/#website",
  "url": "https://example.com/",
  "name": "示例站点",
  "description": "专注前端与 SEO 的技术博客",
  "inLanguage": "zh-CN",
  "potentialAction": {
    "@type": "SearchAction",
    "target": {
      "@type": "EntryPoint",
      "urlTemplate": "https://example.com/search?q={search_term_string}"
    },
    "query-input": "required name=search_term_string"
  }
}

SearchAction 可让 Google 在特定场景下展示站内搜索框,但需站点已实现对应搜索功能。

Person:标注作者身份

{
  "@context": "https://schema.org",
  "@type": "Person",
  "@id": "https://example.com/about#author",
  "name": "张三",
  "url": "https://example.com/about",
  "jobTitle": "前端工程师",
  "worksFor": {
    "@type": "Organization",
    "name": "示例站点"
  },
  "sameAs": [
    "https://github.com/zhangsan",
    "https://twitter.com/zhangsan"
  ]
}

sameAs 用于关联外部权威档案,有助于搜索引擎确认作者身份,对 E-E-A-T 有正向作用。

常见报错与校验方法

JSON-LD 语法错误不会导致页面崩溃,但会让整段标记失效。以下是最常见的四类问题:

  • JSON 语法错误:多余逗号、单引号、未转义字符。JSON 标准不允许尾随逗号,中文引号也会导致解析失败。
  • 必填属性缺失:Article 缺少 headline 或 image,BreadcrumbList 缺少 position,均会触发 Google 的严重错误。
  • URL 不可抓取:image、logo、item 使用了相对路径或需要登录才能访问的地址。
  • 类型与内容不匹配:把 FAQ 内容标记为 Article,或把商品页标记为 WebSite,会导致富媒体摘要无法触发。

推荐校验流程:

  1. 使用 Schema Markup Validator 检查语法与词汇表合规性。
  2. 使用 Google Rich Results Test 验证是否具备富媒体摘要资格。
  3. 在 Search Console 的“增强功能”报告中查看已收录页面的实际报错。
  4. 用 curl 或浏览器开发者工具确认 JSON-LD 在服务端渲染后可见,而非仅靠客户端 JS 注入。
Google 明确表示:结构化数据必须对爬虫可见。若通过 JavaScript 动态注入,需确保 Googlebot 能执行并抓取到最终 DOM。

常见问题

JSON-LD 会影响页面排名吗?

不会直接提升排名。它是帮助搜索引擎理解内容的辅助手段,主要价值在于获得富媒体摘要、面包屑路径等增强展示,从而间接提高点击率。

一个页面可以放多个 JSON-LD 块吗?

可以。多个 <script type="application/ld+json"> 块会被分别解析。更推荐的做法是用一个数组或 @graph 合并,并通过 @id 建立引用关系。

结构化数据标记后多久生效?

取决于抓取与索引周期,通常数天到数周。可在 Search Console 中查看“增强功能”报告确认是否已被识别。若长期未生效,优先检查必填属性与 URL 可抓取性。

没有富媒体摘要展示,标记就白做了吗?

不是。结构化数据仍能帮助搜索引擎构建知识图谱、理解实体关系,对语义搜索和 AI 摘要场景有长期价值。

0

评论 (0)

取消