实用结构化数据指南
JSON-LD Schema 标记实用 SEO 指南
JSON-LD 帮助搜索引擎理解页面内容、发布者、网站结构及可用于支持搜索功能的关键信息。
目标不是添加所有可用 Schema 类型,而是准确匹配可见页面、验证无误且内容变更时保持同步的结构化数据。
有用的简短版本
当能用真实可见事实描述页面时使用 JSON-LD:标题、描述、作者、发布日期、面包屑、产品详情、视频数据或清晰问答。不要添加 Google 不再展示的功能或用户看不到的内容。
目录
JSON-LD 的实际作用
JSON-LD 是机器可读的结构化数据块,通常位于页面 head 或 body 的 script 标签中,使用 schema.org 词汇描述实体,搜索引擎将其作为可见内容的清晰层。
解析清晰度
含义
将页面事实转化为命名实体和属性,如 Article、author、datePublished、BreadcrumbList 或 SoftwareApplication。
搜索功能
资格
它可使页面符合丰富结果资格,但 Google 会根据质量、政策、查询和功能可用性决定展示内容。
站点图谱
一致性
为 CMS 或 Blazor 应用提供一个结构化位置,复用相同的规范 URL、语言、标题、日期、图片和发布者数据。
非捷径
限制
它不能修复内容薄弱、虚假评论、隐藏 FAQ 答案、过期日期或与结构化数据不符的页面。
根据页面功能选择 Schema
避免垃圾或重复结构化数据的最简单方法是明确页面目的,只添加最小且准确描述该目的的 Schema 集合。
内容
Article / BlogPosting
- 适用范围
- 指南、教程、评论、新闻类文章和长篇解析。
- 添加时机
- 页面有清晰标题、作者或发布者、发布日期、修改日期、规范 URL 和图片。
- 避免使用时
- 页面多为工具界面、产品列表、分类页或内容稀薄的着陆页。
导航
BreadcrumbList
- 适用范围
- 几乎所有首页以下的页面。
- 添加时机
- 用户能理解页面在站点层级中的位置。
- 避免使用时
- 面包屑路径与内部链接、规范 URL 或可见导航不符。
站点身份
WebPage / WebSite / Organization
- 适用范围
- 首页、中心页、关于页及发布者身份重要的页面。
- 添加时机
- 你需要一个稳定的实体图谱,连接页面、站点、发布者和语言。
- 避免使用时
- 你添加 WebSite 标记仅为追逐旧版站点链接搜索框展示。
产品或应用
Product / SoftwareApplication
- 适用范围
- 工具、应用、SaaS 页面、扩展、可下载软件或真实产品页面。
- 添加时机
- 标记时,可见页面内容包括名称、描述、操作系统或类别、价格、优惠和评分。
- 避免使用时
- 评分、价格、库存或评论对用户不可见。
问题
FAQPage
- 适用范围
- 真正帮助用户理解主题的可见问答部分。
- 添加时机
- 问答内容对页面有用,即使 Google 不显示 FAQ 丰富结果。
- 避免使用时
- 你添加通用问答仅为占用搜索空间或在多页重复相同答案。
媒体
VideoObject / ImageObject
- 适用范围
- 包含重要嵌入视频、教程视频或可抓取图片资源的页面。
- 添加时机
- 媒体是页面核心,具备标题、描述、缩略图、上传日期和稳定 URL。
- 避免使用时
- 媒体为装饰性、隐藏、受限或与页面主要目的无关。
防止大多数错误的实施清单
优质 JSON-LD 最佳表现是平稳一致:由可信字段生成,易于验证,页面变更时不易遗漏。
选择一个主要页面实体
确定页面主要类型:文章、产品、应用、视频、FAQ、集合或通用网页。辅助 Schema 应支持主实体。
匹配可见内容
所有标记内容应在页面上可见或可明确推断:标题、作者、日期、价格、评分、问答、面包屑和图片。
使用稳定的 @id 值
为重要实体赋予稳定 ID,如规范 URL 加 #article、#webpage、#organization 或 #faq,帮助解析器连接图谱片段。
从共享元数据生成
复用生成标题标签、元描述、规范 URL、Open Graph 图片、语言标签和最后修改日期的相同源字段。
保持日期真实
仅在页面内容实质变更时修改 dateModified,不要为显得更新而自动刷新日期。
确保图片可抓取
使用绝对图片 URL,合适尺寸,且不被机器人、认证或仅懒加载渲染阻挡的文件。
提前渲染
在 Blazor 和其他 JavaScript 应用中,优先使用预渲染或服务器渲染的 JSON-LD,确保爬虫在初始 HTML 中能看到。
验证与监控
发布前运行丰富结果测试,检查 Schema 标记验证器语法,索引后关注 Search Console。
Blazor 页面清晰的 JSON-LD 模式
Blazor 中最安全的做法是在初始化或预渲染时从页面元数据构建 Schema,序列化一次,并在初始 HTML 中渲染 application/ld+json 脚本供爬虫读取。
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"@id": "https://example.com/en/json-ld-schema-guide/#article",
"headline": "JSON-LD Schema Markup Guide for Practical SEO",
"description": "A practical guide to choosing, generating, and validating structured data.",
"image": "https://example.com/images/json-ld-guide.png",
"datePublished": "2026-03-28T10:00:00+00:00",
"dateModified": "2026-05-31T10:00:00+00:00",
"author": {
"@type": "Organization",
"name": "Example Publisher"
},
"publisher": {
"@type": "Organization",
"name": "Example Publisher",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/logo.png"
}
},
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://example.com/en/json-ld-schema-guide/"
}
}
</script>private MarkupString BuildJsonLd(PageMetaData meta)
{
var pageUrl = BuildPageUrl(meta);
var schema = new Dictionary<string, object?>
{
["@context"] = "https://schema.org",
["@type"] = "Article",
["@id"] = $"{pageUrl}#article",
["headline"] = meta.Title,
["description"] = meta.Description,
["url"] = pageUrl,
["datePublished"] = meta.Published?.ToString("O"),
["dateModified"] = meta.Modified?.ToString("O"),
["inLanguage"] = CS.Culture
};
var json = JsonSerializer.Serialize(schema, new JsonSerializerOptions
{
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull
});
return new MarkupString($"<script type=\"application/ld+json\">{json}</script>");
}依赖前验证 JSON-LD
验证有两项任务:Schema 标记验证器检查词汇和 JSON-LD 语法是否正确;Google 丰富结果测试检查页面是否符合丰富结果资格。
Google 资格
丰富结果测试
检查 Google 是否能读取页面及检测的结构化数据是否符合丰富结果资格。
打开丰富结果测试词汇
Schema 标记验证器
检查 schema.org 结构和 JSON-LD 语法,包括类型、属性、嵌套实体和格式错误的 JSON。
打开 Schema 标记验证器发布后
Search Console
Google 处理页面后,使用 URL 检查和增强报告发现抓取、索引及结构化数据问题。
阅读 Google 结构化数据文档常见 JSON-LD 错误影响信任
大多数 Schema 问题不是复杂技术错误,而是标记内容与用户或爬虫可验证内容不符。
标记隐藏或缺失内容
如果用户看不到答案、评论、报价、图片或作者信息,不要将其放入结构化数据,这是失去信任的最快方式。
为所有内容添加 FAQPage
FAQ Schema 可描述可见问答,但不应在所有文章中复制粘贴,仅在问答提升页面时使用。
冲突的重复脚本
多个 Article 块含不同标题、日期或 URL 会使页面难以解析,一份清晰图谱胜过三份零散。
错误的规范 URL 或 @id
Schema URL 应与规范页面、语言 URL 和 hreflang 设置匹配。混合语言 URL 会导致重复内容和实体混淆。
虚假新鲜度
模板编辑、跟踪变更或仅 Schema 更新不应修改 dateModified,日期应反映真实内容变更。
仅客户端延迟渲染
如果 JSON-LD 仅在客户端延迟渲染后出现,爬虫可能无法抓取。重要页面应优先使用服务器渲染或预渲染。
按页面类型的实用 Schema 方案
你很少需要庞大图谱,这些组合覆盖大多数小型网站、博客、工具和评测项目发布的页面。
指南文章
Article + BreadcrumbList + WebPage
- 使用 Article 标记标题、作者、发布者、图片、日期和章节名称。
- 使用 BreadcrumbList 标记可见站点路径。
- 使用 WebPage 或 @id 引用连接页面和文章实体。
工具页面
SoftwareApplication + WebPage + BreadcrumbList
- 仅当页面关于真实应用或工具时使用 SoftwareApplication。
- 仅在可见时包含操作系统、类别、价格或优惠详情。
- 除非页面显示真实评论数据,否则避免使用评论或评分标记。
评论页面
仅在页面支持时使用评论/产品标记
- 仅在页面明确显示时标记被评项目、作者、日期和评分。
- 保持联盟链接和商业内容透明。
- Schema 和可见内容中使用相同评分。
问答页面
FAQPage 仅用于有用的可见问答
- 确保每个答案独立有用,而非仅是关键词变体。
- 不要将答案隐藏在爬虫无法访问的受限界面后。
- 不要将 FAQ 丰富结果视为主要 SEO 益处。
参考来源
本指南参考资料
以上指导基于 Google Search Central 和 schema.org 官方文档,转化为实用的 JSON-LD 检查清单。
常见问题
JSON-LD Schema 标记是排名因素吗?
JSON-LD 本身不是排名魔法开关,它帮助搜索引擎理解合格内容并支持丰富结果资格,但排名仍依赖内容质量、相关性、抓取性、链接等多种信号。
JSON-LD 应放置在页面何处?
通常在 head 中放置 script 标签最易管理,但 Google 也能读取 body 中的 JSON-LD。关键是标记存在于渲染页面且与可见内容匹配。
我还应该使用 FAQPage Schema 吗?
仅在页面有真正有用的可见问答时使用 FAQPage,不要依赖其增加 Google 结果空间,因为 FAQ 丰富结果已大幅减少并被弃用。
一页可以有多个 JSON-LD 块吗?
是的。普通文章页可以包含 Article、BreadcrumbList 和 WebPage 数据。保持块一致,避免重复冲突实体,使用稳定 @id 连接相关部分。
JSON-LD 比 Microdata 更好吗?
大多数现代网站支持。Google 支持 JSON-LD、Microdata 和 RDFa,但 JSON-LD 更易维护,无需在 HTML 模板中添加 Schema 属性。
结构化数据应多久验证一次?
每次更改模板、元数据字段、Schema 辅助工具、URL、语言路由、图片生成、评论数据或 FAQ 部分时验证。重要页面索引后也检查 Search Console。