How to Find and Fix Broken Links Before They Cost Traffic

A practical process for finding broken internal and external links, deciding which to fix first, and fixing them without creating new problems.

How to Find and Fix Broken Links Before They Cost Traffic

To find broken links, crawl your site with a broken link checker, export every link that returns a 4xx or 5xx error, and sort them by how important the linking page is. Then fix each one by updating the link to the correct URL, restoring the missing page, or adding a 301 redirect to the closest equivalent page. Repeat the check on a schedule, because links break again as sites change.

Key takeaways

  • Broken internal links waste crawl activity and leave visitors at a dead end. Fix those first.
  • The best fix is usually to change the link itself, not to add a redirect.
  • Redirect removed pages only to a genuinely relevant replacement. Mass redirects to the home page are treated like errors.
  • A 404 on a URL that never existed or has no replacement is normal and not a penalty.
  • Check monthly, and after every redesign, migration or URL change.

A broken link is any link whose target does not return the page the visitor expected. The common cases:

ResponseMeaningTypical cause
404 Not FoundNothing at that URLPage deleted, slug changed, typo in the link
410 GoneRemoved on purposeContent intentionally retired
5xx Server errorThe server failedCrashed application, overloaded host, misconfiguration
Timeout or DNS failureNo response at allExpired domain, server offline
Soft 404Returns 200 but shows "not found" or empty contentCMS error pages that don't send the right status code

Redirect chains (A redirects to B, which redirects to C) and redirect loops are not broken links in the strict sense, but they slow visitors down and should be cleaned up during the same audit.

  • Visitors leave. Someone who clicks "pricing" and gets an error page is unlikely to try again.
  • Crawlers hit dead ends. Search engines discover pages by following links. A broken internal link means the target page may be harder to find, and crawl requests are spent on errors.
  • Link value is lost. If other sites link to a URL that now returns 404, the value of those backlinks does not reach your current content.
  • Trust suffers. Outbound links to dead pages make content look neglected, which matters most on guides and reference pages.

To be clear about the SEO effect: Google has said that 404 errors on their own do not harm a site's rankings. The cost is indirect: lost visitors, lost link value and pages that are harder to discover.

Crawl the site

A crawler starts at a URL, follows every link it finds and records the response code for each target. The Broken Links Finder checks the links on a page and reports which ones fail. Run it on your most important templates and pages: home page, navigation, top landing pages, and high-traffic articles.

For larger sites, a full-site crawler is the practical choice. Make sure it checks both internal and external links and records the page each broken link was found on.

Check Search Console

In Google Search Console, the Pages report lists URLs Google tried to fetch that returned "Not found (404)", along with soft 404s and server errors. This catches URLs your own crawler would never find, such as old URLs that other websites still link to.

Check your server logs and analytics

Server logs show every 404 request, including those from visitors and bots. In analytics, filter for the page title of your 404 template to see which missing URLs real visitors are landing on most.

Step 2: Prioritize what to fix

A site of any size will have more broken links than you can fix in a day. Rank them:

  1. Site-wide links in the header, footer or sidebar. One fix repairs every page.
  2. Internal links on high-traffic pages and pages that drive conversions.
  3. Missing URLs that have backlinks or still receive visits from search or referrals.
  4. Outbound links in your most visited content.
  5. Everything else, in batches.

Before fixing, check the context. The Link Analyzer lists every internal and external link on a page, with its anchor text, which helps you see where a bad URL sits and what it was meant to point to.

Update the link (best for internal links)

If the target moved, edit the link to point directly at the new URL. This avoids an extra redirect hop for every visitor and crawler. For links in templates or menus, change the template once.

Restore the page

If a page was deleted by mistake, or is still useful and has backlinks, bring it back at the original URL.

Add a 301 redirect

When a page has moved or been replaced and you cannot update every link to it (because other sites link to it), redirect the old URL permanently to the closest equivalent. For example, on Apache:

Redirect 301 /blog/old-starter-guide /guides/sourdough-starter

Or on nginx:

location = /blog/old-starter-guide {
    return 301 https://example.com/guides/sourdough-starter;
}

Rules for redirects:

  • Redirect to a page that genuinely replaces the old one. Redirecting many unrelated URLs to the home page tends to be treated by Google as a soft 404, so it does not preserve value and confuses visitors.
  • Point straight at the final URL. Avoid chains.
  • Update internal links anyway, so the redirect only serves external traffic.

Let it 404 (or 410)

If the content is gone for good and has no replacement, returning 404 or 410 is correct. Remove internal links to it, make sure your 404 page is helpful (search box, links to main sections), and make sure it returns a real 404 status, not 200.

Fix or remove outbound links

For external links, look for the resource's new location on the same site, an archived copy if appropriate, or a different reliable source. If none exists, remove the link and adjust the sentence.

Step 4: Verify the fix

After changes, re-run the checker on the affected pages. Also confirm redirects return a single 301 to a page that returns 200:

$ curl -sI https://example.com/blog/old-starter-guide
HTTP/2 301
location: https://example.com/guides/sourdough-starter

In Search Console, you can use "Validate fix" on the relevant issue so Google recrawls the affected URLs.

  • Plan URL changes. Before changing a slug or restructuring, export the old URLs and map each to its new home.
  • Prefer stable URLs. Avoid dates or temporary details in URLs that you may later want to change.
  • Use your CMS's internal linking features where they update links automatically when a page moves.
  • Schedule checks. A monthly crawl catches problems before they pile up; outbound links decay over time even if you change nothing.
  • Test before launch. Crawl staging copies of redesigns and migrations before they go live.

Common mistakes

  • Redirecting every 404 to the home page.
  • Adding redirects but leaving internal links pointing at the old URLs.
  • Custom 404 pages that return status 200, creating soft 404s.
  • Ignoring broken links in navigation because "the page still loads".
  • Blocking a broken URL in robots.txt instead of fixing it, which hides the problem rather than solving it.

Quick checklist

  1. Run a broken link check on key pages and a full crawl if possible.
  2. Export 404, 410, 5xx and timeout results with their source pages.
  3. Fix site-wide and high-traffic links first.
  4. Update links directly; redirect only when external links or visits need it.
  5. Confirm your 404 page returns a real 404 status.
  6. Re-check monthly and after every URL change.

Frequently asked questions

Do broken links hurt SEO?
Google has said 404 errors by themselves do not lower a site's rankings. The damage is indirect: visitors hit dead ends, crawlers waste requests, and backlinks to missing pages stop passing value to your content.
Should I redirect all 404 pages to my home page?
No. Google generally treats irrelevant redirects to the home page as soft 404s, so they do not help, and visitors land somewhere they did not expect. Redirect only to a closely related replacement, or let the URL return 404.
What is the difference between 404 and 410?
Both tell browsers and crawlers that the page is not available. A 410 states that the removal is deliberate and permanent, while a 404 just says nothing was found. In practice search engines handle them similarly, so either is fine for removed content.
How often should I check for broken links?
Monthly is a sensible default for most sites, with an extra check after any redesign, migration or bulk URL change. Large sites that publish daily may benefit from weekly checks of key sections.
Marketing Automation - New e-commerce features

Latest articles

All articles →