产品页的 aggregateRating 里 reviewCount 写成了带小数的值,工具报必须是正整数,评分模块因此不展示。

排查方向其实有限,先把可能性排一排。统计脚本把平均值写进了评论数。另一种情况是评论数为零时仍然输出了该字段。

少数情况下是字段类型是字符串,缺少类型转换。

上来先查看评分对象的实际值

curl -s https://www.example.com/p/1 | grep -A4 'aggregateRating'

随后确保评论数是整数且大于零

"reviewCount": 26

没有评论时整段不要输出

if ($count > 0) { echo $schema; }

那几天正好在做别的变更,先把时间线对齐才敢动手。

排查用的命令都是临时敲的,没有写成脚本,事后才整理。

手上没有现成的复现脚本,就照着线上请求手工拼了一个。

恢复的判定其实很直接。工具通过校验,搜索结果里出现星级评分,点击率随之变化。

容易忽略的是,没有真实评论却标记评分属于违规,被识别后整站富媒体都会被限制,宁可不上评分也不要编数据,恢复起来很难。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。

作者 9823189