
Short answer: To fix broken links, crawl your site to list every link that returns a 404, 410 or 5xx error, then deal with each one. Point internal links straight at the correct live URL, 301 redirect deleted pages that still have traffic or backlinks to the closest equivalent page, replace or remove dead external links, and leave truly obsolete URLs as 404 or 410. Recrawl to confirm, then repeat monthly or quarterly.
This guide is for site owners, editors and SEOs who have a list of broken links from a crawler or Search Console and want to know what to do with each one, in the right order. You will learn how to find them properly, how to choose between updating, redirecting, removing or leaving a 404, how to do it on WordPress, Shopify or an Apache server, and how to stop new ones appearing. It is the same process I follow when broken links come up in a technical SEO audit.
What counts as a broken link
A broken link is any link whose destination does not return a working page. Most people think only of 404 errors, but when I review crawl exports I group problems like this:
| Status or symptom | What it means | Is it “broken”? |
|---|---|---|
| 404 Not Found | The URL does not exist (deleted, renamed or mistyped) | Yes |
| 410 Gone | The page was removed on purpose and is not coming back | Yes, but intentional; fine for retired URLs as long as you stop linking to them |
| 5xx server errors | The server failed to respond properly | Yes if persistent; a one-off may be downtime |
| Soft 404 | The page returns 200 but shows an error or empty content | Yes, Search Console reports it separately |
| Redirect chains and loops | A link passes through several redirects, or circles back on itself | Not broken yet, but slow and fragile; loops are effectively broken |
| Broken images, scripts and PDFs | Resources inside the page fail to load | Yes; often missed because crawlers report them separately |
It also matters where the link lives. Internal links (between your own pages) are fully under your control. Outbound links (from you to other sites) can only be updated or removed. Inbound links (from other sites to a page of yours that no longer exists) are the most valuable to rescue, because you can recover them with a redirect.
Why broken links matter for SEO
Broken links are rarely a ranking disaster on their own, and I am wary of articles that claim a fixed traffic loss per broken link. What they do cause is real and measurable:
- Lost visitors. Someone who clicks a link and lands on an error page often leaves. On a product or service page, that is a lost enquiry.
- Pages dropping out of the index. Google’s documentation on HTTP status codes says it does not index URLs that return a 4xx status, and previously indexed URLs that start returning 4xx are removed. If you break a page that ranked, its rankings go with it.
- Wasted link value. Backlinks pointing at a dead URL no longer help any live page. A 301 redirect to the right page lets you reuse them.
- Weaker internal linking. Internal links are how Google finds and understands your pages. A broken link from a hub page can leave a deeper page poorly connected. My guide to internal linking explains why this structure matters.
- Crawl waste on large sites. On sites with tens of thousands of URLs, crawlers spending time on dead links and long redirect chains matter more; see crawl budget. On a 50-page brochure site it is not a real concern.
- Trust. A guide full of dead references looks neglected, which works against the experience and trust you want readers to see.
The scale of the problem is bigger than most owners expect. Pew Research Center’s 2024 study of link rot found that 38% of pages that existed in 2013 were no longer accessible, and that 54% of Wikipedia pages had at least one dead link in their references (Pew Research Center). Any site that links out will collect dead links over time without regular checks.
Rather have an expert do this for you?
Hand it over and get back to running your business.
How to find broken links
No single tool catches everything, so I use two or three sources and merge the results into one sheet.
1. Crawl your site
A crawler follows every link from your homepage and reports the status of each destination. For a small site, my free broken link checker is enough. For larger sites, use a desktop crawler such as Screaming Frog (the free version crawls up to 500 URLs) or the site audit in Ahrefs or Semrush. Settings that matter:
- Check external links too, not just internal ones.
- Include images, CSS, JavaScript and PDFs.
- Enable JavaScript rendering if your menus or content load with JavaScript, or you will miss links.
- Export the “inlinks” report, which shows the source page and anchor text for every broken link. Without it you know what is broken but not where to fix it.
2. Check Google Search Console
In the Pages report under Indexing, look at “Not found (404)”, “Soft 404” and “Server error (5xx)”. These are URLs Google tried to crawl, which may include old URLs that other sites still link to and that your own crawler will never find. My guide to the Search Console coverage report explains each status.
3. Find broken backlinks
Use a backlink tool’s “broken backlinks” or “best by links” report filtered to 404 pages. These are dead URLs on your site that other sites still link to, and they are often the most valuable fixes on the whole list.
4. Check analytics for 404 visits
Filter page titles in GA4 for your 404 page title (for example “Page not found”). This shows which broken URLs real people are hitting, which tells you what to fix first.
How to decide the right fix for each link
This is the step most guides skip, and where I see the most mistakes. Every row in your sheet needs one decision. Use this table:
| Situation | Best fix | Why |
|---|---|---|
| Internal link with a typo or old URL, and the page exists at a new address | Update the link in the source page | Direct links are faster and cleaner than relying on a redirect |
| Page moved or was merged into another page | 301 redirect old URL to the new one, and update internal links | Keeps backlinks and bookmarks working |
| Page deleted but has backlinks or traffic, and a close equivalent exists | 301 redirect to the closest equivalent | Rescues link value for a relevant page |
| Page deleted, no equivalent, no backlinks | Leave as 404 or return 410, and remove internal links to it | Redirecting to an unrelated page helps nobody |
| Page deleted by mistake and still useful | Restore the page at the same URL | Simplest and keeps everything |
| External link to a page that has moved | Update to the new URL | Keeps the reference for readers |
| External link to content that is gone | Replace with an equivalent reliable source, or remove the link | A dead reference adds nothing |
| Persistent 5xx errors | Fix the server or application issue first | The page is not broken, the server is |
Two mistakes I see repeatedly. First, redirecting every broken URL to the homepage. Google’s site move guidance says that redirecting many old URLs to one irrelevant destination such as the home page can confuse users and may be treated as a soft 404, so you gain nothing. Second, leaving internal links pointing at a redirect. The page loads, so nobody notices, but every visit and crawl takes an extra hop, and chains build up over successive redesigns.
Worked example: triaging a small crawl export
Imagine a Karachi furniture shop’s crawl finds 40 broken links. Sorted by source and destination, they fall into four groups:
- 22 links from blog posts to
/product/oak-dining-table/, renamed to/product/solid-oak-dining-table-6-seater/. Fix: one 301 redirect, plus a search-and-replace to update all 22 internal links. - 9 links from the footer to an old
/sale-2024/page. Fix: edit the footer once; the old page has no backlinks, so let it return 404. - 6 outbound links to a supplier’s old catalogue. Fix: replace with the supplier’s current product page where one exists, otherwise remove the link.
- 3 links to a discontinued sofa that has 4 backlinks from local blogs. Fix: 301 redirect to the sofas category page, which is the closest relevant page.
Forty broken links, but only a handful of actual edits: one footer change, one search-and-replace, a few outbound edits and two redirects. Grouping by cause first saves hours.
How to apply the fixes
WordPress
- Use a redirect plugin (Redirection, or the redirect manager in Yoast Premium or Rank Math) to add 301s without touching server files.
- Use a search-and-replace tool to update old URLs inside post content in bulk. Back up the database first and run a dry run.
- Check menus, widgets and page builder templates separately; they are stored outside post content. My WordPress technical SEO checklist covers where else links hide.
Shopify and other hosted platforms
Shopify has a built-in URL redirects list (under Content, then Menus, in the current admin), and its help documentation on URL redirects recommends creating a redirect whenever you change a URL on your store. When you edit a product handle, tick the option to create a redirect if it is offered. Wix, Squarespace and Webflow have similar redirect managers in their settings. Hard-coded links in theme files still need editing by hand.
Apache and Nginx servers
On Apache, a single redirect in .htaccess looks like this: Redirect 301 /old-page/ https://example.com/new-page/. On Nginx, use a return 301 rule in the server block. My .htaccess redirect generator builds the rules for a list of URLs, and the redirect and status code checker confirms each one returns a single 301 to a 200 page.
After fixing
- Recrawl the site and confirm the broken count has dropped and no new chains appeared.
- Update your XML sitemap so it lists only live, canonical 200 URLs.
- In Search Console, use “Validate fix” on the 404 group once the important URLs are sorted. Some 404s for URLs you deliberately removed will remain, and that is fine.
Broken link fixing checklist
Broken link fixing checklist
- Crawl the full site: include external links, images, scripts and PDFs, with JavaScript rendering if needed.
- Export inlinks: get the source page and anchor text for every broken URL.
- Pull Search Console 404, soft 404 and 5xx URLs: add them to the same sheet.
- List broken backlinks: dead URLs on your site that other sites still link to.
- Check GA4 for 404 visits: note which broken URLs real visitors hit.
- Group by cause: one renamed page or one footer link can explain dozens of rows.
- Decide one fix per URL: update, redirect, restore, replace, remove or leave as 404/410.
- Redirect to relevant pages only: never send everything to the homepage.
- Update internal links to final URLs: do not rely on redirects for your own links.
- Collapse redirect chains: every old URL should go to its final destination in one hop.
- Fix persistent 5xx errors at the server: they are not a link problem.
- Clean the XML sitemap: only live 200 URLs.
- Recrawl and validate: confirm fixes, then use Validate fix in Search Console.
- Schedule the next check: monthly for busy sites, quarterly for small ones.
Ticks are saved in your browser, so you can work through the list over several sessions.
How to prevent broken links
- Choose stable URLs. Avoid dates and years in slugs for evergreen pages. My guide to SEO-friendly URLs explains how to pick ones you will not need to change.
- Redirect at the moment of change. Whenever someone renames or deletes a page, adding the redirect should be part of the same task, not a clean-up later.
- Map URLs before any redesign or migration. Most large spikes in 404s I see come from relaunches without a redirect map; my website migration SEO checklist covers this.
- Link to stable external sources. Official documentation and primary sources tend to last longer than blog posts or news pages.
- Check links before publishing. Preview links in drafts, especially links copied from staging sites.
- Schedule recurring crawls. Monthly for e-commerce and news sites, quarterly for small business sites.
Frequently asked questions
Do broken links hurt SEO?
They hurt indirectly. A broken page drops out of Google’s index, backlinks to it stop helping, and visitors who hit errors leave. A few broken outbound links on a large site will not tank rankings, but broken internal links to important pages and dead URLs with backlinks are worth fixing quickly.
Should I redirect all 404 pages to the homepage?
No. Google says redirecting many old URLs to an irrelevant page such as the homepage can be treated as a soft 404. Redirect only to a genuinely equivalent page, and let URLs with no equivalent return 404 or 410.
Is a 404 or a 410 better for deleted pages?
Both tell Google the page is not available, and Google treats 4xx codes in the same way for indexing. Use 410 if you want to be explicit that removal is permanent; either is fine. What matters more is removing your own links to the URL.
How often should I check for broken links?
Monthly for sites that publish or change products often, quarterly for smaller sites, and always immediately after a redesign, migration or bulk content clean-up.
How do I fix broken external links I do not control?
Update your link if the content moved, replace it with an equally reliable source if it is gone, or remove the link. If the broken link is on another site pointing to you, redirect your dead URL to the right page, or ask the site owner to update it.
Can I use broken links on other sites to get backlinks?
Yes, this is broken link building: you find dead links on relevant sites and suggest your page as a replacement when it genuinely covers the same thing. My guide on getting backlinks for free covers how to do it without spamming.
Sources
- Pew Research Center, “When Online Content Disappears” (May 2024).
- Google Search Central, “How HTTP status codes, and network and DNS errors affect Google Search” (documentation, accessed 2026).
- Google Search Central, “Site moves with URL changes” (documentation, accessed 2026).
- Shopify Help Center, “URL redirects” (accessed 2026).
If your crawl shows hundreds of broken links after a redesign or migration, my technical SEO services include redirect mapping and clean-up, or you can get in touch and send me the export.
Request received
Thank you! Saad will contact you within the next 24 hours.
Keep an eye on your phone and inbox.
