SEO
如何检查结构化数据:JSON-LD 错误、缺失属性与合理预期
结构化数据能帮助搜索引擎理解页面,但前提是它能被解析且内容完整。本文介绍如何找出错误、常见类型需要哪些属性,以及标记无法保证什么。
本页内容
结构化数据是关于页面的机器可读信息,用 schema.org 词汇表写成:比如这是一篇文章,标题和作者是什么;这是一件商品,价格是多少;这是一家商户,地址在哪里。搜索引擎用它来理解内容,对于某些类型,还会据此展示增强型搜索结果,例如商品价格或面包屑导航。
Google 推荐使用 JSON-LD:一个包含 JSON 对象的 <script type="application/ld+json"> 块,与可见的 HTML 相互独立。这是最容易添加、也最容易检查的格式,本指南讨论的正是它。
有效的 JSON-LD 是什么样的
一个最精简的文章示例:{"@context": "https://schema.org", "@type": "Article", "headline": "How to check structured data", "datePublished": "2026-09-26", "author": {"@type": "Organization", "name": "Example Team"}}。每个对象都有一个 @type;嵌套的事物(如作者)是带有各自类型的对象;日期使用 ISO 8601 格式;网址是绝对网址。
会让结构化数据失效的错误
1. JSON 无法解析
只要有一处语法错误,搜索引擎就会忽略整个块。常见原因有:最后一个属性后面多了一个逗号;从文字处理软件粘贴过来的“智能”弯引号;值里面出现了未转义的双引号或换行符;以及模板变量输出为空,留下了 "name": ,。如果 JSON 来自 CMS 的某个字段,里面混入的 HTML 标签也会造成同样的结果。
2. 缺少关键属性
每项搜索功能的文档都会列出必需属性(缺了它们,页面就没有资格使用该功能)和建议属性(它们能让展示效果更好)。没有 name 的 Organization,没有任何 offers、review 或 aggregateRating 的 Product,或者没有 position 的面包屑条目,都是不完整的。Google 的搜索库文档按功能列出了各项要求;这些要求时有调整,所以要去查文档,而不是凭记忆。
3. 无效的网址
url、logo 和 image 应该是可以正常访问的绝对网址。相对路径、# 这样的占位符,以及预发布环境的主机名,在模板中都很常见。
4. 重复或相互冲突的块
主题和 SEO 插件各自输出一个 Organization 或 WebSite 块,名称或 logo 还不一样,这种情况往好了说也会让人困惑。每种类型只生成一次。
5. 标记与页面内容不符
结构化数据必须描述访客能看到的内容:页面上并不存在的评价、与显示价格不一致的价格,或者页面上没有出现的 FAQ 答案,都违反 Google 的指南,并可能招致人工处置措施。这一点没有任何自动检测工具能替你判断。
检查页面的结构化数据
Rudra 的免费 SEO 检测工具会解析每个 JSON-LD 块,并报告解析错误、重复类型、无效网址,以及常见 schema.org 类型缺失的关键属性。
Rudra 的 SEO 检测工具会检查什么
免费 SEO 检测工具会读取服务器所发送 HTML 中的每一个 JSON-LD 块(包括包裹在 HTML 注释或 CDATA 中的块,以及 type 中带有 charset 的块)。它会报告:
- 无法解析的块,并附上解析器给出的错误(这是一条会扣分的警告,因为这样的标记无法使用);
- 同一个
@type被声明了不止一次; url、logo或image的值不是有效的绝对网址;- 一组范围保守的常见类型缺失的关键属性:Organization 和 WebSite 需要
name和url;Article、BlogPosting 和 NewsArticle 需要headline、datePublished和author;LocalBusiness 需要name和address;Product 需要name,外加offers、review或aggregateRating三者之一;FAQPage 需要带有name的问题和带有text的答案;BreadcrumbList 需要带有position以及name或item的条目。
这些只是合理的最低要求,并不是把每个搜索引擎的要求照搬过来:对于某些功能,Google 要求得更多;而对于 Article,Google 把这些属性列为建议属性而非必需属性。检测工具只读取 JavaScript 运行之前的 HTML,所以由代码管理器注入的结构化数据它是看不到的。请把它的结果当作初步筛查,然后用下面的工具进一步确认。
其他可用的工具
- Google 的富媒体搜索结果测试会显示页面有资格使用哪些 Google 功能,以及哪些错误导致它没有资格。它会渲染 JavaScript,所以也能看到注入的标记。
- Schema Markup Validator (validator.schema.org) 会对照词汇表检查任何 schema.org 标记,与 Google 的功能无关。
- Search Console 的增强功能报告会按结构化数据类型,显示 Google 已抓取页面中的错误和警告。
结构化数据无法保证什么
有效且完整的标记能让页面有资格获得增强型搜索结果,但并不保证一定会出现:搜索引擎会针对每一次查询决定是否展示,而且功能本身也在变化。例如,Google 在 2023 年把 FAQ 富媒体搜索结果的展示范围限制在少数权威的政府和健康类网站,并停止展示 HowTo 富媒体搜索结果。结构化数据也不是提升排名的捷径;它的价值在于帮助搜索引擎准确理解你的内容。
一套简单的工作流程
- 通过 CMS 或模板生成 JSON-LD,并使用渲染页面的同一份数据,这样两者就不会出现偏差。
- 每种类型在每个页面上只输出一次。
- 每次修改模板之后,从每种模板中各选一个页面,用 SEO 检测工具和富媒体搜索结果测试检查一遍。
- 部署之后,留意 Search Console 的增强功能报告中是否出现新的错误。
常见问题
JSON-LD 比 Microdata 或 RDFa 更好吗?
三种格式都受支持,但 Google 推荐 JSON-LD,因为它与可见的 HTML 相互独立,更容易维护。Rudra 的 SEO 检测工具读取的是 JSON-LD。
我的结构化数据是有效的,为什么没有出现富媒体搜索结果?
有效的标记只是让页面具备资格。搜索引擎会根据查询内容、页面质量和它们当前提供的功能来决定是否展示富媒体搜索结果,而且有些功能只对特定网站开放。
必需属性和建议属性有什么区别?
缺少必需属性,页面就没有资格使用该搜索功能。建议属性能补充有用的细节、改善展示效果,但缺少它们并不会让页面失去资格。
结构化数据会对我的网站造成损害吗?
歪曲页面内容的标记,比如虚假评价或隐藏内容,违反 Google 的指南,可能招致人工处置措施,导致富媒体搜索结果被移除。准确的标记则没有任何坏处。