记录一下那天晚上的排查过程。列表页用 page 参数分页,第 5 页之后数据源返回的是同一批内容,页面之间只差页码,GSC 把两百多个分页判成重复,只有第一页进了索引。

刚开始盯着「分页 URL 的 title 和 description 完全一样」,折腾了半个多小时,排掉了。

这类报错背后常见的原因有几处,逐个排除就行。后端在页码越界时没有返回 404,而是回落到最后一页。还有一种是rel=next 早已不是 Google 的收录信号,写了也不解决问题。

另外,筛选条件与页码组合生成了大量等价地址。

先确认越界页码返回什么

curl -sI 'https://www.example.com/list?page=999' | head -3

再往下让越界页码返回 404

if ($page > $total) { return 404; }

然后检查分页 title 是否带页码

curl -s 'https://www.example.com/list?page=3' | grep -o '<title>[^<]*'

等前面都确认过,再统计重复分页的规模

grep -c 'list?page=' /var/log/nginx/access.log

怎么算真的好了,看的是同一批现象。越界页码返回 404,第 2 到第 4 页的 title 带上了页码,GSC 重复网页从两百多降到二十以内。

rel=next 和 prev 现在只对少数引擎还有余温,Google 早就改为靠链接结构自行判断。这类问题最好一次改到位,反复小改反而容易把原因搅混。

作者 9823189