先把当时的情况摆出来。商品页的 aggregateRating 写了 ratingValue 4.6 和 reviewCount 128,富媒体测试通过,搜索结果里却一直没有星级,竞品同样的评分就能显示。
这类报错背后常见的原因有几处,逐个排除就行。bestRating 和 worstRating 缺失,评分区间无法确定。另一种情况是ratingValue 超出默认的 1 到 5 区间。
少数情况下是reviewCount 与实际评论数对不上,被判不可信。不容易想到的是,评分来源是站内自评,没有真实用户评论支撑。
先看页面里评分字段的完整度
curl -s https://www.example.com/p/123 | grep -o 'aggregateRating[^}]*'
补上评分区间字段
grep -rn 'aggregateRating' templates/product.html
接着核对评论数与数据库统计
SELECT COUNT(*) FROM reviews WHERE product_id=123 AND status='approved';
复查富媒体报告
curl -s 'https://search.google.com/test/rich-results?url=https://www.example.com/p/123' | grep -c 'Rating'
手上没有现成的复现脚本,就照着线上请求手工拼了一个。
别只看报错消失,验证要多做一步。aggregateRating 带上 bestRating 5 和 worstRating 1,评论数与页面一致,两周后搜索结果显示星级。
评分标记最容易被判自评,评论要有真实用户和可见列表,光有数字没有评论页迟早被清掉。报错文案容易误导,真正的原因往往在相邻那一层的日志里。
