siteIQ 6 min read 1,086 words

How to Find and Fix Broken Links on Your Website

C
Codaiman Admin
Author · Codaiman
September 12, 2026
Updated Sep 22, 2026

Broken links accumulate silently on every website that gets edited. Here's how to find all of them, decide which deserve a redirect and which deserve a 404, and stop the same breakage happening again.

Nobody sets out to break links. They accumulate: a product is discontinued, a blog post is renamed, a PDF is reorganised into a new folder, a partner site restructures. Each change quietly orphans every link pointing at the old address.

On a site that has been edited for a few years, a few dozen broken links is normal. Nobody notices, because the people who hit them are visitors who leave — not the team looking at the site every day.

Why it actually matters

Two reasons, and the second is the bigger one.

Crawl budget and link equity. Search engines allocate finite crawling to each site. Every request spent on a 404 is one not spent on a real page. More importantly, when an external site links to a page you deleted, that link's value goes nowhere. Redirect it and you keep the authority you already earned.

Visitors leave. Someone clicking your pricing link and hitting "Page not found" does not email you about it. They conclude the site is neglected and go elsewhere. Broken links on checkout paths and contact pages cost real money.

Internal vs external — fix the internal ones first

Two different problems:

  • Internal broken links point from your site to your own pages. These are entirely your fault and entirely within your control. Fix all of them.
  • External broken links point at someone else's site that has since moved or died. You cannot fix their end — only update or remove your link.

Start internal. They are more damaging, they are usually concentrated in a template or a navigation menu, and fixing one often fixes hundreds of pages at once.

Finding them

A single-page checker will not do this. You need something that crawls the whole site, following every link and recording the status code it gets back.

Our site audit does this free with no URL cap — it reports every broken page, the exact page each broken link was discovered on (which is the part you actually need to make a fix), redirect chains and orphan pages in one pass.

Google Search Console's "Pages" report is the other essential source, and it tells you something a crawler cannot: which broken URLs Google has actually seen and tried to index. Those are the ones with real search value attached. Use both.

Reading status codes

Not every non-200 is a problem:

  • 404 Not Found — the page does not exist. Fix or redirect.
  • 410 Gone — deliberately and permanently deleted. Correct and useful when you mean it; tells Google to drop it faster than a 404.
  • 500 / 502 / 503 — a server error, not a missing page. More urgent than a 404, because it usually means something is broken rather than merely absent.
  • 301 — permanent redirect. Fine, though the link should ideally be updated to point directly at the destination.
  • 302 — temporary redirect. If it has been in place for a year it should be a 301; Google treats the two differently.
  • 0 / timeout — no response at all. Often rate limiting from aggressive crawling rather than a genuine fault. Re-test before acting.

Redirect or 404? A decision rule

The instinct is to redirect everything to the homepage. Resist it — Google treats a redirect to an irrelevant page as a "soft 404" and ignores it, and visitors find it more annoying than an honest error page.

Ask one question: does a page exist that genuinely serves the same need?

  • Yes, a direct replacement → 301 to it. A renamed post, a product's newer model.
  • No direct match, but a relevant category → 301 to the category. A discontinued blue widget goes to the widgets category, not the homepage.
  • Nothing relevant → leave it as a 404, and make the 404 page useful: search box, main navigation, links to popular pages.

A 404 is not a failure. It is the honest answer when a page is genuinely gone.

Redirect chains

These build up over years of site migrations:

/old-page → /newer-page → /newest-page → /final-page

Each hop costs a round trip, and search engines stop following after a handful. Fix by pointing every link in the chain directly at the final destination:

/old-page    → /final-page
/newer-page  → /final-page
/newest-page → /final-page

Watch for redirect loops too — A redirects to B which redirects back to A. The browser gives up and shows an error. These are invisible until someone reports them, and a crawler finds them immediately.

Orphan pages — the opposite problem

An orphan page exists and works fine, but nothing on your site links to it. It usually happens after a navigation redesign: the page survives, the link to it does not.

Orphans are a quiet waste. Search engines struggle to find them, they receive no internal link equity, and visitors cannot navigate to them at all. Sometimes they are genuinely obsolete and should be removed — but often they are a perfectly good service page nobody can reach.

A full crawl finds them by comparing every URL in your sitemap against every URL reachable by following links. Anything in the first set and not the second is an orphan.

Stopping it happening again

Finding broken links is a one-off task. Not re-creating them is a process:

  • Always redirect when you change a URL. The moment you rename a slug, add the 301. Doing it later means losing the traffic in between.
  • Use relative internal links (/about, not https://yoursite.com/about) so staging and domain changes do not silently break everything.
  • Re-crawl after every deploy that touches routing. Most broken links are introduced by a deploy, not by decay.
  • Re-crawl quarterly regardless, to catch external links that died on someone else's schedule.
  • Watch Search Console — it surfaces 404s that Google found before you did.

A realistic first pass

  1. Crawl the site and export every non-200 status.
  2. Sort internal first, then by how many pages link to each broken URL. One broken link in a footer template is hundreds of instances and a single fix.
  3. Apply the redirect-or-404 rule above to each.
  4. Flatten any redirect chains you found.
  5. Re-crawl to confirm, then check your 404 page is actually helpful.

Most sites clear the entire backlog in an afternoon, and the majority of it turns out to be three or four template-level mistakes rather than hundreds of separate ones.

Run a free crawl of your site to get the list — no signup and no 500-URL limit. For the wider technical picture, see our technical SEO checklist.

broken links404 errorsredirect chainsorphan pagestechnical seositeIQ
C
Written by
Codaiman Admin

Part of the Codaiman team — building AI-powered digital solutions and sharing insights on web development, mobile apps, and the future of technology.