Broken Link Checker

死链检查器会抓取一个页面,收集其上的每个链接和图片,并逐一请求它们,看访客真正会得到什么。在下方粘贴一个页面 URL:每个可抓取的链接都会被检查并分类为正常、重定向、损坏、服务器错误、超时或不可达;绝不能抓取的链接——mailto:、tel: 和页内片段——会被列出但不会被请求;解析到私有或被屏蔽地址的链接会被报告为已跳过,绝不抓取。每次运行只查一个页面,最多 300 个链接;如果一次运行提前停止,部分结果会被标注为部分结果——绝不会冒充完整结果。

最后更新:

限制,明说:每次运行只查一个页面(这不是全站爬取),每次最多检查 300 个链接,链接多的页面一次运行可能需要约 25 秒。本检查器限制每个地址每小时 5 次运行。

两次检查之间总冒出新死链?用 myeventwatch 免费监控——到期和宕机提醒,无需绑卡。

这个检查器做什么——以及不做什么

提交一个页面后,检查器会抓取它一次,解析 HTML,收集其 <a> 链接和 <img> 图片的目标地址,并以页面重定向后的最终地址为基准解析相对 URL。然后逐个请求每个唯一的网址:重定向会被跟随并计数,所以一个要跳两次才通的链接会被报告为带跳数的重定向,而不是干净利落的正常。结果是每个链接一份带最终 HTTP 状态码的判定——这正是浏览器、搜索引擎爬虫或恼火的访客点击时会遇到的同一份证据。

有三类链接被刻意永不抓取。非 Web 协议的地址——mailto:、tel:、javascript: 及其同类——根本不是 HTTP 请求,因此它们会被列入“未抓取”并说明原因,而不是被伪造出一个状态。纯片段链接(如 #section)指向检查器已经拿到的页面内部,没有新东西可请求。而主机解析到私有、回环或其他被屏蔽地址的任何链接都会被报告为已跳过:公共检查器绝不能成为撬入他人内部网络的杠杆,所以这些目标只被点名、计数,并被严格放过。

如何读懂判定,以及修复的正确顺序

先处理指向你自己站内的损坏链接:内部链接上的 404 是你掌控的一扇通向虚无的门,修好它——恢复页面、改正 URL 或把链接指向替代页面——能同时帮助每一位访客和每一个爬虫。其次是重定向链:搬家后一次重定向很正常,但两次以上的跳转会拖慢每一次点击、浪费爬取精力,所以把链接更新为最终地址;需要看清全貌时,HTTP 状态链追踪器会展示逐跳的完整路径。损坏的图片排第三——它们很少妨碍阅读,却会让一个健康的页面看起来像被遗弃了。超时和服务器错误在动手前值得复查:5xx 或超时可能只是一分钟的繁忙,而不是死页面;而持续不可达的主机是 DNS 或托管问题,不是链接问题。

这个工具刻意每次运行只查一个页面。全站爬取是另一种工具——它属于你的 CMS 报告、服务器日志或 Search Console——假装单页检查能覆盖全站是不诚实的。对你的主页、关键落地页,以及任何刚改版、迁移或裁剪过的页面运行本检查器,并阅读配套指南在访客之前找到死链,了解何时检查、按什么顺序修。每次运行最多检查 300 个链接;如果一个页面携带更多,或运行触及时间上限,结果会明说并标注为部分结果,而不是默默截断。

每种结果状态的含义

正常链接已被抓取,最终响应为成功(2xx)且无需重定向——访客正好落在链接指向的位置。
重定向链接可用,但要经过一次或多次重定向(3xx)才到达。计数显示为抵达最终成功所跟随的跳数。
损坏(4xx)服务器以客户端错误回应——最常见的是 404 未找到或 410 已删除。链接承诺的页面不在那里。
服务器错误(5xx)目标服务器未能正常应答(500、502、503、504 等)。链接可能没问题,服务器有问题——改动任何东西之前先复查。
超时目标未在检查器的时间限制内响应。把单次超时当作“慢或忙”,把重复超时当作真问题。
不可达根本无法建立连接——DNS 失败、连接被拒或主机已死。出问题的是地址本身,而不只是其上的某个页面。
已跳过(被屏蔽)链接解析到私有、回环或其他被屏蔽地址,因此只被报告、从未被抓取。公共检查器不得探测内部网络。

常见问题

这个检查器会爬取我的整个网站吗?

不会。它每次运行只检查你粘贴的那一个页面,以及该页面上的每个链接和图片,最多检查 300 个链接。它不会顺着链接继续爬取网站的其余部分。要看全站情况,请用你的 CMS、服务器日志或 Search Console,并对最重要的页面运行本检查器:主页、关键落地页,以及任何最近改版或迁移过的页面。

为什么有些链接被列出了却标记为“未抓取”?

因为抓取它们要么没有意义,要么是错的。非 Web 协议的链接——mailto:、tel:、javascript: 等——不是 HTTP 请求,没有状态可报告;片段链接(#section)指向已抓取页面的内部。这两类都会连同原因一起列出,让账目对得上:找到的链接总是等于已检查的链接,加上已列出但未抓取的链接,再加上部分运行尚未触及的剩余部分。

为什么一个链接会返回“已跳过”?

它的主机解析到私有、回环或其他被屏蔽地址。一个会抓取这类目标的公共链接检查器可能被用来探测内部网络——路由器、管理面板、云元数据端点——所以本检查器把这类链接报告为已跳过,从不请求它们。如果链接在你自己的页面上且指向内部地址,那通常本身就是个值得修的错误:你的访客同样到不了那里。

结果被标注为部分结果。发生了什么?

运行在每个可抓取链接都被检查完之前停了下来——页面携带的链接超过了 300 个上限,或运行触及了时间限制。摘要始终显示已检查的链接数与可抓取链接总数,表中缺失的链接是未检查,而不是健康。重新运行检查以再次覆盖同一页面,并把你已经拿到的判定当作有效:部分运行中发现的损坏链接依然是损坏的。

一个链接显示服务器错误,但我打开它是正常的。为什么?

服务器错误和超时往往是暂时的:目标在检查的那一刻正忙、在重启或在限流,一分钟后就好了。在改动一个报告 5xx 或超时的链接之前,先重新运行检查。如果同一个链接反复失败、而在你的浏览器里却总是正常,差异往往来自目标方的地域、缓存或机器人处理——HTTP 状态链追踪器可以展示检查器式请求所走的确切响应路径。