RunTheTests
/

Broken Link Checker

Check the links on a page and find the ones that no longer resolve.

The page to audit

One page is fetched and up to 25 of its links are checked, one request each. This is a page check, not a site crawl.

How this check works

The page is fetched once and its links extracted from the markup — including the case that catches other checkers, a base href tag that changes what every relative link resolves to. Each unique destination is then requested once, with the fragment stripped since two links to the same page with different anchors are one request. Redirects are reported separately from failures: a link that redirects is not broken, and updating it to its destination just saves a round trip. The run is capped at 25 links because each one is a real request, and a cap that is stated is better than a crawl that quietly stops.

What the results mean

Broken
The destination answered 4xx or 5xx, or did not answer at all. A 404 is a dead end for a visitor and a wasted crawl for a search engine.
Redirected
The link works but sends the visitor somewhere else first. Not a fault; updating the link saves a round trip on every visit.
Checked, of found
How much of the page was covered. When these differ, a clean result covers what was checked rather than the whole page.
Email and phone links
Counted and not requested — there is nothing to fetch.

Common problems and fixes

A link is reported broken but works for me
The destination is probably blocking automated requests, which many sites do. Open it yourself; if it loads, the link is fine and the block is the difference.
It only checked some of my links
The cap is 25 per run. For a whole site you need a crawler that can queue work over time, which a browser tab cannot honestly do.
Everything is reported as a redirect
Common when links use http and the site upgrades to https, or omit a trailing slash the server adds. Both are worth fixing at the source rather than living with.
No links were found at all
The page probably builds its content with JavaScript. This reads the HTML as delivered, which is also roughly what a crawler sees on the first pass.

Frequently asked questions

How do I find broken links on my website?

Check the important pages one at a time here, starting with the ones that link out most — a homepage, a resources page, an old blog post. Each run requests up to 25 links and reports what did not resolve. For a whole site you need a crawler that can work through hundreds of pages over minutes, which is a different kind of tool than one running in a browser tab.

Do broken links hurt SEO?

Indirectly and modestly. A broken internal link wastes crawl budget and strands whatever it pointed at; a broken external link is a poor experience but not a penalty. The stronger reason to fix them is the visitor who came for that link and left instead.

Why does it say a link is broken when it opens fine?

Because the check comes from a Cloudflare edge and identifies itself as a checker rather than a browser. A fair number of sites — particularly retailers and news publishers — refuse those requests. That is a block, not a broken link, and the honest thing is to say so rather than hide the difference.

More in WebAudit