记录一下那天晚上的排查过程。新版模板把评论功能整个去掉,旧评论分页地址 /p/1/comment-page-2 全部 404。这些地址在索引里有两万多条,外链也有几百条,改版两周后站点总收录明显下滑。

刚开始盯着「404 页面没有指向文章正文」,折腾了半个多小时,排掉了。

真正麻烦的地方在于,几个原因的现象几乎一样。关评论时没有给旧评论页做跳转。也可能是评论分页地址被外链和索引保留。

还有一种情况,sitemap 里删得太快 蜘蛛来不及处理。

先统计旧评论页的请求数量

grep -c 'comment-page' access.log

随后把评论分页 301 到文章正文

rewrite ^/p/([0-9]+)/comment-page-[0-9]+/?$ /p/$1 permanent;

保留评论区只读展示

$comments = get_comments(['post_id' => $id, 'status' => 'approve']);

复验跳转链

curl -sI https://www.example.com/p/1/comment-page-2 | grep -i location

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

改完先别撤,确认这几项。旧评论页返回 301 落到正文,索引里的评论分页在四周内清空。

这里还有个坑。功能下线不等于地址可以消失,有外链的旧地址要先跳转再退出索引。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。

作者 9823189