判断死链接检测中的问题属于哪一层,核心是看“链接是在哪一步失效的”:是页面里写错了地址,是服务器返回了错误状态,是跳转链断了,还是搜索引擎根本没抓到它。先分层,再决定是改内容、改服务器还是改抓取配置,能避免把服务器问题当成编辑问题反复修。
做死链接检测时,同一个“打不开”的现象可能来自不同层。可以按下面顺序排查:
href 写错、相对路径拼错、锚文本指向了已删除页面。robots.txt 禁止抓取,或页面没有被搜索引擎发现。判断顺序建议从服务器层开始,因为状态码最客观。用命令行对单个 URL 发起请求,看返回状态:
curl -I -L https://example.com/old-page
如果返回 404 或 410,问题在服务器层或内容层;如果返回 200,说明地址可访问,问题可能出在跳转层或抓取层。这里的 -L 会跟随跳转,去掉它可以看到第一跳的状态。
在判断层级之前,先固定三件事:检测哪些链接、以什么为正确基准、用什么工具记录。范围可以按栏目、按模板或按全站划分;基准是“这个链接本来应该指向哪个有效页面”。没有基准,就无法区分“链接写错”和“目标页面被删”。
准备一个表格,至少记录:来源页面、链接地址、HTTP 状态、跳转次数、最终地址。这些字段能直接对应到不同层。例如状态 404 且无跳转,多半是内容层或服务器层;状态 200 但最终地址与预期不符,多半是跳转层配置问题。
批量检测时,不要只看“是否 404”。把结果分成三类处理:
robots.txt 的抓取限制不等于可靠的索引移除,它只影响抓取,不直接等同于删除索引。如果状态码全部正常,但搜索结果里仍出现死链接,要进入抓取层核查:查看该 URL 是否被 robots.txt 拦截,查看站点地图是否包含它。站点地图不保证收录,它只是提交候选地址;HTTPS 也不保证安全无漏洞或排名。不同搜索引擎对抓取和索引的处理须分别核查,不能用一个平台的结果推断另一个平台。
修复后要回到同一层验证,而不是只看首页能否打开。若改的是内容层,重新抓取来源页面,确认 href 已更新;若改的是服务器层,重新请求原地址,确认状态码从 404 变为 200 或 301;若改的是跳转层,确认跳转次数减少且终点返回 200;若改的是抓取层,确认 robots.txt 不再拦截,并等待搜索引擎重新抓取后再观察。
验证时保留修复前后的状态码记录。判断结果的标准是:原问题地址不再返回 4xx 或 5xx,跳转链不超过合理层数,且来源页面中的链接指向有效目标。如果验证后仍失败,说明之前判断的层不对,应回到服务器层重新取状态码。
死链接检测不是一次性任务。维护时可以固定一套检查项:新内容发布前检查内链目标是否存在;栏目调整后检查旧地址是否有 301;服务器变更后抽查关键 URL 的状态码;定期对比站点地图与可抓取页面。每次只改一个层,避免同时改链接和服务器配置导致无法判断哪一步生效。
下一步,选一个当前返回异常的 URL,用 curl -I 取第一跳状态码,再决定是改链接、改跳转还是查服务器日志。