itemtype必须是完整HTTPS URL,不可缩写或拼错;须为可访问且返回200的绝对URL,如https://schema.org/Person,写成http://、小写event、末尾斜杠或相对路径均导致整块被忽略。

itemtype 必须是完整 HTTPS URL,不能缩写或拼错
浏览器和 Google Structured Data Testing Tool 会严格校验 itemtype 值:必须是可访问的、返回 200 状态码的 HTTPS URL,且协议、域名、路径一个字母都不能错。写成 http://schema.org/Person 或 schema.org/Person 或直接 Person,都会导致整个 itemscope 块被忽略。
常见错误包括:
-
itemtype="http://schema.org/Product"→ 缺少s,HTTP 协议已被主流解析器拒绝 -
itemtype="./vocab/event"→ 相对路径,不是绝对 URL -
itemtype="https://schema.org/event"→ 小写event,而 schema.org 官方要求首字母大写:Event -
itemtype="https://schema.org/Product/"→ 末尾多了一个斜杠,部分工具会校验失败
别用自定义或本地词汇表,优先选 schema.org
itemtype 不是你自己起名的地方。它指向的是外部定义的语义词汇表,目前唯一被广泛支持、验证稳定的来源是 https://schema.org/。你不能写 itemtype="https://mycompany.com/vocab#Article",哪怕这个地址真能返回 HTML 页面,Google 也不会识别。
正确做法只有两个:
立即学习“前端免费学习笔记(深入)”;
- 查 schema.org 官网对应类型页(如
https://schema.org/Article),复制完整 URL 到itemtype - 确认该 URL 在浏览器中能直接打开且返回 200 —— 这是解析器实际做的第一步校验
同一个 itemscope 只能有一个 itemtype,但可以叠加多个 itemprop
itemtype 定义的是“这个容器描述的是哪一类事物”,它是主干,不是属性列表。所以一个 div itemscope 下只能写一个 itemtype,写多个会被忽略后者。
但你可以在这个容器里自由使用多个 itemprop,比如:
<div itemscope itemtype="https://schema.org/Person"> <span itemprop="name">李四</span> <span itemprop="jobTitle">前端工程师</span> <span itemprop="telephone">138-0013-8000</span> </div>
注意:telephone 是 Person 类型合法属性;如果换成 price,就会报错——因为 price 属于 Offer,不属 Person。
嵌套 itemtype 时,itemprop 必须紧贴 itemscope 元素
当某个属性本身是个对象(比如作者、地址、评论),你需要嵌套另一个 itemscope。但关键点是:itemprop 必须直接写在嵌套的 itemscope 元素上,不能隔层。
✅ 正确:
<div itemprop="author" itemscope itemtype="https://schema.org/Person">张三</div>
❌ 错误:
<div itemprop="author"> <div itemscope itemtype="https://schema.org/Person">张三</div> </div>
这种写法会让解析器找不到 itemprop="author" 绑定的目标 scope,整段嵌套数据失效。这也是最常被忽略的结构性错误。



















