Product Schema 检测:产品页 Google 与 AI 购物就绪检查
输入产品页网址,或者粘贴 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 之后检查是否出现重复的产品节点。
使用步骤
- 在输入框填入产品页网址,点「检查网址」。工具通过本站服务器读取该页面初始 HTML 里的 JSON-LD。如果页面拦截了服务器请求,可以在浏览器里按 Ctrl+U 打开源代码,全选后粘贴到下面的输入框。
- 查看「检查结果」。结果分为页面与节点、必需属性、推荐属性、变体、运费与退货、评分与评价、AI 购物数据源七组。「不通过」默认展开,每条都写了原因、改法和参考代码。
- Shopify 店铺切到「Shopify 修复」,按店铺真实的运费和退货政策填写表单,复制生成的 Liquid 代码,按页面上的步骤放进主题。
- 修改后再检查一次,然后用 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 的商家信息文档写明,同一信息在多处定义时按以下顺序取用(从强到弱):
- Merchant Center 里按商品提交的 feed
- Content API for Shopping 的设置
- Merchant Center 或 Search Console 里的账号级设置
- 产品页上的商家信息标注
- 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 | "offers": { |
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。
延伸阅读
- Schema 可视化工具:把整页 JSON-LD 画成实体关系图,检查 @id 引用
- AI 爬虫 robots.txt 检测:确认 OAI-SearchBot、PerplexityBot 等能否抓取产品页
- SERP 预览工具:检查产品页标题和描述会不会被截断
- 结构化数据完整指南:用 Schema Markup 让 Google 和 AI 真正理解你的页面
- 术语:UCP(Universal Commerce Protocol)通用商业协议
- 更多免费 SEO 与 GEO 工具