列表第一页既能用 /list/ 打开,也能用 /list/?page=1 打开,两条都被收录,内容完全相同。

原因不止一个,得分开看。分页组件在第一页也输出了 page 参数。也可能是内链里混用了带参数和不带参数的写法。

少数情况下是canonical 各指自己,没有收敛。

上来先确认两个地址的返回与内容

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

然后把 page=1 跳转到无参数地址

if ($arg_page = 1) { return 301 /list/; }

剩下的就是统一内链输出不带参数

grep -rn 'page=1' /www/wwwroot/site/wp-content/themes/

当时还开着另一个排查窗口,两边日志对照着看才定位到。

同一份数据我导出了两份,一份留底,一份拿来试。

这类问题以前遇到过,但这次的触发条件和上次不一样。

恢复的判定其实很直接。带参数的首页版本消失,收录里只剩一条列表地址,权重集中,日志里也不再有 page=1 的重复抓取。

第一页带参数是最常见的重复来源,规则里加一条跳转就能解决,比 canonical 更彻底,也不用等蜘蛛重新抓取,改完当天就能验证。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。

作者 9823189