itemtype属性必须与itemscope配合使用才生效,且必须为https://www.php.cn/link/b8eadb229854b2add23d0371cc31b937下的完整URL;itemprop须在itemscope内且为对应类型官方定义的属性名,否则被忽略。

itemtype 属性必须搭配 itemscope 使用才生效
单独写 itemtype 没有任何结构化数据效果,浏览器和搜索引擎都忽略它。必须在外层容器加上 itemscope,才能激活微数据(Microdata)解析流程。
常见错误是只加 itemtype="https://www.php.cn/link/b8eadb229854b2add23d0371cc31b937Person" 却漏掉 itemscope,结果页面里看不到任何结构化数据被识别。
-
itemscope是布尔属性,无需赋值,写上即启用 -
itemtype的值必须是完整、可访问的 URL(如https://www.php.cn/link/b8eadb229854b2add23d0371cc31b937Article),不能是缩写或本地路径 - 多个
itemtype不支持空格分隔,只能选一个主类型;若需多类型,得用itemtype+itemprop组合嵌套
用 schema.org URL 而不是自定义命名空间
虽然 HTML5 规范允许任意 URL,但实际中只有 https://www.php.cn/link/b8eadb229854b2add23d0371cc31b937 下的类型能被 Google、Bing 等主流工具识别并生成富媒体摘要。用错域名等于白写。
比如 itemtype="http://schema.org/Book"(HTTP)会失败,必须用 HTTPS;itemtype="Book" 或 itemtype="/schema/Book" 也完全无效。
立即学习“前端免费学习笔记(深入)”;
- 推荐直接从 https://www.php.cn/link/b8eadb229854b2add23d0371cc31b937 查类型,复制完整 URL
- 常用类型:
https://www.php.cn/link/b8eadb229854b2add23d0371cc31b937LocalBusiness、https://www.php.cn/link/b8eadb229854b2add23d0371cc31b937Recipe、https://www.php.cn/link/b8eadb229854b2add23d0371cc31b937Event - 避免拼写错误,比如
https://www.php.cn/link/b8eadb229854b2add23d0371cc31b937Artical(少了个 c)会导致整个 item 被丢弃
itemprop 必须在 itemscope 内部且对应 itemtype 的合法属性
itemprop 值不是随便写的字符串,它必须是当前 itemtype 在 schema.org 官方文档中定义的属性名。例如 https://www.php.cn/link/b8eadb229854b2add23d0371cc31b937Person 支持 name、jobTitle、telephone,但不支持 nickname 或 age —— 后者不会报错,但会被忽略。
验证方式很简单:打开对应类型的 schema.org 页面(如 https://www.php.cn/link/b8eadb229854b2add23d0371cc31b937Person),右侧「Properties」列表里的才是可用项。
- 嵌套结构合法:外层
itemscope itemtype="https://www.php.cn/link/b8eadb229854b2add23d0371cc31b937Person",内层再用itemscope itemtype="https://www.php.cn/link/b8eadb229854b2add23d0371cc31b937Address"并通过itemprop="address"关联 - 文本内容必须直接包裹在带
itemprop的元素内,不能靠 JS 注入或 CSS 隐藏后显示 - 图片、链接等需用
src或href属性配合itemprop,例如<img itemprop="image" src="avatar.jpg" alt="如何在HTML中使用itemtype属性定义数据模型" >
用 Google Rich Results Test 或 Structured Data Testing Tool 验证输出
写完 HTML 不能只靠肉眼检查,itemtype 是否生效、属性是否被提取、有没有隐性冲突(比如同级多个 itemscope 导致嵌套断裂),都得靠工具实测。
Google 已将 Structured Data Testing Tool 迁移至 Rich Results Test,支持实时粘贴 HTML 或输入 URL 分析。
- 注意看 “Detected structured data” 区域是否列出你的类型,以及各
itemprop是否有值 - 如果显示 “No rich results” 但类型存在,大概率是属性名拼错、值为空、或被
display: none隐藏 - 工具不会警告你用了非 schema.org 类型,但它也不会渲染富结果——这点容易被忽略
itemprop 名跟 schema.org 文档对不上,或者嵌套层级没理清导致属性挂错 parent。调试时优先查官方文档属性列表,再用工具看解析结果,比反复改 HTML 更省时间。



















