JSON-LD vs Microdata
4.1 两种格式的本质区别
Microdata 把结构化数据嵌入到HTML标签的属性中:
<div itemscope itemtype="https://schema.org/Product">
<h1 itemprop="name">经典帆布运动鞋</h1>
<span itemprop="description">舒适透气的帆布鞋</span>
<div itemprop="offers" itemscope itemtype="https://schema.org/Offer">
<span itemprop="price" content="299">¥299</span>
<meta itemprop="priceCurrency" content="CNY">
<link itemprop="availability" href="https://schema.org/InStock">
</div>
</div>
JSON-LD 把结构化数据放在独立的 <script> 标签中:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "经典帆布运动鞋",
"description": "舒适透气的帆布鞋",
"offers": {
"@type": "Offer",
"price": "299",
"priceCurrency": "CNY",
"availability": "https://schema.org/InStock"
}
}
</script>
4.2 详细对比
| 维度 | JSON-LD | Microdata |
|---|
| 位置 | 独立 <script> 标签,通常在 <head> 中 | 嵌入在HTML标签属性中 |
| 与HTML耦合度 | 完全解耦 | 紧密耦合 |
| 维护成本 | 低,改数据不影响页面结构 | 高,修改标记可能影响页面布局 |
| 动态生成 | 容易,后端输出JSON即可 | 困难,需要修改HTML模板 |
| 可读性 | 高,标准JSON格式 | 低,散布在HTML标签中 |
| Google推荐 | 是(官方首选格式) | 支持但非首选 |
| AI代理解析 | 更高效(标准JSON解析) | 需要遍历DOM树 |
| 多实体关联 | 简单(JSON嵌套) | 复杂(需要itemref跨元素引用) |
| SSR/SSG兼容 | 完全兼容 | 完全兼容 |
| CSR(SPA)兼容 | 需要确保爬虫时可见 | 同上 |
4.3 什么时候Microdata更合适
虽然JSON-LD是通用推荐,但有几种场景Microdata可能更合适:
- CMS模板已内置Microdata — 如果你的WordPress主题已经输出了正确的Microdata,且数据完整,不需要为了换格式而重构
- 页面内容和标记必须严格一致 — Microdata天然保证标记数据和可见内容一致(因为它们就是同一段HTML)
- 极简页面 — 单一Product、单一Article等简单场景
4.4 从Microdata迁移到JSON-LD
如果你决定迁移,步骤如下:
第一步:提取现有Microdata数据
找到页面中所有 itemscope 和 itemprop 属性,记录数据结构。
第二步:构建等价的JSON-LD
把Microdata中的每个 itemprop 映射到JSON-LD的键:
| Microdata | JSON-LD |
|---|
itemprop="name" 的文本内容 | "name": "文本内容" |
itemprop="price" content="299" | "price": "299" |
itemtype="https://schema.org/Offer" | "@type": "Offer" |
第三步:添加JSON-LD,保留Microdata
先两者并存运行1-2周,用验证工具确认JSON-LD输出正确后,再移除Microdata属性。
第四步:移除Microdata属性
从HTML标签中删除 itemscope、itemtype、itemprop 属性。注意不要删除标签本身或其他CSS类名。
迁移不需要一次完成。可以先从最重要的页面(商品详情页、首页)开始,逐步覆盖全站。
4.5 验证迁移结果
迁移后必须验证:
- 用 Google Rich Results Test 验证JSON-LD输出
- 比对迁移前后的数据字段,确认没有遗漏
- 在Google Search Console中观察结构化数据报告,确认无错误
下一章: robots.txt优化 — AI爬虫访问控制的精确配置