Broken Link Checker

Paste a URL to test every link on that page — internal and external — and get back the ones that 404, error out, or time out, with their anchor text so you can find them fast. Free, instant, no signup.

What this checks & how to fix it

It reads the page's rendered HTML, extracts every <a href>, resolves relative paths against the final URL, drops fragment, mailto:, tel: and javascript: links, and de-duplicates the rest. Links on the same hostname (ignoring www.) count as internal. Up to 60 links are checked per run — all internal ones first, then external ones in page order — eight at a time, each with an 8-second timeout and a browser-like User-Agent. Every link gets a HEAD request; if the server refuses it (403, 405, 501) the tool retries with GET and discards the body. Redirects are followed and the final URL is recorded.

A link counts as broken when the final response is a 4xx or 5xx, or the request fails outright — DNS failure, TLS error, connection refused, or timeout. Responses of 401, 403, 429 and 999 are reported separately as unverified: they almost always mean the host blocks automated checkers, not that the page is gone. The score falls by twice the broken share of what was checked, so one dead link in 60 barely registers while one in four is a real problem.

How to fix what it finds

  • 404 / 410 — if the target moved, update the href or add a 301 from the old URL to the new one. If it is genuinely gone, remove the link or point it at the closest replacement.
  • 5xx or timeouts — the target host is failing, not your markup. Re-run later; if an external site keeps failing, replace the link. On your own site, check the server logs for that path.
  • Internal redirects — update the href to the final URL shown under the link so visitors and crawlers skip the extra hop.
  • Unverified (401 / 403 / 429) — open the link in a browser. If it loads, nothing needs changing; the host just refuses automated requests.

Frequently asked questions

Why does it stop at 60 links?

Checking a link means making a real HTTP request to someone's server, and a busy page can carry several hundred of them. Sixty keeps a run under a minute even when a few external hosts are slow, and avoids hammering any one site. Internal links are queued first because those are the ones you can fix; if a page has more than 60, run the tool on the deeper pages too — each one is checked in its own right.

A link works in my browser but shows as broken here — why?

The most common reason is bot protection: Cloudflare, Akamai and similar services answer automated requests with 403 or a challenge page. Those are listed under "could not verify" rather than "broken" wherever the status code makes it obvious (401, 403, 429, 999). A link can also require a login cookie, be geo-restricted, or sit behind a server that rejects HEAD requests — the tool retries those with GET, but a few servers refuse both. If it opens fine for you, there is nothing to fix.

Do broken links actually hurt SEO?

A handful of broken external links won't tank your rankings — Google has said as much. Broken internal links are a different matter: they waste crawl budget, strand any ranking signal the linking page would have passed on, and send visitors to a dead end, which shows up in engagement metrics. Pages that link out to lots of dead resources also read as unmaintained. Fix internal ones first, then tidy the external ones.

Does it find links added by JavaScript?

Usually, yes. The page is fetched through a rendering service that executes the page's JavaScript before handing over the HTML, so links rendered by a framework on load are included. Links that only appear after a click, a scroll, or a fetch triggered by user interaction are not in the rendered HTML and won't be checked.

Does it check images, scripts, or stylesheets too?

No — only <a href> links to http or https URLs. Anchors within the page, mailto: and tel: links, and javascript: pseudo-links are skipped, and the same URL is checked once even if it appears many times. Image URLs are covered by the Image Alt Checker on this site.

Related tools

Command Palette

Search for a command to run...