SEO Optimization

Every Deleted Page Is a Dead End: A WordPress 301 Redirect Guide

10 min read

The worst site migration we ever walked into looked like a success. New theme, faster pages, a slick relaunch the owner was proud of. Then organic traffic fell off a cliff and nobody could say why. It turned out the rebuild had quietly changed a few hundred URLs, and not one of the old addresses pointed anywhere. Every link Google had indexed, every backlink another site had earned them, every bookmark a customer had saved — all of it landed on a 404.

That’s the thing about redirects: they’re invisible until they’re missing, and by the time you notice, the damage has already compounded. A 301 redirect is the small, boring piece of plumbing that carries a page’s visitors and its search-engine reputation from an old URL to a new one. Skip it during a redesign or a slug change and you don’t just annoy visitors — you throw away years of accumulated SEO.

This guide covers what 301 redirects actually do, when to reach for a 301 versus a 302, the three ways to set them up in WordPress, and the mistakes that quietly bleed traffic even when redirects are in place.


What a 301 Redirect Actually Does

A redirect is a signal your server sends before it sends any page content. When a browser or a search-engine crawler asks for a URL, the server can answer with an HTTP status code that says, in effect, “that page lives somewhere else now — go here instead.” The number in that status code is the whole game.

301 means “Moved Permanently.” It tells browsers and search engines that the old URL is gone for good and the new one is its permanent replacement. Per the HTTP specification (MDN’s reference on 301), clients are encouraged to update their links and cache the redirect. That caching is a double-edged sword, which we’ll come back to.

The reason SEO people care so much is consolidation. Google’s own documentation on redirects describes a permanent redirect as the clearest way to tell Google that a page has moved and that the destination should be indexed in its place. In practice, that’s how the ranking signals a page has built up over years get passed to the new URL instead of evaporating.

301 vs 302 vs 307 vs 308

The status code is not a formality, and picking the wrong one has real consequences. Here’s what each one signals:

  • 301 (Moved Permanently) — the page has permanently moved. Use this for redesigns, slug changes, merged posts, and domain moves. This is the one you’ll use 95% of the time.
  • 302 (Found) is a temporary redirect. It tells search engines to keep indexing the original URL because the move is short-term — a maintenance page, an A/B test, a seasonal landing page.
  • 307 (Temporary Redirect) is the stricter modern version of a 302 that also preserves the request method.
  • 308 (Permanent Redirect) behaves like a 301 but guarantees the request method (a POST stays a POST). For plain content pages a 301 is the conventional choice.

The costly mistake is using a 302 for a move that’s actually permanent. Because a 302 tells search engines to hang on to the old URL, the new page can struggle to inherit the old one’s standing. When in doubt about a genuine move, reach for the 301.

WHY IT MATTERS

Every URL you’ve ever published is a small deposit of trust — links pointing at it, rankings built on it, people who bookmarked it. Change or delete that URL without a redirect and you forfeit the deposit. A 301 is how you move the balance to the new address instead of leaving it to rot in a 404.

When You Actually Need a Redirect

You don’t need to redirect everything, but a few common situations almost always call for one. If any of these describe your site, there’s a redirect you’re probably missing.

You changed a post or page slug

Rename a post’s slug from /summer-sale to /summer-sale-2026 and the old URL is now a 404 for anyone who had it. WordPress actually softens this one for you: core includes a feature called wp_old_slug_redirect() that stores previous slugs in a post-meta key (_wp_old_slug) and quietly forwards the old permalink to the current one. It’s genuinely handy, but it only covers slug changes on existing posts and pages — it won’t help with deleted content, a new permalink structure, or a domain move. Treat it as a safety net, not a strategy.

You deleted or merged content

When you retire a thin blog post or fold three overlapping articles into one, redirect the old URLs to the closest surviving page. Google’s guidance is worth taking seriously here: redirecting a pile of removed pages to your homepage can get treated as a “soft 404,” where Google decides the redirect is basically meaningless and drops the old URLs anyway. Point each old URL at the most relevant specific replacement instead, and the redirect does its job.

You moved to HTTPS or a new domain

Switching from HTTP to HTTPS, from www to non-www (or vice versa), or to an entirely new domain all require site-wide 301s so that every old address funnels to its new equivalent. Get this wrong during a domain move and you can split your authority across two versions of the site that search engines see as separate.

You want to fix a legacy 404

Old URLs don’t stop existing just because you forgot about them. Backlinks, old email campaigns, and printed materials keep sending people to addresses that 404. Redirecting those to a live, relevant page recovers traffic and link value you already paid for.

Three Ways to Set Up 301s in WordPress

There’s no single right method — it depends on how comfortable you are editing server files and how many redirects you’re managing. From easiest to most technical:

A redirect plugin (best for most people)

The free Redirection plugin, maintained by John Godley, is the tool most WordPress sites reach for. You add a source URL and a target from the admin screen, and it handles the 301 in PHP. It also logs 404s so you can see which broken URLs are actually getting hit, and it supports regex for pattern-based rules. For anyone who doesn’t want to touch server config, this is the pragmatic default.

The tradeoff is that PHP-based redirects run WordPress on every hit, which is marginally slower than a redirect handled at the server level. For a normal site that difference is negligible; for very high-traffic redirects it can add up.

Server-level rules (fastest)

If your host runs Apache, you can add redirects directly to the .htaccess file, which the server reads before WordPress even loads:

Redirect 301 /old-page/ https://example.com/new-page/

On nginx, the equivalent lives in your server block and is usually managed by your host:

location = /old-page/ { return 301 https://example.com/new-page/; }

Server-level rules are the fastest option because they never invoke PHP, but a syntax error in .htaccess can take your whole site down with a 500 error, so edit with care and keep a backup of the original file.

Your SEO plugin’s redirect manager

Several SEO suites bundle a redirect manager, and many will offer to create a redirect automatically the moment you change a published post’s slug — which closes one of the most common gaps before you even think about it. If you already run a full SEO plugin, check whether it has this feature before adding a separate one.

QUICK REFERENCE

Permanent move? Use 301.  ·  Temporary? Use 302/307.  ·  Deleted content? Redirect to the closest live page, not the homepage.  ·  Bulk / high traffic? Server-level rules.  ·  A few here and there? A plugin is fine.

The Mistakes That Quietly Cost You Traffic

Setting up a redirect is easy. Setting up redirects that don’t leak value is where people slip. These are the ones we see most often when auditing a site.

Redirect chains

A chain is a redirect that points to another redirect that points to yet another page: /a/b/c. Each hop adds latency for visitors and burns crawl budget, and long chains can eventually stop being followed. Google follows chains but recommends keeping them short — ideally a single hop. When you add a new redirect, always point it at the final destination, not at another redirect.

Redirect loops

A loop is a chain that eats its own tail: /a/b/a. The browser gives up and shows an error instead of a page. Loops usually come from conflicting rules — one in a plugin, one in .htaccess — so keep your redirects in one place if you can.

Blanket redirects to the homepage

It’s tempting to send every dead URL to the homepage and call it done. Search engines often read that as a soft 404 and ignore it, and visitors who wanted a specific article land on your front page confused. Map old URLs to relevant replacements one by one; it’s more work up front and far better for both rankings and people.

Forgetting the redirect is cached

Because browsers cache 301s aggressively, a permanent redirect you set by mistake can be stubborn to undo — returning visitors keep getting forwarded even after you delete the rule, because their browser remembers it. That’s a good reason to use a 302 while you’re testing something and only switch to a 301 once you’re certain the move is permanent.

How to Find the Redirects You’re Missing

You can’t redirect a 404 you don’t know about. A few habits keep the gaps from piling up. Enable 404 logging (the Redirection plugin does this, and so does Google Search Center’s Search Console under the crawl and indexing reports) so you can see which broken URLs real visitors and crawlers are hitting. Before any redesign or migration, export your existing URLs and build a redirect map before you launch, not after. And after a migration, crawl the new site with a tool like Screaming Frog to catch any old link that still resolves to a 404 or a redirect chain.

The last cleanup we did on this front was a site that had changed its permalink structure two years earlier and never redirected the old /?p=123 style URLs. Search Console was quietly reporting hundreds of “not found” errors that nobody had looked at. A single regex rule and a batch of specific 301s recovered rankings on a dozen pages within a few weeks. The traffic was never gone — just stranded behind a 404.

Where amplifi Fits

Redirects are one piece of keeping a site legible to search engines and AI crawlers alike. The amplifi.plugins suite handles the neighboring pieces — bulk SEO meta, schema.org structured data, and more — so the technical SEO layer is consistent across your whole site. You don’t need it to set up a 301, but if you’re cleaning up an old site’s SEO, it’s the same job from a different angle.

OPEN SOURCE

amplifi.plugins is MIT licensed and free to use — an AI-powered WordPress suite covering SEO meta, schema, security scanning, translation, and more. One install, one update, every tool. The full source is on GitHub.

View on GitHub

Frequently Asked Questions

A 301 means “Moved Permanently” and tells search engines the old URL is gone for good and the destination should be indexed in its place, which is why it’s used to preserve SEO value during moves. A 302 means “Found” and signals a temporary move, so search engines keep indexing the original URL. Use a 301 for permanent changes like redesigns, slug changes, and domain moves, and a 302 only for genuinely temporary redirects.

Yes. A permanent redirect is Google’s recommended way to tell it that a page has moved and that the new URL should be indexed in place of the old one, which consolidates the ranking signals the old page built up onto the destination. For this to work well, redirect each old URL to the most relevant specific replacement rather than pointing everything at the homepage, which search engines may treat as a soft 404 and ignore.

Partially. WordPress core includes a function called wp_old_slug_redirect() that stores a post or page’s previous slugs in the _wp_old_slug meta key and forwards the old permalink to the current one. It only covers slug changes on existing posts and pages, though — it does not handle deleted content, a changed permalink structure, or a domain move, so you still need real 301 redirects for those cases.

A redirect chain is when one URL redirects to another URL that itself redirects again, for example /a to /b to /c. Each hop adds load time for visitors and consumes crawl budget, and long chains can eventually stop being followed. Google follows chains but recommends keeping them short, ideally a single hop, so always point a new redirect at the final destination rather than at another redirect.

For most sites a plugin like the free Redirection plugin is the practical choice: it’s manageable from the WordPress admin, logs 404s, and supports pattern rules, at the cost of running PHP on each redirect. Server-level rules in .htaccess on Apache or a server block on nginx are faster because they never invoke PHP, but a syntax error can break the whole site, so they suit high-traffic or bulk redirects where the speed matters and you’re comfortable editing server config with a backup on hand.

It’s not recommended. Google’s guidance is that redirecting removed pages to an irrelevant destination like the homepage can be treated as a soft 404, meaning the redirect is effectively ignored and the old URLs are dropped anyway. It also confuses visitors who wanted a specific page. Redirect each old URL to the closest relevant surviving page instead, and only use the homepage as a target when there’s genuinely no better match.

Cleaning up an old site’s SEO? Redirects are step one — the amplifi.plugins suite handles the meta and schema layer that goes with it.

Built by amplifi.studio — see also our WordPress malware cleanup guide.