Skip to main content

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.

Feature301 Moved Permanently302 Found
PermanencePermanent — update bookmarksTemporary — keep using original URL
SEO link equityPasses ~90-99% of link equityDoes NOT pass link equity
Google index behaviorReplaces old URL with new in indexKeeps old URL in index
Browser cachingCached aggressively by browsersNot cached by default
HTTP method preservationMay change POST → GET (historical)May change POST → GET (historical)
Method-safe alternative308 Permanent Redirect307 Temporary Redirect
Use caseDomain migration, HTTPS upgrade, URL restructuringA/B testing, login redirects, geo-routing, maintenance
RFCRFC 9110 §15.4.2RFC 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.