确定影响范围的核心做法是:先把404按“URL层级、来源页面、访问入口、时间窗口”四组维度分组,再分别核对服务器日志、站点地图、内链和外部链接,最后用爬虫或日志回放验证分组是否覆盖全部异常。适用前提是你已经能拿到访问日志或至少能按目录抽样测试;如果只能看到单个页面报错,就先从该页面的上级目录和站内入口查起,而不是直接全站改配置。
单个URL返回404,影响范围通常限于该页及其直接内链;整段目录、同一模板生成的页面或同一批旧链接集中404,则更可能是路由规则、重写规则或批量迁移遗留问题。判断时不要只看浏览器访问结果,因为浏览器可能命中缓存或本地跳转。可以按下面顺序执行:
/old/、/product/。curl -I或类似方式请求,确认返回码和响应头是否一致。如果同一前缀下抽样结果一致,说明影响范围可能覆盖该目录;如果抽样结果混杂,说明问题更可能集中在个别页面或个别参数组合,不能按整目录处理。
404的影响范围不只取决于有多少URL失效,还取决于有多少正常页面在链接它们。一个失效URL如果没有入口,影响主要是外部链接和直接访问;如果被导航、列表页或正文大量引用,影响会沿着内链扩散。检查项包括:
这里要区分两种处理方案:保留404并修复入口适合页面确实已删除、且没有等价内容的情况;设置301跳转适合存在高度对应新页面、且旧URL仍有访问需求的情况。选择依据是“旧URL是否有可替代内容”和“入口是否仍在站内”,而不是看哪种做法更省事。站点地图不保证收录,robots.txt的抓取限制也不等于可靠的索引移除,因此不能用屏蔽抓取来代替对影响范围的判断。
同一批404可能来自不同入口:网页搜索、站内搜索、外部链接、旧邮件或历史收藏。要确定影响范围,需要把日志时间与改版、删除、重命名等操作时间对齐。做法是:
如果404只在某个入口出现,优先修该入口的链接;如果所有入口都出现,再考虑路由或批量迁移问题。不同搜索引擎和平台对404、301的处理并不完全相同,需要分别核查,不能用一个平台的结果推断全部。
处理完成后,验收看三点:原先抽样的失效URL是否按预期返回404或301;站内爬虫是否不再从正常页面链接到失效URL;日志中该前缀的404请求量是否回落到与删除规模相符的水平。若仍有个别URL反复出现,回到来源页面清单继续定位。下一步可以直接从日志中导出404清单,按目录前缀和来源页面各做一次分组,再决定是修入口、做301,还是保留404。