301 Redirect Plugin for WordPress: How to Choose and Verify
This comparison evaluates five WordPress redirect managers—Redirection, Rank Math, Yoast Premium, AIOSEO and Simple 301 Redirects—on regex depth, wildcard handling, bulk import/export, 404-to-redirect workflows and PHP versus server-level execution. It walks through setup,.htaccess alternatives, fixes for loops, chains, 302 mismatches and cache conflicts, and shows how to confirm true 301 responses with DevTools and curl.
10 min read
- Redirection plugin by John Godley is free with no premium version and is the best standalone choice for WordPress 301 redirects for most sites.
- Yoast SEO reserves its redirect manager for Premium only, while Rank Math includes it for free and AIOSEO includes it on Pro plans and up.
- True 301 verification means checking raw HTTP response for 301 Moved Permanently and Location header, not what the plugin dashboard shows.
- Redirection manages redirects using WordPress by default but can be configured to write to.htaccess, which only works on Apache and LiteSpeed and processes before WordPress loads.
- Simple 301 Redirects uses wildcard asterisk patterns like /old-folder/* to /new-folder/* while Redirection supports full regular expressions for complex bulk migrations.
301 Redirect Plugin for WordPress: The Short Answer
The best 301 redirect plugin for WordPress for most sites is Redirection by John Godley, a free standalone plugin dedicated only to managing redirects. If your site already runs Yoast SEO Premium, Rank Math SEO, or All in One SEO (AIOSEO), you can use the redirect manager built into those suites instead of adding another plugin. Yoast reserves redirects for Premium, Rank Math includes it for free, and AIOSEO includes it on Pro plans and up.
Choose Redirection when you want a lightweight, single-purpose tool, whether you have a handful of URL changes or thousands during a migration. Choose your existing SEO suite’s manager when you want fewer plugins and your SEO plugin is already active. For agencies handling bulk moves, the deciding factors become bulk import, 404-log workflows, and whether redirects run at the PHP level inside WordPress.
But “best” depends on criteria most comparisons skip. Here’s what actually differs under the hood.
Redirection vs. Rank Math vs. Yoast vs. AIOSEO: Full Feature Comparison
The 301 redirect plugin WordPress ecosystem narrows to five production-ready choices (Redirection, Rank Math SEO, Yoast SEO Premium, All in One SEO (AIOSEO), and Simple 301 Redirects) and the real differences are regex/wildcard depth, bulk migration tooling, and whether execution happens at PHP or server level.
With the direct answer given, here’s the criteria most “best plugin” roundups never put side by side. Most comparison articles compare price and star ratings. For a migration or domain restructure you need to know if the plugin can pattern-match 400 URLs with one rule, ingest a CSV of old-to-new mappings, turn a 404 log directly into redirects, and run without adding PHP overhead on every request.
Redirection is the only standalone free plugin with full regex, query-parameter matching, and server-level options documented on its official plugin page. It advertises a fully-featured import and export system covering CSV,.htaccess, Nginx rewrite rules, JSON, and WP-CLI automation, plus built-in 404 tracking with grouping and bulk conversion to redirects. By default it manages redirects using WordPress (PHP-level), but can be configured to save directly to.htaccess for Apache handling.
Simple 301 Redirects takes the opposite approach. Its plugin page documents wildcard support via an asterisk pattern like /old-folder/* to /new-folder/* and CSV import/export of rules, with no built-in regex engine and no 404-to-redirect workflow. That keeps the UI minimal for sites with fewer than 50 static redirects.
Yoast SEO Premium sits in the middle as an integrated SEO suite. Its redirect manager feature page notes REGEX pattern support and CSV import with export/edit/re-upload for bulk changes, plus the ability to import from an.htaccess file. It runs at PHP level and does not expose a dedicated WP-CLI command for redirects.
Rank Math and AIOSEO both bundle redirect managers in their free core with more automation in their pro plans, including 404 monitors and regex redirects. For agencies, the key distinction is automation: Rank Math exposes a REST API and AIOSEO documents WP-CLI in pro, while Redirection offers WP-CLI import/export out of the box.
Decision worksheet: translate your migration into requirements
Use this as your fill-in checklist before you pick:
| Field | What to enter | Example value |
|---|---|---|
| Total live redirects expected | Count after migration | 412 URLs from /blog/* to /insights/* |
| Pattern complexity | Exact vs. wildcard vs. regex | Regex: ^/product/(.*)/old$ to /product/$1/ |
| Bulk source format | CSV, .htaccess, Nginx, JSON | CSV exported from Screaming Frog on 2025-11-10 |
| 404 volume per week | Log review cadence | 1,240 404s, grouped by top 20 hits |
| Performance target | PHP-acceptable or server-level required | Server-level .htaccess for 10k req/hour shop |
| Automation needs | WP-CLI / REST API / multisite | WP-CLI import across 18-site multisite network |
| Owner | Who approves redirect map | Agency tech lead: Maya Patel |
One-line verdict: choose Simple 301 Redirects for under 50 static URLs, Redirection for free regex and 404-to-redirect bulk work, and a SEO suite when you already pay for it. Pick server-level (.htaccess/Nginx) when performance matters, WP-admin-managed PHP when logging and convenience matter.
Once you’ve picked a plugin, setup is the easy part. Here’s exactly how to create a working 301.
How to Set Up a 301 Redirect in WordPress (Step-by-Step)
A 301 redirect in WordPress is created by installing a redirect manager plugin, entering the old URL path as the source and the new URL as the target, and saving the rule as 301 Moved Permanently.
Comparison done. Now the actual mechanics of creating the redirect, whichever plugin you chose.
1. Install and activate your redirect plugin
From Plugins → Add New, search for your chosen plugin, install and activate. For the free standalone option, Redirection, the settings live under the Tools/Redirection manager.
2. Open the redirect manager
Redirection: Tools → Redirection.
In SEO suites the flow is the same but the location shifts inside the suite: Rank Math keeps it inside its SEO menu, Yoast SEO Premium under SEO → Redirects, and AIOSEO under All in One SEO → Redirects. You still get Source, Target, and Type fields.
3. Add the source and target
- Click Add New or Add Redirection
- Source URL: enter the old path only, e.g.,
/old-services/or/blog/2023-post/. Leading slash, no domain unless you are redirecting across domains. - Target URL: enter the full new destination, e.g.,
https://example.com/services/ - Group: leave as Redirections unless you use groups for organization.
4. Choose the correct HTTP code
Set Type to 301 – Moved Permanently for permanent moves. Use 302 for temporary tests and 410 if you want to explicitly signal the content is gone. Save the rule.
5. Regex and wildcards when you have many URLs
Enable Regex if your plugin supports it. Redirection advertises full support for regular expressions so you can match patterns. Example for folder migration:
Source (Regex enabled): ^/old-folder/(.*)
Target: /new-folder/$1
This catches /old-folder/anything/ and preserves the remainder. Test with one URL first, then apply to the batch. Avoid overlapping regex rules that can create loops.
Without a plugin:.htaccess method
If you prefer server-level control, edit .htaccess in public_html. Back it up first. This method is faster because it processes before WordPress loads and Redirect 301 syntax only works on Apache and LiteSpeed servers.
Redirect 301 /old-page.html https://www.example.com/new-page.html
Place rules above the # BEGIN WordPress block. A PHP alternative is header("HTTP/1.1 301 Moved Permanently") plus header("Location: /new-url") in your theme, but .htaccess is more reliable for bulk redirects.
Creating the redirect is step one. Confirming it actually works the way you think is where most sites quietly fail.
Common 301 Redirect Mistakes and How to Fix Them
Common 301 redirect mistakes in WordPress include loops, chains, accidental 302s, trailing slash and HTTP versus HTTPS mismatches, stale CDN cache, and competing.htaccess and plugin rules that cause pages to fail with redirect errors and dilute link equity. Even a correctly configured redirect can fail silently in production. Here’s why, and how to catch it.

1. Redirect loops (A → B → A)
Symptom: Browser shows an ERR_TOO_MANY_REDIRECTS loop where URL 1 points to URL 2 and URL 2 points back to URL 1, or domain to itself. Common triggers are Cloudflare set to Flexible SSL while the origin forces HTTPS, or a rule like Redirect 301 / https://example.com/ added on the same host.
Fix: Trace both ends of the loop. Remove the circular rule, set Cloudflare SSL to Full or Full (Strict) when you have a valid cert, and use exact match regex with $ anchor so /blog/about$ does not also catch /blog/about-me.
2. Redirect chains (A → B → C)
Symptom: One hop leaves a 301 to an old destination, which 301s again. Crawlers follow the extra hops, link equity thins, and latency increases.
Fix: Flatten to direct rules. If you bulk imported a migration CSV, update source values to the final destination so every source points A → C directly.
3. Accidental 302 instead of 301
Symptom: Rank drops after migration because temporary redirects do not pass permanent signals. Many plugins default to 302 in the status dropdown.
Fix: Edit the rule and explicitly select 301. Re-save and invalidate cache so the new status propagates.
4. Trailing slash and protocol mismatches
Symptom: Duplicate rules like /product → /product/ and http → https fire separately, creating two hops or conflicting logic.
Fix: Decide on one canonical form in Settings > Permalinks and stick to it. Consolidate to a single rule per intent, for example non-www to www plus HTTP to HTTPS in one step, not two.
5. CDN and page cache serving stale responses
Symptom: Your new redirect works for you in incognito but visitors still see the old page. A page cache plugin or CDN edge node cached the 200 response before the redirect existed.
Fix: Clear WordPress page cache, then purge the edge cache. Cloudflare notes that single-file purge is the recommended method and its Instant Purge ensures updates are reflected immediately. After purging, set a Cache Rule to bypass cache for migrated URL patterns or lower Edge TTL during migration.
Warning: a redirect that works in incognito can still be broken for real visitors if a CDN or page cache serves a stale response. Always purge cache after adding redirects.
6. Competing rule sources fighting each other
Symptom: You add a rule in Redirection plugin, but.htaccess or your theme/functions.php also issues a redirect, or Yoast and Redirection both manage redirects. Result is loops or random winners depending on load order.
Fix: Centralize. Choose one authority for redirects. If using Apache, check.htaccess before plugin rules and remove old RewriteRule entries. Disable redirect handling in SEO plugins when a dedicated redirect plugin owns it.
Diagnosing broken redirects one by one is manageable for a single site. It doesn’t scale to a portfolio of client sites.
Verifying Your Redirects Actually Return a 301 (Not a 302)
Verifying your WordPress redirects actually return a 301 means inspecting the raw HTTP response, not the plugin dashboard. A true 301 Moved Permanently tells browsers and search engines the resource has been permanently moved to the URL in the Location header.
HarperFlow is an AI-powered WordPress end-to-end testing solution designed to automate and simplify website testing for developers, agencies, and businesses.
Fixing mistakes is reactive. The real fix is catching them before launch, starting with confirming what status code you’re actually serving. Plugin UIs can show “301” while the server, a caching layer, or a CDN serves a 302, a 200, or a cached chain.
3 ways to confirm a true 301
1. Browser DevTools (quick spot-check): Open Chrome DevTools > Network tab and enable Preserve log in Chrome’s Network tab. Reload the old URL. Click the first request for that URL and look at Headers > Status Code. You should see 301 Moved Permanently plus a Location: header with the new destination. Without Preserve log, the redirect disappears on navigation.
2. curl from the terminal (source of truth): Bypass the browser entirely:
curl -I https://example.com/old-post/
Look for the first line: HTTP/2 301 and location: https://example.com/new-post/. Add -L only if you want to follow the chain; without it you see exactly what that first hop returns. For header dumps, curl -s -D - -o /dev/null shows the full response.
3. Online header checkers: Tools like httpstatus.io or Redirect Checker let you paste a URL and see the full hop chain. Use them when you cannot use curl, but always re-check after purging cache and CDN.
Caching is what masks failures. Test in an incognito window, purge your WordPress cache plugin, then purge Cloudflare / Fastly / host cache, and re-run curl against the edge URL. If you see x-cache: HIT or cf-cache-status: HIT with an old 302, you are not testing the live rule.
For a handful of URLs, manual spot-checks are fine. For agencies running migration maps across dozens of client sites, or verifying after every deployment, manually re-checking 50 or 200 URLs is the repetitive QA that does not scale and where a wrong status slips into production.
That is where HarperFlow fits honestly. Rather than a redirect plugin, it’s an automated end-to-end testing layer that can hit your critical redirect lists after every deployment, assert the exact status code and final destination, and catch CDN or plugin regressions without manual re-checking.
Verdict: if you’re checking redirects one-by-one after every deployment across multiple sites, that’s a signal to automate the check, not just the redirect.
Sources
- Redirection
- Rank Math vs. Yoast: Tested and Compared for 2026
- Simple 301 Redirects By BetterLinks – Easy WordPress Redirect Manager for Redirects, 404 Error Log & More
- yoast.com
- How to set up 301 redirects in WordPress
- Purge cache · Cloudflare Cache (CDN) docs
- 301 Moved Permanently
- stackoverflow.com
- stackoverflow.com
Frequently Asked Questions
Can I use Redirection and Yoast SEO Premium’s redirect manager at the same time?
You should not. Running two managers creates competing rule sources that can cause loops or random winners depending on load order. Pick one authority for redirects and disable handling in the other plugin.
How do I redirect hundreds of URLs that follow the same pattern without creating one rule per URL?
Use pattern matching instead of individual rules. Simple 301 Redirects supports wildcards like /old-folder/* to /new-folder/, while Redirection advertises full support for regular expressions such as ^/old-folder/(.) to /new-folder/$1.
What’s the fastest way to turn a big 404 log into redirects after a migration?
Enable Redirection’s 404 tracking, which will keep track of all 404 errors with grouping by top hits. You can then bulk-select high-volume 404s and convert them directly into 301 rules instead of typing each one.
Will.htaccess 301 rules work on Nginx or on all managed WordPress hosts?
No. Redirect 301 syntax only works on Apache and LiteSpeed servers and processes the redirect before loading WordPress. On Nginx hosts you must keep redirects at the PHP level inside WordPress.
Why does my new redirect work for me in incognito but visitors still see the old page?
A page cache or CDN edge likely cached the old 200 response before the redirect existed. Clear WordPress cache and then purge edge cache — Cloudflare documents single-file cache purging as the recommended method and Instant Purge ensures updates are reflected immediately.
How can I prove my URL returns a real 301 and not a 302?
Inspect the raw HTTP response, not what the dashboard shows. In Chrome enable Preserve log in the Network tab to see 301 Moved Permanently plus Location header, or run curl -I https://example.com/old-post/ and confirm HTTP/2 301.
Can I bulk import a redirect map from CSV or Screaming Frog?
Redirection has a fully-featured import and export system covering CSV, Apache.htaccess, Nginx rewrite rules, JSON, and WP-CLI automation. Simple 301 Redirects also supports import of rules in bulk and export in.csv format.
Where do I find the redirect manager settings in WordPress?
For the standalone free plugin it’s Tools/Redirection in the WordPress dashboard. For All in One SEO it’s All in One SEO → Redirects, with similar placement under the SEO menu for Rank Math and Yoast.
Frequently asked questions
Can I use Redirection and Yoast SEO Premium's redirect manager at the same time?
You should not. Running two managers creates competing rule sources that can cause loops or random winners depending on load order. Pick one authority for redirects and disable handling in the other plugin.
How do I redirect hundreds of URLs that follow the same pattern without creating one rule per URL?
Use pattern matching instead of individual rules. Simple 301 Redirects supports wildcards like /old-folder/* to /new-folder/, while Redirection advertises full support for regular expressions such as ^/old-folder/(.) to /new-folder/$1.
What's the fastest way to turn a big 404 log into redirects after a migration?
Enable Redirection's 404 tracking, which will keep track of all 404 errors with grouping by top hits. You can then bulk-select high-volume 404s and convert them directly into 301 rules instead of typing each one.
Will.htaccess 301 rules work on Nginx or on all managed WordPress hosts?
No. Redirect 301 syntax only works on Apache and LiteSpeed servers and processes the redirect before loading WordPress. On Nginx hosts you must keep redirects at the PHP level inside WordPress.
Why does my new redirect work for me in incognito but visitors still see the old page?
A page cache or CDN edge likely cached the old 200 response before the redirect existed. Clear WordPress cache and then purge edge cache — Cloudflare documents single-file cache purging as the recommended method and Instant Purge ensures updates are reflected immediately.
How can I prove my URL returns a real 301 and not a 302?
Inspect the raw HTTP response, not what the dashboard shows. In Chrome enable Preserve log in the Network tab to see 301 Moved Permanently plus Location header, or run curl -I https://example.com/old-post/ and confirm HTTP/2 301.
Can I bulk import a redirect map from CSV or Screaming Frog?
Redirection has a fully-featured import and export system covering CSV, Apache.htaccess, Nginx rewrite rules, JSON, and WP-CLI automation. Simple 301 Redirects also supports import of rules in bulk and export in.csv format.
Where do I find the redirect manager settings in WordPress?
For the standalone free plugin it's Tools/Redirection in the WordPress dashboard. For All in One SEO it's All in One SEO → Redirects, with similar placement under the SEO menu for Rank Math and Yoast.

No responses yet