A redirect sends users and search engines from one URL to a different URL. When implemented correctly, redirects preserve rankings, maintain user experience, and keep your site’s link equity intact. When implemented incorrectly, they leak authority, confuse search engines, and create compounding technical debt that gets harder to clean up over time.
This article covers the redirect types that matter for SEO, when to use each one, and how to diagnose and fix the redirect problems I most commonly find in technical SEO audits.
The Redirect Types That Matter
301 Redirect (Permanent)
A 301 tells search engines that a page has permanently moved to a new location. This is the redirect you’ll use most often. When Google encounters a 301:
- It transfers the link equity (ranking power) from the old URL to the new URL. Google has confirmed that 301 redirects pass full PageRank, the same as a direct link.
- It updates its index to replace the old URL with the new one (though this can take weeks to months)
- It eventually stops crawling the old URL
Use a 301 when: - A page has been permanently moved to a new URL - You’re migrating to a new domain - You’re consolidating HTTP to HTTPS or www to non-www - You’re cleaning up old URL structures during a site migration - A page has been permanently removed and you’re pointing to the closest equivalent - You’re merging two pages into one
302 Redirect (Temporary)
A 302 tells search engines that a page has temporarily moved. The critical difference: Google keeps the original URL in its index because it expects the redirect to be removed eventually. Link equity handling is less straightforward; Google may pass equity to the target URL but is more likely to retain it at the original.
Use a 302 when: - You’re temporarily redirecting during site maintenance - You’re A/B testing different page versions (though there are better methods) - A seasonal promotion is temporarily replacing a regular page - You genuinely intend to restore the original URL
The common mistake: Using a 302 when you mean a 301. If a redirect has been in place for more than a few weeks and you have no intention of reverting it, it should be a 301. Google will eventually treat long-standing 302s as 301s, but “eventually” means uncertainty about when the equity transfer happens and whether the index update occurs cleanly. Use the correct type from the start.
307 and 308 Redirects
307 (Temporary) and 308 (Permanent) are HTTP/1.1 equivalents that preserve the request method (POST stays POST, GET stays GET). For SEO purposes, 307 functions like a 302 and 308 functions like a 301. The distinction matters for APIs and form submissions but is irrelevant for most website SEO work.
Meta Refresh and JavaScript Redirects
Meta refresh redirects (using <meta http-equiv="refresh">) and JavaScript redirects (window.location.href = 'new-url') are not recommended for SEO. Google can follow them, but they’re slower, less reliable, and don’t pass link equity as cleanly as server-side HTTP redirects. If you can implement a proper 301 or 302 on the server, always do that instead.
The only scenario where a JavaScript redirect is acceptable is when you genuinely have no server-side control (e.g., a static hosting environment with no redirect capability), and even then, explore alternatives first.
How to Implement Redirects
Apache (.htaccess)
For sites running on Apache servers (common with WordPress and many traditional hosting setups):
# Single page redirect
Redirect 301 /old-page https://example.com/new-page
# Using mod_rewrite for pattern-based redirects
RewriteEngine On
RewriteRule ^old-section/(.*)$ /new-section/$1 [R=301,L]
# Domain redirect (HTTP to HTTPS)
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Nginx
# Single page redirect
location = /old-page {
return 301 https://example.com/new-page;
}
# Pattern-based redirect
location /old-section/ {
rewrite ^/old-section/(.*)$ /new-section/$1 permanent;
}
WordPress
WordPress plugins like Redirection, Yoast Premium, or RankMath handle redirects through the admin interface. For simple redirects, these are perfectly adequate. For large-scale redirect maps (hundreds of URLs during a migration), server-level implementation via .htaccess is more efficient and avoids database overhead.
Cloudflare, Vercel, Netlify
Most modern hosting platforms provide redirect configuration through their dashboards or configuration files. Cloudflare Page Rules, Vercel’s vercel.json, and Netlify’s _redirects file all support 301 and 302 redirects without touching server configuration.
Redirect Problems and How to Find Them
Redirect Chains
A redirect chain occurs when URL A redirects to URL B, which redirects to URL C, which redirects to URL D. Each hop in the chain:
- Adds latency (every redirect requires a new HTTP request)
- May lose a small amount of link equity (though Google says chains pass equity, longer chains introduce uncertainty)
- Increases the chance of something breaking
How to find them: Crawl your site with Screaming Frog and filter for “Redirect Chains.” The tool traces each redirect to its final destination and flags chains of 2+ hops.
How to fix them: Update the first redirect to point directly to the final destination. If URL A currently redirects to B which redirects to C, change A’s redirect to point straight to C.
Redirect Loops
A loop occurs when URL A redirects to URL B, and URL B redirects back to URL A. The browser bounces between them until it gives up with an error. Loops are immediately visible to users (the page never loads), but they’re less obvious when they involve 3 or 4 URLs in a circular path.
How to find them: Screaming Frog and Sitebulb both flag redirect loops. You can also test manually by visiting the URL and checking if the browser reports “too many redirects.”
How to fix them: Identify which URL in the loop should be the final destination, then update or remove the redirect that creates the loop.
Broken Redirects (Redirects to 4xx/5xx)
A redirect that points to a page returning a 404 or 500 error is worse than no redirect at all. The user follows the redirect only to hit a dead end, and the link equity that should transfer to a live page disappears.
How to find them: Crawl your site and filter redirects by the status code of their target URL. Any redirect whose target returns a non-200 status needs fixing.
How to fix them: Update the redirect to point to a live, relevant page. If the original target was removed, find the most appropriate replacement.
Redirect Maps That Go Stale
After a site migration, the redirect map is typically set and forgotten. Over time, the target pages may be moved, renamed, or removed, turning previously functional redirects into chains or broken redirects. Check your migration redirects periodically (quarterly is reasonable) to verify they still resolve correctly.
Redirects and Link Equity
Google has confirmed that 301 redirects pass full PageRank. This was a change from earlier guidance that suggested some equity was lost in the redirect. For practical purposes, a 301 redirect from a page with strong backlinks will transfer that authority to the new URL.
However, there are nuances:
Relevance matters. A redirect from a page about “dog grooming” to a page about “car insurance” will technically pass equity, but Google is increasingly sophisticated about recognising irrelevant redirects. The equity transfer is most effective when the old and new pages are topically related.
Redirects to the homepage waste equity. When pages are removed and lazily redirected to the homepage, the topical relevance is lost. Google treats homepage redirects from unrelated pages as soft 404s, meaning the equity effectively disappears. Always redirect to the most relevant equivalent page.
Time matters. Google takes time to process redirects and update its index. After implementing a redirect, the old URL may continue to appear in search results for days or weeks while Google recrawls and reprocesses. This is normal.
How Many Redirects Are Too Many?
There’s no hard limit, but there are practical considerations:
On the server: Each redirect consumes server resources. A site with 50,000 redirect rules in .htaccess will process every incoming request against all those rules, adding latency. For large redirect maps, consider moving them into server configuration (vhost/nginx config) rather than .htaccess, or use a database-backed solution.
For Google: Google can handle large numbers of redirects, but it takes time to process them all. During a large migration, Google may take weeks to fully process your redirect map. Monitor Search Console’s crawl stats to ensure Google is working through them.
Redirect debt: Over multiple years and multiple site changes, redirects accumulate. It’s worth periodically auditing your redirects, removing rules for pages that Google has long since de-indexed, and flattening chains that have built up over successive migrations.
Redirects During Site Migrations
Redirects are the single most important element of any site migration. The redirect map, a document pairing every old URL with its new equivalent, determines whether your migration preserves rankings or destroys them.
The critical rules:
- Every URL with traffic or backlinks needs a redirect. Not just the pages in your current navigation; include historical pages that still have external links pointing to them.
- Redirect to the most relevant page, not the homepage. Lazy homepage redirects waste equity and signal to Google that you haven’t done the work.
- Test before launch. Automated redirect testing tools can verify hundreds of redirects in seconds. Use them.
- Monitor after launch. Watch Search Console for 404 spikes in the first week after migration. These indicate gaps in your redirect map.
If you’re planning a migration and want to make sure the redirect strategy is solid before you execute, a technical SEO audit can identify every URL that needs mapping and flag potential issues before they become live problems.