实用结构化数据指南

JSON-LD Schema 标记实用 SEO 指南

JSON-LD 帮助搜索引擎理解页面内容、发布者、网站结构及可用于支持搜索功能的关键信息。

目标不是添加所有可用 Schema 类型,而是准确匹配可见页面、验证无误且内容变更时保持同步的结构化数据。

有用的简短版本

当能用真实可见事实描述页面时使用 JSON-LD:标题、描述、作者、发布日期、面包屑、产品详情、视频数据或清晰问答。不要添加 Google 不再展示的功能或用户看不到的内容。

首选最佳 Schema 大多数指南页使用 Article、WebPage 和 BreadcrumbList。
最佳工作流程 从生成标题、描述、规范和 Open Graph 的同一页面元数据生成 Schema。
最佳实际检验 FAQPage 和 WebSite 标记仍可描述内容,但不要围绕已废弃的 Google 展示构建策略。

JSON-LD 的实际作用

JSON-LD 是机器可读的结构化数据块,通常位于页面 head 或 body 的 script 标签中,使用 schema.org 词汇描述实体,搜索引擎将其作为可见内容的清晰层。

解析清晰度

含义

将页面事实转化为命名实体和属性,如 Article、author、datePublished、BreadcrumbList 或 SoftwareApplication。

搜索功能

资格

它可使页面符合丰富结果资格,但 Google 会根据质量、政策、查询和功能可用性决定展示内容。

站点图谱

一致性

为 CMS 或 Blazor 应用提供一个结构化位置,复用相同的规范 URL、语言、标题、日期、图片和发布者数据。

非捷径

限制

它不能修复内容薄弱、虚假评论、隐藏 FAQ 答案、过期日期或与结构化数据不符的页面。

重要提示: 结构化数据应支持页面内容,而非替代有用内容。若页面内容薄弱、混乱、过时或误导,Schema 标记无法提升搜索结果质量。

根据页面功能选择 Schema

避免垃圾或重复结构化数据的最简单方法是明确页面目的,只添加最小且准确描述该目的的 Schema 集合。

内容

Article / BlogPosting

适用范围
指南、教程、评论、新闻类文章和长篇解析。
添加时机
页面有清晰标题、作者或发布者、发布日期、修改日期、规范 URL 和图片。
避免使用时
页面多为工具界面、产品列表、分类页或内容稀薄的着陆页。

导航

BreadcrumbList

适用范围
几乎所有首页以下的页面。
添加时机
用户能理解页面在站点层级中的位置。
避免使用时
面包屑路径与内部链接、规范 URL 或可见导航不符。

站点身份

WebPage / WebSite / Organization

适用范围
首页、中心页、关于页及发布者身份重要的页面。
添加时机
你需要一个稳定的实体图谱,连接页面、站点、发布者和语言。
避免使用时
你添加 WebSite 标记仅为追逐旧版站点链接搜索框展示。

产品或应用

Product / SoftwareApplication

适用范围
工具、应用、SaaS 页面、扩展、可下载软件或真实产品页面。
添加时机
标记时,可见页面内容包括名称、描述、操作系统或类别、价格、优惠和评分。
避免使用时
评分、价格、库存或评论对用户不可见。

问题

FAQPage

适用范围
真正帮助用户理解主题的可见问答部分。
添加时机
问答内容对页面有用,即使 Google 不显示 FAQ 丰富结果。
避免使用时
你添加通用问答仅为占用搜索空间或在多页重复相同答案。

媒体

VideoObject / ImageObject

适用范围
包含重要嵌入视频、教程视频或可抓取图片资源的页面。
添加时机
媒体是页面核心,具备标题、描述、缩略图、上传日期和稳定 URL。
避免使用时
媒体为装饰性、隐藏、受限或与页面主要目的无关。

防止大多数错误的实施清单

优质 JSON-LD 最佳表现是平稳一致:由可信字段生成,易于验证,页面变更时不易遗漏。

01

选择一个主要页面实体

确定页面主要类型:文章、产品、应用、视频、FAQ、集合或通用网页。辅助 Schema 应支持主实体。

02

匹配可见内容

所有标记内容应在页面上可见或可明确推断:标题、作者、日期、价格、评分、问答、面包屑和图片。

03

使用稳定的 @id 值

为重要实体赋予稳定 ID,如规范 URL 加 #article、#webpage、#organization 或 #faq,帮助解析器连接图谱片段。

04

从共享元数据生成

复用生成标题标签、元描述、规范 URL、Open Graph 图片、语言标签和最后修改日期的相同源字段。

05

保持日期真实

仅在页面内容实质变更时修改 dateModified,不要为显得更新而自动刷新日期。

06

确保图片可抓取

使用绝对图片 URL,合适尺寸,且不被机器人、认证或仅懒加载渲染阻挡的文件。

07

提前渲染

在 Blazor 和其他 JavaScript 应用中,优先使用预渲染或服务器渲染的 JSON-LD,确保爬虫在初始 HTML 中能看到。

08

验证与监控

发布前运行丰富结果测试,检查 Schema 标记验证器语法,索引后关注 Search Console。

Blazor 页面清晰的 JSON-LD 模式

Blazor 中最安全的做法是在初始化或预渲染时从页面元数据构建 Schema,序列化一次,并在初始 HTML 中渲染 application/ld+json 脚本供爬虫读取。

HTMLArticle JSON-LD 示例
<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>
C#C# 辅助模式
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>");
}
实用规则: url 和 @id 使用稳定 URL,所有地方使用相同规范 URL。若同一页面有多语言 URL,生成语言特定元数据并保持 hreflang/规范设置一致。

依赖前验证 JSON-LD

验证有两项任务:Schema 标记验证器检查词汇和 JSON-LD 语法是否正确;Google 丰富结果测试检查页面是否符合丰富结果资格。

Google 资格

丰富结果测试

检查 Google 是否能读取页面及检测的结构化数据是否符合丰富结果资格。

打开丰富结果测试

词汇

Schema 标记验证器

检查 schema.org 结构和 JSON-LD 语法,包括类型、属性、嵌套实体和格式错误的 JSON。

打开 Schema 标记验证器

常见 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 检查清单。

01 Google 结构化数据介绍 developers.google.com 02 Google 结构化数据政策 developers.google.com 03 Google 文章结构化数据 developers.google.com 04 Google 面包屑结构化数据 developers.google.com 05 Google FAQ 结构化数据 developers.google.com 06 Google 站点链接搜索框更新 developers.google.com 07 Schema.org 入门 schema.org 08 Google 丰富结果测试 search.google.com 09 Schema 标记验证器 validator.schema.org

常见问题

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。