itemtype必须是绝对URL,因HTML5规范要求其为有效可解析URI,相对路径或缩写名(如"Person")无效;正确写法为"https://schema.org/Person"。

itemtype 本身不定义实体,它只是引用一个已存在的、外部定义的词汇表(如 Schema.org)中的类型。直接写 itemtype="Person" 是无效的——必须用完整 URL。
为什么 itemtype 必须是绝对 URL
HTML5 规范要求 itemtype 的值为“一个或多个以空格分隔的有效 URL”,浏览器和结构化数据工具(如 Google Rich Results Test)只认可可解析的 URI。常见错误是写成相对路径或缩写名:
-
itemtype="Person"→ ❌ 不被识别,无语义 -
itemtype="https://schema.org/Person"→ ✅ 正确,指向权威定义 -
itemtype="http://schema.org/Person"→ ⚠️ 可工作但不推荐(HTTP 已淘汰,部分工具警告)
如何搭配 itemscope 和 itemprop 构建完整实体
itemtype 必须与 itemscope 成对出现,否则无意义;属性则靠 itemprop 绑定到该 scope 内。典型结构如下:
<div itemscope itemtype="https://schema.org/Person"> <span itemprop="name">张三</span> <span itemprop="jobTitle">前端工程师</span> <time itemprop="alumniOf" content="清华大学"></time> </div>
注意:itemprop 的值必须是 Schema.org 该类型(Person)明确定义的属性名,拼错(如 job_title)或乱用(如在 Person 里写 isbn)会导致结构化数据失效。
立即学习“前端免费学习笔记(深入)”;
多类型与嵌套实体怎么写
一个元素可同时属于多个类型(空格分隔),也支持嵌套 scope 表达关联关系。例如描述“某人在某公司任职”:
<div itemscope itemtype="https://schema.org/Person">
<span itemprop="name">李四</span>
<div itemprop="worksFor" itemscope itemtype="https://schema.org/Organization">
<span itemprop="name">XYZ科技</span>
</div>
</div>
关键点:
- 嵌套的
itemscope必须有自己的itemtype,不能省略 -
itemprop="worksFor"的值是另一个实体,不是字符串,所以内部要再开 scope - 避免循环嵌套(如 A 引用 B,B 又回引 A),某些解析器会截断或报错
验证与常见失效原因
写完后务必用 Google 的 Rich Results Test 或 Schema Markup Validator 验证。高频失效原因包括:
-
itemtypeURL 拼写错误(比如schmea.org) - 属性名大小写错误(
jobtitle≠jobTitle) - 值类型不匹配(如
datePublished属性下放纯文本“昨天”,而非 ISO 格式日期) - 缺少必要属性(如
Article类型未提供headline,Google 可能拒用)
最易被忽略的是:所有 itemtype URL 必须可 HTTP GET 访问(哪怕返回 404,也不能是 DNS 失败或重定向链过长)——工具底层会尝试抓取 schema 定义页来校验上下文。



















