301 Redirects for SEO: Types, Chains and Common Mistakes

301 redirects are the quiet plumbing of a website. When a page moves, a URL changes or two versions of a site merge, a redirect tells browsers and search engines where the content lives now. Done well, visitors never notice and rankings carry over. Done badly, they cause lost traffic, slow pages and puzzling drops in search visibility that are hard to trace back to their cause.
This guide explains how 301 redirects for SEO work: the difference between permanent and temporary redirects, how search engines treat each type, how to avoid redirect chains and loops, when to redirect to a different page and when not to, and how to implement and test redirects on Apache, Nginx and WordPress. It is the practical companion to the planning advice in our guide to migrating a website without losing SEO rankings, and it reflects the checks our SEO specialists run when URLs change.
What a Redirect Is
A redirect is an instruction sent by the server in response to a request. Instead of returning the page, the server returns a status code in the 300 range together with a Location header that contains the new address. The browser or crawler then requests the new address automatically. The MDN guide to HTTP redirections describes the mechanism in detail, and the official definitions of the status codes are in RFC 9110.
Two things make redirects important for SEO. First, they let search engines transfer the identity of an old URL to a new one, so that ranking signals can follow the content. Second, they protect visitors who arrive through old links, bookmarks, printed material or other websites.
The Main Redirect Types
| Code | Meaning | Typical use |
|---|---|---|
| 301 | Moved permanently | Changed URLs, HTTP to HTTPS, domain moves, merged pages |
| 308 | Permanent redirect that keeps the request method | Permanent moves where POST requests must stay POST |
| 302 | Found (temporary) | Short-term changes, campaigns, A/B tests |
| 307 | Temporary redirect that keeps the request method | Temporary moves of forms or APIs |
Permanent versus temporary
A permanent redirect says “this content now lives here for good”. A temporary redirect says “use this address for now, but the original is still the real one”. According to Google’s documentation on redirects and Google Search, permanent redirects are a strong signal that the new URL should be the canonical one, while temporary redirects are a weaker signal, which means the old URL may stay in the index for longer. Use the type that matches your intention.
301 or 308?
For ordinary web pages, 301 is the standard choice and is supported everywhere. The 308 code behaves like 301 but guarantees that the request method does not change, which matters mostly for forms and APIs. If you are redirecting pages that people view, 301 is fine.
Meta refresh and JavaScript redirects
A page can also forward visitors using a meta refresh tag or a script. These work for people, but they are slower and less reliable for search engines than server-side redirects. Use them only when you cannot configure the server, and prefer a real 301 whenever possible.
When to Use a 301 Redirect
- You changed a page URL, for example by renaming a slug or moving a page to a new folder.
- You moved to HTTPS. Every HTTP address should redirect to its HTTPS equivalent.
- You chose one hostname. Redirect the www version to the non-www version, or the other way round, so that only one is used.
- You changed domain name. Each old URL should redirect to the matching new URL, not to the new homepage.
- You merged duplicate or overlapping pages. Redirect the weaker versions to the strongest one. Our article on canonical tags and duplicate content explains when a canonical tag is the better tool.
- You removed a page that has a close replacement. Send visitors to the page that best answers the same need.
- You are tidying URL variants, such as trailing slashes, uppercase letters or index file names.
When Not to Redirect
A redirect is not always the right answer. If a page is gone and has no real equivalent, a clean 404 or 410 response is more honest than a redirect to an unrelated page. Search engines may treat a redirect from a removed page to a loosely related page, especially the homepage, as a soft 404, which means the redirect passes little value and may confuse visitors. If the content is temporarily unavailable, keep the URL and show a helpful message rather than redirecting.
For finding links that already point to missing pages, see our guide to finding and fixing broken links and 404 errors.
Redirect Chains and Loops
A redirect chain happens when one redirect leads to another before reaching the final page, for example HTTP to HTTPS, then non-www to www, then an old URL to a new URL. Each hop adds delay and increases the risk that something fails. A redirect loop is worse: A redirects to B and B redirects back to A, so the page never loads and the browser reports an error.
Why chains hurt
- Each additional request adds latency, especially on mobile connections.
- Crawlers follow only a limited number of hops; Google states that Googlebot follows up to ten redirect hops before giving up on a URL.
- Chains tend to grow over time as new redirects are layered on top of old ones, until nobody remembers why they exist.
How to avoid them
- Point every old URL directly at the final destination, not at an intermediate redirect.
- When you add a new redirect, check whether the target is itself a redirect, and update older rules to skip it.
- Combine protocol and hostname rules so that one request goes straight to the final HTTPS address.
- Review your redirect list after every migration or redesign.
Internal links should also use final URLs. If your navigation, buttons and articles link to old addresses that redirect, every visit pays for an unnecessary hop. After any URL change, update the internal links, not just the redirects.
Mapping Old URLs to New URLs
The most valuable part of any redirect project is the map: a list of old URLs and the best new URL for each. Build it carefully.
- Collect old URLs from a crawl, the sitemap, analytics landing pages, Search Console and your server logs.
- Prioritise URLs that have traffic, backlinks or rankings. These matter most.
- Match by purpose, not by similarity of names. The destination should satisfy the same need as the original page.
- Keep query strings in mind. If tracking or filter parameters matter, decide whether to preserve or drop them.
- Test before launch by checking a sample of old URLs against the map, and test again afterwards with a full crawl.
If the site structure is changing at the same time, plan the redirects together with the new internal linking and site architecture, so that old and new structures are consistent.
How to Implement Redirects
Apache (.htaccess or virtual host)
For a single page, a simple directive is enough: Redirect 301 /old-page/ https://www.example.com/new-page/. For patterns, use mod_rewrite with a rule and the R=301 flag, and always add the L flag so that processing stops after the match. Put the most specific rules first.
Nginx
In Nginx, use a return statement inside a location or server block: return 301 https://www.example.com$request_uri; for hostname changes, or a specific rule for a single page. Avoid rewrite rules when a simple return will do, because they are easier to read and faster.
WordPress
WordPress changes the permalink when you edit a slug, and it often creates a redirect from the old slug automatically. For wider changes, a redirect plugin is convenient, but large lists are processed with PHP on every request. For thousands of rules, server-level redirects are faster. Whichever method you use, keep a documented list so that you can review it later.
CDNs and hosting panels
Many CDNs and hosting panels have their own redirect settings. This is handy, but it is also a common source of surprises, because a rule configured in one layer can interact with rules in another. Document where each redirect lives.
Testing Redirects
Never assume a redirect works. Test it.
- Use
curl -Ion a URL to see the status code and the Location header without loading the page. - Follow the chain with
curl -ILand count the hops. - Crawl the old URL list with a crawler and export the status codes, final destinations and number of redirects.
- Use the URL Inspection tool in Google Search Console to see how Google sees a specific address.
- Check both desktop and mobile, and both with and without the trailing slash.
- Watch the Pages report in Search Console for redirect errors and unexpected “page with redirect” counts.
How Long to Keep Redirects
Keep redirects in place for as long as there is any chance of old URLs being requested. Google’s advice for site moves, in its guide to moving a site with URL changes, is to keep them for at least a year, and longer if the old URLs still receive traffic or links. Removing redirects too soon can bring back errors and lose the signals you transferred. In practice, many sites keep important redirects indefinitely because they cost almost nothing.
Common Redirect Mistakes
- Redirecting everything to the homepage. This wastes the value of the old pages and frustrates visitors.
- Using 302 for permanent moves. Search engines may keep indexing the old URL.
- Leaving chains in place after several migrations. Clean them up regularly.
- Forgetting images, PDFs and other files that have backlinks or are used in other places.
- Redirecting but not updating the sitemap. The XML sitemap should list final URLs only.
- Ignoring canonical tags. A canonical tag that points to the old URL conflicts with the redirect.
- Blocking old URLs in robots.txt. Crawlers cannot see a redirect on a URL they are not allowed to fetch.
- Mixed redirects at different layers, for example one in the CDN and a different one in .htaccess, that conflict or loop.
A Short Checklist Before You Go Live
- The URL map is complete and approved, with a single best destination for each important old URL.
- Every rule is permanent unless a temporary change is intended.
- No chains: each old URL reaches its destination in one hop.
- Internal links, canonical tags, hreflang and sitemaps use new URLs.
- A test crawl shows 301 followed by 200 for the sampled URLs.
- Monitoring is set up for crawl errors and for traffic to the affected pages.
If redirects are part of a larger project, such as a redesign or a platform change, it is worth asking for a review before launch. You can contact our team to discuss what to check.
Frequently Asked Questions
Does a 301 redirect pass SEO value?
Search engines use permanent redirects to understand that a page has moved and to transfer signals to the new URL. Rankings can take time to settle, and the new page should be a close match for the old one, but a correct 301 is the standard way to preserve visibility.
What is the difference between a 301 and a 302 redirect?
A 301 is permanent, so the new URL should replace the old one in search results. A 302 is temporary, so the original URL is expected to return. Using the wrong type can leave the old address indexed.
How many redirects in a row are too many?
Ideally, one. Googlebot follows up to ten hops, but each extra hop slows the page and increases the chance of failure. Update rules so that every old URL goes directly to its final destination.
Should I redirect deleted pages to the homepage?
Usually not. If there is no relevant replacement, return a 404 or 410 and offer helpful navigation. Redirecting to an unrelated page can be treated as a soft 404 and confuses visitors.
How long should I keep 301 redirects?
At least a year, according to Google’s guidance on site moves, and longer if the old URLs still get traffic or backlinks. Because redirects are cheap to keep, many sites never remove important ones.
Do redirects slow down my website?
Each redirect adds a request, so a single hop adds a small delay and a chain adds more. Keep redirects direct, avoid linking internally to redirecting URLs and use server-level rules for large lists.
The Bottom Line
A redirect is a promise to visitors and search engines that the content they wanted still exists, just somewhere else. Use 301 for permanent moves, keep temporary redirects for temporary situations, send every old URL straight to its best new equivalent, avoid chains and loops, test with real tools and keep the rules for at least a year. Combined with updated internal links, canonical tags and sitemaps, good redirects let a website change without losing the visibility it has earned.