先看现象。GSC 的找不到 404 报告一周内从两百条涨到三千多条,站点没有改版,也没删文章,前端访问一切正常。

把日志和配置对完,能解释这个现象的基本就这几处。站内某处批量生成了错误的内链。另一种情况是外部垃圾链接指向了不存在的地址。

另外,URL 参数被拼接错误,生成了大量无效地址。

第一件事是按路径前缀聚合 404 记录

awk '$9==404 {print $7}' access.log | cut -d/ -f2 | sort | uniq -c | sort -rn | head

定位生成错误链接的页面

grep -rn 'href="/undefined' /www/wwwroot/site/wp-content/themes/

末了对确定不再使用的地址返回 410

return 410;

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

报错是间歇性的,我蹲守了半小时才抓到一次完整现场。

怎么算真的好了,看的是同一批现象。新增 404 数量回落到每天个位数,报告里的无效地址逐步被清理,抓取预算回到正常页面。

404 本身不影响整站,但大量 404 会浪费抓取预算,重点是找到生成源头而不是逐个提交删除。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。

作者 9823189