/posts/product-offer-price
GEO优化

Product 和 Offer 的 price 字段对不上,我把汇率换算链路拆到了小数点后四位

技术宅阿杰 15 0 9

上周帮一个做跨境的朋友看站点,Google 富媒体结果里 Product 标价 ¥899,点进去 Offer 显示 $129.99。用户截图来问到底哪个是真的。

我先锁口径:Product 的 offers.price 和 offers.priceCurrency 必须成对出现,且要和页面上用户实际看到的默认币种一致。页面上默认展示人民币,结构化数据里却塞了美元,这是第一层冲突。

第二层更隐蔽。他站点后端存的是美元底价,前端按实时汇率换人民币。我把接口返回拉出来对比:

  • 后端 price:129.99 USD
  • 前端展示:899.00 CNY(汇率 6.9161 换出来的)
  • 结构化数据里 price:129.99,priceCurrency:USD

也就是说结构化数据用的是底价,正文用的是换算价。搜索引擎抓的是结构化数据,用户看的是正文,两边对不上。

更坑的是他们汇率是缓存 6 小时的。我抓了三次快照,间隔两小时,人民币价从 899 跳到 902 又跳回 897。结构化数据里却一直是 129.99 USD 没动过。

我的处理方案是先锁口径再拆变量:

  1. 决定结构化数据跟随页面默认币种,也就是 CNY,price 写页面实际展示值,priceCurrency 写 CNY。
  2. 汇率换算保留两位小数,和页面展示精度一致,不要一个写 899.00 一个写 898.9634。
  3. 如果确实要标美元价,用 offers 数组开两个 Offer,各带自己的 priceCurrency,别在一个 Offer 里混币种。
  4. 加一条校验:结构化数据里的价格字符串必须能被页面上的价格 DOM 节点文本直接匹配到,跑批时做一次 diff。

改完两周,富媒体结果里的价格和落地页对上了。但引用率没明显变化,我判断价格一致性是底线不是加分项。

现在有个问题没想清楚:汇率缓存窗口期内,结构化数据应该跟着缓存价走,还是强制实时?跟着缓存走能保证和页面一致,但可能标一个过时价。你们怎么处理的?

登录后可以为帖子点赞,但本帖内容对所有人开放阅读。

社区回应

0 Replies

还没有回应,抢一个沙发。

登录后可以回应和点赞,但本帖内容对所有人开放阅读。