glossary

How To Find and Fix Broken Links: A Practical Guide

Find every broken link on your site with a crawler, Search Console and a backlink tool, then fix each one with the right redirect, edit or 410.

updated:

A broken link is a hyperlink that points to a URL that no longer works: a 404 or 410, a dead external domain, or a 5xx server error. To find and fix broken links, crawl your site to list every dead link and the page it sits on, check Search Console and a backlink tool for dead URLs that other sites still link to, then redirect, repoint or remove each one. The fixes are usually cheap. Start with the dead URLs that hold backlinks and the ones on paths your visitors actually use.

A broken link is a hyperlink that points to a URL or resource that is missing, moved, deleted, or otherwise unreachable, returning an error status (typically 404 or 410) instead of a working page.

The cost of a broken link depends on where it sits and what it used to point to. A 404 on a page nobody visits and nobody links to is noise: Google treats 404s as a normal part of the web, and they do not drag down how the rest of your site ranks. A 404 on a URL that a dozen other sites link to is a leak.

What is at stake, in rough order of how much it matters:

  • Lost link value. Backlinks that point at a dead URL stop passing value to your site. They are backlinks you already earned, and a 301 to the right live page puts them back to work.
  • Broken internal paths. Dead internal links cut the routes crawlers and users take to deeper pages, which is how pages turn into orphaned content that Google rarely revisits.
  • Wasted crawling, in specific cases. A true 404 is cheap: Google says a 404 or 410 is a strong signal to stop crawling that URL. The waste comes from soft 404s, which Google keeps crawling as if they were real pages, and from long redirect chains. On sites with tens of thousands of URLs, that eats into crawl budget.
  • Lost visitors. A dead link in the middle of a signup or checkout path is a hard stop. People rarely report it. They leave.

The mental model we use: every broken link is either a leaking asset (a URL with backlinks that now 404s) or a dead end (an internal link that goes nowhere). Sort them into those two buckets and the work prioritizes itself.

No single tool catches everything. Dead internal links, dead pages that other sites still link to, and dead outbound links to third parties are three separate problems. A crawler handles the first and the third; a backlink tool handles the second.

1. Crawl the whole site

A site crawler is the workhorse. Point it at your domain and it follows every link, reporting status codes for internal links, outbound links and assets.

  • Tools: Screaming Frog (free up to 500 URLs), Sitebulb, or the site audit in Ahrefs or Semrush for scheduled, cloud-based crawls.
  • Filter to 4xx and 5xx responses. In Screaming Frog, the Response Codes tab filtered to Client Error (4xx) lists the dead URLs, and the Inlinks tab at the bottom shows every page that links to each one. Those source pages are where the fix happens.
  • Turn on JavaScript rendering if links are injected client-side, or the crawler will miss them. Understanding how web crawlers work tells you which settings matter for your stack.

2. Check Google Search Console

Search Console shows the dead URLs Google itself has found.

  • The Pages report, under “Not indexed”, lists Not found (404) URLs that Google crawled and got a 404 on. Many are old URLs nobody links to anymore, and those can stay 404.
  • URL Inspection confirms the live status of a single URL and, under page discovery, the referring page where Google found it.
  • The same Pages report lists Soft 404 URLs: pages that return a 200 but look empty or missing to Google. No crawler flags them on status code alone, so they are easy to miss. More in soft 404 errors.

This is where the value is. Your most important dead pages are the ones other sites still link to.

  • In Ahrefs, open Site Explorer, then the Best by links report filtered to HTTP code 404, or the Broken backlinks report. Semrush has equivalent views in its backlink reports.
  • Sort by referring domains. Each row is link value you can recover with one redirect. This is the inverse of broken link building, where you claim other sites’ dead pages: here you reclaim your own.

4. Spot-check one page or one URL

  • Browser extensions such as Check My Links highlight every dead link on a single page, which is the quick way to audit one critical landing page.
  • The command line verifies a specific URL or redirect chain:
# Status code and final URL after following every redirect
curl -sIL -o /dev/null -w "%{http_code} %{url_effective}\n" https://example.com/old-page

# Crawl a small site from the homepage and log every broken link
wget --spider --recursive --no-directories --no-verbose --output-file=links.log https://example.com/
grep -A 50 "broken link" links.log

wget reads links from HTML pages only, so start it on the homepage. Pointed at an XML sitemap, it finds nothing to follow.

Both site audits crawl your site and flag broken internal links, broken outbound links and broken images, so on the crawl side either one does the job. They differ on the backlink side, where each tool’s link index finds a slightly different set of links pointing at your dead URLs. If you already pay for one, use that one. If you pay for neither, Ahrefs Webmaster Tools gives owners of a verified site its Site Audit and backlink reports at no cost, and the free version of Screaming Frog covers the crawl for sites up to 500 URLs.

Tool selection at a glance

ProblemBest toolWhat it catches
Internal dead linksScreaming Frog / Sitebulb4xx, 5xx, broken assets, the source page
Dead pages Google foundGoogle Search Console404s Google crawled, soft 404s
Lost inbound backlinksAhrefs / SemrushYour 404 URLs that still have referring domains
Dead outbound linksCrawler with external checks onThird-party links that have rotted
One critical page, fastCheck My Links extensionEvery dead link on that single page

Finding is the easy half. Fixing well means picking the right remedy for each link. The classic mistake is a blanket 301 of every dead URL to the homepage: Google can treat a redirect to an irrelevant page as a soft 404, and visitors land somewhere they did not ask for.

Match the fix to the situation:

  1. Content moved: 301 redirect to the closest equivalent live page. Use this for any URL with backlinks or earned traffic. Google has said 3xx redirects pass PageRank without loss.
  2. Content gone for good, no replacement: 404 or 410. Google treats the two almost identically, and a 410 may drop out of the index slightly faster. Use it for retired products or expired campaigns with no relevant successor. (Background: 404 Not Found.)
  3. Typo or bad permalink: fix the link itself. If the destination is alive and the source link is wrong, edit the source. A redirect that covers for a typo is one more rule to maintain forever.
  4. Dead outbound link: update or remove. Repoint to the new location, swap in another source, or link to a Wayback Machine snapshot so readers do not land on a third-party 404.

Then clean up the plumbing:

  • Collapse redirect chains. If A redirects to B and B to C, point A straight at C. Googlebot follows up to 10 hops before it reports a redirect error, and every hop adds load time for users. See redirect chains.
  • Fix internal links at the source. For links you control, a redirect is a patch; editing the link to point at the live URL is the fix. Keep redirects for external and historic links you cannot edit.
  • Update your XML sitemap so it lists only live, canonical, indexable URLs, then resubmit it in Search Console.
  • Re-crawl to verify. Confirm every fix returns the status you intended before you close the ticket.

Broken-link cleanup is one piece of a broader SEO content audit, and it pairs naturally with tightening your internal site structure so links stay stable as the site grows.

Two jobs share the name. To report broken links on your own site to a developer or a client, export them together with the page each one sits on. In Screaming Frog, the Client Error (4xx) Inlinks export under Bulk Export, Response Codes gives one row per broken link: the source page, the dead URL and the anchor text. That sheet is the ticket.

To report a broken link on someone else’s site, email the site owner with the page, the dead URL and a working replacement. Editors fix the reports that arrive with a ready answer.

Fixing is reactive. The teams whose sites stay clean build prevention into how they ship:

  • Schedule recurring crawls (weekly for large or fast-moving sites, monthly otherwise) with alerts on new 4xx and 5xx errors. The cloud crawlers in Ahrefs and Semrush run unattended.
  • Manage redirects centrally (at the server, CDN or edge) and keep a redirect map of every old and new URL pair. When a permalink changes, the redirect exists before the old URL dies.
  • Check links in your publishing workflow. Add a link check to staging or CI so a build with broken internal links fails before it reaches production.
  • Keep URLs stable. The cheapest broken link is the one you never create. Avoid gratuitous URL changes, and when you must change one, redirect it the same day.
  • Watch your high-value backlinks. When a strong inbound link points at a page you are about to retire, redirect that page or ask the linking site to update the link.
  • Plan migrations URL by URL. Most mass breakage arrives with a redesign or a platform move. Our website migration SEO checklist covers the redirect map and launch checks step by step.

A few dozen 404s on a stable site are a crawl and an afternoon of edits. Under 500 URLs, the free version of Screaming Frog covers the whole job, and you don’t need us.

Broken links cost money when they arrive in bulk, and that almost always means a relaunch or a migration. Search Console’s 404 count jumps by hundreds the week after launch. Pages that held backlinks now 404 or redirect to the homepage. Nobody kept the old URL list, so nobody can say which redirects are missing.

On a website migration, we map every old URL to one new one before any code is written, check redirects on launch day and watch the numbers for 90 days. On the Prawomat rebuild, the build failed if any of the 1,125 migrated URLs went missing, and we read the 404 log in the weeks after launch.

Frequently Asked Questions

Indirectly. Google treats 404s as a normal part of the web, and they do not lower how the rest of your site ranks. The cost comes from what the dead URLs used to do: backlinks pointing at a 404 stop passing value, broken internal links cut crawl paths to deeper pages, and visitors who hit a dead end leave. On large sites, soft 404s and redirect chains also waste crawling.

Run a crawler (Screaming Frog, free up to 500 URLs, or a cloud site audit in Ahrefs or Semrush) and filter the response codes to 4xx and 5xx. The crawler’s inlinks view shows the exact page containing each broken link, which is the data you need to fix it. Add Search Console’s “Not found (404)” report to catch URLs Google found that your crawl missed, and a backlink tool to find dead URLs that other sites still link to.

For your own site, export each broken link with its source page and anchor text (Screaming Frog’s Client Error (4xx) Inlinks export does this) and hand that sheet to whoever fixes it. For someone else’s site, email the owner with the page, the dead URL and a working replacement.

For crawling your own site, they are equivalent: both site audits flag broken internal links, outbound links and images. They differ on backlinks pointing at your dead pages, because each tool’s link index finds a slightly different set. Use the one you already pay for. With neither, Ahrefs Webmaster Tools covers a verified site for free.

Should I 301 redirect or 410 a broken page?

Use a 301 when the content moved or has a close equivalent, especially if the URL has backlinks or traffic; the redirect forwards the link value to the new page. Use a 404 or 410 for content that is permanently gone with no replacement. Google treats the two almost the same, with a 410 sometimes dropping out slightly faster. Never blanket-redirect everything to your homepage.

For large, fast-moving or ecommerce sites, run an automated weekly crawl with alerts on new 4xx and 5xx errors. Smaller, stable sites are fine with a monthly scan plus a full audit each quarter, and every site needs a full check right after a redesign or migration.

Largely, yes. Google has said 3xx redirects pass PageRank without loss, so a 301 from a dead URL to a relevant live page gets its inbound links working for you again. The target has to be a genuine equivalent: a redirect to an unrelated page or the homepage can be treated as a soft 404, and then the value is lost.

where we come in

Hundreds of new 404s in Search Console since the relaunch?

We move sites to a new platform, domain or structure without losing rankings: URL mapping, redirects, launch checks and 90 days of watching the numbers.

2.9x

Prawomat: Daily Google clicks; 1.3x on the same dates in 2025

read the case study →

  • Not sure yet? The free AI SEO audit is a founder-reviewed snapshot of your site, no obligation.

or ask a founder

30 min · intro, founder-to-founder

Book a call