Product Schema 检测:产品页 Google 与 AI 购物就绪检查

作者 Linus Li · 更新于 · 免费,在浏览器本地运行

给这个工具打分还没有人评分

输入产品页网址,或者粘贴 JSON-LD / 网页源码,工具会按 Google 商家信息(merchant listing)文档逐项检查 Product、ProductGroup、Offer、运费和退货标注,标出每条结论的证据等级和出处,并为 Shopify 店铺生成修复代码。粘贴的代码只在你的浏览器里处理,不会上传。

要点

  • 工具按 Google 商家信息文档逐项检查 Product、ProductGroup、Offer、运费和退货标注;硬性要求判「通过 / 不通过」,推荐属性只给「建议」。
  • AI 购物部分只列平台官方公开说过的内容,平台没说的标「未公开」。
  • Shopify 店铺可以按真实的运费和退货政策生成 Liquid 修复代码。
  • 工具不给综合分,因为商家信息能否展示还取决于 Google 的抓取、核实和政策审核。

这个工具解决什么问题

Google 购物结果和各家 AI 购物功能都需要读取商品的价格、库存、运费、退货、品牌和 GTIN。独立站能自己控制的一处数据源是产品页,这些信息应该写成机器能直接读取的结构化数据。

Google 对这类数据有完整的公开文档,AI 购物平台则各自说明了自己用什么数据源。本工具把两部分放在一起:

  • Google 部分按商家信息结构化数据、产品变体和退货政策文档逐条检查,硬性要求判「通过 / 不通过」,推荐属性只给「建议」。
  • AI 购物部分只列平台官方公开说过的内容,平台没说的标「未公开」,工具不做推断,也不打分。

适用场景:Shopify、WooCommerce 或自建站的产品详情页上线前自查;Search Console「商家信息」报告出现「缺少 shippingDetails」「缺少 hasMerchantReturnPolicy」等问题时定位原因;换主题或装了评价、SEO app 之后检查是否出现重复的产品节点。

使用步骤

  1. 在输入框填入产品页网址,点「检查网址」。工具通过本站服务器读取该页面初始 HTML 里的 JSON-LD。如果页面拦截了服务器请求,可以在浏览器里按 Ctrl+U 打开源代码,全选后粘贴到下面的输入框。
  2. 查看「检查结果」。结果分为页面与节点、必需属性、推荐属性、变体、运费与退货、评分与评价、AI 购物数据源七组。「不通过」默认展开,每条都写了原因、改法和参考代码。
  3. Shopify 店铺切到「Shopify 修复」,按店铺真实的运费和退货政策填写表单,复制生成的 Liquid 代码,按页面上的步骤放进主题。
  4. 修改后再检查一次,然后用 Google 富媒体结果测试复测线上页面,并在 Search Console 里对相关问题点「验证修复」。

没有现成的页面可以点「加载 Shopify 示例」。示例是一家虚构店铺的产品页,包含主题输出的 ProductGroup、评价 app 另外输出的 Product 和一段 Organization,演示了过期的 priceValidUntil、用逗号当小数点的价格、错误的 GTIN 校验位等常见问题。

检查项与证据

证据等级沿用本站的统一标准:A 是官方文档或公开说明,D 是来自实践经验、没有官方说明的判断。工具里的大多数检查项都是 A。

检查项 要求 证据
name、image、offers 商家信息必需;offers 必须是 Offer,不能是 AggregateOffer A
price、priceCurrency 必需;价格大于 0,不带货币符号和千位分隔符;货币是 ISO 4217 三位代码 A
availability、itemCondition 推荐;只能用 schema.org 枚举值,只给一个 A
brand、gtin、mpn、sku 推荐;GTIN 只有 8 / 12 / 13 / 14 位且校验位正确,不支持网址形式;sku 不含空白字符 A
shippingDetails 推荐;写了就要有 shippingDestination、shippingRate 和 deliveryTime,运费货币与报价一致 A
hasMerchantReturnPolicy 推荐;Offer 级要写 applicableCountry + returnPolicyCategory,有限退货期再加 merchantReturnDays;Organization 级也可以只写 merchantReturnLink;只用 @id 引用别处定义的政策也可以 A
priceValidUntil 推荐;日期已过时商品信息可能不显示(工具给「建议」,因为文档没有把它写成硬性要求) A
ProductGroup 变体 productGroupID、variesBy、每个变体有唯一 sku 或 gtin、独立网址 A
重复的产品节点 主题和 app 各输出一份时,评分与价格分在两个条目上 D

工具不给综合分,因为商家信息能否展示还取决于 Google 的抓取、核实和政策审核,结构化数据只是其中一个条件。

给老手:运费和退货政策的优先级

Google 的商家信息文档写明,同一信息在多处定义时按以下顺序取用(从强到弱):

  1. Merchant Center 里按商品提交的 feed
  2. Content API for Shopping 的设置
  3. Merchant Center 或 Search Console 里的账号级设置
  4. 产品页上的商家信息标注
  5. Organization 上的组织级标注

所以已经在 Merchant Center 或 Search Console 设置了运费和退货的店铺,工具里「缺少 shippingDetails / hasMerchantReturnPolicy」可以视情况忽略。组织级政策(Organization 的 hasMerchantReturnPolicy、hasShippingService)可以放在别的页面,单独检查一个产品页时工具看不到它们。Offer 级的退货和运费政策只支持组织级属性的一个子集,Google 建议只在个别商品需要覆盖通用政策时使用。

AI 购物平台公开说明了什么

下表只写官方来源能证实的内容。平台说明会更新,以链接里的原文为准。

平台 官方说明 未公开
ChatGPT OpenAI 帮助中心说明,选择商品时会参考第一方和第三方提供的结构化元数据(例如价格、商品描述)以及其他第三方内容;商家可以按商品 feed 规范提交数据 是否读取、如何使用商品页 JSON-LD
Google AI 模式 Google 在 I/O 2025 的公告中说明,AI 模式的购物功能由 Shopping Graph 提供数据;搜索中心文档说明同时提供网页结构化数据和 Merchant Center feed 能获得最多的展示资格 结构化数据对 AI 模式里商品排序的具体影响
Perplexity 推出免费的商家计划,商家可以提供商品规格等数据 是否读取商品页 JSON-LD
Microsoft Copilot 推出 Copilot 商家计划,通过 Microsoft Merchant Center 提供商品数据 是否读取商品页 JSON-LD
Shopify Catalog Winter ‘26 Edition 发布 Agentic Storefronts,把后台商品同步到 ChatGPT、Perplexity、Copilot 等平台 主题 JSON-LD 与这个渠道的关系

从这张表可以得出两个比较稳妥的结论。第一,价格、库存、品牌、GTIN、运费和退货这些字段,Google 的结构化数据、OpenAI 的商品 feed 和各家商家计划都需要,把它们在后台和页面上填完整,对每个渠道都有用。第二,AI 平台的爬虫要能访问产品页,可以用 AI 爬虫 robots.txt 检测确认 OAI-SearchBot、PerplexityBot、Bingbot 没有被挡住。

Shopify 店铺常见的缺口

Dawn 及其衍生主题在 sections/main-product.liquid 里用 {{ product | structured_data }} 输出产品 JSON-LD(见 Dawn 源码)。按 Shopify 的说明,这个过滤器在产品有变体时输出 ProductGroup。以下是检查 Shopify 店铺时常见的问题,以工具对你页面的实际检测结果为准:

  • 没有运费和退货政策。默认输出里通常没有 shippingDetails 和 hasMerchantReturnPolicy,Search Console 会提示缺少这两项。可以用「Shopify 修复」的代码补上,或者在 Merchant Center / Search Console 里设置账号级政策。
  • 重复的产品节点。评价 app 或 SEO app 另外输出一个 Product,只带评分没有价格。两个节点之间没有关联,搜索引擎把它们当作两个条目检查(D)。
  • 条形码不是 GTIN。Shopify 的 barcode 字段常被填成内部编号,长度或校验位不对。工具会逐个变体校验。
  • 老主题的写法。一个 Product 下挂多个 Offer、Microdata 和 JSON-LD 并存、价格用 money 过滤器输出导致带逗号或货币符号、模板里写死的 priceValidUntil 早已过期。
  • vendor 是店铺名。Shopify 的 vendor 默认是店铺名,自有品牌的店铺应改成品牌名,brand 会读取这个字段。

修复示例

下面是一个 Offer 上的运费和退货政策写法。数值只是示例,必须换成和你店铺政策页一致的真实规则:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
"offers": {
"@type": "Offer",
"price": 49.00,
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"shippingDetails": {
"@type": "OfferShippingDetails",
"shippingDestination": { "@type": "DefinedRegion", "addressCountry": "US" },
"shippingRate": { "@type": "MonetaryAmount", "value": 0, "currency": "USD" },
"deliveryTime": {
"@type": "ShippingDeliveryTime",
"handlingTime": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 1, "unitCode": "DAY" },
"transitTime": { "@type": "QuantitativeValue", "minValue": 3, "maxValue": 7, "unitCode": "DAY" }
}
},
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"applicableCountry": "US",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"merchantReturnDays": 30,
"returnMethod": "https://schema.org/ReturnByMail",
"returnFees": "https://schema.org/FreeReturn"
}
}

Shopify 店铺不用手写。「Shopify 修复」生成的代码会循环输出每个变体的 sku、GTIN(只在条形码是 8 / 12 / 13 / 14 位纯数字时输出)、颜色和尺码、图片、价格、库存,以及划线价、运费和退货政策,并读取评价 app 写入的 reviews.rating 元字段输出评分。

常见问题

Rich Results Test 显示有效,为什么还要用这个工具?

Google 富媒体结果测试判断的是页面能否获得富媒体结果,推荐属性缺失只显示为非关键问题。本工具另外检查 GTIN 校验位、运费货币与报价是否一致、页面上是否有互不关联的重复产品节点,说明每条要求出自哪份文档,并给出 Shopify 的修复代码。两者可以一起用:先用本工具补齐,再用 Google 的测试做最终确认,最终结果以 Google 的测试为准。

用网址检查和粘贴源码,结果为什么可能不同?

网址检查读取的是服务器返回的初始 HTML,不执行 JavaScript。如果产品 JSON-LD 是页面加载后由脚本插入的,网址检查会显示「没有找到 JSON-LD」。Google 建议商家把 Product 结构化数据放在初始 HTML 里,因为 JavaScript 生成的标记会让购物相关的抓取更少、更不稳定。另外,有些网站会对服务器请求返回验证页,这时请粘贴源码。

不填 GTIN 会怎样?没有 GTIN 的自有品牌商品怎么办?

GTIN 是推荐属性,不填不影响商家信息的资格,但 Google 的购物知识面板靠商品编码把同一商品的多个卖家放在一起,AI 购物平台的商品 feed 也用它对应商品目录。没有正式 GTIN 的自有品牌商品不要编造,留空并填写 brand 和 mpn。错误的 GTIN 比不填更麻烦,工具会按 GS1 规则校验每一个。

Search Console 提示缺少 shippingDetails 和 hasMerchantReturnPolicy,一定要写在产品页上吗?

不一定。Google 推荐的做法是把通用政策写在 Organization 上,或在 Merchant Center / Search Console 里设置账号级的运费和退货政策。只有个别商品的政策和通用政策不同时,才需要写在 Offer 上。这两项是推荐属性,缺少时不影响商家信息的资格;已经在 Merchant Center 或 Search Console 设置过政策的店铺,可以不在产品页上重复写。

加了结构化数据,就能出现在 ChatGPT 购物结果里吗?

不能保证。OpenAI 说明 ChatGPT 会参考结构化元数据,但没有公开是否读取以及如何使用商品页上的 JSON-LD。比较确定的做法是:允许 OAI-SearchBot 抓取,把商品数据填完整;符合条件的商家可以按 OpenAI 的商品 feed 规范提交数据;Shopify 店铺可以在后台开启 Agentic Storefronts。

工具会保存我粘贴的代码或检查的网址吗?

粘贴的代码只在浏览器里处理,不会发送到服务器。为了方便下次打开,输入框内容会存在你自己浏览器的本地存储里。网址检查由本站服务器代为读取页面,只返回 JSON-LD,同一网址的结果缓存 10 分钟,每个 IP 每小时最多 30 次。

评分(aggregateRating)可以自己填一个数字吗?

不可以。Google 的评价摘要指南要求评分来自页面上用户能看到的真实评价,不能聚合其他网站的评价,也不能使用虚假或未披露的激励评价。没有评价时不要输出 aggregateRating。

延伸阅读

微信扫码关注公众号

微信扫码关注公众号