You rename a page, merge two blog posts, or finally move your site to HTTPS, and suddenly a handful of URLs stop working. Every visitor who lands on them sees a 404, and every backlink pointing at them stops doing its job. The fix is almost always the same: a 301 redirect.
This guide explains what a 301 redirect actually does at the HTTP level, how it passes link equity, when a 302 is the smarter choice, and exactly how to set one up in WordPress using either a plugin or the .htaccess file. We finish with the redirect mistakes we see most often on client sites, including chains and loops.
What Is a 301 Redirect?
A 301 redirect is an HTTP status code that tells browsers and search engines: “This resource has moved permanently to a new address. Use the new one from now on.”
When someone requests an old URL, the server does not return the page content. Instead it returns a short response that looks roughly like this:
HTTP/1.1 301 Moved Permanently
Location: https://pixelbright.net/new-page/
The browser reads the Location header and immediately requests the new URL. The user usually notices nothing except a different address in the URL bar. Search engine crawlers read the same signal and, over time, drop the old URL from their index and replace it with the target.
The classic analogy is mail forwarding. You move house, you file a forwarding address, and letters sent to the old address keep reaching you. A 301 does the same thing for web traffic, and unlike the postal service, it never expires.
301 vs other redirect types at a glance
| Code | Meaning | Passes ranking signals? | Typical use case |
|---|---|---|---|
| 301 | Moved Permanently | Yes | Permanent URL change, HTTPS migration, merging pages |
| 302 | Found (temporary) | Not intended to, original URL stays indexed | A/B tests, short campaigns, temporary maintenance page |
| 307 | Temporary Redirect | Same behaviour as 302 | Temporary move where the HTTP method must be preserved (POST stays POST) |
| 308 | Permanent Redirect | Yes, treated like a 301 | Permanent move where the request method and body must be preserved |
| meta refresh / JS | Client-side redirect | Weakly and slowly | Last resort only, when server access is impossible |
Practical takeaway: for content sites and ecommerce stores, 301 covers roughly 90% of real redirect needs. Use 302 only when you genuinely plan to bring the original URL back.

How a 301 Redirect Passes Link Equity
“Link equity” (sometimes called link juice) is the ranking value that flows through a hyperlink. If ten websites link to /old-guide/, that page has accumulated authority. Delete it without a redirect and that authority evaporates into a 404.
A 301 redirect consolidates those signals onto the destination URL. Google has confirmed for years that permanent redirects pass PageRank without a damping penalty, so you should not expect to lose ranking strength simply because a redirect exists.
That said, a few conditions matter:
- Relevance is required. Redirecting a page about “WordPress hosting” to your homepage or an unrelated product page is treated as a soft 404. The signals are largely discarded.
- Consolidation takes time. Google has to recrawl the old URL to discover the redirect. For low-traffic pages this can take weeks.
- One hop is best. Each extra hop in a chain adds latency and increases the risk of something breaking.
- The redirect must stay live. A common mistake is removing redirects after “the migration is done”. Keep them for at least a year, and ideally forever.
When to use a 301 redirect
- You changed a post or page slug (permalink).
- You merged two or more articles into one stronger piece.
- You deleted a page but an equivalent page exists.
- You moved from HTTP to HTTPS or from
wwwto non-www(or the reverse). - You migrated to a new domain.
- You changed your permalink structure site-wide.
- An out-of-stock product is permanently discontinued and a replacement exists.
- You are cleaning up duplicate URLs that serve identical content.
When NOT to use a 301
- A page is temporarily offline for maintenance. Use a 503 status instead.
- A product is out of stock but returning soon. Keep the page live.
- You are running a split test. Use 302.
- The content is genuinely gone with no replacement. A clean 410 Gone or 404 is the honest answer, and Google handles it fine.
- Two pages are near-duplicates but both need to stay accessible. Use a canonical tag, not a redirect.

How to Set Up a 301 Redirect in WordPress (Plugin Method)
This is the method we recommend for the vast majority of site owners. It requires no server access, no FTP, and no risk of taking your site down with a typo.
Option 1: The Redirection plugin (free)
- In your WordPress dashboard go to Plugins > Add New.
- Search for Redirection by John Godley, install it and activate it.
- Open Tools > Redirection and run the short setup wizard. Enable the option to monitor permalink changes so future slug edits create redirects automatically.
- Click Add New.
- In Source URL, enter the old path, for example
/old-guide/. - In Target URL, enter the new path or full URL, for example
/complete-guide/. - Expand the gear icon and confirm the HTTP code is set to 301 – Moved Permanently.
- Click Add Redirect, then test the old URL in a private browsing window.
The plugin also has a 404s log. Check it monthly, since it shows you exactly which broken URLs real visitors and crawlers are hitting, which is the fastest way to find redirects worth creating.
Option 2: Your SEO plugin
If you already use an SEO suite, you may not need another plugin:
- Rank Math (free): Rank Math > Redirections. Enable the module first under Dashboard > Modules.
- Yoast SEO Premium: Yoast SEO > Redirects. It offers to create a redirect automatically whenever you delete or unpublish content.
- All in One SEO Pro: All in One SEO > Redirects, with full redirect logging.
Important: run only one redirect manager. Two plugins handling the same URL is a reliable recipe for loops.
Bulk redirects during a migration
If you are moving hundreds of URLs, do not add them one at a time. Build a CSV mapping file with two columns, source and target, then use the import feature available in Redirection and Rank Math. Before importing:
- Crawl the old site with a tool like Screaming Frog to get the complete URL list.
- Pull top landing pages from Google Search Console and your analytics so no valuable URL is missed.
- Map each old URL to the closest equivalent page, not the homepage.
- Double-check for trailing slash consistency.
How to Set Up a 301 Redirect in .htaccess (Apache)
Server-level redirects are faster than plugin redirects because they resolve before WordPress and PHP even load. The trade-off is risk: a syntax error in .htaccess returns a 500 error across the whole site.
Always download a backup copy of .htaccess before editing it.
Step by step
- Connect to your server via FTP/SFTP or open your host’s File Manager.
- Navigate to the WordPress root folder (the one containing
wp-config.php). - Locate
.htaccess. If it is hidden, enable “show hidden files”. - Download a copy as a backup.
- Add your redirect rules above the
# BEGIN WordPressblock. - Save, upload, and test both the redirected URL and a few normal pages.
Common .htaccess redirect snippets
Single page to single page:
Redirect 301 /old-guide/ https://pixelbright.net/complete-guide/
Same thing with mod_rewrite (more control):
RewriteEngine On
RewriteRule ^old-guide/?$ /complete-guide/ [R=301,L]
Force HTTPS:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Force non-www:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.pixelbright\.net [NC]
RewriteRule ^(.*)$ https://pixelbright.net/$1 [R=301,L]
Entire old domain to a new domain, preserving paths:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^olddomain\.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.olddomain\.com [NC]
RewriteRule ^(.*)$ https://pixelbright.net/$1 [R=301,L]
Redirect a whole folder:
RewriteEngine On
RewriteRule ^old-blog/(.*)$ /blog/$1 [R=301,L]
What if my host uses Nginx?
Many managed WordPress hosts run Nginx, where .htaccess is ignored entirely. In that case you either use a redirect plugin or add rules to the server config, usually through your host’s control panel:
location = /old-guide/ {
return 301 https://pixelbright.net/complete-guide/;
}
Some hosts (Kinsta, WP Engine, Cloudways and others) provide a redirect manager inside their own dashboard, which is the cleanest option when available. Cloudflare Bulk Redirects are another strong choice if your DNS is already proxied there.

Plugin vs .htaccess: Which Should You Choose?
| Criteria | Plugin | .htaccess / server |
|---|---|---|
| Ease of use | Very easy, no code | Requires file access and care |
| Speed | Slower, PHP loads first | Fastest, handled by the web server |
| Risk of breaking the site | Low | Higher, a typo can cause a 500 error |
| Best for | A few dozen to a few hundred content redirects | Site-wide rules, HTTPS, domain moves, thousands of URLs |
| Logging and 404 reports | Built in | None without extra tooling |
Our rule of thumb: handle pattern-based and site-wide rules at server level, and manage editorial, page-by-page redirects with a plugin.

Common 301 Redirect Mistakes (and How to Fix Them)
1. Redirect chains
A chain happens when URL A redirects to B, which redirects to C, which redirects to D. Every hop adds latency and dilutes the user experience, and crawlers may stop following after several hops.
Fix: always point the original URL directly at the final destination. After each site change, recrawl and flatten any chains you find. If you renamed a slug three times, you need three separate redirects all pointing to the current URL, not a daisy chain.
2. Redirect loops
A loop is when A redirects to B and B redirects back to A. Browsers show “too many redirects” (ERR_TOO_MANY_REDIRECTS) and the page becomes completely inaccessible. Related reading: 301 redirect to a new domain.
Common causes: two plugins managing the same rule, an HTTPS rule fighting with a CDN or load balancer setting, or a WordPress Site URL setting that contradicts an .htaccess rule.
Fix: use a single redirect manager, verify Settings > General matches your canonical protocol and hostname, and check your CDN’s SSL mode is set to “full” rather than “flexible”.
3. Redirecting everything to the homepage
It feels tidy and it destroys value. Google classifies irrelevant mass redirects as soft 404s and discards the accumulated signals. Visitors bounce because they did not find what they clicked for.
Fix: map each URL to the closest topical match. If no match exists, serve a 404 or 410 and improve your 404 page with a search box and popular links.
4. Using a 302 for a permanent move
Many CMSs and hosting panels default to 302. Google can eventually work out that a long-lived 302 is really permanent, but you are relying on guesswork instead of a clear instruction.
Fix: check the status code with a redirect checker or your browser’s Network tab, and switch it to 301.
5. Leaving old internal links pointing at redirected URLs
Redirects are for external links and crawlers, not for your own navigation. If your menus and articles still link to the old URL, every internal click costs an extra request.
Fix: run a crawl, find internal links returning 301, and update them to the final URL. Do the same for your XML sitemap, which should contain only 200-status URLs.
6. Redirecting to a page that does not exist
A 301 pointing to a 404 is worse than no redirect, because it hides the problem from your reporting.
Fix: after any bulk import, crawl the full redirect list and confirm each destination returns a 200.
7. Mixing redirects with conflicting canonical tags
If page B redirects to page C but page C’s canonical tag points back to B, you are sending contradictory instructions.
Fix: self-referencing canonicals on live pages, and never canonicalize to a URL that redirects.
8. Deleting redirects too early
Backlinks and bookmarks live for years. Removing redirects after a few months quietly kills the authority you worked to consolidate.
Fix: treat redirects as permanent infrastructure. Document them in a spreadsheet so future developers know why each rule exists.
How to Test Your 301 Redirects
- Browser DevTools: open the Network tab, tick “Preserve log”, load the old URL and confirm the first response is
301. - Command line:
curl -I https://pixelbright.net/old-guide/shows the status code and theLocationheader instantly. - Online redirect checkers: useful because they display the whole hop path, which is the quickest way to spot a chain.
- Google Search Console: use the URL Inspection tool on the old URL to see how Google currently resolves it, and watch the Pages report for “Page with redirect” counts.
- Site crawler: Screaming Frog or Sitebulb in list mode will validate hundreds of redirects in one pass and flag chains and loops automatically.
Always test in a private window. Browsers cache 301 responses aggressively, which is exactly why you should avoid publishing a 301 you are not sure about.

Quick Redirect Checklist
- Confirm the move is permanent. If not, use a 302.
- Choose a single destination that closely matches the original content.
- Create the redirect with a plugin or at server level, never both.
- Verify the status code is 301 and there is exactly one hop.
- Update internal links, menus, and the XML sitemap.
- Resubmit the sitemap in Search Console.
- Monitor 404 logs and organic traffic for the next four to eight weeks.
- Keep the redirect in place long term.
FAQ
Are 301 redirects bad for SEO?
No. Used correctly, a 301 protects your SEO by preserving link equity that would otherwise be lost to a 404. Problems only appear with misuse: long chains, loops, irrelevant destinations, or redirecting large sections of a site to the homepage.
What is the difference between a 301 and a 302 redirect?
A 301 signals a permanent move, so search engines transfer ranking signals to the new URL and eventually drop the old one from the index. A 302 signals a temporary move, so the original URL stays indexed and is expected to return. Use 301 for real moves and 302 for tests and short campaigns. Related reading: 301 Redirect Chains: Complete Guide and Optimization Tips.
What does a 307 or 308 redirect mean?
Both were introduced to remove ambiguity around HTTP methods. A 307 is a temporary redirect that preserves the original request method and body, so a POST stays a POST. A 308 is the permanent equivalent. From an SEO standpoint, 308 behaves like 301 and 307 behaves like 302.
Should I use 301 or 308?
For standard web pages, 301 is the safest and most widely supported choice, and Google treats both as permanent. Choose 308 when you specifically need the HTTP method preserved, such as with APIs or form submissions.
How long does it take for Google to process a 301 redirect?
Google has to recrawl the old URL first. High-traffic pages can be updated within days, while rarely crawled pages may take several weeks or longer. Submitting an updated sitemap and using URL Inspection speeds things up.
How long should I keep a 301 redirect in place?
Indefinitely, if possible. Google generally consolidates signals within a few months, but old backlinks and bookmarks continue sending traffic for years. Removing the rule simply recreates the 404 you originally fixed. This write-up is worth a look.
Do 301 redirects slow down my website?
A single server-level redirect adds only a few milliseconds. Plugin-based redirects are slightly heavier because PHP loads first, and chains multiply the delay. Keep redirects to one hop and the impact stays negligible.
Can I redirect an old domain to a new one with a 301?
Yes, and that is the recommended way to migrate. Redirect each old URL to its exact equivalent on the new domain rather than sending everything to the new homepage, keep the old domain registered and the redirects live, and use the Change of Address tool in Search Console.
Need Help With a Migration?
Redirects look simple until you are mapping several thousand URLs across a rebuild. If you are planning a redesign, a domain change, or a permalink overhaul, the PixelBright team can build and validate the full redirect map before launch so your rankings come across intact. Get in touch and tell us about your project.