itemtype必须是严格匹配schema.org的HTTPS绝对URL,少s、多/、用相对路径或旧域名均导致整块微数据失效;itemscope与itemtype须共存于同一元素,嵌套实体需显式声明内层itemscope和itemtype。

itemtype URL 协议和末尾斜杠错一个就失效
微数据提取失败,八成是 itemtype 写错了。它不是“差不多就行”的字符串,而是必须严格匹配 schema.org 官方定义的 HTTPS 绝对 URL —— 少一个 s、多一个 /、用相对路径或缩写,Google Rich Results Test 都会直接忽略整块 itemscope。
常见错误包括:
-
itemtype="http://schema.org/Product"→ 协议不安全,2026 年起主流解析器已拒收 -
itemtype="https://schema.org/Product/"→ 末尾斜杠非法,URL 不可验证 -
itemtype="Product"或itemtype="./Product"→ 不是完整 URL,无法被爬虫识别 -
itemtype="https://data-vocabulary.org/Person"→ 该域名已于 2026 年停用,必须切到https://schema.org/
验证方式很简单:把你的 itemtype 值复制进浏览器地址栏,回车。如果返回 404 或连接失败,那它就是无效的 —— 解析器比你更早一步遇到这个错误。
itemscope 和 itemtype 必须共存于同一元素
只写 itemscope 不写 itemtype,或者把两者拆到不同标签上,微数据就断链了。搜索引擎需要明确的“作用域起点 + 类型声明”这一对组合,缺一不可。
立即学习“前端免费学习笔记(深入)”;
正确写法:<div itemscope itemtype="https://schema.org/Product">
错误写法举例:
-
<div itemscope><section itemtype="https://schema.org/Product">→ 分开写,解析器找不到类型归属 -
<article itemscope><h1 itemtype="https://schema.org/Product">→itemtype不在itemscope所在元素上 -
<div itemscope></div><div itemtype="https://schema.org/Product">→ 完全脱离上下文
注意:itemscope 本身不带语义,它只是个开关;itemtype 才是告诉机器“这是什么”。二者必须物理共存,不能靠父子关系“传递”。
将调研报告、方案对比、数据分析、需求梳理、会议纪要、设计说明、代码评审、学习笔记等任务产物输出为可在浏览器直接打开的单文件 HTML,替代 Markdown 作为最终交付物。Markdown 在信息密度、视觉清晰度和可分享性上已跟不上 AI 产物的丰富度,HTML 能同时承载排版、表格、SVG 等。
嵌套实体漏掉内层 itemscope 就算白写
当你要标记作者、地址、评论者这类子对象时,不能只写 itemprop="author" 然后里面放个名字。作者本身是个独立实体(Person),必须显式开启新的作用域。
错误写法:<p itemprop="author">张三</p> → 没有 itemscope 和 itemtype,机器不知道“张三”是人、是昵称、还是书名。
正确写法:<p itemprop="author" itemscope itemtype="https://schema.org/Person">张三</p>
容易踩的坑:
- 嵌套层级越深,越容易只加外层
itemscope,忘了给内层也补上 - 用
<div itemprop="address"><span>北京市朝阳区</span></div>→ 地址也是实体(PostalAddress),必须再套一层itemscope itemtype="https://schema.org/PostalAddress" - Google Rich Results Test 不报语法错,但会在预览里直接不显示嵌套内容 —— 这是失效最隐蔽的表现
itemprop 值类型不匹配 schema.org 定义
itemprop 不是随便贴的标签,每个属性都绑定在特定 itemtype 下,且有明确的数据类型要求。写错类型,结构化数据就会被截断或拒收。
典型问题:
-
itemprop="price"放在itemtype="https://schema.org/Product"里 → ❌ 错误!price只在Offer类型下合法,应改为<div itemprop="offers" itemscope itemtype="https://schema.org/Offer"><meta itemprop="price" content="299.00"></div> -
itemprop="telephone"出现在Event容器中 → ❌ 无效,该属性只属于Organization或Person -
<time itemprop="datePublished">昨天</time>→ ❌ 缺少datetime属性,机器无法提取时间戳,建议写成<time itemprop="datePublished" datetime="2026-10-08">昨天</time> -
<img itemprop="image" src="logo.jpg">→ ⚠️ 可识别,但不如<link itemprop="image" href="logo.jpg">稳定,尤其当图片是 CSS 背景时会失效
最省事的验证方式:打开 Google Rich Results Test,粘贴 HTML 片段,看它是否能完整识别出嵌套层级和字段值 —— 不要只看有没有报错,重点看“Preview”里展示的内容是否和你预期一致。
真正难排查的,从来不是语法写错,而是你以为“这应该能推断出来”,结果机器根本不推断。微数据是强契约协议,不是自然语言理解。


















