Broken Link & Redirect Checker
Crawl a page for broken links (404s) and redirect chains with one click. Free, no API key.
Broken Link Checker that tells 404 from bot-blocked noise
Paste a page and we check every link on it, not just the ones you're worried about — internal, external, nofollow, all of it. Every non-200 response comes back with its status code and one plain answer: genuinely broken, probably bot-blocked, or working exactly as intended. Most flagged links turn out to be the second kind.
Built and reviewed by Sayed Hasan, founder of SEOs Hut · Updated 28 September 2026 · Free, no signup
Why does my link checker say 403 when the link works in my browser?
Because 403 usually means a bot defence, not a dead page. RFC 9110 defines 403 as the server refusing the request — it doesn't confirm the resource is gone, and a server may even use 403 (or 404) to hide a resource without admitting anything. Cloudflare's Bot Fight Mode is a documented example: it 403s link checkers while the page loads normally for a human in a browser.
A 403 in your report is not a broken link
Every competitor's checker counts 403 in the broken total. RFC 9110 says 403 means the server "understood the request but refuses to fulfil it" — the same spec notes a server may deliberately return 403 (or even 404) to hide a resource without confirming whether it exists. Cloudflare's own community forum documents a reproducible case of Bot Fight Mode returning 403 to link checkers while the page loads fine in a real browser. Read every 403 as "something blocked this checker," not "this page is gone."
This link returned a non-200 — now what?
Work down from the status code. Each branch tells you whether it's broken, blocked, or working as intended, and what to actually do about it.
The checker flagged a 4xx — which one?
Not a standard 4xx — what did it actually return?
404 vs 410 on a page you deleted on purpose
Google is explicit about which status code actually changes crawl behaviour
“The 4xx status codes, except 429, have no effect on crawl rate.”
<b>Google Search Central, HTTP and network errors documentation</b> — Google Search Central
What happens to a URL across repeated crawls
None of this happens on the first 404. It's the pattern across crawls that changes anything.
Not immediately dropped
If the URL was previously indexed, Google works towards removing it — but this isn't instant.
Crawl frequency gradually decreases
Google's own wording: "the crawling frequency gradually decreases." This is specific to 404 persisting, not a one-off response.
Treated as a server error, not a removal signal
Google's crawlers treat 429 "as a signal that the server is overloaded" — a different category entirely, so it doesn't follow the same de-indexing path as a genuine 404.
Preserved, then eventually dropped
An already-indexed URL returning 5xx is preserved "but eventually dropped," with the crawl-rate decrease "proportionate to the number of individual URLs that are returning a server error."
Whether a broken link actually costs you rankings depends on which side of it you're on. Google's documentation about 4xx behaviour is written from the crawler's perspective, not as a ranking-factor list, and it concerns URLs on your own site — not links you happen to point at someone else's dead page. A dead internal link wastes your own crawl budget and strands users; a dead outbound link to someone else's page is mostly a trust problem for the person reading. Fix internal 404s first.
One more thing worth knowing before you go hunting: Google only counts an <a href="…"> element as a crawlable link. A <span href="…">, an <a onclick="goto(…)">, an <a routerLink="…"> and an href="javascript:…" are all documented as not crawlable — so some of what looks broken in a JavaScript-heavy template was never a link Google could follow in the first place, and some genuinely broken navigation won't turn up in a link scan at all.
If this check turned up more than a handful of dead links, that's rarely an isolated problem — it usually means a template changed or a migration missed a section. A full audit finds the pattern; this tool finds the individual symptoms.
Five status codes, plainly
- 404
- Not found. Google removes it from the index if it was there and stops treating it as new content — but persistent 404s only start affecting crawl rate over repeated crawls, not on the first one.
- 410
- Gone, and meant to stay gone. RFC 9110: use it only when removal is "likely to be permanent"; otherwise 404 is the honest code.
- 403
- Forbidden. The server refused the request — a statement about permission, not about whether the resource exists.
- 429
- Too Many Requests, not in RFC 9110 at all — it comes from RFC 6585. Google treats it as a server-overload signal, its own category, separate from every other 4xx.
- Crawlable link
- An <a> element with an href. Google's documentation is explicit that onclick handlers, span href attributes and javascript: hrefs don't count, however they look to a human.
The most reliable broken-link list isn't from a scanner
A one-off scan catches what's broken today. Your own server logs show every 404 a crawler has actually hit over time, which is a better signal than any single crawl — the AI Crawler Log Analyzer separates those patterns out. And while you're in triage mode, remember every request for a dead asset — image, script, font — still costs load time on the way to a timeout; check that separately with the Core Web Vitals Checker.
Broken Link Checker FAQ
How can I check if a link is broken?
How can I fix a broken link?
What happens if a link is broken?
How can I fix broken links online?
Why does my link checker say 403 when the link works in my browser?
Do broken outbound links hurt SEO?
Primary sources used on this page
- Google: 4xx status codes (except 429) have no effect on crawl rate; behaviour of 429 and 5xx — developers.google.com
- RFC 9110 §15.5: 403 as refusal, 410 as likely-permanent removal — www.rfc-editor.org
- RFC 6585 §4: 429 Too Many Requests and Retry-After — www.rfc-editor.org
- Google: which link elements are crawlable (href required; onclick, span, javascript: excluded) — developers.google.com
- Cloudflare community: Bot Fight Mode returning 403 to legitimate link checkers — community.cloudflare.com
Once you've triaged the list
Fixing broken links is the easy part. These confirm the fix actually worked.
Read the guide: How to Find the Sitemap of a Website, 5xx Server Errors: What They Mean and How to Fix Them and What Are Internal Links? Types, Benefits and Best Practices. Want it handled for you? See our website audit service.