DTC 品牌营销知识库 DTCBM.COM 关注公众号

SEO · structured-data

商品价格标记,促销价、划线价、会员价与商品分类

要点

一、Google 识别三种价格:当前价(active price)、划线价(strikethrough price)、会员价(member price)。三者靠 UnitPriceSpecification 上的两个属性区分,两个属性不能同时出现,同时出现的价格规格会被忽略。

价格priceTypevalidForMemberTier
当前价不写不写
划线价https://schema.org/StrikethroughPrice不写
会员价不写指向会员等级

当前价可以写在 Offer 的 price 上,也可以写在 priceSpecification 里;两处都写时 Google 用 offers.price,忽略 priceSpecification 里的当前价。

二、商家信息(merchant listing)要求价格大于 0,商品摘要(product snippet)没有这条要求。按这条规则,Shopify 里标价为 0 的商品(例如赠品单独建的商品页)不具备商家信息资格。两类结果的其他区别详见《商品类搜索结果外观与 Search Console 数据》。

三、划线价的写法。在 Offer 上写当前促销价,再加一个带 priceType: StrikethroughPrice 的价格规格写原价,促销价就会被识别为折扣价。priceType 只支持 StrikethroughPrice 一个值,过渡期内 ListPrice 也被接受。写了划线价就要同时提供当前价,当前价本身不加 priceType。

四、促销起止时间(2026-07-07 加入商家信息文档,与 Merchant Center 的 sale_price_effective_date 对应)。

  • 开始时间用 validFrom,结束时间用 validThrough 或 priceValidUntil,格式为 ISO 8601。官方建议起止都写,并带上时间和时区,例如 2026-11-27T00:00:00-05:00;开始时间要早于或等于结束时间。
  • 位置跟着促销价走:促销价写在 Offer 的 price 上,起止时间就写在 Offer 上;促销价写在 priceSpecification 里(与划线价并列的那个不带 priceType 的规格),起止时间就写在那个规格上。priceValidUntil 不能用在 PriceSpecification 上,那里只能用 validThrough。
  • priceValidUntil 是过去的日期时,商品可能不展示。促销结束后要同步更新或删除。

五、会员价用 validForMemberTier 标在价格规格上,同时要提供普通会员以外的当前价。等级可以引用两种来源:

  • Merchant Center 里配置的计划和等级:按名称写,{"@type": "MemberProgramTier", "name": "silver", "isTierOf": {"@type": "MemberProgram", "name": "member-plus"}}。
  • 网站另一页 Organization 下的 MemberProgram 标记:用 @id 引用该等级的网址,写法见下面的片段。会员计划本身怎么定义详见《Organization 层的退货、运费与会员计划标记》。

几个等级价格相同时,validForMemberTier 可以写成数组;价格不同就写多个价格规格。只送积分不打折时,价格规格里写 membershipPointsEarned 加 validForMemberTier,不写价格。validForMemberTier 和 membershipPointsEarned 目前都是 Beta,引用其他页面定义的等级可能不会马上在搜索结果中体现。

下面是一个促销价、划线价、会员价同时存在的 Offer,可直接替换数值使用:

"offers": {
 "@type": "Offer",
 "url": "https://www.example.com/products/robot-vacuum-x10?variant=4567890",
 "availability": "https://schema.org/InStock",
 "itemCondition": "https://schema.org/NewCondition",
 "priceSpecification": [
 {
 "@type": "UnitPriceSpecification",
 "price": 399.99,
 "priceCurrency": "USD",
 "validFrom": "2026-11-27T00:00:00-05:00",
 "validThrough": "2026-12-01T23:59:59-05:00"
 },
 {
 "@type": "UnitPriceSpecification",
 "priceType": "https://schema.org/StrikethroughPrice",
 "price": 599.99,
 "priceCurrency": "USD"
 },
 {
 "@type": "UnitPriceSpecification",
 "price": 379.99,
 "priceCurrency": "USD",
 "validForMemberTier": {
 "@type": "MemberProgramTier",
 "@id": "https://www.example.com/pages/rewards#tier_member"
 }
 }
 ]
}

六、Product.category(2026-07-07 加入商家信息文档)。这个属性可以写数组,混用两种值:

  • 纯文本:店铺自定义分类,对应 Merchant Center feed 的 product_type,建议不超过 750 个字符。
  • CategoryCode 对象:Google 商品分类(GPC),对应 feed 的 google_product_category。inCodeSet 写 Google 商品分类表的网址,codeValue 写分类 ID 或完整路径;路径用 > 分层,每层至少含一个字母。
"category": [
 {
 "@type": "CategoryCode",
 "inCodeSet": "https://www.google.com/basepages/producttype/taxonomy-with-ids.en-US.txt",
 "codeValue": "<从分类表中查到的 ID 或完整路径>"
 },
 "Smart Home > Security Cameras > Outdoor Cameras"
]

codeValue 的值按商品实际品类到上面的分类表里查,不要照抄别的品类的 ID。Shopify 开发者文档中 structured_data 过滤器的示例输出里 category 为空字符串,主题用这个过滤器时,要看渲染后的源代码确认实际输出了什么,需要时在主题里补写。

容易误解的地方

  • 把原价写在 Offer 的 price 上、把促销价放进 priceSpecification。Google 会把 offers.price 当作当前价,结果是原价被当成售价。促销价放在 price,原价放在带 priceType 的规格里。
  • 给当前价也加了 priceType,或者在同一个规格上同时写 priceType 和 validForMemberTier。前者不符合文档要求,后者整个规格被忽略。
  • 用 priceValidUntil 表示活动结束,活动结束后没改。过去的日期可能让商品不展示。
  • 在 UnitPriceSpecification 上写 priceValidUntil。这个属性只能写在 Offer 上。
  • 只写会员价,不写普通价格。会员价要和一个普通当前价同时出现。
  • 以为写了 category 就能代替 Merchant Center feed 的分类。官方说明是让标记和 feed 的两个属性对应,没有说标记会覆盖 feed。

怎么检查

一、在商品页源代码里找出 Offer,逐个价格规格核对:当前价不带 priceType 和 validForMemberTier,划线价只带 priceType,会员价只带 validForMemberTier,写了 price 的规格价格都大于 0。

二、促销上线前后各检查一次:上线时 validFrom 和结束时间与页面上写的活动时间一致;结束后 priceValidUntil 或 validThrough 不是过去的日期,页面上的划线价已撤下。

三、用富媒体搜索结果测试检查商品页,确认商家信息项没有严重错误;再在 Search Console「购物」下的商家信息报告看上线后的有效项和无效项变化。

四、检查 category 的 codeValue 能在 Google 商品分类表中找到。

来源

公众号 DTC品牌营销 二维码扫码 / 长按识别

接入知识库

把整套已验证知识接进你自己的 AI

关注公众号「DTC品牌营销」,自动发放知识库 MCP / CLI 接入 key,让你的 AI 直接调用全部已沉淀经验,并持续接收更新。

相关内容