给网站添加Article、Organization、Product、BreadcrumbList等Schema结构化数据之后,一个很实际的问题是:这些代码到底有没有被机器正确识别?JSON-LD看起来只是几行JSON,但一个属性名称写错、类型使用不合理或者对象关系没有表达清楚,都可能让最终解析结果与预期不同。
Schema.org官方提供的Schema Markup Validator就是用于解决这类问题的工具。访问Validator后,可以输入已经上线的网页URL,也可以直接粘贴结构化数据代码进行验证。测试完成后,工具会把网页中识别到的Schema类型、属性和实体关系展示出来,并提示发现的问题。
它尤其适合SEO人员、网站开发者以及负责模板维护的站长,用来判断Schema代码本身是否符合Schema.org词汇和数据结构,而不是只凭肉眼检查源代码。

Schema.org Validator是什么
Schema Markup Validator是Schema.org提供的结构化数据验证服务。根据Schema.org官方说明,该工具建立在此前Google Structured Data Testing Tool,也就是SDTT的基础上,目前由Google为Schema.org社区提供相关服务支持。
它的定位并不是判断网页能不能获得某一种Google搜索富媒体结果,而是更通用地检查网页中的Schema.org结构化数据。
简单来说,如果一段代码使用了Schema.org定义的类型和属性,Validator可以帮助检查:
页面中识别出了哪些结构化数据。
使用了哪些Schema类型和属性。
类型和属性之间的组合是否存在问题。
代码是否存在明显语法错误。
实际解析出来的数据结构是否符合编写者预期。
这使它更像一个Schema代码检查器,而不是单纯服务某个搜索引擎展示功能的SEO测试工具。
这个工具支持哪些格式
目前Schema.org官方说明中,Validator可以提取并检查JSON-LD 1.0、RDFa 1.1和Microdata结构化数据。
| 格式 | 常见使用方式 | 特点 |
|---|---|---|
| JSON-LD | 通过script标签单独添加结构化数据 | 结构与页面HTML相对独立,网站中较常见 |
| Microdata | 把itemscope、itemtype、itemprop等属性写入HTML | 结构化信息直接分布在页面HTML标签中 |
| RDFa | 通过HTML属性描述实体及其关系 | 同样可以将语义信息嵌入HTML内容 |
对普通网站而言,JSON-LD通常更容易维护,因为结构化数据可以集中放在一个script代码块中,不需要在大量HTML元素中分别增加属性。不过Validator并不会要求网站只能使用JSON-LD,其他受Schema.org支持的格式同样可以检测。
可以直接检测网页地址
Schema Markup Validator并不要求先把网页源代码复制出来。对于已经上线的公开页面,可以直接提交URL,让工具获取网页并分析其中的Schema数据。
这比单纯检查一段代码更接近网站实际运行状态,因为最终上线页面中的结构化数据可能受到模板、插件、JavaScript和缓存系统影响。
例如WordPress后台设置了一套Article Schema,并不代表最终输出的HTML一定与后台配置完全相同。使用URL进行测试,可以直接查看访问该页面时实际能够提取出哪些结构化数据。
对于批量使用CMS模板生成Schema的网站,在修改模板后抽查几个真实URL通常很有必要。
也可以直接粘贴代码测试
除了网页URL,Validator还支持直接验证代码。这种方式更适合开发和调试阶段。
例如准备给文章页面增加Article结构化数据,但代码还没有正式部署,可以先把JSON-LD放进验证工具。如果属性名称、数据格式或类型关系存在明显问题,就可以在上线之前修改。
这种测试方式特别适合以下情况:
新建Schema模板时进行调试。
修改JSON-LD代码后快速检查。
排查某一个具体属性为什么报错。
学习Schema.org类型和属性之间的关系。
比较修改前后的解析结果。
开发阶段直接测试代码,上线以后再使用URL重新测试,两种方法配合使用会更加稳妥。
它还能识别JS生成的数据
现代网站不一定把所有结构化数据直接写在服务器返回的HTML中,一些CMS、组件或者前端程序可能会通过JavaScript动态注入JSON-LD。
Schema.org官方文档说明,Validator能够提取由JavaScript注入的结构化数据。这一点对于使用前端框架、标签管理系统或者动态组件输出Schema的网站比较实用。
如果查看原始HTML没有看到预期代码,但Validator能够在最终页面中提取对应实体,就说明结构化数据可能是在页面执行过程中动态生成的。
不过从SEO排查角度来看,是否能够被Validator识别只是其中一步。真正面向某个搜索引擎时,还应该继续使用该搜索引擎自己的测试和抓取工具确认实际处理情况。
验证结果主要看什么
第一次使用Validator时,不建议只盯着有没有出现红色错误,更重要的是检查工具最终理解出的数据结构。
例如一个文章页面原本希望表达这样的关系:
当前对象是一篇Article。
文章有headline、datePublished和dateModified。
author指向一个Person对象。
publisher指向一个Organization对象。
文章页面通过BreadcrumbList描述导航层级。
运行测试后,可以检查这些实体和属性是否按照预期被解析出来。
有些代码从JSON语法角度没有错误,但Schema表达的对象关系并不是网站真正想表达的内容。这类问题仅仅使用普通JSON格式检查器并不容易发现,而Schema Validator更适合观察最终语义结构。
报错不等于网页不能收录
使用结构化数据验证工具时,需要避免把Schema错误和网页收录直接画等号。
Schema结构化数据的主要作用是用机器可理解的方式描述页面中的实体和内容关系。某个Schema属性存在错误,并不意味着整个网页一定无法被搜索引擎抓取或建立索引。
类似地,通过Validator测试也不意味着网页一定会获得更好的搜索排名。
结构化数据应该被理解为向搜索引擎和其他数据消费者提供更清晰内容信息的一种方式,而不是一个填写完成后就会直接提高排名的SEO开关。
通过验证也不代表能出富媒体
这是使用Schema Markup Validator时最值得注意的边界。
Schema.org定义的类型和属性范围,要比Google搜索实际支持的富媒体搜索结果类型更广。Validator关注的是Schema.org数据能否按照对应词汇进行解析,并不会根据某一个具体搜索产品的展示规则进行完整判断。
因此,一段Schema代码可能在Validator中结构正常,但并不代表它一定符合Google某一种富媒体搜索结果的要求。
如果目标明确是Google搜索中的Product、Article、Breadcrumb、Event等受支持搜索功能,还需要根据Google Search Central当前文档核对对应类型所要求的属性和内容规范。
与富媒体测试有什么区别
Schema.org Validator和Google Rich Results Test经常被放在一起使用,但两者解决的问题不同。
| 比较项目 | Schema.org Validator | Google Rich Results Test |
|---|---|---|
| 主要目标 | 验证Schema.org结构化数据 | 检测Google支持的富媒体搜索结果 |
| 关注范围 | Schema.org通用类型和属性 | Google搜索支持的特定结构化数据功能 |
| 适合用途 | 检查Schema结构和语义 | 判断Google富媒体结果资格及相关错误 |
| 是否面向特定搜索产品 | 不是 | 主要面向Google搜索 |
例如正在开发一种Schema.org本身已经定义、但Google并没有对应富媒体搜索结果功能的数据类型,这时Validator依然可以用于检查Schema结构,而Rich Results Test未必会把它作为Google支持的富媒体类型进行分析。
反过来,如果网站的目标就是获取Google某种富媒体展示,Rich Results Test会更加直接,因为它会结合Google对应搜索功能的要求进行检测。
两种工具应该怎么配合
实际做网站SEO时,没有必要在Schema.org Validator和Rich Results Test之间二选一。
比较合理的流程是:
根据Schema.org定义设计结构化数据。
使用Schema Markup Validator检查Schema类型、属性和整体结构。
如果目标涉及Google富媒体搜索结果,再使用Rich Results Test测试。
页面正式上线后,使用实际URL重新检查一次。
通过Google Search Console观察搜索引擎实际抓取和结构化数据报告。
这样可以把“Schema代码本身有没有问题”和“是否满足Google具体搜索展示要求”分开处理,排错会更加清晰。
哪些网站更需要这个工具
并不是只有大型网站才需要验证Schema。如果网站完全没有使用结构化数据,自然没有必要频繁打开这个工具;一旦开始通过模板、SEO插件或程序自动输出JSON-LD,就值得把验证加入日常维护流程。
内容网站可以检查Article、Person、Organization和BreadcrumbList等数据,电商网站可能涉及Product、Offer以及商家相关信息,本地企业网站则可能使用LocalBusiness等类型。
尤其是大量页面共享同一套模板的网站,一个Schema模板错误可能同时影响成百上千个URL。模板上线前检查代码,比出现大量结构化数据错误之后逐页修改成本更低。
常见的Schema检查误区
一个常见误区是认为“没有错误提示”就表示结构化数据已经优化完成。Validator只能根据结构化数据本身进行检查,并不知道网页中的文字内容是否真实、是否符合某个搜索服务的内容政策,也不能保证搜索引擎最终会如何展示。
另一个问题是为了让Schema看起来完整,给页面加入实际并不存在的信息。例如页面没有真实评分,却人为添加AggregateRating;正文没有展示FAQ内容,却只在JSON-LD中批量生成问答。这已经不是代码语法是否正确的问题,而是结构化数据是否真实对应页面内容的问题。
Schema.org本身的数据模型也比较灵活,并不是每一种类型都存在一套统一的“所有属性必须填写”规则。实际使用时,需要同时参考具体Schema类型定义,以及目标搜索引擎针对对应功能给出的要求。
poxiaoxi博客
精彩评论