Google Merchant Listing更新:独立站商品分类和促销时间别只靠Feed

Merchant Listing结构化数据把商品页、Feed和Google展示连成同一套数据链路

目录

Merchant Listing结构化数据把商品页、Feed和Google展示连成同一套数据链路
Merchant Listing结构化数据把商品页、Feed和Google展示连成同一套数据链路

很多独立站团队做 Google Shopping、免费商品列表和 SEO 时,会把商品数据拆成几套东西:运营维护 Shopify 或 ERP 商品表,广告团队维护 Merchant Center Feed,SEO 团队只看产品页标题和结构化数据,开发再负责前端模板。平时问题不明显,一到大促就容易出事故:页面显示促销价,Feed 还是原价;前台分类叫 Outdoor Power Station,Feed 里却归到 Electronics Accessories;促销结束了,Google 还抓到过期价格。

Google 在 2026 年 7 月 7 日更新 Merchant listing structured data 文档,新增/明确两件事:Product.category 可以用在 Merchant listing 结构化数据里,并且 sale duration 促销有效期可以通过 validFromvalidThroughpriceValidUntil 来标记。

这不是一个“技术字段小更新”。对中国出海品牌和跨境独立站来说,它提醒的是:商品页结构化数据不能再和 Merchant Center Feed 各写各的。Google Search、Shopping、免费列表、AI 搜索和购物广告越来越依赖一致的商品事实。分类、价格、促销时间这些基础字段如果不统一,后面再怎么做广告和 SEO 都会被数据质量拖后腿。

Google这次更新了什么?

Search Engine Roundtable 记录了这次文档更新:Google 在 Merchant listing structured data 文档里增加了 Product.category 的说明,并新增 sale duration 章节,解释如何用 schema.org 字段表达促销价格的有效期。

Google 官方更新页对这两点的说明更清楚:

  • Product.category 可以使用 TextCategoryCode ,对应 Merchant Center Feed 中的 product_typegoogle_product_category 口径。
  • sale duration 用来说明促销价在什么时间段生效,可使用 validFromvalidThroughpriceValidUntil ,并与 Merchant Center Feed 里的 sale_price_effective_date 对齐。

换成独立站运营语言,就是:

更新点对应Feed口径对独立站的意义
Product.categoryproduct_typegoogle_product_category让商品页结构化数据也能表达商家自定义分类和Google标准分类
validFromsale_price_effective_date 起始时间告诉Google促销价什么时候开始
validThrough / priceValidUntilsale_price_effective_date 结束时间告诉Google促销价什么时候结束

如果你的独立站已经在做 Google Merchant Center产品提交延迟 类问题排查,这次更新就应该进入商品数据质量清单。因为它不是单纯提升富结果展示,而是让页面、Feed 和 Google 购物生态对同一个 SKU 的理解更一致。

Product.category:别把“前台导航分类”当商品分类治理

Google Merchant listing 文档现在明确,Product.category 可以接受两类值。

第一类是普通文本,也就是商家自定义商品分类,类似 Feed 里的 product_type。例如:

"category": "Outdoor Power Station > Portable Solar Generator"

第二类是 CategoryCode,用于表达 Google Product Category。可以用 Google Product Taxonomy 的 ID,也可以用完整分类路径。例如:

"category": {
  "@type": "CategoryCode",
  "inCodeSet": "https://www.google.com/basepages/producttype/taxonomy-with-ids.en-US.txt",
  "codeValue": "Electronics > Power > Power Stations"
}

Google 还允许多个分类值同时存在,这对真实独立站很重要。因为一个 SKU 往往同时需要:

  • 给站内运营看的分类:方便上架、库存、毛利、活动和数据复盘;
  • 给 Google 看的标准分类:帮助 Google 理解商品属于哪个购物场景;
  • 给前台用户看的导航分类:方便用户浏览,不一定等于商品数据分类。
Product.category需要把商家自定义分类和Google Product Category分开管理
Product.category需要把商家自定义分类和Google Product Category分开管理

独立站最常见的错误,是把前台导航分类直接当成所有系统的分类。比如用户看到的导航叫 New ArrivalsHot SaleFor Camping,这些词适合前台营销,但不适合作为稳定的商品分类。Google 更需要的是清楚、可复用、与商品属性一致的分类。

这件事和 SEO/GEO 也有关。AI 搜索和购物结果越来越依赖清晰的商品实体、用途、类别和证据链。Iwish 在做 Google AI Mode食谱链接 这类结构化数据分析时,核心判断一直是:结构化数据不是为了“骗出富结果”,而是让 Google 更准确理解页面里真实存在的内容。

Sale duration:大促价格必须有明确开始和结束

第二个更新点是 sale duration,也就是促销价格有效期。

Google 官方 Merchant listing 文档现在说明:如果要指定促销价的生效期间,开始时间用 validFrom,结束时间可以用 validThroughpriceValidUntil。时间建议使用 ISO 8601 格式,并包含时间和时区。

这对独立站大促尤其关键。很多品牌在黑五、Prime Day、返校季、圣诞季前后,价格变动非常频繁。如果页面结构化数据、Merchant Center Feed、广告促销设置和前台价格不同步,Google 看到的可能是过期促销、错误原价或不完整折扣信息。

Google 文档给了两类放置方式。

Sale duration可以放在Offer节点或促销价PriceSpecification节点上
Sale duration可以放在Offer节点或促销价PriceSpecification节点上

写在 Offer 节点

如果 Offer.price 本身就是当前促销价,可以把 validFrompriceValidUntil 放在 Offer 上:

"offers": {
  "@type": "Offer",
  "price": 10.00,
  "priceCurrency": "USD",
  "validFrom": "2026-11-20T08:00:00+00:00",
  "priceValidUntil": "2026-11-30T23:59:59+00:00"
}

这种写法适合很多独立站模板:页面当前价就是促销价,原价通过 StrikethroughPrice 作为对比价格。

写在 PriceSpecification 节点

如果你用多个 UnitPriceSpecification 对象来表达促销价和原价,就把 validFromvalidThrough 放在促销价那个对象上。注意,Google 文档说明 priceValidUntil 不适用于 PriceSpecification 类型。

"priceSpecification": [
  {
    "@type": "UnitPriceSpecification",
    "price": 10.00,
    "priceCurrency": "USD",
    "validFrom": "2026-11-20T08:00:00+00:00",
    "validThrough": "2026-11-30T23:59:59+00:00"
  },
  {
    "@type": "UnitPriceSpecification",
    "priceType": "https://schema.org/StrikethroughPrice",
    "price": 15.00,
    "priceCurrency": "USD"
  }
]

这里不要只让开发“加字段”。更重要的是先确定运营口径:促销开始时间以哪个时区为准?如果美国站、英国站、欧盟站分别上线,是否用不同 URL、不同币种、不同促销日历?促销提前结束时,页面、Feed、广告资产组和邮件落地页谁先更新?

为什么这对独立站SEO/GEO有影响?

很多团队会觉得 Merchant listing 是购物广告或 Merchant Center 的事,和 SEO/GEO 没关系。这个判断太窄。

Google 的商品理解来自多个入口:页面内容、结构化数据、Merchant Center Feed、图片、价格、库存、退换货、配送、评价、站点质量和用户行为。Product.category 和 sale duration 都属于商品事实的一部分。

如果商品事实不一致,至少会影响三个层面。

1. 免费商品列表和购物展示更容易出错

Google 需要判断商品是什么、属于哪个类别、当前价格是多少、促销是否还有效。分类和价格时间不清晰,可能导致商品展示不稳定,或让 Google 优先相信 Feed 而不是页面。

2. SEO内容和商品页承接会断开

假设你的博客在讲“portable solar generator for camping”,产品页结构化数据却没有清楚表达商品类别、用途和价格有效期,用户从搜索进入后看到的信息就不完整。做 Google SEO/GEO优化 时,产品页不是只写标题和描述,还要把商品事实做成机器也能读懂的结构。

3. AI购物和智能体场景更依赖商品数据

未来 AI 搜索、AI购物和代理购买会更依赖稳定的商品事实:这个商品属于什么类别?价格现在是否有效?是否有库存?是否适合某个使用场景?如果独立站连基础分类和促销时间都不一致,就很难进入可靠推荐链路。Iwish 之前拆过 AI Agent Commerce 的准备项,其中商品数据、支付、风控和内容证据就是基础能力。

独立站应该怎么改?先不要全站重构

这类更新最怕两种反应:一种是完全忽略,觉得“不影响排名”;另一种是一上来让开发重写全站 JSON-LD 模板。更稳妥的做法,是先把高价值 SKU 跑通。

优先级建议这样排:

  1. 正在投放 Google Shopping / PMax 的 SKU;
  2. 黑五、Prime Day、圣诞季会做促销的 SKU;
  3. 自然搜索有流量的产品页;
  4. 有高毛利、高库存压力或重点新品的 SKU;
  5. 多国家、多币种、多语言页面。

如果你的网站还没有统一的 PIM、商品表或商品数据导出机制,这件事会暴露更大的问题:运营、广告、SEO、开发都在改商品数据,但没有一个权威源。B2B 和高 SKU 量独立站尤其要重视 B2B数字渠道运营 里的产品数据治理,否则结构化数据只是表层修补。

30天排查清单

这次更新可以按 30 天做一次小范围排查。

30天Merchant Listing结构化数据排查清单
30天Merchant Listing结构化数据排查清单

1-7天:先抽样,不要全站铺开

  • 导出核心 SKU:广告 SKU、自然流量 SKU、大促 SKU、重点新品。
  • 对比页面分类、Feed product_type 、Feed google_product_category
  • 检查商品页是否已有 Product / Offer 结构化数据。
  • 抽查促销 SKU 的页面价格、原价、促销价、活动开始结束时间。
  • 用 Rich Results Test 和 Merchant Center 诊断查看现有错误。

8-20天:补分类和促销时间

  • 给核心产品页补 Product.category ,不要只写前台导航名。
  • 区分商家自定义分类和 Google Product Category。
  • 对大促 SKU 明确 validFrom 和结束字段。
  • 统一时区,避免美国站用本地时间、Feed 用 UTC、前端又用浏览器时间。
  • 检查多币种页面是否有独立 URL,避免同一 URL 同时表达多个货币。

21-30天:固化到发布流程

  • 把商品分类字段纳入商品上架 SOP。
  • 把大促开始/结束时间纳入促销日历和上线检查。
  • 在模板上线前做 5-10 个 SKU 的回归测试。
  • 把结构化数据变更记录进 SEO 技术变更表。
  • 每次大促结束后复盘:价格是否按时回滚,Google 是否还显示过期促销。

这类复盘可以和 Shopify Analytics数据可视化 一起看。不要只看销售额和 ROAS,还要看商品数据质量是否影响了搜索曝光、购物广告、自然流量和转化路径。

给非程序员负责人的协作说明

如果你不是开发,可以直接用下面这份清单和技术团队沟通。

你要问开发的不是“能不能加字段”

应该问:

  • 现在商品页 Product 结构化数据从哪里生成?
  • 商品分类字段来自 Shopify/ERP/PIM 的哪个字段?
  • Feed 的 product_typegoogle_product_category 是否能同步到页面?
  • 大促价格开始和结束时间有没有统一字段?
  • 促销结束后,结构化数据会不会自动回到原价?
  • 多语言、多币种、多国家站点是否分别输出正确价格和时间?

如果这些问题回答不出来,就说明不是单个 JSON-LD 字段问题,而是商品数据链路没有打通。必要时要把它和 外贸网站建设 阶段的产品数据架构一起处理,不要等到广告投放和 SEO 出问题后再补。

你要问运营的不是“活动价是多少”

应该问:

  • 活动价从哪一天、哪个时区开始?
  • 结束时间是否精确到小时?
  • 价格是否按国家、币种、会员等级不同?
  • 原价是否真实稳定,还是活动前临时抬价?
  • 活动结束后 Feed、页面、广告和邮件是否同时更新?

Google 对 sale duration 的说明,本质上是要求促销价有可验证的有效期。只写“限时优惠”这种前台文案,不等于 Google 能理解促销时间。

常见错误

错误1:只在Feed里维护分类,页面结构化数据缺失

Feed 可以提交商品数据,但产品页本身仍然需要清晰结构化数据。Google 可能从多个来源交叉验证。如果页面和 Feed 不一致,后续排查会很麻烦。

错误2:把所有SKU都归到一个大类

很多站为了省事,把所有商品都归到同一个大类,比如 ElectronicsAccessories。这对 Google 理解具体商品场景帮助有限,也不利于后续按产品线做 SEO 和广告复盘。

错误3:促销结束时间只写在前端倒计时组件

倒计时组件给用户看,不等于结构化数据里有促销有效期。Google 需要在 schema.org 标记里读到开始和结束时间。

错误4:忽略时区

跨境独立站经常同时面向美国、欧洲、澳洲市场。促销价到底按哪个市场时间开始和结束,必须写清楚。Google 官方也建议包含时间和时区。

错误5:只为了富结果加字段,不修真实数据

结构化数据必须反映页面真实内容。页面上没有清楚显示的价格、促销、分类和商品信息,不应该只在 JSON-LD 里“补”。这会带来数据不一致风险。

FAQ

Product.category会直接提升Google排名吗?

不能这样理解。它不是排名开关。它的价值是帮助 Google 更准确理解商品分类,并让页面结构化数据与 Merchant Center Feed 的商品分类口径更一致。长期看,商品数据质量会影响搜索展示、购物结果、广告投放和AI购物场景的稳定性。

已经有Merchant Center Feed,还需要页面结构化数据吗?

需要。Feed 和页面结构化数据是两个不同入口。Feed 适合集中提交商品数据,页面结构化数据帮助 Google 理解具体商品页。两者一致时,排查和展示会更稳定。

Sale duration只适合大促吗?

不只适合黑五、Prime Day 这类大促。只要商品存在限时促销、闪购、会员促销、季节性活动,都应该考虑明确促销有效期。重点是不要让过期价格继续被 Google 抓到。

Shopify独立站怎么落地?

先确认主题或应用如何生成 Product JSON-LD,再看商品分类、价格、比较价、促销开始结束时间是否能从后台字段稳定输出。不要在前端手写一套和 Feed 不一致的分类或价格逻辑。

B2B产品页也需要关注吗?

需要。B2B 如果有可购买产品、配件、样品、设备或可在线询价的 SKU,也需要清晰商品分类、型号、价格或询价逻辑。即使不是标准电商结账,产品数据清晰也有助于 Google 和 AI 系统理解页面。

应该先改哪些页面?

先改高价值产品页:广告 SKU、自然搜索有曝光的 SKU、大促 SKU、高毛利 SKU、重点新品。不要先把资源消耗在低流量、低库存或即将下架的商品上。

来源参考

滚动至顶部

品牌独立站出海咨询