结构化数据是什么
结构化数据是一种机器可读的页面描述方式。它使用 Schema.org 里的标准类型和属性,把“这是一个组织”“这是一个教程”“这是一个术语定义集” 这样的信息明确写出来。
搜索系统本来就会读取 HTML 文本,但页面中的关系不一定总是清楚。比如页面底部的“ZenLeak GEO 学院”可能是作者、品牌、组织还是栏目名, 结构化数据可以提供额外的上下文。不过它只是辅助信号,不能替代真实正文、内链和可抓取性。
需要区分两套范围:Schema.org 定义通用词汇, 搜索平台再决定支持哪些类型、属性和展示功能。Google 的结构化数据功能列表不是完整 Schema.org 清单;一种类型可以在语义上有效,却不对应 Google 富媒体结果。
“合法 JSON”只说明能解析;“符合 Schema.org”说明词汇关系合理;“符合某搜索功能要求”还要满足该平台文档与页面质量规则。三者都不能保证实际展示。
教程站应该使用哪些类型
| 类型 | 适合描述 | 页面对应内容 |
|---|---|---|
| Organization | 站点运营组织、品牌名、官网和联系信息。 | 全站布局。 |
| WebSite | 整个网站的名称、URL、语言和主题。 | 全站布局。 |
| BreadcrumbList | 当前页面在站点层级中的位置。 | 栏目页和教程页。 |
| Article | 教程标题、作者、发布日期、更新时间、正文主题。 | 每篇教程。 |
| LearningResource | 教程的学习目标、难度、资源类型和主题。 | 每篇教程。 |
| DefinedTermSet | 术语库及其中的定义词条。 | 术语库页面。 |
正确配置的步骤
- 先决定页面的主要实体和用户可见目的,不要为了“多加 Schema”同时塞入互不相关的类型。
- 列出页面上真实可见的名称、描述、作者、日期、URL 和层级关系。
- 把这些信息映射到 Schema.org 类型和属性,并为站点、组织、页面与主要内容分配稳定的绝对 URL @id。
- 用 @id 连接同一个实体,保证标题、描述、作者和日期与正文及 meta 信息一致。
- 先验证 JSON 语法,再检查 Schema.org 语义,最后按目标搜索功能核对必填与推荐属性。
- 在构建产物中检查最终脚本,确认转义安全、canonical 唯一、动态值没有输出 null、空数组或错误域名。
- 上线后保存验证日期与结果;平台文档或页面内容变化时同步复核。
先画实体图,再写 JSON-LD
一篇教程通常同时是一个 URL 对应的 WebPage、一篇 Article,也可以是一个 LearningResource;这些不是三篇内容, 而是同一页面的不同语义侧面。稳定的 @id 能把它们与全站 Organization、WebSite 和面包屑关系连接起来。
| 节点 | 建议 @id | 关键关系 |
|---|---|---|
| Organization | https://example.com/#organization | 作为 publisher、author 或 provider;仅在真实承担对应角色时使用。 |
| WebSite | https://example.com/#website | 通过 publisher 指向组织,通过 hasPart 或 isPartOf 连接页面。 |
| WebPage | 规范 URL + #webpage | url 与 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,并在全站指向同一实体。