itemtype必须是完整可访问的HTTPS URL,如https://schema.org/Person;相对路径、HTTP协议或纯字符串均无效,且同一元素仅识别第一个itemtype属性。

itemtype 必须是完整、可访问的 HTTPS URL,否则结构化数据直接失效——Google Rich Results Test 会跳过整个 itemscope 块,不报错也不提示。
为什么 itemtype 写成 "Person" 或 "https://schema.org/Person" 就不行?
浏览器和 Google Structured Data Testing Tool 不解析字符串或相对路径。它们只认能 HTTP 请求成功的 HTTPS URL,且该 URL 必须返回 200 状态码(哪怕内容是 HTML 页面,不是 JSON-LD)。
- ❌
itemtype="Person":纯字符串,无协议、无域名,解析器直接忽略 - ❌
itemtype="http://schema.org/Person":HTTP 协议被主流工具拒绝(Google 明确要求 HTTPS) - ❌
itemtype="./vocab/person":相对路径,无法验证语义,结构化数据无效 - ✅
itemtype="https://schema.org/Person":标准、完整、可访问的 HTTPS URL
同一个元素能写多个 itemtype 吗?
不能。HTML 解析器只识别第一个 itemtype 属性,后续同名属性会被静默丢弃。
- ❌ 错误写法:
<div itemscope itemtype="https://schema.org/Person"> <li>✅ 正确做法:用嵌套表达多重身份,例如在 <code>itemprop="author"下再声明一个itemscope itemtype="https://schema.org/Person" - ⚠️ 注意:schema.org 本身不支持“联合类型”(如
Person & Organization),必须靠嵌套或选择更上位的类型(如https://schema.org/Thing)来兜底 - ✅ 推荐:
https://schema.org/Article、https://schema.org/Product、https://schema.org/Event - ⚠️ 避坑:不要拼错大小写(
article≠Article),不要多加或少加斜杠(https://schema.org/Article/是错误路径) - ? 验证方式:把
itemtype的 URL 粘贴进浏览器地址栏,确认能打开且状态码是 200
itemtype 的 URL 能自己写一个吗?
理论上可以,但实际几乎不可行——你得托管一个符合 WHATWG 微数据词汇表规范的 HTTPS 页面,并确保它长期可用、返回 200、内容可被爬虫理解。绝大多数场景下,应严格使用 https://schema.org/ 下的官方类型。
立即学习“前端免费学习笔记(深入)”;
最容易被忽略的是:itemtype 不影响页面渲染或 JS 行为,所以出错时没有任何视觉反馈;它只在结构化数据层面“静默失效”。上线前务必用 Google Rich Results Test 或 Schema Markup Validator 实测,别依赖肉眼检查 HTML 源码。



















