Broken link checker for a single web page
Dead links frustrate visitors and waste the attention of search engine crawlers. This broken link checker loads one page from our server, collects its links and requests each of them, then reports the HTTP status code of every link with the problems sorted to the top.
What the report looks like
Checked 5 links on https://example.com/blog/ — 2 broken or unreachable.
BROKEN 404 https://example.com/old-post
ERROR - https://slow.example.net/report (cURL error 28: Operation timed out …)
REDIRECT 301 http://example.com/about -> https://example.com/about
SKIP - https://gone.example.org/ (Could not resolve that host name.)
OK 200 https://example.com/contact
The count in the first line includes BROKEN and ERROR rows. Always read the SKIP rows too: a link to a domain that no longer exists shows up there, not as broken.
Status codes explained
| Label | Meaning | What to do |
|---|---|---|
| OK (2xx) | The server answered successfully | Nothing |
| REDIRECT (3xx) | 301/308 permanent, 302/307 temporary; the target is shown after the arrow | Link directly to the final URL |
| BROKEN 404 | Not found | Fix the URL, or link to a replacement page |
| BROKEN 410 | Gone on purpose | Remove the link |
| BROKEN 5xx | Server error on the target site | Re-check later before removing |
| ERROR | No response: timeout, refused connection, TLS failure | Test in a browser |
How the checker works
- The page is fetched from our server, following up to three redirects, with a 10-second timeout and a 5 MB size limit.
- Only
<a href>links in the downloaded HTML are collected. Links added later by JavaScript, and images, scripts and stylesheets, are not checked. - Relative links are resolved against the URL you entered. Duplicates are removed, links containing a
#fragment are skipped, andmailto:,tel:and similar links are ignored. - Up to 60 links are tested in parallel with a HEAD request and an 8-second timeout each. Redirects are reported, not followed.
- Links to private or internal addresses, and to ports other than 80, 443, 8080 and 8443, are skipped for security.
False alarms
Some servers answer HEAD requests with 405 (method not allowed) or 403, or block automated clients, even though the page opens fine in a browser. Rate-limited sites may return 429. Open any surprising result in a browser before you change your page.
Why it matters for SEO
Internal links that return 404 lead crawlers and readers to dead ends, and chains of redirects add latency. Updating links to their final destination is a quick, reliable maintenance win. The checker covers one page per run, so start with your most visited pages and navigation.
To inspect a single link in detail, break it apart with the URL parser. For links to a domain that fails to resolve, the DNS lookup shows whether its records still exist, and Website to IP Address shows where a live site points.