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 狀態鏈追蹤器可以展示檢查器式請求所走的確切回應路徑。