To fix broken links, first find every internal link that points to a page returning a 404 or server error, then either update the link to the correct live URL or, if the page has moved for good, add a 301 redirect from the old address to the new one. A crawler plus Google Search Console will show you almost all of them in under an hour.
I check broken links on every site I audit, and I find them on nearly all of them. They are rarely dramatic, but they waste your visitors’ patience and your crawl budget, and they quietly cut the flow of internal links to pages you want to rank. Here is the process I use, written so you can follow it yourself.
What counts as a broken internal link
An internal link is any link from one page on your site to another page on the same site. It is “broken” when the destination does not return a working page. In practice that usually means one of these responses:
- 404 Not Found: the page does not exist at that address. This is the most common case, often caused by a deleted post or a changed URL slug.
- 410 Gone: the page was removed deliberately. Fine for the page itself, but your own links should not keep pointing at it.
- 5xx server errors: the server failed to deliver the page. This is a different problem from a 404, and I treat it separately below.
- Redirect chains and loops: not broken in the strict sense, but a link that goes A to B to C to D is slow and fragile, and a loop never reaches a page at all.
There is also the “soft 404”, where a page says something like “nothing found” but the server still returns a 200 (success) code. Google may report these in Search Console, and they are worth cleaning up for the same reasons.
Why broken links matter for SEO and for leads
A single broken link will not sink your rankings. Google treats 404s as a normal part of the web. The trouble starts when they pile up, or when they sit on the pages that matter most.
- Lost visitors: someone clicks “View our services” from a blog post and lands on an error page. Many of them leave, and that is a lead gone.
- Wasted internal link value: internal links help Google discover pages and understand which ones are important. A link to a dead URL passes that signal to nowhere.
- Slower discovery: Google follows links to find content. If the path to a new page runs through broken links, it may be found later than it should be.
- Trust signals: a site full of dead links looks neglected, both to people and to anyone judging whether you are a reliable business.
Google’s own guidance on making links crawlable is a useful reminder that links should be proper <a href> elements pointing to real, resolvable URLs. A broken link fails that basic test.
Check your website for this in 2 minutes
Our free SEO audit scans up to 50 pages and shows exactly which pages have this issue, with step-by-step fixes and a PDF report.
Run a free SEO audit →Step 1: Find broken links with a crawler
The fastest way to see the full picture is to crawl your site the way a search engine would. A crawler starts at your homepage, follows every link and records the status code of each URL it reaches.
Before you install anything, run your homepage through my free SEO audit tool. It flags common technical problems, including broken links, and gives you a quick sense of how much work is ahead. For a full list across hundreds of pages, a desktop crawler is the next step.
What to do with the crawl results
- Filter the results to internal URLs with a 4xx or 5xx status code.
- For each broken URL, look at the “inlinks” or “linked from” report. This tells you which pages contain the broken link, and that is where the fix happens.
- Export the list to a spreadsheet with three columns: broken URL, the page linking to it, and the anchor text.
- Sort by the number of pages linking to each broken URL. A broken link in your header or footer appears on every page, so fixing that one item clears hundreds of errors at once.
Example: imagine your crawl reports 250 broken links, but the “linked from” column shows the same old “Privacy Policy” URL on every page. That is one footer link that changed when the site was rebuilt. One edit in the footer settings clears almost the whole list.
Step 2: Cross-check in Google Search Console
A crawler only finds links it can reach from your homepage. Google Search Console shows what Google itself has found, including URLs linked from old sitemaps, external sites or pages you have forgotten about.
- Open Search Console and go to Indexing > Pages.
- Under the reasons pages are not indexed, look for Not found (404), Soft 404 and Server error (5xx).
- Click into each one to see the affected URLs. Use the URL Inspection tool on a sample to check where Google found the link.
Do not panic if this report lists URLs you have never heard of. Some will be old pages, some will be typos on other people’s sites. You only need to act on the ones that matter, which I cover in the next step.
If you are seeing lots of errors and very few indexed pages, my guide on why a website is not showing on Google walks through the wider indexing checks.
Step 3: Decide whether to fix the link or redirect the URL
This is where most people go wrong. They redirect everything to the homepage and call it done. That hides the error without helping anyone. Use this simple decision table instead.
| Situation | Best fix |
|---|---|
| The link has a typo or points to an old slug, and the right page exists | Edit the link so it points directly to the correct URL |
| The page moved to a new URL permanently | Add a 301 redirect from old to new, and also update your own internal links to the new URL |
| The page was deleted, and a closely related page exists | 301 redirect to that related page |
| The page was deleted, and nothing similar exists | Remove or replace the link on your pages, and let the old URL return 404 or 410 |
| The URL returns a 5xx error | Investigate the server or plugin problem; do not redirect it |
The key principle: fix your own links at the source wherever you can. Redirects are a safety net for visitors and links you do not control, such as backlinks from other sites and old bookmarks. Your own pages should link straight to the final URL, with no redirect in between.
And a 404 is not a failure in itself. If a page genuinely no longer exists and has no replacement, a 404 is the honest answer. Google’s guidance on creating useful 404 pages suggests making that page helpful, with links back to your main sections, rather than pretending the page exists.
Step 4: Treat 5xx errors differently from 404s
A 404 means “this page is not here”. A 5xx means “the server broke while trying to load this page”. They need different responses.
If your crawler reports 500, 502, 503 or 504 errors, check whether they happen every time or only now and then:
- Consistent errors on specific pages usually point to a broken template, a faulty plugin or a PHP error on that page type. Open the page while logged in and check your server error log.
- Random errors across the site often mean the server is struggling under load, or the crawler is going too fast for cheap shared hosting. Slow the crawl down and test again.
- Errors on every page mean the site is effectively down for search engines. Treat that as urgent and speak to your host.
Redirecting a 5xx page somewhere else does not solve the problem. The page itself needs to work again.
How to fix broken links in WordPress
Most of the sites I work on run WordPress, and it has some specific causes and shortcuts worth knowing.
Common WordPress causes
- Changed permalinks: switching the permalink structure under Settings > Permalinks changes every post URL at once. Links typed into content still use the old format.
- Edited slugs: WordPress often redirects an old post slug automatically, but this is not reliable for pages, categories or custom post types.
- Site migrations: moving from a staging domain or from http to https can leave hard-coded links to the old address inside content.
- Deleted media and pages: removing an old PDF brochure or service page leaves every link to it broken.
Fixing them efficiently
- Menus, headers and footers first: go to Appearance > Menus or your theme’s header and footer builder. These links appear site-wide, so they give you the biggest win for the least effort.
- Individual posts: open each page from your spreadsheet in the editor, find the link by its anchor text, and update the URL.
- Bulk replacements: when the same old URL appears in dozens of posts, a search-and-replace plugin can update them all at once. Always take a full database backup first, and run a “dry run” if the plugin offers one.
- Redirects: use a redirect plugin or your SEO plugin’s redirect manager to add 301s for moved pages. Avoid stacking redirects on top of old redirects, which creates chains.
One caution: some “broken link checker” plugins scan your site constantly from inside WordPress, which can slow down cheap hosting. I prefer to run an external crawl, fix the list, then switch the plugin off or remove it.
Common mistakes to avoid
- Redirecting every 404 to the homepage. Google may treat these as soft 404s anyway, and visitors are left confused about where the content went.
- Relying only on redirects. Leaving your own links pointing at redirected URLs adds delay to every click and creates chains over time.
- Ignoring links in images and buttons. Page builders often store button links separately from text, so they get missed in a quick manual check. A crawler catches them.
- Fixing once and forgetting. Links break again whenever content changes. A crawl every month or two keeps the list short.
- Deleting pages without a plan. Before removing any page, check what links to it and decide on its replacement or redirect first.
Broken links are one item on a longer list. If you want to see how they fit alongside indexing, speed, mobile and on-page checks, my step-by-step SEO audit guide covers the full routine, and the technical SEO checklist for business websites is a good companion for the technical side.
When to get expert help
Most small sites can clear broken links in an afternoon using the steps above. It is worth bringing someone in when:
- You have just migrated or redesigned the site and the crawl shows hundreds or thousands of errors.
- Important pages that used to bring in enquiries have disappeared from Google.
- You see persistent 5xx errors and do not have access to, or confidence with, server logs.
- Your redirects have grown into chains and loops nobody fully understands.
In those cases the fix often involves the site’s structure and code, not just a few links. That is the kind of clean-up I handle as part of my website development and repair services, alongside the SEO work.
Your next steps
- Run your homepage through the free SEO audit tool linked earlier in this guide to get a quick snapshot of broken links and other technical issues.
- Crawl the full site, export the broken internal links, and sort them by how many pages link to each one.
- Fix site-wide links in menus and footers first, then update individual pages, then add 301 redirects only where a page has truly moved.
- Check Search Console’s Pages report a few weeks later to confirm the errors are dropping.
- Put a recurring crawl in your calendar every month or two.
If you would rather have it done for you, or the audit turns up more than broken links, get in touch with me, Subrat Patnaik, and I will look at your site and tell you plainly what needs fixing first.
Frequently asked questions
Do broken links hurt my Google rankings?
A handful of broken links will not cause a ranking drop on their own, because Google expects some 404s on any site. The real cost is indirect: visitors leave when they hit dead pages, internal link signals are wasted, and new content can be discovered more slowly. Many broken links on key pages are worth fixing promptly.
Should I redirect all 404 pages to my homepage?
No. Sending every missing page to the homepage confuses visitors and Google may still treat those URLs as soft 404s. Redirect a missing page only when there is a genuinely equivalent or closely related page. If nothing similar exists, remove your links to it and let the old address return a 404 or 410.
What is the difference between a 404 and a 5xx error?
A 404 means the requested page does not exist at that address, which is usually a content or linking issue. A 5xx error means the server failed while trying to deliver the page, which points to hosting, plugin or code problems. 404s are fixed by updating links or redirecting, while 5xx errors need the underlying server issue repaired.
How often should I check my website for broken links?
For most business websites, a full crawl every month or two is enough to keep broken links under control. Check again straight after any redesign, migration, permalink change or bulk content clean-up, because those are the moments when large numbers of links tend to break at once.
Can I fix broken links in WordPress without a plugin?
Yes. You can run an external crawler, then edit each affected menu, widget, post or page by hand in the WordPress editor. Plugins mainly help with bulk search-and-replace and managing redirects. If you do use one, take a database backup before making bulk changes and remove scanning plugins once the clean-up is done.




