itemtype必须与itemscope配合使用,值为完整schema.org url,且itemprop须匹配对应类型的合法属性,否则结构化数据无法被正确解析。

itemtype 必须配合 itemscope 使用才生效
单独写 itemtype 没有效果,浏览器和搜索引擎只认同时带 itemscope 的元素。这是最常见的误用——把 itemtype 当成独立属性加在任意标签上,结果结构化数据完全不被识别。
正确写法是:先用 itemscope 声明一个微数据作用域,再用 itemtype 指定该作用域对应的 Schema 类型 URL:
<div itemscope itemtype="https://schema.org/Person"> <span itemprop="name">张三</span> </div>
-
itemtype的值必须是完整的、可访问的 Schema.org 类型 URL(如https://schema.org/Organization),不能简写为Person或schema:Person - HTTP 和 HTTPS 都支持,但现代页面建议统一用
https://schema.org/... - 多个类型可通过空格分隔,例如
itemtype="https://schema.org/LocalBusiness https://schema.org/Restaurant"(需确保类型兼容)
itemtype 值不是随便填的,得匹配 itemprop 属性
如果 itemtype="https://www.php.cn/link/54896249c59acd568ee071229d0883c9",那内部的 itemprop 就只能用 Event 类型定义的属性,比如 startDate、location、performer。填个 itemprop="price" 就属于语义错误——price 是 Offer 的属性,不是 Event 的。
文章转信息图。将文章/笔记转化为手机可读的 HTML 信息图,自动匹配视觉风格。触发场景:文章转图、笔记转图、信息图、转小红书图、做张图、可视化这篇文章、文生图。
查属性是否合法,最直接的方式是打开对应 Schema 页面,比如 https://www.php.cn/link/54896249c59acd568ee071229d0883c9,看 “Properties” 列表。
- 常见错配:
itemtype="https://schema.org/Article"却写itemprop="telephone"(telephone 属于Organization或Person) - 嵌套时也要注意层级:子元素的
itemtype决定了它能用哪些itemprop,和父级无关 - 属性名区分大小写,
itemprop="address"有效,itemprop="Address"无效
itemtype 不影响页面渲染,但会影响结构化数据解析结果
itemtype 本身不改变样式、布局或 JS 行为,纯属语义标记。但它直接影响 Google 等搜索引擎能否提取出正确的 Rich Result(比如搜索结果里的评分、营业时间、食谱卡)。
- 填错类型或属性,Google Search Console 的「富媒体搜索结果测试工具」会报 warning 或 error,例如
"The property startDate is not recognized by Google for an object of type Event."(实际是拼写或类型不匹配导致) - 同一页面多个
itemscope区域可以使用不同itemtype,互不干扰 - 避免滥用:不是所有内容都需要 Schema 标记,过度标记反而可能触发审核延迟或忽略
验证 itemtype 是否生效,别只靠肉眼检查
写了 itemtype 不代表就对了,必须验证解析结果。最可靠的是用 Google 官方工具,而不是只看 HTML 源码。
- 用 Google Search Console → 「增强功能」→ 「富媒体搜索结果测试」粘贴 URL 或代码片段
- Chrome 开发者工具里按 Ctrl+Shift+I → 「Elements」面板右键元素 → 「Copy」→ 「Copy outerHTML」,再粘到测试工具中
- 注意:本地
file://协议下的 HTML 无法被 Google 工具抓取,必须部署到 HTTP(S) 服务下测试 - 第三方工具如 Schema Markup Validator 也能检测基础语法,但不如 Google 工具贴近实际索引逻辑
itemtype 和 itemprop 的归属关系——比如在 itemtype="https://schema.org/Restaurant" 里写了一个 <div itemscope itemtype="https://schema.org/Review">,那里面的所有 <code>itemprop 就要按 Review 类型查,而不是 Restaurant。这种嵌套一多,属性就容易串。










