结构化数据是什么

结构化数据是一种机器可读的页面描述方式。它使用 Schema.org 里的标准类型和属性,把“这是一个组织”“这是一个教程”“这是一个术语定义集” 这样的信息明确写出来。

搜索系统本来就会读取 HTML 文本,但页面中的关系不一定总是清楚。比如页面底部的“ZenLeak GEO 学院”可能是作者、品牌、组织还是栏目名, 结构化数据可以提供额外的上下文。不过它只是辅助信号,不能替代真实正文、内链和可抓取性。

需要区分两套范围:Schema.org 定义通用词汇, 搜索平台再决定支持哪些类型、属性和展示功能。Google 的结构化数据功能列表不是完整 Schema.org 清单;一种类型可以在语义上有效,却不对应 Google 富媒体结果。

三个不同结论

“合法 JSON”只说明能解析;“符合 Schema.org”说明词汇关系合理;“符合某搜索功能要求”还要满足该平台文档与页面质量规则。三者都不能保证实际展示。

教程站应该使用哪些类型

类型适合描述页面对应内容
Organization站点运营组织、品牌名、官网和联系信息。全站布局。
WebSite整个网站的名称、URL、语言和主题。全站布局。
BreadcrumbList当前页面在站点层级中的位置。栏目页和教程页。
Article教程标题、作者、发布日期、更新时间、正文主题。每篇教程。
LearningResource教程的学习目标、难度、资源类型和主题。每篇教程。
DefinedTermSet术语库及其中的定义词条。术语库页面。

正确配置的步骤

  1. 先决定页面的主要实体和用户可见目的,不要为了“多加 Schema”同时塞入互不相关的类型。
  2. 列出页面上真实可见的名称、描述、作者、日期、URL 和层级关系。
  3. 把这些信息映射到 Schema.org 类型和属性,并为站点、组织、页面与主要内容分配稳定的绝对 URL @id。
  4. 用 @id 连接同一个实体,保证标题、描述、作者和日期与正文及 meta 信息一致。
  5. 先验证 JSON 语法,再检查 Schema.org 语义,最后按目标搜索功能核对必填与推荐属性。
  6. 在构建产物中检查最终脚本,确认转义安全、canonical 唯一、动态值没有输出 null、空数组或错误域名。
  7. 上线后保存验证日期与结果;平台文档或页面内容变化时同步复核。

先画实体图,再写 JSON-LD

一篇教程通常同时是一个 URL 对应的 WebPage、一篇 Article,也可以是一个 LearningResource;这些不是三篇内容, 而是同一页面的不同语义侧面。稳定的 @id 能把它们与全站 Organization、WebSite 和面包屑关系连接起来。

节点建议 @id关键关系
Organizationhttps://example.com/#organization作为 publisher、author 或 provider;仅在真实承担对应角色时使用。
WebSitehttps://example.com/#website通过 publisher 指向组织,通过 hasPart 或 isPartOf 连接页面。
WebPage规范 URL + #webpageurl 与 canonical 一致,mainEntity 指向主要内容。
Article规范 URL + #article保存标题、日期、作者、发布者和文章栏目。
LearningResource规范 URL + #learning-resource表达学习目标、难度、资源类型和 provider。

Article 与 LearningResource 的区别

Article 主要说明“这是一篇文章”,强调标题、作者、发布日期、更新时间和正文主题。 LearningResource 更强调“这是一个学习资源”,可以描述教学目标、难度、学习资源类型和所教主题。 教程站可以同时使用二者,但前提是页面确实是一篇有明确学习目标的教程。

结构化数据类型不应该脱离业务语义。新闻、产品、评论、课程和教程虽然都可以有标题,但它们的使用场景和必要属性并不相同。

教程页 JSON-LD 示例

{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebPage",
      "@id": "https://zenleak.cn/basics/what-is-geo/#webpage",
      "url": "https://zenleak.cn/basics/what-is-geo/",
      "name": "GEO 是什么:生成式搜索优化入门指南",
      "inLanguage": "zh-CN",
      "mainEntity": {
        "@id": "https://zenleak.cn/basics/what-is-geo/#learning-resource"
      }
    },
    {
      "@type": "LearningResource",
      "@id": "https://zenleak.cn/basics/what-is-geo/#learning-resource",
      "name": "GEO 是什么:生成式搜索优化入门指南",
      "url": "https://zenleak.cn/basics/what-is-geo/",
      "inLanguage": "zh-CN",
      "educationalLevel": "新手",
      "learningResourceType": "教程",
      "teaches": ["GEO", "生成式搜索优化", "AI 搜索"],
      "dateModified": "2026-09-19",
      "provider": {
        "@id": "https://zenleak.cn/#organization"
      }
    }
  ]
}

示例只声明页面上确实可见的信息,并通过 @id 连接 WebPage 与 LearningResource。完整站点可以在全局图中定义 Organization, 但必须确保引用的 @id 在不同页面保持一致;不要在每个页面随机生成不同组织身份。

最容易犯的错误

在结构化数据里写一个页面没有展示的评分、价格、作者或 FAQ。机器可读数据和用户可见内容不一致,会降低信任并制造解析风险。

三层验证怎么做

层级检查内容推荐工具或方法通过后仍不能证明
语法JSON 可解析,脚本没有截断或转义错误。JSON 解析器、构建测试、查看最终 HTML。属性用法正确。
语义类型、属性、值与 @id 关系符合 Schema.org。Schema Markup Validator。搜索平台提供富媒体展示。
平台资格目标功能的必填项、内容政策和可见正文一致。Google Rich Results Test与对应功能文档。实际展示、排名或 AI 引用。

常见失败模式与修复

失败模式风险修复
同一组织出现多个名称和 @id。实体关系分裂或相互矛盾。建立全站实体常量,统一正式名、URL 和标识。
dateModified 每次构建都变成当天。机器日期与真实内容更新不一致。只在内容发生实质修改时更新字段。
FAQ、评分或作者只在 JSON-LD 出现。机器声明与用户可见页面不一致。删除字段,或先补齐真实可见且符合政策的内容。
相对 URL、测试域名或重复 canonical。实体标识不稳定,环境切换后指向错误。从正式 canonical 生成绝对 URL,并检查构建产物。
模板直接拼接未转义文本。JSON 无效,严重时产生脚本注入风险。用结构化对象序列化,并对脚本上下文安全输出。

结构化数据和 GEO 的关系

GEO 需要机器理解页面的主题、实体、关系和用途,结构化数据可以帮助表达其中一部分关系。例如 Article 能说明作者和更新时间, BreadcrumbList 能说明页面层级,LearningResource 能说明这是一个教程。

但 AI 搜索最终仍然需要读取正文来理解观点和证据。结构化数据不应该成为“把关键词塞进 JSON”的地方,也不能替代高质量的可读内容。

常见问题

结构化数据会直接提高 AI 引用率吗?

没有这样的保证。它可以帮助系统理解页面类型和关系,但引用仍然取决于内容质量、相关性、可抓取性和其他信号。

教程站需要使用 Course 吗?

只有当页面确实描述一个课程或课程体系时才适合使用。单篇教程更适合 Article 和 LearningResource。

FAQ 要不要一定加 FAQPage?

不一定。先确保 FAQ 真实可见、问题和答案完整,再根据目标平台当前支持范围和内容政策决定;合法的 FAQPage 标记也不等于页面会获得 FAQ 富媒体展示。

JSON-LD 应该放在哪里?

通常放在页面 head 中最方便管理,但关键是格式有效、内容真实、与页面保持一致。

Schema.org 支持的类型都能带来搜索富媒体结果吗?

不能。Schema.org 是通用语义词汇,搜索平台只选择其中一部分作为展示功能,并可随时间调整资格与政策。

结构化数据检查清单

  • 页面是否有一个明确的主要 Schema 类型。
  • 标题、描述、作者、日期和 URL 是否与页面一致。
  • Article、LearningResource 和 BreadcrumbList 的关系是否合理。
  • 是否没有声明正文不存在的价格、评分、作者或 FAQ。
  • JSON-LD 是否是合法 JSON,页面源码是否能直接读取。
  • 上线后是否定期检查失效 URL、过期日期和内容变化。
  • 是否分别完成 JSON 语法、Schema.org 语义和目标平台资格检查。
  • 所有 @id 是否为稳定绝对 URL,并在全站指向同一实体。