记录一下那天晚上的排查过程。商品页的 SKU 在后台是按中文型号录入的,比如「国行 256G 深空黑」,JSON-LD 里被原样输出到 sku 字段。富媒体测试工具没有报语法错,但商品搜索结果里一直没有价格和评分,GSC 的增强功能报告显示有效项为零。

刚开始盯着「gtin 字段为空 又缺 brand 蜘蛛无法确认商品身份」,折腾了半个多小时,排掉了。

原因不止一个,得分开看。sku 字段要求是稳定的字母数字串 中文和空格被判成无效值。少数情况下是同一商品的多个规格共用了一个中文 SKU 蜘蛛无法区分变体。

不容易想到的是,price 用了千分位分隔符 整个 offers 被判定格式不符。

取一段线上 JSON-LD 看实际取值

curl -s https://www.example.com/product/123 | grep -o '"sku":"[^"]*"'

随后导出后台的 SKU 与规格对应关系核对

SELECT sku, COUNT(*) c FROM wp_postmeta WHERE meta_key='_sku' GROUP BY sku HAVING c>1;

然后把 sku 换成纯字母数字并补 brand

"sku": "PHONE-256-BLK", "brand": {"@type": "Brand", "name": "Example"}

价格去掉千分位再输出

echo number_format($price, 2, '.', '');

怎么算真的好了,看的是同一批现象。换成字母数字 SKU 并补齐品牌后,重新抓取约十天富媒体恢复展示,增强功能报告里有效商品数从零涨到全量。

提醒一点。sku 看起来只是个编号,但对商品实体的识别很关键,中文、空格、重复值都会让整段标记被判无效。这类问题最好一次改到位,反复小改反而容易把原因搅混。

作者 9823189