现场是这样的。列表页的 rel=next 由模板按页码拼接,从第 3 页开始漏了栏目路径,指到不存在的地址。GSC 里第 3 页之后全断,二十页分页收录是 0。

中间走过弯路,把「sitemap 只收录第一页,没做交叉验证」当成主因,改完现象没变。

排查方向其实有限,先把可能性排一排。模板拼分页地址时少了栏目路径;分页路由只配到第 3 页,超出直接 404;前端可点链接和 head 里的地址是两套拼法。

动手时先看第二页输出的 next 地址

curl -s https://www.example.com/list/page/2/ | grep -o '<link rel="next"[^>]*>'

跟一下目标地址的状态

curl -s -o /dev/null -w '%{http_code}\n' https://www.example.com/list/page/4/

修

正

末了逐

页

改之前我把相关日志按时间截了一段存着,事后对时间线用得上。

别只看报错消失,验证要多做一步。修完后第 2 到第 10 页的 next 目标全部返回 200,这批分页在两周内陆续进索引,列表页的抓取深度也变深了。

提醒一点。rel=next 的地址必须和页面上可点的链接一致,模板里两套拼法迟早会分叉。这类问题最好一次改到位,反复小改反而容易把原因搅混。

作者 9823189