检查网站死链前,最需要准备的不是某款工具,而是一份能覆盖全站入口的URL清单、可用的服务器或日志访问权限,以及明确的检查范围。缺少这些信息,工具只能看到你手动输入的几页,内链、旧链接和外部入口造成的死链很容易被漏掉。一个常见误解是:直接打开在线死链扫描工具,输入首页,就能查清全站死链。实际上,爬虫通常只沿着可抓取的链接前进,遇到登录墙、robots.txt限制、JavaScript渲染或孤岛页面就会停下,检查结果自然不完整。
准备工作的第一步是划定范围。你需要明确这次检查覆盖哪些内容:整站还是某个栏目,桌面端还是移动端,当前线上版本还是包含历史URL。范围不同,准备的信息也不同。
如果只有首页,爬虫可能只能发现导航和首页正文中的链接。分页、筛选参数、文章内链和只在特定条件下出现的链接,往往需要额外提供入口。
不要只依赖爬虫现场发现链接。检查前,把已知URL来源整理成清单,后续才能对比工具结果是否漏抓。常见来源包括:
这些来源并不等价。站点地图只代表站点希望被发现的页面,不保证收录;访问日志能反映真实请求,但可能混入扫描器和已删除页面;外部引用可能指向早已不存在的地址。把它们分开记录,检查时才能判断某条死链是内链问题、外链问题还是历史遗留问题。
检查前要确认工具或执行人具备什么权限,以及站点是否存在抓取限制。需要准备的信息包括:
这里有一个关键区分:robots.txt 的抓取限制不等于可靠的索引移除。某条URL被robots.txt禁止抓取,只说明爬虫被要求不要抓取,不说明它一定不会出现在搜索结果中,也不说明这条链接在站内已经失效。检查死链时,如果工具遵守robots.txt,被禁止的目录就不会被扫描,结果中会缺少这部分链接。此时应单独核对这些目录,而不是直接把“工具没报错”当成“没有死链”。
准备信息时,要能记录每个URL返回的状态码和跳转过程。判断一条链接是否为死链,不能只看“能不能打开”。
404 和 410:通常表示目标资源不存在,是明确的死链信号。301 和 302:表示跳转,需要继续跟踪最终落地页是否有效。403 和 401:可能是权限问题,不一定是死链,需要结合访问条件判断。500 及以上:服务器错误,可能是临时故障,也可能是页面逻辑问题。跳转链路过长也值得记录。例如 A 跳 B、B 跳 C、C 返回404,最终结果仍是死链。只检查第一跳会误判为正常。
检查前还要确定:发现死链后依据什么决定处理方式。常见处理条件如下:
这些判断需要数据支撑,所以检查前最好准备好访问日志、外链来源和内容变更记录。没有这些信息,就只能凭感觉决定删链接还是做跳转。
下一步,先整理一份包含首页、站点地图、CMS导出URL和近期访问日志路径的清单,再选择支持自定义入口和状态码记录的检查方式。检查完成后,把结果按内链、外链、历史URL和跳转链分类,逐项核对后再决定修正、重定向还是移除。