站点自定义 404 页面做得比较完整,带了导航、推荐和搜索框,正文有一千多字,状态码确实是 404,但蜘蛛反复抓取,索引报告里这批地址一直不消失。
一开始怀疑是「404 模板没有加 noindex,状态码之外的信号不明确」,查了一圈,方向不对。
排查方向其实有限,先把可能性排一排。404 页面内容过丰富,被蜘蛛当成正常落地页反复重试。还有一种是页面里的推荐链接把蜘蛛带回站内,形成循环抓取。
少数情况下是软 404 与真 404 混在一起,报告无法区分。
先确认状态码与正文长度
curl -s -o NUL -w "%{http_code} %{size_download}\n" https://www.example.com/not-exist-page/
随后看 404 页面是否带 noindex
curl -sI https://www.example.com/not-exist-page/ | findstr /i x-robots
给 404 模板加 noindex 并精简推荐位
echo '<meta name="robots" content="noindex">';
等前面都确认过,再观察报告里该类地址的数量
curl -s https://www.example.com/not-exist-page/ | findstr /i "<title>"
恢复的判定其实很直接。404 页加 noindex 并收掉大部分推荐后,这批地址在报告里逐步清零,抓取量也回落。
补一句。404 页面越丰富,蜘蛛越愿意反复来,状态码正确只是第一步,还要让它明白这里没有内容。这类问题最好一次改到位,反复小改反而容易把原因搅混。
