301 redirect
An HTTP response status code that permanently sends visitors and search engines from one URL to another, used to preserve traffic and rankings during URL changes.
Also known as: 301, permanent redirect, HTTP 301
A 301 redirect is an HTTP response status code that tells web browsers and search engines that a URL has permanently moved to a new location. When a user (or bot) requests the old URL, the server responds with a 301 status and a Location header pointing to the new URL. The browser then follows the redirect and loads the new URL.
301 redirects are essential for preserving traffic, search rankings, and inbound links when URLs change.
What 301 means
HTTP status codes in the 3xx range indicate redirects:
| Code | Meaning |
|---|---|
| 301 | Moved Permanently |
| 302 | Found (temporary) |
| 303 | See Other |
| 307 | Temporary Redirect (preserves request method) |
| 308 | Permanent Redirect (preserves request method) |
301 and 308 both indicate permanent moves; 302 and 307 indicate temporary moves. For SEO purposes, 301 is the most commonly used.
How a 301 redirect works
- A user (or search engine bot) requests
https://example.com/old-url - The web server responds with HTTP status
301 Moved Permanentlyand aLocationheader:Location: https://example.com/new-url - The browser receives the response and automatically requests the new URL
- The new page is displayed
- Search engines update their index over time, replacing the old URL with the new one and transferring most ranking signals
Why 301 redirects matter
When URLs change, redirects:
- Preserve user experience. Visitors using bookmarks or following old links land on the new page rather than seeing a 404 error
- Preserve search rankings. Search engines transfer most ranking signals from the old URL to the new one (Google has confirmed this)
- Preserve inbound links. External links to the old URL continue to send traffic and link equity to the new URL
- Avoid SEO disruption during site migrations, redesigns, and reorganizations
Common use cases
- Site migration to a new platform. Redirect every old URL to its corresponding new URL
- Domain change (e.g.,
oldname.com→newname.com) - HTTP to HTTPS migration
wwwto non-wwwconsolidation (or vice versa)- Content reorganization. Moving
/blog/postto/articles/post - Removed content. Redirecting deleted pages to relevant alternatives
- URL canonicalization. Forcing the canonical version of a URL
- Trailing slash standardization.
/page→/page/or vice versa
Where redirects are configured
Different platforms handle redirects differently:
| Platform | How redirects are configured |
|---|---|
| Apache | .htaccess file with RewriteRule or Redirect 301 directives |
| Nginx | nginx.conf with rewrite or return 301 directives |
| Cloudflare | Bulk Redirects, Single Redirects, or Page Rules in dashboard |
| Netlify | _redirects file or netlify.toml |
| Vercel | vercel.json redirects configuration |
| Cloudflare Pages | _redirects file |
| WordPress | Plugins (Redirection, Rank Math, Yoast) or .htaccess |
| Shopify | URL Redirects in admin |
| Squarespace | URL Mappings in settings |
| Webflow | Site settings → Hosting → 301 Redirects |
| Static site generators | Configuration files specific to the host |
301 vs 302
| Aspect | 301 (permanent) | 302 (temporary) |
|---|---|---|
| Intended duration | Permanent | Temporary |
| Search engine behavior | Transfers ranking signals to new URL | Keeps original URL in index |
| Browser caching | Strong (long-lived) | Weak (revalidated more often) |
| Typical use | URL has truly moved | A/B testing, maintenance pages |
Using 302 when 301 is appropriate (or vice versa) can cause SEO confusion. For permanent moves, 301 is the standard choice.
Bulk redirects for migrations
A site migration often involves thousands of redirects. Common approaches:
- Crawl the existing site to capture all current URLs (Screaming Frog, Sitebulb)
- Map old URLs to new URLs in a spreadsheet
- Implement redirects in bulk via the platform’s redirect file or admin
- Test every redirect after deployment
- Monitor server logs and Search Console for 404 errors
For very large sites, regex-based redirect rules can handle URL pattern changes in bulk (e.g., /blog/(.*) → /articles/$1).
Redirect chains and loops
Two patterns to avoid:
- Redirect chain. A → B → C → D. Each hop adds latency and can dilute ranking signals. Always redirect directly: A → D.
- Redirect loop. A → B → A. Browsers detect and stop these, but they break the page entirely. Caused by misconfigured rules.
Tools like Screaming Frog identify redirect chains and loops during a site audit.
How long ranking signals take to transfer
When Google sees a 301 redirect, it transfers most ranking signals from the old URL to the new one. The transfer is not instant; it can take days to weeks depending on crawl frequency and the size of the change. Persistent 301s (kept in place indefinitely) typically transfer signals fully.
Removing a 301 redirect after a short time can cause search engines to revert to the old URL or treat the new URL as unrelated.
Common misconceptions
- “301 redirects lose ranking power.” Modern Google guidance confirms 301s transfer ranking signals fully (or nearly so).
- “Redirects are temporary fixes.” Properly configured 301s should persist indefinitely; removing them later breaks the redirect chain.
- “Redirects can be added later if pages get traffic.” Best practice is to set up redirects before launch; missing redirects mean lost traffic from day one.
- “301 and canonical do the same thing.” 301 redirects users and bots to a new URL; canonical tells search engines which version to index while keeping multiple URLs accessible.