改动前保存原始状态的核心做法是:在动手修复404之前,把当前返回404的URL、服务器响应头、页面内容或重定向规则完整复制一份到独立位置,并记录改动时间与改动人。这样一旦修复方案导致误伤正常页面、重定向链变长或旧链接被错误指向首页,可以按快照逐项还原。保存动作必须在修改服务器配置、主题模板或重定向插件之前完成,而不是改完再补记录。
假设某站点有约200个失效URL,运营者打算在服务器配置里加一条规则,让所有404请求返回301并跳到首页。改动前应保存三类原始状态:一是失效URL清单,二是这些URL当前的HTTP状态码与响应头,三是服务器配置或重定向规则的原文。缺少第一类,改完后无法判断哪些URL原本就不存在;缺少第二类,无法对比修复前后的状态变化;缺少第三类,出错时只能凭记忆回滚。
Location响应头和最终落地URL。命令行可用curl -I,浏览器开发者工具的Network面板也能看到。robots.txt、服务器重定向配置、主题里的404模板、重定向插件规则各复制一份,文件名带上日期,存放在站点目录之外。常见错误有三种:只备份数据库不备份配置,导致规则层改动无法还原;只记录URL不记录状态码,改完后无法证明某个URL原本是404还是301;把备份文件放在站点根目录下,被新规则一并影响或可被公开访问。
方案一是个别URL设置301到最相关的新页面。适用条件是该URL曾有真实内容、有外部链接或搜索流量,且存在主题相近的替代页面。判断依据是:改完后该URL返回301,落地页内容与旧页面主题一致,用户不需要再次点击才能找到目标内容。
方案二是让失效URL继续返回404,只优化404页面本身的导航与提示。适用条件是该URL从未有过内容、属于参数拼接产生的垃圾链接,或没有合适的替代页面。判断依据是:强行301到首页会让大量不相关URL指向同一页面,用户和抓取程序都无法从落地页获得与原请求匹配的信息。此时保留404状态、提供站内搜索和分类入口更合适。
两种方案可以并存:对有替代内容的URL做301,对无替代内容的URL保留404并优化页面。保存原始状态的意义在于,改完后能按URL逐条核对采用了哪种方案、是否符合上述判断依据。
robots.txt里的抓取限制不等于索引移除,用屏蔽抓取的方式处理404并不会让已收录URL从结果中消失;站点地图也不保证收录。修复404时应以HTTP状态码和页面内容为准,而不是以是否提交站点地图为准。
下一步:先按上面的步骤导出当前404清单和配置备份,再逐条决定哪些URL做301、哪些保留404,改完后用同一份清单复核状态码。