301 Moved Permanently vs 302 Found
The key distinction is permanence. Use 301 when the resource has moved forever (domain migration, URL restructuring). Use 302 when the redirect is temporary (A/B test, maintenance, geo-routing). Getting this wrong has real SEO consequences: a 302 where you mean 301 means Google keeps indexing your old URL indefinitely.
HTTP 301 is a permanent redirect — search engines update their index and pass link equity to the new URL. HTTP 302 is a temporary redirect — search engines keep the original URL indexed and do not transfer link equity.
| Feature | 301 Moved Permanently | 302 Found |
|---|---|---|
| Permanence | Permanent — update bookmarks | Temporary — keep using original URL |
| SEO link equity | Passes ~90-99% of link equity | Does NOT pass link equity |
| Google index behavior | Replaces old URL with new in index | Keeps old URL in index |
| Browser caching | Cached aggressively by browsers | Not cached by default |
| HTTP method preservation | May change POST → GET (historical) | May change POST → GET (historical) |
| Method-safe alternative | 308 Permanent Redirect | 307 Temporary Redirect |
| Use case | Domain migration, HTTPS upgrade, URL restructuring | A/B testing, login redirects, geo-routing, maintenance |
| RFC | RFC 9110 §15.4.2 | RFC 9110 §15.4.3 |
When to use 301 Moved Permanently
Use 301 when the resource has permanently moved to a new URL and you want search engines to update their index. Domain migrations, HTTP→HTTPS upgrades, removing trailing slashes, and URL restructuring all warrant 301.
When to use 302 Found
Use 302 when the redirect is temporary and you expect to restore the original URL. Login page redirects, A/B testing, temporary maintenance pages, and geo-based routing use 302.
Common Mistakes
- ✗Using 302 for permanent URL changes — Google keeps indexing the old URL indefinitely, splitting your page authority.
- ✗Using 301 for temporary redirects — once browsers cache a 301, it's very hard to undo for affected users.
- ✗Chaining 301→302→301 — each hop adds latency and confuses search engines about which URL is canonical.
- ✗Not including a Location header — both 301 and 302 MUST include a Location header with the target URL.
FAQ
Does a 301 redirect pass SEO value?
Yes. A 301 passes most link equity (ranking power) to the new URL. Google treats 301s as a signal to replace the old URL in its index with the new one.
Will Google eventually treat a long-running 302 as a 301?
Yes. Google has confirmed that 302 redirects lasting more than approximately one year may be treated as permanent (301) for indexing purposes.