这个坑值得记一笔。商品页的 Product 标记里有 offers 和 aggregateRating,商家后台提示缺少退货政策。补了一个 hasMerchantReturnPolicy,里面只写退货天数,测试工具又报 returnPolicyCategory 必填。
刚开始盯着「政策节点放在了 offers 里而不是 Product 层级」,折腾了半个多小时,排掉了。
原因不止一个,得分开看。退货政策节点必须带 returnPolicyCategory 枚举值;merchantReturnDays 写成了字符串而不是整数;applicableCountry 用了中文国家名。
上来先看现有结构
curl -s https://www.example.com/product/1 | grep -A8 'hasMerchantReturnPolicy'
补齐必填枚举
"hasMerchantReturnPolicy":{"@type":"MerchantReturnPolicy","returnPolicyCategory":"https://schema.org/MerchantReturnFiniteReturnWindow","merchantReturnDays":30}
接着确认放置层级在 Product 下
grep -n 'hasMerchantReturnPolicy' templates/product.html
复验单页
https://search.google.com/test/rich-results
手上没有现成的复现脚本,就照着线上请求手工拼了一个。
报错是间歇性的,我蹲守了半小时才抓到一次完整现场。
怎么算真的好了,看的是同一批现象。测试工具不再报缺字段,商品富媒体重新出现,退货信息在结果里可见。
退货政策是枚举驱动的一组字段,少一个必填值整段就不生效,照官方示例逐项对齐最省事。报错文案容易误导,真正的原因往往在相邻那一层的日志里。
