微数据必须同时满足三项硬性条件:外层有itemscope、紧随合法itemtype完整https url、内部子元素用语义匹配的itemprop标注,缺一不可;itemscope与itemtype须同元素成对出现;itemtype必须为https://www.php.cn/link/b8eadb229854b2add23d0371cc31b937type格式(末尾无斜杠);itemprop值类型须严格符合schema.org定义,如price需用meta content数值;datepublished须用time+datetime;image推荐img标签或meta content;telephone仅适用于person/organization;嵌套实体(如author)必须显式声明内层itemscope和itemtype;所有属性使用前须查schema.org对应type的properties表格确认。

微数据不是“加个属性就能被搜索引擎识别”的简单操作,它必须满足三项硬性条件:外层有 itemscope、紧跟着合法的 itemtype URL、内部子元素用 itemprop 标注且语义匹配。缺一不可,否则 Google Rich Results Test 会直接忽略整块。
itemscope 和 itemtype 必须成对出现在同一元素上
这是最常被跳过的前提。只写 itemprop="name" 而没包裹在带 itemscope 的容器里,等于没写。更隐蔽的错误是把 itemtype 写成相对路径或缩写:
-
itemtype="Person"❌ —— 解析器不认识,必须是完整 HTTPS URL -
itemtype="//schema.org/Person"❌ —— 协议省略导致部分爬虫拒解析 -
itemtype="https://www.php.cn/link/b8eadb229854b2add23d0371cc31b937Person"✅ —— 唯一推荐写法(注意末尾不加斜杠) - 如果页面用的是旧版
http://data-vocabulary.org/Person,2026 年起 Google 已停止支持,会静默丢弃
itemprop 值类型必须与 schema.org 定义严格一致
比如 price 属性要求是数值或带 content 的元数据,不能直接塞字符串:
<div itemscope itemtype="https://www.php.cn/link/b8eadb229854b2add23d0371cc31b937Product"> <span itemprop="name">无线耳机</span> <span itemprop="price">$199.99</span> <!-- ❌ Google 不识别为价格 --> <meta itemprop="price" content="199.99"> <!-- ✅ 正确方式 --> </div>
其他易错点:
-
datePublished必须用<time></time>元素 +datetime属性,不能只放文本 “2025-03-12” -
image推荐用<img itemprop="image">,若用 URL 字符串,需包在<meta>里并设content -
telephone只适用于Person或Organization,Event类型下不存在该属性
嵌套结构必须显式声明新 itemscope
一个 itemtype 下的 itemprop 如果本身也是实体(比如 author 是 Person),就必须再开一层 itemscope,不能靠父级“继承”:
<article itemscope itemtype="https://www.php.cn/link/b8eadb229854b2add23d0371cc31b937Article"><h1 itemprop="headline">标题</h1>
<div itemprop="author" itemscope itemtype="https://www.php.cn/link/b8eadb229854b2add23d0371cc31b937Person">
<span itemprop="name">张三</span>
</div>
</article>
常见错误写法:
- 只写
<div itemprop="author"><span itemprop="name">张三</span></div>—— 缺少内层itemscope和itemtype,author 被当作文本而非 Person 实体 - 把
itemprop="author"放在<span></span>上试图“复用”外层 scope —— microdata 不支持跨层级作用域共享
真正难的不是写对语法,而是查准 schema.org 页面上每个 type 对应的 Properties 表格——同一属性名在不同 type 下可能含义不同,甚至根本不存在。别凭经验猜,每次用前都去 https://www.php.cn/link/b8eadb229854b2add23d0371cc31b937 点开目标 type 页面,拉到 “Properties” 小节确认。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











