改版或迁移时做死链接检测,核心不是只看“有没有404”,而是核对旧URL是否被正确处置、内链和站点地图是否同步更新、以及搜索引擎能否顺畅抓到新地址。最稳妥的做法是:迁移前先建立旧URL清单和映射关系,迁移后对每个旧URL逐一请求,确认返回状态码和跳转目标,再检查站内链接、站点地图和robots.txt是否与新结构一致。
改版或迁移前,先把旧站可被抓到的URL整理成一张表,至少包含旧URL、页面主题、是否有对应新页面、计划处理方式。获取清单的方式可以组合使用:从站点地图提取、从服务器访问日志提取、用爬虫工具抓取、以及从站长平台的历史数据中导出。清单越完整,后续漏检越少。
拿到清单后,对每个旧URL做一次判断,常见处理方案有两种:
需要避免的做法是把大量不相关旧URL统一跳转到首页,这会让搜索引擎难以判断新页面与旧页面的对应关系,也会让用户落地后找不到原内容。
映射关系确定后,要对每个旧URL实际发起请求,核对返回结果。检查项包括:
可以用命令行工具批量请求,例如对一批URL执行 curl -I 查看响应头中的状态码和Location;也可以使用爬虫工具模拟抓取,一次性输出状态码、跳转目标和跳转次数。结果说明什么:如果某个旧URL返回301且目标为200,说明该项通过;如果返回302、404、500或跳转链过长,就需要回到映射表修正规则。
旧URL处理完,还要核对站内是否仍有指向旧地址的链接。改版后模板、导航、文章正文中的内链如果还指向旧URL,用户和爬虫会先经过一次跳转才能到达新页面,增加无谓消耗。检查方式是用爬虫抓取新站,筛选出所有指向旧域或旧路径的链接,逐条替换为新URL。
站点地图要同步更新为新URL,并确保其中每个地址返回200。站点地图不保证收录,它只是帮助搜索引擎发现地址的辅助文件,因此不能把“已提交站点地图”当作迁移完成的标志。
robots.txt 要确认没有误屏蔽新目录或新URL规则。需要注意,robots.txt 的抓取限制不等于可靠的索引移除:被robots.txt屏蔽的页面仍可能因外部链接出现在搜索结果中,只是搜索引擎无法抓取内容来判断。如果确实要移除旧页面,应结合301、410或页面上的noindex处理,而不是只靠robots.txt。
把上面的动作整理成一份迁移核对清单,每项都包含要查什么、怎么查、结果说明什么:
curl -I 或爬虫批量请求。返回301为通过,302需改为301,404/500需排查规则。不同搜索引擎对重定向、站点地图和robots.txt的支持与处理方式存在差异,需要分别核查各自的抓取和索引表现。迁移完成后,下一步是持续观察服务器日志中旧URL的请求情况,以及站长平台中的抓取错误和索引状态,发现新的死链接再回到清单中修正。