修复404后,验证的核心不是看页面能否打开,而是确认服务器对原URL返回了正确的状态码,并且新目标可被正常抓取。最直接的方法是使用curl查看响应头中的状态行,再结合浏览器开发者工具和站点日志复查。
404修复通常有两种方向,验证标准完全不同:
200 OK,且响应体是真实内容而非空壳。301 Moved Permanently,并在Location头中指向新URL;新URL再返回200。302或307,但长期迁移不建议用临时跳转,避免信号无法传递。如果原URL仍返回404,说明修复没有生效,需要先检查服务器配置、重定向规则或文件路径,而不是继续观察收录情况。
在终端执行以下命令,只取响应头:
curl -I https://example.com/old-page
观察第一行,例如HTTP/1.1 200 OK或HTTP/1.1 301 Moved Permanently。若是301,继续执行:
curl -IL https://example.com/old-page
-L会跟随跳转,最终显示链尾状态码。判断标准:链尾必须是200,且跳转次数不宜超过两三次,否则可能被判定为跳转链过长。
注意:curl默认使用HEAD请求,部分服务器对HEAD和GET返回不同状态。若结果可疑,改用curl -s -o /dev/null -w "%{http_code}" URL发送GET请求,只输出状态码数字。
命令行通过后,还需确认实际访问环境一致:
软404是常见遗漏:页面返回200,但内容显示“未找到”或空白。这类响应不会在状态码上暴露,需要人工查看页面正文和标题。
状态码正确不等于索引已恢复。可以按以下顺序复查:
robots.txt是否仍屏蔽该路径。robots.txt的限制只影响抓取,不等于可靠的索引移除,但会阻止搜索引擎重新获取修复后的页面。noindex标签。若存在,即使返回200也不会被索引。索引更新需要时间,不要以固定天数作为判断依据。可执行的一步是:在修复后的一段时间内,定期用同一命令复查状态码,确认没有因缓存、CDN或配置回滚再次变成404。
若复查仍返回404,按可能性逐一排查:
区分“可能原因”和“已经定位的原因”:先用命令确认实际返回的状态码和跳转链,再针对命中的环节修改,不要同时改动多项配置。
下一步:选定一个已修复的URL,执行curl -IL记录完整跳转链和最终状态码,再对照浏览器Network面板确认结果一致;若不一致,优先检查CDN缓存与服务器配置差异。