LinkChecker kiểm tra link hỏng: cặp nguồn đích và tái kiểm
LinkChecker kiểm tra link hỏng là cách dùng công cụ mã nguồn mở LinkChecker để đi qua các trang của một website, thử từng liên kết và báo liên kết nào lỗi. Báo cáo nhìn có vẻ đơn giản, nhưng một dòng Error trong đó có thể là link chết thật, máy chủ đang quá tải, proxy trên đường đi bị hỏng, hay website chặn chính User-Agent của công cụ. ProxyVN chạy LinkChecker 10.6.0 ngày 03/11/2026 trên một website mẫu có cài sẵn từng loại lỗi, rồi tái kiểm từng dòng để tách link hỏng thật khỏi các báo động giả.
LinkChecker kiểm tra link hỏng: mục tiêu và phạm vi không lặp
Phần đầu chốt bài toán, đầu ra và những gì bài không làm.
Bài toán
Website sống lâu thì link chết dần: trang đối tác đổi cấu trúc, bài cũ bị gỡ, tệp đính kèm bị xóa, tên miền hết hạn. Người đọc bấm vào gặp trang lỗi, công cụ tìm kiếm thấy tín hiệu chất lượng kém. Kiểm định kỳ và sửa link là việc vệ sinh cơ bản.
Cái khó là báo cáo của công cụ kiểm link luôn có lẫn báo động giả. Gửi nguyên báo cáo cho đội nội dung sửa, họ sẽ mất công với những link vốn vẫn sống.
Đầu ra nghiệm thu
Đầu ra gồm ba thứ. Một là danh sách cặp trang nguồn và URL đích, để biết sửa ở đâu. Hai là kết quả tái kiểm cho mọi dòng lỗi, có số lần thử và mã trạng thái từng lần. Ba là báo cáo phân loại: link hỏng thật, lỗi tạm thời, lỗi mạng, báo nhầm do chặn bot.
Phạm vi không lặp
Bài không phải hướng dẫn audit website tổng thể. Báo cáo kỹ thuật đầy đủ như status theo loại nội dung, header, cache thuộc về công cụ audit như SiteOne Crawler. Bài cũng không bàn cách lấy toàn bộ URL của website, phần đó có trong bài lấy tất cả URL của website.
Trọng tâm duy nhất là quan hệ nguồn và đích, và cách tái kiểm để báo cáo đáng tin.
Nguồn kiểm chứng
Tùy chọn dòng lệnh và plugin được đối chiếu với tài liệu LinkChecker và lệnh linkchecker với tham số help trên bản cài từ PyPI. Mọi số liệu trong bài lấy từ lần chạy thật trên máy lab.
Ai nên đọc
Người phụ trách nội dung website muốn có danh sách link cần sửa mà không phải tự kiểm lại. Người chạy kiểm link trong CI và thấy pipeline đỏ vì lỗi không có thật. Người kiểm link qua proxy công ty và không chắc lỗi nằm ở website hay ở proxy.
Kiểm tra liên kết từ tập URL giới hạn và phân biệt link lỗi với lỗi mạng proxy khi LinkChecker kiểm tra link hỏng
Phần này giải thích LinkChecker làm gì và báo những loại kết quả nào.
Cách LinkChecker làm việc
LinkChecker bắt đầu từ một hay nhiều URL, tải trang, lấy mọi liên kết, rồi kiểm từng liên kết. Với liên kết trong cùng website, nó tải tiếp và lặp lại theo độ sâu cho phép. Với liên kết ra ngoài, mặc định nó chỉ kiểm cú pháp, muốn kiểm thật phải bật check-extern.
Công cụ viết bằng Python, cài được qua pip, chạy trên Windows, Linux và macOS. Bản dùng trong lab là 10.6.0, ghi ngày phát hành 2025-07-28.
Kết quả Valid và Error
Mỗi URL có kết quả Valid hoặc Error, kèm chuỗi kết quả như 200 OK, 404 Not Found hay thông báo ngoại lệ. Cảnh báo là một lớp riêng: URL vẫn Valid nhưng có điều đáng chú ý, như bị chuyển hướng hay bị giới hạn tốc độ.
Lab phát hiện một điểm cần nhớ: mã 429 Too Many Requests được LinkChecker xếp vào Valid, kèm cảnh báo http-rate-limited và giá trị Retry-After. Nếu chỉ lọc dòng Error, link bị giới hạn tốc độ sẽ không hiện ra, dù thực tế mình chưa biết nó còn sống hay không.
Lỗi phản hồi và lỗi mạng
Có hai nhóm lỗi khác hẳn nhau. Lỗi phản hồi là máy chủ đã trả lời, với mã như 404, 403, 500, 503. Lỗi mạng là không có câu trả lời: hết thời gian chờ, từ chối kết nối, không phân giải được tên miền, lỗi TLS.
Trong báo cáo LinkChecker, lỗi phản hồi hiện mã trạng thái, còn lỗi mạng hiện tên ngoại lệ của thư viện requests như ReadTimeout hay ConnectionError. Phân biệt hai nhóm này là bước đầu tiên của việc tái kiểm.
Proxy làm mờ ranh giới
Khi kiểm link qua proxy, một số lỗi do proxy sinh ra lại mang hình dạng lỗi phản hồi. Proxy không kết nối được tới đích sẽ trả 502 Bad Gateway hay 504 Gateway Timeout. Trong báo cáo, dòng đó trông giống hệt một website đang lỗi máy chủ.
Lab có một proxy cục bộ cố tình trả 502 cho mọi yêu cầu tới một host. Kết quả phần sau cho thấy cả link sống lẫn link chết trên host đó đều thành 502.
Chọn seed, độ sâu và phạm vi external link cần kiểm khi LinkChecker kiểm tra link hỏng
Phạm vi quyết định công cụ chạy bao lâu và báo cáo dài bao nhiêu.
Website mẫu
Máy chủ http.server ở 127.0.0.1 cổng 9871 có trang chủ trỏ tới mọi tình huống. /a và /b là trang thường. /mat trả 404 và được cả trang chủ lẫn /b trỏ tới. /chap-chon trả 503 hai lần đầu rồi mới 200. /cham trả 200 sau 8 giây. /rate trả 429 lần đầu. /bot trả 403 nếu User-Agent chứa chữ LinkChecker, còn lại 200.
Trang chủ còn có link tới /a#gia với neo có thật, /a#khong-co với neo không tồn tại, và /cu chuyển hướng 301 sang /a. Thêm một địa chỉ mailto và một cổng không có dịch vụ. Cuối cùng là hai link tới host thứ hai localhost cổng 9872 đóng vai website ngoài: /ok trả 200, /mat trả 404.
Lệnh chạy
linkchecker -f lc.ini --no-status -v -t 4 --timeout 5 --check-extern \
-F csv/utf-8/run2.csv http://127.0.0.1:9871/
Tham số f nạp tệp cấu hình bật plugin AnchorCheck. v ghi mọi URL, không chỉ lỗi. t là số luồng. timeout là giây chờ kết nối. check-extern kiểm thật link ngoài. F ghi thêm tệp CSV mã hóa UTF-8.
Độ sâu đệ quy
Tham số r đặt độ sâu đệ quy. Mặc định là không giới hạn trong cùng website. Với website lớn, nên chạy theo từng nhánh, mỗi lần một thư mục, hoặc đặt độ sâu nhỏ cho lần kiểm hằng ngày và độ sâu đầy đủ cho lần kiểm hằng tuần.
Seed từ danh sách
Tham số stdin cho đọc danh sách URL từ đầu vào chuẩn. Đây là cách giới hạn phạm vi gọn nhất: kiểm đúng 500 trang có traffic cao, hay đúng danh sách bài mới đăng tháng này, thay vì cả website. Kết hợp độ sâu 1 để chỉ kiểm link trên các trang đó.
Link ngoài: kiểm hay không
Kiểm link ngoài tốn thời gian và tạo request tới website của người khác. Nhưng link ngoài lại là nhóm chết nhiều nhất. Cách cân bằng là bật check-extern với số luồng thấp, chạy thưa hơn, và dùng ignore-url để bỏ qua những tên miền biết chắc ổn định hoặc không cho kiểm tự động.
Link mailto và giao thức khác
LinkChecker nhận ra link mailto và chỉ kiểm cú pháp địa chỉ, ghi Valid mail address syntax. Nó không gửi thư thử để biết hộp thư có tồn tại không. Với link tel, ftp hay javascript, cách xử lý mỗi loại một khác. Nếu không quan tâm, dùng ignore-url với biểu thức như ^mailto: để báo cáo gọn hơn.
Tệp cấu hình thay cho tham số dài
Khi lệnh có nhiều tham số, chuyển sang tệp cấu hình linkcheckerrc dạng INI. Lab dùng tệp lc.ini chỉ có mục AnchorCheck và mục output. Tệp cấu hình đặt trong kho mã cùng website, ai chạy cũng ra cùng kết quả, không phụ thuộc trí nhớ của người gõ lệnh.
robots.txt
LinkChecker đọc robots.txt và tôn trọng theo mặc định. Lab ghi nhận một request tới robots.txt trên mỗi host trước khi kiểm. Tham số no-robots tắt việc này, chỉ nên dùng với website của chính mình. Bài robots.txt khi crawl website giải thích các quy tắc.
Lưu cặp URL nguồn–đích thay vì chỉ danh sách lỗi khi LinkChecker kiểm tra link hỏng
Đây là phát hiện thứ hai của lab.
Một URL, một dòng

Một URL, một dòng
Trong website mẫu, /mat được trỏ tới từ hai trang: trang chủ và /b. Báo cáo LinkChecker, kể cả ở chế độ verbose và tệp CSV, chỉ có một dòng cho /mat, với trang nguồn là trang chủ. Không có dòng nào cho biết /b cũng chứa link này.
Lý do là LinkChecker lưu kết quả theo URL. Lần thứ hai gặp /mat, nó dùng kết quả đã có và không ghi thêm dòng nào. Tổng kết lần chạy ghi 13 links in 13 URLs checked, dù trên website có nhiều link lặp lại hơn thế.
Hệ quả với việc sửa
Đội nội dung nhận báo cáo, vào trang chủ sửa link /mat, rồi đánh dấu xong. Link trên /b vẫn còn đó. Lần kiểm sau, nếu trang chủ đã sửa, /mat được tìm thấy qua /b và báo lại, lần này với trang nguồn là /b. Vòng sửa kéo dài qua nhiều lần kiểm thay vì xong một lần.
Dựng lại cặp nguồn đích
Script tái kiểm của lab lấy danh sách trang nội bộ Valid từ CSV, tải lại từng trang, lấy mọi href, ghép thành cặp trang nguồn và URL đích. Sau đó với mỗi URL lỗi, nó liệt kê mọi trang nguồn. Kết quả: /mat có 2 trang nguồn là trang chủ và /b.
for pg in pages:
body = urllib.request.urlopen(pg, timeout=5).read().decode()
for m in re.finditer(r'href="([^"]+)"', body):
pairs.append((pg, urljoin(pg, m.group(1))))
Tải lại trang nội bộ tốn thêm request, nhưng chỉ cho trang của chính website mình. Với website lớn, có thể lấy cặp nguồn đích từ cơ sở dữ liệu nội dung thay vì tải lại.
Cột parentname trong CSV
CSV của LinkChecker dùng dấu chấm phẩy làm phân cách, không phải dấu phẩy. Các cột gồm urlname, parentname, base, result, warningstring, infostring, valid, url, line, column, name, dltime, size, checktime, cached, level, modified. Hai cột line và column cho biết vị trí link trong trang nguồn, rất có ích khi trang dài.
Script đọc CSV phải đặt delimiter là dấu chấm phẩy. Đọc như CSV thường sẽ ra mỗi dòng một cột duy nhất, lỗi mà lần đầu viết script mình gặp ngay.
Link trong nội dung do người dùng gửi
Bình luận, hồ sơ thành viên, bài diễn đàn thường chứa link ngoài do người dùng tự thêm. Nhóm link này chết nhanh và đôi khi trỏ tới website độc hại. Nên tách phạm vi: kiểm link trong nội dung biên tập theo lịch thường, kiểm link do người dùng gửi theo lịch riêng và xử lý bằng cách gỡ thay vì sửa.
Dùng no-follow-url hay ignore-url theo mẫu đường dẫn của khu bình luận để lần kiểm chính không bị kéo dài bởi hàng nghìn link người dùng.
Nhóm theo trang nguồn
Khi bàn giao, nhóm theo trang nguồn thay vì theo URL đích. Người sửa mở một trang, sửa mọi link lỗi trên đó, rồi qua trang khác. Một trang nguồn có mười link chết thường là dấu hiệu trang đó quá cũ và cần viết lại hay gỡ, không chỉ sửa link.
Phân biệt response lỗi với timeout của tuyến mạng khi LinkChecker kiểm tra link hỏng
Phần này là kết quả lần chạy đầy đủ.
Bảng kết quả LinkChecker
URL |
Kết quả LinkChecker |
Ghi chú |
|---|---|---|
/mat |
Error: 404 Not Found |
Chỉ ghi trang chủ là nguồn |
/chap-chon |
Error: 503 Service Unavailable |
Một request, không thử lại |
/cham |
Error: ReadTimeout |
Timeout 5 giây, trang trả sau 8 giây |
/rate |
Valid: 429 Too Many Requests |
Cảnh báo http-rate-limited |
/bot |
Error: 403 Forbidden |
Chặn theo User-Agent |
/a#khong-co |
Valid: 200 OK |
Cảnh báo Anchor not found nhờ AnchorCheck |
/cu |
Valid: 200 OK |
Cảnh báo chuyển hướng tới /a |
localhost:9872/mat |
Error: 404 Not Found |
Link ngoài chết thật |
127.0.0.1:9879 |
Error: ConnectionError |
Cổng không có dịch vụ, WinError 10061 |
Lần chạy kết thúc trong khoảng 9 giây, báo 6 lỗi và 2 cảnh báo khi chưa bật AnchorCheck. Lỗi cổng đóng mất khoảng 4 giây vì thư viện thử kết nối lại vài lần.
Một request, một phán quyết
Nhật ký máy chủ cho thấy LinkChecker chỉ gửi một request GET tới /chap-chon. Trang trả 503 kèm Retry-After 1, và kết quả là Error. Không có lần thử lại nào trong lần chạy. Với máy chủ đang quá tải ngắn hạn, một lần thử là không đủ để kết luận link hỏng.
Timeout là lỗi của tuyến, không phải của link
/cham trả 200 sau 8 giây. Với timeout 5 giây, LinkChecker báo ReadTimeout. Link không hỏng, chỉ chậm. Tăng timeout thì hết lỗi, nhưng lần chạy chậm hơn. Cách tốt hơn là giữ timeout ngắn cho lượt đầu và tái kiểm riêng các dòng timeout với timeout dài.
Neo không tồn tại
Mặc định LinkChecker không kiểm neo. Bật plugin AnchorCheck bằng tệp cấu hình có mục AnchorCheck, link /a#khong-co hiện cảnh báo Anchor khong-co not found, trong khi /a#gia không có cảnh báo. Link vẫn là Valid vì trang có thật, chỉ có vị trí trong trang là sai.
Neo hỏng ít nghiêm trọng hơn link chết, nhưng hay gặp sau khi đổi tiêu đề bài viết, vì nhiều hệ quản trị sinh id neo từ chữ tiêu đề. Mục lục tự động trong bài dài là nơi hay có neo hỏng nhất. Khi biên tập viên sửa một tiêu đề H2, id neo đổi theo, còn link từ bài khác trỏ vào mục đó vẫn giữ id cũ.
Chuyển hướng không phải lỗi nhưng đáng sửa
/cu trả 301 về /a và được ghi Valid kèm cảnh báo chuyển hướng. Link vẫn hoạt động, nhưng mỗi lần người đọc bấm là thêm một vòng request. Với link nội bộ, sửa thẳng thành URL đích là việc nhỏ mà có ích. Chuỗi nhiều chuyển hướng liên tiếp còn làm chậm hơn và dễ đứt khi một mắt xích đổi.
Báo cáo nên tách nhóm chuyển hướng thành một danh sách riêng, ưu tiên thấp hơn link hỏng, để đội nội dung xử lý khi có thời gian.
Lỗi do cổng hay tên miền không tồn tại
127.0.0.1 cổng 9879 không có dịch vụ nên kết nối bị từ chối ngay. Trên website thật, loại lỗi này thường là tên miền đã hết hạn hay máy chủ đã tắt hẳn. Tái kiểm ba lần vẫn lỗi mạng thì gần như là link chết, nhưng nên kiểm thêm từ một mạng khác trước khi kết luận, vì tường lửa nội bộ cũng có thể chặn.
Qua proxy hỏng

Proxy làm link sống thành 502
Chạy lại với biến môi trường HTTP_PROXY trỏ tới proxy lab ở cổng 9873, NO_PROXY là 127.0.0.1 để link nội bộ đi thẳng. Proxy trả 502 cho mọi yêu cầu tới localhost cổng 9872. Kết quả: localhost:9872/ok và localhost:9872/mat đều báo Error 502 Bad Gateway, tổng số lỗi tăng từ 6 lên 7.
Link sống thành lỗi, link chết thật đổi từ 404 thành 502. Nếu không biết lần chạy đi qua proxy, báo cáo sẽ bảo website đối tác đang sập.
Dấu hiệu nhận ra lỗi của proxy
Proxy trong lab gắn header Via vào phản hồi 502. Nhiều proxy thật cũng làm vậy, hoặc trả trang lỗi có tên phần mềm proxy. Phép thử chắc nhất là gửi lại cùng URL không qua proxy từ một máy khác. Khác kết quả là lỗi nằm ở tuyến đi.
Tái kiểm lỗi tạm thời và xuất danh sách link hỏng có chứng cứ với LinkChecker kiểm tra link hỏng
Phần này mô tả script tái kiểm và kết quả phân loại.
Quy tắc tái kiểm
Mỗi dòng lỗi hoặc có cảnh báo được thử lại tối đa 3 lần với User-Agent giống LinkChecker, nghỉ theo Retry-After nếu có, không thì 1, 2, 3 giây. Sau đó thử thêm một lần với User-Agent trình duyệt. Với link ngoài, thử thêm một lần qua proxy để so. Timeout tái kiểm là 10 giây.
Quy tắc phân loại
Neo không có thì xếp NEO_HONG. Lượt đầu lỗi mà tái kiểm 200 thì TAM_THOI. Tái kiểm vẫn 404 hay 410 thì HONG_THAT. 403 với User-Agent của công cụ nhưng 200 với User-Agent trình duyệt thì CHAN_BOT, tức báo nhầm. Lỗi mạng lặp lại thì LOI_MANG. Còn lại để CAN_XEM cho người kiểm bằng tay.
Bảng phân loại

7 lỗi còn 2
URL |
Tái kiểm |
UA trình duyệt |
Qua proxy |
Phân loại |
Trang nguồn |
|---|---|---|---|---|---|
/mat |
404, 404, 404 |
404 |
HONG_THAT |
/, /b |
|
/chap-chon |
200 |
200 |
TAM_THOI |
/ |
|
/rate |
200 |
200 |
TAM_THOI |
/ |
|
/cham |
200 |
200 |
TAM_THOI |
/ |
|
/bot |
403, 403, 403 |
200 |
CHAN_BOT |
/ |
|
/a#khong-co |
200 |
200 |
NEO_HONG |
/ |
|
localhost:9872/mat |
404, 404, 404 |
404 |
502 |
HONG_THAT |
/ |
127.0.0.1:9879 |
URLError ba lần |
URLError |
LOI_MANG |
/ |
Đọc kết quả
Từ 7 dòng Error và 3 cảnh báo, chỉ có 2 link hỏng thật cần sửa: /mat trên hai trang và link ngoài localhost:9872/mat. Ba dòng là lỗi tạm thời, tái kiểm đều 200. Một dòng là báo nhầm do website chặn User-Agent của công cụ. Một neo hỏng cần sửa nhẹ. Một lỗi mạng cần người xem.
Nếu gửi nguyên báo cáo gốc, đội nội dung sẽ xử lý 7 dòng, trong đó 4 dòng không cần làm gì.
Báo nhầm do chặn bot
/bot là trường hợp hay gặp nhất với website dùng dịch vụ chống bot. Website trả 403 cho User-Agent có chữ LinkChecker vì nó trông như bot, và trả 200 cho trình duyệt. Link không hỏng. Đổi User-Agent của LinkChecker bằng tham số user-agent sẽ hết lỗi, nhưng nên cân nhắc: tự xưng là công cụ kiểm link là cách minh bạch với chủ website.
Với website của chính mình, đưa User-Agent của công cụ vào danh sách cho phép. Với website ngoài, giữ nguyên và xếp dòng đó vào nhóm báo nhầm sau khi tái kiểm.
Chứng cứ cho từng dòng
Mỗi dòng trong báo cáo cuối có mã trạng thái từng lần thử, thời gian, User-Agent đã dùng, có qua proxy hay không. Khi đội nội dung hỏi tại sao link này bị coi là hỏng, câu trả lời có sẵn: ba lần 404 cách nhau vài giây, cả với trình duyệt.
Báo cáo false positive cũng là một đầu ra: danh sách URL mà công cụ báo lỗi nhưng tái kiểm cho thấy vẫn sống, kèm lý do. Danh sách này giúp chỉnh cấu hình cho lần chạy sau, như thêm ignore-url hay tăng timeout cho tên miền chậm.
Đầu ra nghiệm thu: danh sách link nguồn-đích, lỗi được tái kiểm và báo cáo false positive khi LinkChecker kiểm tra link hỏng
Phần cuối gom lại bộ bàn giao, giới hạn và vai trò của proxy.
So với lần kiểm trước
Lưu tệp phân loại của mỗi lần kiểm theo ngày. Lần sau, so tập link HONG_THAT mới với tập cũ. Link mới hỏng là việc ưu tiên, vì thường liên quan tới thay đổi gần đây của website hay đối tác. Link hỏng từ lâu mà chưa sửa là dấu hiệu quy trình xử lý có vấn đề.
Một link xuất hiện ở nhóm TAM_THOI nhiều lần liên tiếp cũng đáng chú ý. Máy chủ đích có thể đang chập chờn thật, và người đọc của mình cũng gặp lỗi đó.
Bộ bàn giao
Bộ bàn giao gồm tệp CSV gốc của LinkChecker, tệp cặp nguồn đích và tệp tái kiểm có phân loại. Kèm một bảng tóm tắt: số link hỏng thật theo trang nguồn, số lỗi tạm thời, số báo nhầm, số lỗi mạng. Kèm lệnh chạy, phiên bản LinkChecker, có qua proxy hay không.
Lịch kiểm hợp lý
Kiểm link nội bộ hằng tuần, link ngoài hằng tháng là nhịp hợp với đa số website nội dung. Website thương mại điện tử đổi sản phẩm liên tục có thể cần kiểm link nội bộ hằng ngày trên nhóm trang danh mục. Mỗi lần kiểm chỉ so với lần trước để thấy link mới hỏng.
Kiểm trong CI
Với website tĩnh sinh từ mã nguồn, chạy LinkChecker sau khi build trên bản xem trước là cách bắt link hỏng trước khi đăng. Trong CI, nên tắt check-extern để pipeline không đỏ vì website ngoài chậm. Kiểm link ngoài để lại cho lịch chạy riêng, có tái kiểm.
Giới hạn của lab
Website mẫu nhỏ, chạy trên máy cục bộ, độ trễ gần bằng 0. Proxy lab là proxy HTTP tự viết, không hỗ trợ CONNECT nên chưa thử link HTTPS qua proxy. Chưa thử website có xác thực, chưa thử tệp PDF hay Markdown với plugin tương ứng. Trang /chap-chon được lab đếm request chung qua hai lần chạy, nên lần tái kiểm nhận 200 ngay lượt đầu.
Tốc độ và lịch sự
Số luồng mặc định của LinkChecker có thể quá nhiều với website nhỏ của người khác. Đặt t thấp khi bật check-extern, và chia lần kiểm link ngoài theo tên miền để mỗi website chỉ nhận vài request. Bài rate limit API khi dùng proxy có cách tính nhịp gọi hợp lý.
Khi nào cần proxy với LinkChecker kiểm tra link hỏng
LinkChecker dùng thư viện requests nên đọc proxy từ biến môi trường HTTP_PROXY, HTTPS_PROXY và NO_PROXY. Lab xác nhận NO_PROXY giữ link nội bộ đi thẳng còn link ngoài đi qua proxy. Proxy cần khi máy chạy kiểm link nằm trong mạng bắt buộc đi qua proxy, hoặc khi muốn kiểm link như người dùng ở một quốc gia vì có website chặn theo vùng.
Khi dùng proxy, ghi rõ vào báo cáo và luôn tái kiểm không qua proxy cho các dòng 502, 503, 504, như lab đã cho thấy. Chuỗi proxy có xác thực viết theo bài định dạng proxy. Với nhu cầu kiểm link từ IP Việt Nam ổn định, anh em có thể mua proxy Việt Nam tại trang chủ ProxyVN. Proxy chỉ đổi đường đi, không đổi kết quả của link thật sự chết, điều bài Web Scraping proxy là gì cũng nhắc.
Checklist LinkChecker kiểm tra link hỏng

Checklist kiểm link
- Giới hạn seed và độ sâu, chạy link ngoài riêng với ít luồng.
- Bật AnchorCheck nếu website dùng nhiều neo.
- Ghi CSV, đọc với dấu chấm phẩy làm phân cách.
- Không lọc chỉ dòng Error: 429 nằm trong Valid có cảnh báo.
- Dựng lại cặp nguồn đích, vì mỗi URL chỉ có một dòng.
- Tái kiểm 3 lần có nghỉ, thử thêm User-Agent trình duyệt.
- Tái kiểm không qua proxy cho 502, 503, 504.
- Bàn giao theo trang nguồn, kèm báo cáo false positive.
Câu hỏi thường gặp về LinkChecker kiểm tra link hỏng
Vì sao link /mat có trên hai trang mà báo cáo chỉ ghi một?
LinkChecker lưu kết quả theo URL, gặp lại thì dùng kết quả cũ và không ghi thêm dòng. Cần tự dựng cặp nguồn đích.
LinkChecker có thử lại khi gặp 503 không?
Trong lab thì không: một request, một kết quả Error. Tái kiểm riêng sau vài giây.
Vì sao 429 lại là Valid?
LinkChecker xếp 429 vào Valid kèm cảnh báo http-rate-limited. Lọc cả cảnh báo khi làm báo cáo.
Làm sao kiểm neo trong trang?
Bật plugin AnchorCheck trong tệp cấu hình. Neo sai hiện cảnh báo Anchor not found.
Lỗi 403 có phải link chết không?
Chưa chắc. Thử lại với User-Agent trình duyệt, nếu 200 thì đó là website chặn công cụ.
LinkChecker dùng proxy thế nào?
Qua biến môi trường HTTP_PROXY, HTTPS_PROXY, NO_PROXY. Lỗi 502 qua proxy cần tái kiểm không qua proxy.
LinkChecker kiểm tra link hỏng và những điều cần nhớ
LinkChecker kiểm tra link hỏng nhanh và đủ dùng, nhưng lab ngày 03/11/2026 cho thấy 7 dòng Error chỉ còn 2 link hỏng thật sau khi tái kiểm. Mỗi URL chỉ có một trang nguồn trong báo cáo, 429 nằm trong Valid, proxy hỏng biến link sống thành 502. Dựng cặp nguồn đích, tái kiểm có nghỉ, ghi chứng cứ. Cần IP Việt Nam ổn định cho LinkChecker kiểm tra link hỏng, liên hệ Proxy.vn - Nhà cung cấp dịch vụ proxy chất lượng hàng đầu Việt Nam.