如何检查网站死链,改动前怎样保存原始状态

📍 WDQWDWQD987AAAAA:216.73.216.170
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /34d5d5046cf5.html
📄

如何检查网站死链,改动前怎样保存原始状态

改动前保存原始状态的核心做法是:先对当前可访问的页面清单、链接关系、HTTP状态码和重定向规则做一次完整快照,再把快照与源文件一起归档,确保改动后能逐项对比、随时回退。检查死链与保存原始状态应同时进行,因为死链清单本身就是改动前基线的一部分。

先明确要保存哪些原始数据

需要保存的不是整站文件本身,而是能反映“改动前链接现状”的几类记录:

可执行检查清单:每项查什么、怎么查、结果说明什么

1. 抓取前先冻结基线

要查什么:改动前站点是否处于稳定状态。 怎么查:在计划改动前,用爬虫工具对全站做一次完整抓取,导出URL列表和状态码;同时用版本控制或压缩包备份模板、配置和重定向规则文件。 结果说明什么:如果抓取期间状态码频繁变动,说明站点本身不稳定,此时保存的快照不能作为可靠基线,应等稳定后重新抓取。

2. 逐项检查内部链接状态码

要查什么:站内链接是否存在指向404或410的地址。 怎么查:用爬虫工具抓取全站,筛选状态码为4xx的URL,并记录每个死链的出现页面。 结果说明什么:4xx表示目标资源已不可用。若是站内链接指向4xx,说明链接需要修复或改为指向有效页面;若外部链接指向本站4xx,则属于外链层面的问题,处理优先级不同。

3. 检查重定向链和跳转次数

要查什么:是否存在多跳重定向、循环重定向或指向404的重定向。 怎么查:对已知的旧URL逐个请求,记录每一跳的状态码和Location头,直到最终响应。 结果说明什么:单跳301指向200是正常状态;多跳会拖慢抓取并可能丢失传递信号;循环重定向会导致抓取失败,必须优先修复。

4. 对比站点地图与真实可访问URL

要查什么:站点地图中列出的URL是否都能正常访问。 怎么查:提取站点地图中的所有URL,与爬虫抓取到的200状态URL做差集。 结果说明什么:站点地图里出现404或410,说明地图未同步;但站点地图本身不保证收录,它只是提交给搜索引擎的参考文件,不能把地图存在等同于页面可索引。

5. 核查robots.txt与抓取限制

要查什么:是否有本应可访问的URL被robots.txt屏蔽。 怎么查:读取robots.txt中的Disallow规则,与爬虫抓取结果比对,确认被屏蔽的URL是否确实不应被抓取。 结果说明什么:robots.txt的抓取限制不等于可靠的索引移除。被屏蔽的URL仍可能因外部链接而被索引,因此不能用robots.txt代替404或noindex处理死链。

6. 保存快照并标注时间戳

要查什么:快照文件是否完整、可追溯。 怎么查:将URL清单、状态码、重定向路径、站点地图和robots.txt放入同一归档目录,文件名包含抓取日期,例如crawl-2025-06-01.csv。 结果说明什么:带时间戳的快照能在改动后逐项对比。若缺少时间戳,无法判断某条记录是改动前还是改动后产生的。

一个可执行的对比示例

假设改动前抓取到/old-page返回301并跳转到/new-page,而/new-page返回200。改动后再次抓取,若/old-page变成404,说明重定向规则被误删;若/new-page变成404,说明目标页被删除。两种情况都可通过改动前快照快速定位,而不必凭记忆猜测。

判断结果时注意适用条件

不同搜索引擎对重定向、robots.txt和站点地图的支持细节需要分别核查,不能用一个平台的结果推断另一个平台。HTTPS只保证传输加密,不保证站点没有死链或安全漏洞,因此死链检查仍要基于状态码和链接关系本身。若改动涉及大量URL,建议分批次保存快照,每批改动后立即对比,避免一次性改动后无法区分问题来源。

下一步:在正式改动前,先按上述清单完成一次全站抓取和文件归档,把状态码、重定向路径和站点地图存为带日期的快照,再开始修改链接或重定向规则。

图1 图2

nginx