> ## Documentation Index
> Fetch the complete documentation index at: https://learn.orbexa.io/llms.txt
> Use this file to discover all available pages before exploring further.

# JSON-LD与Microdata格式对比与迁移

> 全面对比JSON-LD与Microdata两种Schema.org结构化数据实现格式在HTML耦合度、维护成本和AI代理解析效率方面的技术差异，提供从Microdata迁移到JSON-LD的完整分步方案，附WordPress等主流CMS平台的具体操作指引与迁移前后检查清单

# JSON-LD vs Microdata

## 4.1 两种格式的本质区别

**Microdata** 把结构化数据嵌入到HTML标签的属性中：

```html theme={null}
<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>` 标签中：

```html theme={null}
<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可能更合适：

1. **CMS模板已内置Microdata** — 如果你的WordPress主题已经输出了正确的Microdata，且数据完整，不需要为了换格式而重构
2. **页面内容和标记必须严格一致** — Microdata天然保证标记数据和可见内容一致（因为它们就是同一段HTML）
3. **极简页面** — 单一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类名。

<Tip>
  迁移不需要一次完成。可以先从最重要的页面（商品详情页、首页）开始，逐步覆盖全站。
</Tip>

## 4.5 验证迁移结果

迁移后必须验证：

1. 用 [Google Rich Results Test](https://search.google.com/test/rich-results) 验证JSON-LD输出
2. 比对迁移前后的数据字段，确认没有遗漏
3. 在Google Search Console中观察结构化数据报告，确认无错误

***

**下一章**: [robots.txt优化](/zh/book-6/ch5-robots-txt) — AI爬虫访问控制的精确配置
