Fix Broken Links in WordPress with the Redirection Plugin
You renamed a category, deleted a few old blog posts, or moved products around in WooCommerce, and now Search Console is flagging dozens of 404s. Somewhere out there, Google, your customers, and every site that ever linked to you are still hitting URLs that no longer exist. Here's how to actually fix that instead of just watching the error count climb.
Symptom: How This Usually Shows Up
Broken links rarely announce themselves loudly. You notice them through smaller signals that add up:
- Google Search Console's Coverage report shows a growing list of "Not Found (404)" pages
- Analytics shows real traffic landing on your 404 page, sometimes from old backlinks or bookmarks
- Customers email asking why a product or blog link "doesn't work anymore"
- Internal navigation — menus, related-post widgets, old shortcodes — points at pages you deleted months ago
None of this crashes your site. It just quietly leaks SEO value and annoys visitors one dead click at a time.
Cause: Where Broken Links Actually Come From
In almost every case it's one of these:
- Permalink structure changes — switching from
/?p=123to/%postname%/, or changing a custom post type's slug, rewrites every URL on the site at once - Deleted or unpublished content — an old blog post, a discontinued product, a seasonal landing page — removed without anyone redirecting the URL
- Renamed categories or tags — changing a category slug changes every URL that includes it
- Site restructuring — moving from
/blog/post-name/to/articles/post-name/, or merging two sites - External links you don't control — other sites, forums, and old guest posts linking to a URL that's since moved
WordPress itself has no memory of where a URL used to point once you change or delete it. That mapping has to be created and stored somewhere — that's the whole job of a redirect manager.
Fix: Find Every Broken Link First
Don't start creating redirects blind. Find out what's actually broken:
- In Search Console, go to Indexing → Pages and filter for "Not found (404)" — this is what Google has actually tried to crawl and failed on
- Cross-check with Analytics → Reports → Engagement → Pages and screens, filtered to your 404 template, to catch real visitor traffic hitting dead links
- For a full internal crawl, run a tool like Screaming Frog (free up to 500 URLs) against your live site to list every internal link pointing at a 404
Only once you have this list should you start building redirects — otherwise you're guessing at what needs fixing.
Setting Up the Redirection Plugin
Redirection is the free plugin most WordPress sites end up using for this, mainly because it logs 404s automatically and lets non-developers manage redirects without touching a server config file.
- Install and activate Redirection from Plugins → Add New
- Run through its setup wizard and enable "Monitor permalink changes" — this makes it auto-create a redirect whenever you change a post or page's slug going forward
- Let it run for 3–5 days before bulk-fixing anything. Go to Tools → Redirection → 404s to see what's actually being hit, sorted by frequency — fix the high-traffic ones first
- For a single dead URL, go to Redirection → Redirects → Add New, set the source URL, the target URL, and leave the redirect type at 301 (permanent)
For pattern-based moves — like an entire old blog structure — use a regex source instead of typing hundreds of individual rules:
Source URL (regex): ^/blog/([0-9]+)/(.*)$
Target URL: /articles/$2
Tick "Regex" on the redirect form for this to work — otherwise Redirection treats it as a literal string match.
When to Use .htaccess Instead
A plugin adds a small amount of PHP overhead per request since WordPress has to load before it can redirect you. For large, permanent, site-wide moves — a full domain migration or a URL structure you're never reverting — a server-level redirect in .htaccess is faster and survives even if WordPress itself is broken:
RedirectMatch 301 ^/blog/(.*)$ /articles/$1
Add this above the WordPress block in .htaccess via cPanel's File Manager, not below it — Apache reads rules top to bottom, and WordPress's own rewrite rules will intercept the request first if your redirect sits underneath them.
| Method | Best for | Downside |
|---|---|---|
| Redirection plugin | Ad-hoc redirects, non-technical editing, 404 logging | Slight per-request overhead; disabled if the plugin is deactivated |
| .htaccess RedirectMatch | Bulk/permanent structural changes, whole-domain migrations | Requires manual editing, no logging, easy to typo a regex |
Prevention: Stop Making New Broken Links
- Keep "Monitor permalink changes" turned on in Redirection so slug edits redirect automatically instead of silently breaking
- Before deleting a post, page, or product, ask whether it has backlinks or organic traffic first — check Analytics, then redirect it to the closest live equivalent rather than just trashing it
- If you're changing your permalink structure site-wide, export a full URL list first (via an XML sitemap or a crawl) so you have an old-to-new mapping ready before you flip the setting
- Review the 404 log in Redirection monthly — a spike usually means something just changed on the site or an external site started linking to a URL that no longer exists
- Avoid redirect chains — a URL that redirects to a URL that redirects again wastes crawl budget and slows the final page load. Point every redirect straight at its final destination
Ten minutes of redirect cleanup after every content reshuffle is a lot cheaper than losing months of accumulated search rankings on pages that just vanished.
Frequently asked questions
Will adding a lot of 301 redirects slow down my WordPress site?
A handful to a few hundred redirects through the Redirection plugin has no noticeable impact — it's a single fast database lookup. If you're managing thousands of redirects, or the site is already slow, move the bulk structural ones into .htaccess instead, since Apache handles those before WordPress even loads.
Should I redirect a deleted page to my homepage?
Only as a last resort. Redirecting everything to the homepage tells Google the specific content is gone for good and wastes the chance to pass along relevance and backlink value. Redirect to the closest matching live page — a similar product, the parent category, or an updated version of the article — instead.
Do I need a manual redirect for every single post if I change my permalink structure?
No — that's exactly what "Monitor permalink changes" in Redirection handles automatically, creating a redirect the moment a post or page's URL changes. It won't help retroactively for changes made before you installed it, so for a past structure change you'll need to bulk-import redirects from an old URL list instead.
How long should I keep an old redirect active?
Indefinitely, for anything with external backlinks or lingering organic traffic. Removing a redirect turns it back into a 404 for anyone still using that old link. Storage cost is negligible, so unless you're absolutely certain nothing external points at the old URL anymore, leave the redirect in place.