Glossary
Broken link
A broken link is a hyperlink whose target does not return usable content — in practice, one answering 404 Not Found or 410 Gone. A 5xx means the server failed rather than that the target is missing, and 401 or 403 usually mean the resource exists but refused an automated request. A target returning 200 is reachable, which is not the same as correct: no status code reveals that a link points at the wrong page.
Internal and external
An internal broken link points within your own site. It is unambiguous, entirely within your control, and always worth fixing.
An external one points at somebody else's site. It matters, but it produces most of the false alarms, because other servers block automated clients while serving browsers normally.
The distinction determines both the priority and the confidence you can place in an automated report.
The status codes, precisely
404 Not Found — broken. No representation for that URL.
410 Gone — broken, and deliberately so.
5xx — the server failed. Often transient; re-test before editing anything.
401 / 403 — the target exists and declined the request. On an external link this is usually bot protection, not absence.
429 — rate limited. The checker asked too often, not a defect in the link.
200 — reachable. Says nothing about whether it is the intended page.
Related shapes that are not quite broken links
A soft 404: the target says it does not exist while returning 200. A link checker reports it as working.
A redirect chain ending in a 404: the first hop looks fine, the destination does not exist.
A broken image or script: the same defect with a different element. A missing image is a 404 the visitor perceives as a gap rather than an error page.
How to observe it
`curl -I -L <url>` issues a HEAD request, follows redirects and prints each hop's status. Some servers reject HEAD; `curl -sS -o /dev/null -w '%{http_code}' <url>` falls back to a GET.
At site scale this requires the list of URLs first, from a crawl or the sitemap — which is the part that does not scale by hand.
How they accumulate
External links rot on their own schedule. Studies of link persistence consistently find that a substantial share of cited URLs stop resolving within a few years, without anybody on either side doing anything wrong. An article written in 2019 has simply lost some of its references.
Internal links break in bursts rather than gradually. A migration, a redesign, a bulk category rename — each produces a batch of them on a single day, and none between.
Content deletion produces them silently. Unpublishing an article removes the page; nothing removes the links from the six other articles that referenced it.
Typos in hand-written HTML and Markdown persist indefinitely, because the author sees the rendered link and never clicks it.
The two patterns need different responses: external decay wants a periodic re-check, internal breakage wants a check tied to the change that caused it.
Frequently asked questions
- Is a 403 a broken link?
- Usually not. It means the server understood the request and refused it, which for an external link most often reflects bot protection rather than a missing page. Verify in a browser before removing it.
- Do broken links affect rankings?
- Google's guidance does not list broken outbound links as a ranking factor. What is documented is that a 404 URL is not indexed, so internal links to broken pages waste crawl paths.
- How often should links be re-checked?
- External links decay continuously, so periodically. Internal links break in bursts, at migrations, redesigns and bulk edits, so the useful trigger for those is the change itself.
Sources
Related
VeriFixScan crawls a site and applies its checks to every page it reaches, keeping the evidence behind each finding. Scanning one website is free.
Scan a website