Broken Link Checker

Crawl your site and find every 404, 5xx, redirect chain, and dead external link. See exact URLs, source pages, and HTTP status codes.

Broken links are the most universally damaging on-page SEO issue, and the easiest to fix once you can see them all in one place. This checker crawls your site like Googlebot does, follows every internal and external link, and reports the exact URLs, source pages, and HTTP status codes for everything that's broken.

## Why 404s hurt rankings more than people think

Google has been explicit since 2019 that a small number of 404s is normal and harmless. What's NOT harmless: 404s linked from your navigation, your footer, your sitemap, or your top traffic pages. Those signal to Google that the site isn't maintained, and they bleed crawl budget — every time Googlebot fetches a 404, it's a fetch it didn't spend on your real content. On large sites this can suppress indexing of legitimate new pages for weeks.

## The redirect chain problem

Every redirect costs link equity (~10–15% per hop, per multiple SEO studies). A chain like A→B→C→D loses 30–40% of the PageRank A was passing. Worse, Google often gives up on chains longer than 4 hops and treats the final URL as having zero equity. Our crawler flags every chain longer than 1 hop so you can collapse them at the source.

## External 404s — should you fix them?

Yes. Google's Quality Raters Guidelines explicitly call out dead external citations as a sign of low-quality content. If you're linking to a 2017 article that no longer exists, replace it with the Wayback Machine archive or a current alternative. This is the #1 cheapest content-quality win for editorial sites.

## Soft 404s — the silent killer

A soft 404 is a URL that returns HTTP 200 but the page content is "Sorry, this page doesn't exist" or an empty search results page. Google treats these as worse than real 404s because they pollute the index. Our crawler heuristically detects soft 404s by looking for telltale phrases and unusually low content density.

## Why our crawler is different from a one-page check

Most free broken-link tools check the single URL you submit. We crawl up to 200 internal pages following your link graph, which surfaces broken links Googlebot would find but a single-page check misses entirely. The crawl is polite (max 10 concurrent requests, respects robots.txt) and completes in under 60 seconds for most sites.

## The full broken-link question cluster

There's a whole long-tail keyword cluster around broken links that this tool covers in one run:

- **"How do I find broken links on my website?"** — Submit your homepage URL above. We crawl up to 200 pages and surface every 4xx, 5xx, and redirect-chain issue grouped by source page. - **"How do I find broken external links?"** — External links are checked but not crawled. You'll get a per-page list of dead outbound links — the #1 cheapest editorial quality win. - **"Will broken links hurt my SEO?"** — Internal 404s in navigation, footer, sitemap, or top traffic pages do. A handful of edge-case 404s in old blog posts won't move the needle. The crawler tells you which bucket you're in. - **"How to fix a 404 error"** — Either restore the page at the original URL, or 301-redirect it to the closest live equivalent, or return 410 (Gone) for permanently deleted pages so Google de-indexes faster. - **"Soft 404 vs hard 404"** — A hard 404 returns HTTP status 404 (Google de-indexes cleanly). A soft 404 returns 200 with "not found" content (Google has to guess, wastes crawl budget, may keep it indexed). We detect both. - **"Redirect chain checker"** — Every redirect leaks ~10–15% of PageRank per hop. Chains longer than 4 hops are usually dropped entirely by Google. We flag every chain longer than 1 hop with the full sequence visible.

## Crawl budget — why broken links matter more on big sites

Googlebot has a finite crawl budget per site, roughly proportional to your authority and update frequency. Every fetch of a broken page is a fetch Googlebot didn't spend on a real page. On sites with 10k+ URLs this directly suppresses indexing of new content for weeks. The fix is brutal: 410 every URL you don't want indexed, 301 every URL you're renaming, and fix every internal link that points at a redirect. This is the unglamorous SEO work that compounds — sites that do it consistently rank above competitors with the same content quality.

## Common patterns we see in production

After running this crawler on thousands of sites, the same five issues come up repeatedly:

1. **WordPress sites with old plugin-generated pages** still linked from the sidebar — plugin gone, URLs 404, sidebar never updated 2. **Shopify stores with deleted products** that retain inbound links from blog posts and category pages — needs bulk 301s to category 3. **Documentation sites after a re-architecture** — the docs team moved everything to a new URL structure but forgot the navigation redirects 4. **Marketing sites with stale press kit downloads** — PDF files removed from CDN, links left in press pages 5. **B2B sites with broken third-party integrations** — Calendly, Typeform, demo-booking widget URLs that changed under them

What this tool checks

Why it matters

Broken links waste crawl budget, dilute PageRank, and hand users a dead end. A single broken navigation link can de-index entire sections. External 404s damage the perceived quality of your content in Google's eyes.

How to fix what it finds

Methodology

We start at the URL you submit, fetch the HTML, and extract every `<a href>`, `<img src>`, `<script src>`, `<link href>`, `<source src>`, and `<iframe src>`. Internal links are queued for crawling (up to 200 pages, depth 3); external links are checked but not crawled. Each link is HEAD-requested first (cheap), and on ambiguous responses (e.g. some servers return 405 to HEAD) we fall back to a GET with a 1KB range request. We classify each response into not_found (404/410), client_error (4xx), server_error (5xx), timeout, connection_error, ssl_error, or redirect. Redirect chains are followed up to 5 hops and flagged when longer than 1. Soft 404s are detected via content-length anomalies and telltale strings ("page not found", "404 error") in the body. Results are returned grouped by source page so you can fix them in batches.

Frequently asked questions

How many pages does it crawl?

Up to 200 internal pages, depth 3 from the seed URL. That covers most marketing sites entirely; very large sites get a representative sample. For full-site crawls on 10k+ URL sites, use our paid monitoring tier which crawls continuously.

Will this crawl my staging site?

It will if you give it a staging URL — but staging sites usually block crawlers via basic auth or robots.txt. For password-protected staging, use our authenticated monitoring tier.

Why are some links flagged as redirects when they work?

A redirect-flagged link works, but it costs link equity. We highlight chains longer than 1 hop so you can update the source link to point directly at the final URL.

What's the difference between 404 and soft 404?

A real 404 returns HTTP status 404 — Google de-indexes it cleanly. A soft 404 returns HTTP 200 with "not found" content — Google has to guess, often wastes crawl budget on it, and may keep it indexed.

Does this check JavaScript-rendered links?

The free crawler checks the raw HTML, which matches what Googlebot sees on its first pass. JavaScript-rendered links are caught by our paid Chromium-based crawler.

Should I use 301 or 410 for a deleted page?

301 if there's a sensible replacement page that serves the same intent. 410 (Gone) if the page is truly retired with no equivalent — 410 tells Google to de-index immediately, faster than 404.

Do broken external links hurt my rankings?

Not directly via algorithm — but Google's Quality Raters Guidelines explicitly call out dead citations as a low-quality content signal. Editorial sites should fix them; small marketing sites can deprioritise.

How often should I run this?

Manual: monthly for stable sites, weekly for active publishers. Better: set up continuous monitoring so you're paged the moment a broken link appears anywhere on the site.