微数据 markup 必须同时满足三要素(itemscope、itemtype、itemprop)、类型匹配且嵌套显式声明,缺一不可;google 已停用 data-vocabulary.org,仅支持 schema.org 完整 url,时间、图片等需特定元素包裹,嵌套实体须逐层声明 itemscope。

微数据 markup 不是“写对就能被识别”,而是必须同时满足三要素、类型匹配、嵌套显式声明,缺一不可。Google 已在 2026 年 5 月 6 日起静默丢弃旧版 http://data-vocabulary.org/ 数据,用错 URL 或漏掉 itemscope 就等于没写。
microdata 三属性必须同时出现且位置正确
只加 itemprop 是最常见错误——比如给一个 <p>张三</p> 加上 itemprop="name",但外层没有 itemscope 和 itemtype,搜索引擎根本不会把它当“人”或“产品”处理。
-
itemscope必须放在最外层容器(如<div>、<code><article></article>)上,表示“这里开始一个独立实体” -
itemtype必须紧随其后,值只能是https://schema.org/下的完整 URL,例如https://schema.org/Person,不能写成Person或person -
itemprop只能用于内部子元素,属性名大小写敏感,必须与 schema.org 对应 type 的 “Properties” 表格完全一致 - 时间值必须用
<time datetime="2025-03-12"></time>包裹,datetime属性不可省略 - 图片 URL 推荐用
<img itemprop="image" src="...">;若不用图片标签,必须用<meta itemprop="image" content="https://example.com/photo.jpg"> -
telephone只适用于Person或Organization,Event类型下不存在该属性,强行写会静默忽略 - 错误写法:
<div itemscope itemtype="https://schema.org/Article">...<span itemprop="author"><span itemprop="name">张三</span><span itemprop="jobTitle">工程师</span></span> </div>(缺少作者自身的itemscope) - 正确写法:在
itemprop="author"容器上额外加itemscope itemtype="https://schema.org/Person" - 如果还要嵌 Organization,就得再套一层
<div itemscope itemtype="https://schema.org/Organization">,不能靠父级“继承” <h3>优先用 JSON-LD,microdata 只适合简单静态页</h3> <p>microdata 对 DOM 结构强依赖,JS 动态插入内容时极易漏掉外层 <code>itemscope,导致 Search Console 报“部分结构化数据未检测到”。同一份数据混用 microdata 和 JSON-LD 还可能触发重复警告,Google 随机选一个解析。- 服务端直出、无 JS 渲染、结构扁平(如博客页脚作者信息)——可用 microdata
- 含 React/Vue 渲染、多层嵌套(Article → Author → Organization → Logo)、需兼容旧爬虫——必须用
<script type="application/ld+json"></script> - 验证工具推荐用 Google Rich Results Test,别信浏览器插件的“绿色勾号”,它不校验
itemtype是否已废弃
最容易被忽略的是
itemtypeURL 的时效性——http://data-vocabulary.org/已停用,https://schema.org/下某些属性(如businessHours)也已被标记为废弃,改用openingHoursSpecification。写之前务必打开对应 type 页面的 “Properties” 表格,逐项核对。
datetime 和 image 必须用特定元素包裹
datePublished、dateModified 这类时间属性,不能直接放文本,否则解析失败;image 若为 URL 字符串,也不能直接写在 itemprop 元素里。
嵌套结构必须显式声明新 itemscope
比如文章作者是人,而这个人又属于某公司——你不能只在外层 Article 里写 author 然后直接塞进公司信息。每层实体都得自己带 itemscope 和对应 itemtype。











