商品 Product 结构化数据:价格、库存、评分与 JSON-LD 示例
Product 是电商 SEO 最核心的结构化数据之一。它能让 Google 更准确理解商品名称、图片、价格、库存、评分、配送和退货信息,并可能在搜索结果、Google 图片、Google Lens 和购物相关体验中展示更丰富的商品信息。但 Product 也是最容易违规的类型:价格、库存和评分必须真实、可见、及时更新。
先分清两类 Product 结果#
Google 现在把商品结构化数据分成两类使用场景:
| 类型 | 适合页面 | 重点信息 |
|---|---|---|
| Product snippets | 商品介绍、评测、对比页,不一定能直接购买 | 商品名、评分、评论、价格、库存 |
| Merchant listings | 用户可以直接购买的电商商品页 | 商品图片、价格、库存、配送、退货、变体、商家政策 |
如果你的页面是“十大空气净化器评测”,更像 Product snippet;如果页面有加入购物车、库存、价格和结账流程,更像 Merchant listing。两者有重叠,但不要用同一个简单模板粗暴覆盖所有场景。
核心字段怎么填#
Product snippet 至少需要商品 name,并且需要 review、aggregateRating 或 offers 之一。Merchant listing 对可购买商品页要求更高,通常还需要 image 和完整 Offer 信息。
| 字段 | 作用 | 注意事项 |
|---|---|---|
name | 商品名称 | 与页面商品标题一致 |
image | 商品图片 | 真实商品图,可抓取,最好白底或清晰展示商品 |
description | 商品描述 | 与页面可见卖点一致,不堆关键词 |
sku / mpn / gtin | 商品标识符 | 用于帮助 Google 识别具体商品 |
brand | 品牌 | 用 Brand 对象,名称真实可见 |
offers | 价格和库存 | 电商商品页最关键,必须及时更新 |
aggregateRating | 聚合评分 | 只在有真实评价时填写 |
review | 单条评价 | 评价内容和作者应可见、真实 |
可购买商品页 JSON-LD 示例#
下面是一个电商商品页的基础示例。实际使用时,所有字段都必须来自页面可见内容或真实商品数据源。
<script type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "Product",
"name": "Executive Anvil",
"image": [
"https://example.com/photos/anvil-1x1.webp",
"https://example.com/photos/anvil-4x3.webp",
"https://example.com/photos/anvil-16x9.webp"
],
"description": "A compact steel anvil for workshop demonstrations.",
"sku": "ANVIL-001",
"brand": {
"@type": "Brand",
"name": "ACME"
},
"offers": {
"@type": "Offer",
"url": "https://example.com/products/executive-anvil",
"priceCurrency": "USD",
"price": 119.99,
"priceValidUntil": "2026-12-31",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": 4.4,
"reviewCount": 89
}
}
</script>
Offer:价格和库存是高风险字段#
offers 是 Product 里最关键也最容易出错的部分。价格和库存一旦与页面、结账页或 Merchant Center Feed 不一致,就会损害信任。
price使用当前有效价格,数字用小数点,不要带货币符号。priceCurrency使用三位 ISO 4217 货币代码,如USD、CNY、EUR。availability使用 schema.org 枚举 URL,如https://schema.org/InStock。priceValidUntil只在价格确实有有效期时填写,过期前要更新。- 商品下架、缺货、价格变化时,页面、结构化数据和 Feed 要同步。
评分和评论别造假#
星级评分对点击率很有吸引力,所以也是违规高发区。只有满足这些条件才应填写 aggregateRating 或 review:
- 评分来自真实用户或真实编辑评价;
- 页面上能看到评分、评论数量或具体评价;
- 评价对象就是当前商品,不是整个品牌或其他商品;
- 不能由商家给自己商品虚构评分;
- 评价数量、分数变更后要同步更新结构化数据。
如果没有评价,就不要写评分字段。Product 没有星级也可以是合规页面,虚构评分反而更危险。
结构化数据与 Merchant Center#
Google 明确建议:电商网站可以同时使用网页 Product 结构化数据和 Google Merchant Center 商品 Feed。它们不是互斥关系。
| 方式 | 优势 | 适合数据 |
|---|---|---|
| 网页结构化数据 | 贴近页面,Google 抓取即可读取 | 商品名、页面图片、价格、库存、评分 |
| Merchant Center Feed | 适合规模化和高频更新 | 库存、价格、配送、退货、商品变体、促销 |
理想状态是两边数据一致。如果网页写有货、Feed 写缺货,或者网页价格和 Feed 价格不同,Google 需要判断谁可信,也可能降低相关体验资格。
本站为什么不实装 Product 标记#
这篇文章讲 Product,但页面本身不是商品页,也没有价格、库存、购买按钮、真实商品图片或用户评价。因此,本页不会为了“言行一致”而给自己加 Product JSON-LD。
如何验证和监控#
- 用 Rich Results Test 测试商品页。
- 检查 Product snippets 和 Merchant listings 的错误与警告。
- 抽查价格、库存、评分是否与页面可见内容一致。
- 上线后在 Search Console 的购物相关增强功能报告里监控批量错误。
- 如果使用 Merchant Center,同步检查商品诊断、价格不一致、库存不一致等问题。
常见错误#
| 错误 | 后果 | 修正 |
|---|---|---|
| 教程页标记成 Product | 类型错配 | 只有真实商品页才用 Product |
| 价格与页面不一致 | 不可信,可能影响购物体验资格 | 从同一数据源生成页面和 JSON-LD |
| 库存过期 | 用户体验差,数据失真 | 缺货、下架及时更新 |
| 虚构 aggregateRating | 结构化数据违规高风险 | 没有真实评价就不写评分 |
| 图片不是商品图 | Google 难以展示商品 | 使用清晰、可抓取、真实商品图片 |
| 忽略 Merchant Center | 电商数据不完整 | 结构化数据和 Feed 配合使用 |
Product 上线清单#
- 页面是真实商品页、商品评测页或商品介绍页
- 区分 Product snippets 与 Merchant listings 场景
- name 与页面商品标题一致
- image 是真实、可见、可抓取的商品图
- offers.price 与页面当前价格一致
- priceCurrency 使用三位货币代码
- availability 与真实库存一致
- aggregateRating/review 来自真实可见评价
- 商品标识符 sku/mpn/gtin 尽量补全
- 页面数据、JSON-LD、Merchant Center Feed 保持一致
- Rich Results Test 无关键错误
- Search Console 和 Merchant Center 持续监控
常见问题#
Product snippets 和 Merchant listings 有什么区别?
Product snippets 适合不能直接购买的商品介绍、评测或对比页面,重点是评分、评论、价格等摘要信息;Merchant listings 适合可以直接购买的电商商品页,重点是价格、库存、配送、退货、商品图片和更完整的商家信息。二者有重叠,但应根据页面是否可直接购买来选择重点字段。
商品页只加 Product 结构化数据就够了吗?
不一定。对电商网站,Google 建议同时提供网页上的 Product 结构化数据和 Google Merchant Center 商品 Feed。二者结合能提高数据完整性和一致性,也更适合库存、价格、配送、退货等频繁变化的信息。
可以标记页面上没有显示的价格或评分吗?
不可以。Product 结构化数据里的价格、库存、评分、评论等信息必须和页面上用户可见内容一致。虚构评分、隐藏价格、过期库存或与页面不一致的 Offer 都可能导致富媒体结果失效,甚至触发结构化数据违规问题。
没有用户评价时可以写 aggregateRating 吗?
不应该。aggregateRating 必须来自真实、可见、可验证的评价数据。如果商品没有真实评价,就不要为了星级展示而编造评分。可以先只提供 name、image、offers 等真实字段。