How to Find and Fix Broken Links on Your Website
- What Are Broken Links, and Why Should You Care?
- Types of Broken Links
- Why Broken Links Hurt Your SEO
- Internal vs. External Broken Links
- How to Find Broken Links
- How to Fix Broken Links
- Common Scenarios That Create Broken Links
- How to Prevent Broken Links
- Building a Broken Link Fixing Workflow
- Measuring Success
What Are Broken Links, and Why Should You Care?
A broken link is any hyperlink that fails to deliver the user to a working page. Click one and you hit a dead end -- a 404 error, a server timeout, or an endless redirect loop. Every site accumulates them over time. Pages get deleted, URLs change during redesigns, external sites go offline. The question is not whether your site has broken links. It does. The question is how many, how important they are, and what you are doing about them.
Broken links directly affect your search rankings through three things that determine your visibility: how efficiently search engines crawl your site, how ranking authority flows through your pages, and whether users trust your content enough to stay and convert.
Types of Broken Links
404 Not Found
The most straightforward type. The URL returns a 404 status code, meaning the server explicitly says the page does not exist. This happens when a page is deleted, a URL is changed without a redirect, or someone types a URL incorrectly when creating a link. The real damage is to any internal links pointing to that URL -- they are dead ends leaking link equity into nothing.
5xx Server Errors
A 500, 502, or 503 error means the server itself is broken or overloaded. Unlike 404s, these are often transient -- the page might work fine an hour later. But persistent server errors cause pages to be dropped from the index. The danger is that server errors tend to affect entire sections at once. A database connection failure does not break one page -- it breaks every page that queries the database.
Redirect Chains
A redirect chain occurs when URL A redirects to URL B, which redirects to URL C, which may redirect further. Each hop adds latency and loses a small amount of link equity. Redirect chains typically accumulate during site migrations -- you redirect old URLs to new ones, then restructure again, and the original redirects now point to URLs that themselves redirect.
Example: An e-commerce site migrated from /products/widget-123 to /shop/widgets/widget-123 in 2023. In 2025, they reorganized to /store/home-widgets/widget-123. Now any old backlink goes through two redirects before reaching the actual page.
Soft 404s
The most insidious type. The server returns a 200 OK status code, but the page content is empty or useless -- a generic "page not found" message or an empty search results page. Google specifically identifies soft 404s in Search Console and treats them as 404s, but with less certainty and slower processing. Soft 404s waste crawl budget because the crawler keeps revisiting them.
Common causes include CMS platforms that render a "no results" template for deleted content instead of returning a proper 404 status code.
Timeout Errors
Some links do not return any HTTP status code at all -- the connection simply times out. This happens with external links to servers that are down, slow, or blocking your IP. Timeouts are harder to track because they behave differently depending on network conditions and geographic location.
Why Broken Links Hurt Your SEO
Wasted Crawl Budget
Search engines allocate a finite crawl budget to each site. Every request spent on a broken URL is a request not spent on a page that matters. For large sites with thousands of pages, this compounds significantly. If Googlebot spends 15% of its crawl budget on 404s, that is 15% less capacity for indexing your actual content.
Link Equity Loss
Internal links distribute ranking authority throughout your site. When a link points to a broken URL, that authority disappears -- it does not redistribute to other links on the page.
Consider a blog post with strong external backlinks that links to three product pages. If one internal link is broken, roughly one-third of the authority that post would pass is wasted. Across dozens of broken internal links, the cumulative loss becomes significant.
User Experience and Engagement Signals
A user who hits a 404 has three options: use the back button, navigate elsewhere, or leave. Most leave. Higher bounce rates and lower time-on-site send negative engagement signals. A visitor who encounters two or three broken links starts questioning whether the content is maintained and whether they should trust you with their email address or credit card.
Indexing Problems
Broken links in your navigation or XML sitemap mislead search engines about your site's structure. If your sitemap lists broken URLs, Google will flag this in Search Console and may reduce the trust it places in your sitemap data overall.
Internal vs. External Broken Links
Not all broken links deserve the same urgency. Understanding the difference between internal and external broken links helps you prioritize your fixing efforts.
Internal Broken Links: Your Top Priority
Internal broken links -- links within your site that point to other pages on your site -- are entirely within your control. They indicate structural problems: pages that were deleted without redirects, URL slugs that were changed, or template errors generating incorrect links.
Internal broken links are more damaging than external ones for two reasons. First, they break your site's internal link structure, which is the primary mechanism you control for distributing ranking authority. Second, they affect every single visitor who encounters them, not just those who happen to click a specific outbound link.
Prioritize internal broken links by:
- Link location. A broken link in your main navigation or footer affects every page on the site. Fix these first.
- Source page authority. A broken link on your highest-traffic page wastes more link equity than one on a page nobody visits.
- Number of pages linking to the broken URL. If 50 pages link to a deleted URL, that is 50 broken links with a single fix -- add a redirect.
- Crawl depth. Broken links encountered early in the crawl (close to the homepage) waste more crawl budget than those buried deep in the site.
External Broken Links: Lower Priority, Still Important
External broken links -- links from your site to other websites -- are partially outside your control. The linked site might have restructured, gone offline, or moved content. You cannot fix someone else's server.
External broken links matter less for technical SEO because they do not break your internal link structure. However, they still affect user experience and can signal a poorly maintained site. A resource page full of dead links is not helpful content.
Prioritize external broken links by:
- Page importance. Fix broken outbound links on your most-visited and highest-ranking pages first.
- Content relevance. A broken citation link in an authoritative guide undermines the content's credibility more than a broken link in a blog comment.
- Fix difficulty. Often you can find the new URL for moved content with a quick search. If not, remove the link or find an alternative resource.
How to Find Broken Links
Manual Spot-Checking
Click links on your most important pages and see what happens. Tedious and unscalable, but worth doing occasionally on your homepage and top-performing content. Human spot-checking sometimes reveals issues that automated tools miss -- like a link that returns a 200 but leads to an irrelevant page.
Browser Developer Tools
Open Chrome DevTools (F12), go to the Network tab, reload a page, and filter by status codes in the 400-599 range. This shows broken resources on that specific page. It only checks one page at a time, but it is immediate and requires no setup.
Google Search Console
Search Console's Pages report (under Indexing) lists URLs that Google encountered but could not index. Filter for "Not found (404)" and "Soft 404" errors. This shows you exactly which broken URLs Google's crawler has found.
The limitation: Search Console only shows URLs that Googlebot attempted to crawl. It is reactive, showing problems after Google has found them. You want to find them first.
Browser Extensions
Extensions like Check My Links or Broken Link Checker scan a single page for broken links. Useful for content editors checking pages before publishing, but they do not scale to site-wide audits.
Crawl-Based Tools
The most thorough approach is a site-wide crawl that follows every internal link, checks every URL, and reports the results. SEO Monitor crawls your pages and checks up to 60 internal links per page, reporting broken links alongside other on-page SEO signals like missing titles, thin content, and indexing directives. Because it runs as part of a broader technical SEO audit, broken link data is contextualized -- you see not just that a link is broken, but which pages contain it and what other issues those pages have.
A crawl-based approach finds issues before Search Console discovers them and before users encounter them.
Log File Analysis
For large sites, server access logs reveal which URLs return 404 status codes. This captures broken links from all sources -- crawlers, users, social media, and external sites. The downside is that log analysis requires server access and technical skills to parse the data.
Automated Monitoring
Finding broken links once is useful. Keeping them found is what matters. A broken link audit from January is stale by March. Automated monitoring -- through scheduled crawls or a tool like SEO Monitor that re-crawls on a configurable schedule -- ensures new broken links are caught within days, not months.
How to Fix Broken Links
301 Redirects: The Default Fix
When a page has moved to a new URL, set up a 301 (permanent) redirect from the old URL to the new one. A properly implemented 301 passes approximately 95-99% of the original page's link equity to the new URL and tells search engines to update their index.
Implementation depends on your stack -- .htaccess on Apache, rewrite directives on Nginx, a Redirection plugin on WordPress, Page Rules on Cloudflare, or config files on Vercel/Netlify.
Common mistakes with redirects:
- Redirecting everything to the homepage. Google treats this as a soft 404. Redirect to the most relevant existing page.
- Using 302 (temporary) instead of 301 (permanent). A 302 does not transfer link equity.
- Creating redirect chains. If
/oldalready redirects to/intermediate, point/olddirectly to the final destination. - Forgetting to redirect both with and without trailing slash.
Updating the Source Links
Redirects handle external links and bookmarks you cannot control. But for internal links, the better fix is updating the link itself to point directly to the correct URL -- a redirect adds an extra HTTP round-trip that a direct link avoids.
After setting up redirects, search your CMS or content database for the old URL and replace it. Most platforms have search-and-replace functionality for this.
Removing Dead Links
Sometimes there is no appropriate redirect target. The linked content simply does not exist anymore and nothing equivalent has replaced it. In these cases, remove the link entirely.
If the broken link was providing context or supporting a claim in your content, replace it with a link to an alternative resource that serves the same purpose. Do not leave a parenthetical reference to something the reader cannot access.
Handling Broken External Links
You cannot fix someone else's website, but you can fix your side:
- Check the Wayback Machine. The Internet Archive may have a cached version, and sometimes the content simply moved to a new URL.
- Search for the content. Paste the page title into a search engine -- it may have been republished elsewhere.
- Find an alternative. If the original is gone, link to a comparable resource.
- Remove the link. If no alternative exists, remove it. A dead link is worse than no link.
Fixing Redirect Chains
Redirect chains require a specific approach. You need to identify every redirect in the chain and repoint each one directly to the final destination.
Example chain: /blog/old-post → /blog/2023/old-post → /blog/posts/old-post → /articles/old-post
Fix: Update all three redirects to point directly to /articles/old-post:
/blog/old-post→/articles/old-post/blog/2023/old-post→/articles/old-post/blog/posts/old-post→/articles/old-post
Then update all internal links to use /articles/old-post directly, eliminating the need for any redirect at all for your own visitors.
Fixing Soft 404s
Soft 404s require a two-part fix:
- If the page should not exist: Configure your server or CMS to return a proper 404 status code for pages with no content. In many CMS platforms, this means customizing the error handling for deleted or empty content.
- If the page should exist: Add meaningful content. An empty category page, a search results page with zero results, or a product page with only a title and no description -- these need content or should return a 404 if the content truly does not exist.
Common Scenarios That Create Broken Links
Site Migrations
A site migration -- changing domains, restructuring URLs, or moving to a new CMS -- is the largest source of broken links. The typical failure mode: you create a redirect map for your top 500 pages, but your site has 3,000 URLs including old blog posts, PDFs, and image URLs. The 2,500 URLs not in your map all break simultaneously.
Prevention: Before migrating, crawl your entire site and export every URL. Map each one to either a new URL or a deliberate 404. Crawl the new site immediately after launch and compare.
Deleted Products or Content
E-commerce sites delete product pages when items go out of stock permanently. Content sites archive outdated articles. Any internal links to those pages break, and external backlinks lose their value.
Prevention: Never delete a URL without a redirect. For products, redirect to the parent category or a similar product. For blog posts, redirect to a related article.
Changed URL Structure
Switching from /blog/post-title to /articles/2026/post-title changes every URL on your site. Without comprehensive redirects, every internal and external link breaks.
Prevention: Avoid changing URL structure unless there is a compelling reason. When you must, generate redirects programmatically -- do not create redirect maps manually.
CMS Updates and Template Changes
A CMS update might change how URLs are generated. A template change might alter navigation links. These changes are subtle and often go unnoticed because they happen at the template level, affecting every page.
Prevention: After any CMS or template update, run a crawl and compare broken link counts to your baseline. SEO Monitor's scheduled crawls catch these regressions automatically -- if Wednesday's crawl finds 12 broken links that were not there Monday, something changed mid-week.
External Link Rot
External links break at a rate of roughly 6-7% per year. A three-year-old blog post with 20 external links can expect 3-4 to be dead.
Prevention: Audit external links on your highest-value content annually. Quarterly for sites where citations are central to the content's value.
How to Prevent Broken Links
Establish a Monitoring Baseline
Run a full site crawl, fix everything you find, and record the result. This is your baseline. Any future crawl above zero means something changed. Tools like SEO Monitor send periodic crawl results so you can spot new broken links before they affect search performance. The goal is not perfection -- it is early detection.
Pre-Launch and Pre-Publish Checks
Before launching a new site or major update: - Crawl the staging site and check for broken internal links - Verify all redirects from the old URL structure are in place - Test navigation and footer links on every major template - Check XML sitemap URLs against actual live pages
Before publishing new content: - Verify all links in the article resolve correctly - Use developer tools or a link-checking extension to scan the page
Redirect Management
Maintain a redirect log -- a spreadsheet of every redirect, when it was created, and why. This lets you check whether a source URL already redirects somewhere (preventing chains) and decide whether old redirects can be retired.
URL Hygiene
Practices that reduce broken link risk from the start:
- Use descriptive, stable URL slugs.
/blog/seo-broken-links-guideis less likely to be changed than/blog/post-12847. - Avoid dates in URLs unless the content is genuinely time-bound.
- Lowercase everything. Mixed-case URLs cause duplicate content issues.
- Use hyphens, not underscores. Google treats hyphens as word separators but underscores as joiners.
CMS Plugins and Guardrails
Install plugins that warn editors when deleting a page with inbound internal links, suggest redirects when a URL slug changes, and validate links before publishing. WordPress plugins like Yoast SEO and Redirection offer these capabilities.
Developer Workflow Integration
For sites managed through version control:
- Add broken link checking to your CI/CD pipeline with tools like
html-proofer,linkchecker, orbroken-link-checker. - Include redirect verification in your deployment checklist.
- Use integration tests that check critical internal links -- homepage navigation, top landing pages, conversion funnels.
Building a Broken Link Fixing Workflow
Knowing how to fix broken links is one thing. Making it a repeatable process is another. Here is a practical workflow:
Step 1: Audit
Run a full site crawl. Export all broken links with their HTTP status codes and the pages they appear on. Group them by type: 404s, redirect chains, server errors, soft 404s, timeouts.
Step 2: Prioritize
Sort by impact:
- Global navigation or footer links -- these affect every page. Fix immediately.
- High-traffic pages -- broken links there waste the most link equity.
- Pages with multiple broken links -- a page with five broken links is a worse user experience than five pages with one each.
- Broken URLs that had external backlinks -- these represent lost link equity from external sources.
- Everything else -- fix in batches as time allows.
Step 3: Fix
Apply the appropriate fix for each type:
- 404 where content moved → 301 redirect
- 404 where content was deleted → redirect to nearest relevant page or remove the link
- Redirect chain → collapse to single redirect, then update internal links
- Soft 404 → return proper 404 status or add real content
- Broken external link → find new URL, find alternative, or remove
Step 4: Verify
After fixing, re-crawl to confirm. SEO Monitor tracks page-level SEO signals across crawls, so you can compare results and confirm the broken links are gone.
Step 5: Monitor
Set up recurring crawls as part of your broader SEO monitoring workflow -- weekly for active sites, monthly for stable ones. A sudden spike means something broke in production. A gradual increase means link rot is accumulating faster than you are fixing it.
Measuring Success
Track these metrics to gauge progress:
- Total broken internal links -- should trend toward zero and stay there.
- New broken links per crawl -- a healthy site adds very few between cycles.
- Crawl efficiency -- in Search Console, check the ratio of crawled pages to total pages.
- 404 errors in Search Console -- should decrease steadily after systematic fixing begins.
Broken links are not a one-time problem. They are a maintenance obligation, like monitoring page speed, updating dependencies, or renewing SSL certificates. The sites that rank well are not the ones that never have broken links -- they are the ones that find and fix them fast.
Try SEO Monitor Free
Run a technical SEO audit in minutes. Monitor content changes 24/7. Track rankings across Google, Yandex, and Bing.
Get Started Free