itemtype 必须与 itemscope 同元素使用且值为 Schema.org 完整 HTTPS URL,否则被搜索引擎忽略;需用语义化标签包裹、禁止隐藏或动态注入。

itemtype 不是随便填个单词就能生效的标签,它必须搭配 itemscope,且值必须是 Schema.org 的完整 HTTPS URL,否则整个结构化数据块会被搜索引擎直接忽略。
itemtype 必须和 itemscope 写在同一元素上
单独写 itemtype="https://schema.org/Person" 没有任何作用。它只是“类型声明”,没人接收就等于没说。
- 错误:
<p itemtype="https://schema.org/Person">张三</p>→ 缺itemscope,解析器跳过 - 正确:
<div itemscope itemtype="https://schema.org/Person"><p itemprop="name">张三</p></div> - 常见翻车点:把
itemscope放在父容器(如<section></section>),itemtype却写在子<div> 上——二者必须同级绑定 <h3>URL 必须完整、大小写敏感、无多余字符</h3> <p>2026 年所有主流验证工具(Google Rich Results Test、Bing Markup Validator)对 URL 格式零容忍。</p> <ul> <li>✅ 正确:<code>https://schema.org/Organization、https://schema.org/Movie - ❌ 错误:
http://schema.org/organization(协议错 + 小写) - ❌ 错误:
https://schema.org/Organization/(末尾斜杠) - ❌ 错误:
schema.org/Product(缺协议) - 旧 vocab 如
http://data-vocabulary.org/Person已全量弃用,不解析
不能用 div 硬套,优先复用语义化标签
div 没有语义,加了 itemscope itemtype 也只是“技术上能跑”,但会削弱 HTML5 结构可读性与辅助工具兼容性。
- 推荐写法:
<article itemscope itemtype="https://schema.org/Article"></article>、<section itemscope itemtype="https://schema.org/FAQPage"></section> - 禁止写法:
<div itemscope itemtype="https://schema.org/Article">(除非真没更合适的语义标签) <li> <code><nav></nav>、<time></time>、<header></header>这类自带明确角色的标签,一般不适合作为itemscope容器 - 每篇文章都得有自己的
<article itemscope itemtype="https://schema.org/Article"></article> - 嵌套对象(如
author是Person)也必须显式声明子itemscope itemtype,不能靠父级“继承” - JS 动态批量添加
itemscope到多个div是无效的——结构化数据要求静态、可爬取的 DOM
同一页面多个同类实体,必须各自独立声明
比如页面上有三篇博客,不能只包一个 itemscope 把它们全塞进去——这会被当成一篇 Article 的三个段落,而不是三篇独立文章。
立即学习“前端免费学习笔记(深入)”;
itemtype 拼写全对,只要它所在的元素被 CSS display: none 隐藏,或内容由 JS 异步注入,Google 就可能无法提取——验证必须用 Rich Results Test 实际跑一遍,不能只看源码。



















