修复死链后,验证的核心是看原URL现在返回什么状态码、最终落到哪个地址,以及搜索引擎是否已经重新抓取。最直接的做法是:对每个已修复的URL发一次请求,记录状态码和重定向链,再和修复前的记录逐条对比。只有状态码变为200或301指向有效页面,且内容与原链接意图一致,才算修复生效。
很多人把“页面能打开”当成修复完成,这不够。需要区分三个层次:
前两层你可以自己控制并立即验证,第三层取决于搜索引擎的抓取节奏,无法保证时间。因此验证工作应先把前两层做扎实,再单独跟踪索引层。
如果修复的URL不多,用命令行逐个检查最快。以curl为例,只看状态码和重定向目标:
curl -o /dev/null -s -w "%{http_code} %{redirect_url}\n" https://example.com/old-page
把修复清单里的URL逐行放进一个文本文件,循环执行,输出每一条的状态码。判断标准:
适用条件:URL数量在几十到几百条、你能运行命令行。如果URL成千上万,手工循环会拖慢进度,应改用爬虫工具或日志分析。
修复时常见的错误是A跳B、B又跳C,甚至跳回A形成循环。验证时要看完整链条,而不只是最后一跳。
用curl -L -o /dev/null -s -w "%{num_redirects} %{url_effective}\n"可以看跳转次数和最终地址。判断结果:
服务器日志是验证索引层最可靠的依据。在日志里筛选原URL,看修复之后有没有新的抓取记录,以及返回的状态码是什么。
检查项包括:
如果日志里一直没有新抓取,说明搜索引擎还没重新访问,这不代表修复失败,只代表索引层尚未更新。此时可以提交站点地图或使用站长平台的URL检查功能请求抓取,但收录和更新仍由搜索引擎决定,不保证时间。
另外注意:robots.txt里如果仍屏蔽着这些URL,抓取请求不会正常进行,也就无法完成索引层验证。robots.txt的限制和索引移除是两回事,不要用屏蔽代替修复。
人手不足时,不必一次验证全部URL。按以下优先级处理:
每一步的验证结果只有两种:状态码和跳转目标符合预期,或不符合。不符合的回到修复环节重做,不要跳过。
下一步建议:从修复清单中挑出前20条有外链的URL,用上面的curl命令跑一遍,把状态码、跳转次数、最终地址记成一张表,作为后续复查的基线。