301 vs 302 Redirects: What's the Difference?

Permanent vs temporary redirects explained: when to use each, SEO implications, how search engines handle them differently, and common mistakes that cost you rankings.

The difference between a 301 and a 302 redirect is one sentence: a 301 is permanent, a 302 is temporary. But choosing the wrong one can quietly drain your organic traffic for months.

For the complete picture on all redirect types (including 303, 307, and 308), see our HTTP Redirect Guide. This article focuses specifically on the 301 vs 302 decision, which is the one most people get wrong.

The core difference

A 301 Moved Permanently tells browsers and search engines: "This resource has permanently moved to a new URL. Update your records." [1]

A 302 Found (originally "Moved Temporarily") tells them: "This resource is temporarily at a different URL. Keep the original in your index." [1]

301: Old URL --[permanent]--> New URL
     Search engines transfer link equity to new URL
     Browsers cache the redirect aggressively

302: Old URL --[temporary]--> New URL
     Search engines keep the old URL indexed
     Browsers may or may not cache it

The practical difference comes down to two things: where search engines point your ranking signals, and which URL they keep in their index.

When to use a 301

Use a 301 redirect when the move is permanent and you never intend to use the old URL again.

Domain migration

Moving from example.com to newbrand.com

URL restructuring

Changing /blog/2024/post-title to /articles/post-title

HTTP to HTTPS

Permanently forcing secure connections (see HTTPS redirect guide)

Consolidating duplicate content

Merging www and non-www versions

Removing old pages

Sending users from a deleted page to a relevant replacement

A 301 tells Google to transfer all ranking signals to the new URL. Google confirmed in 2016 that 301 redirects pass full PageRank with no dampening factor. [2]

When to use a 302

Use a 302 redirect when you plan to bring the original URL back.

A/B testing

Temporarily sending traffic to a variant page

Maintenance pages

Redirecting during downtime to a status page

Geolocation redirects

Sending users to region-specific versions temporarily

Seasonal promotions

Temporarily redirecting a product page to a sale page

If you are unsure whether the move is temporary, it is almost certainly permanent. Default to 301.

SEO implications: where it actually matters

This is where the 301 vs 302 decision has real consequences.

Behavior301 Permanent302 Temporary
Link equity transferPasses ~100% of link equityMay not pass link equity
Indexed URLNew URL replaces old in indexOld URL stays in the index
Crawl budgetGooglebot stops crawling old URL over timeGooglebot continues crawling both URLs
Browser cachingCached aggressively (may persist for months)Cached briefly or not at all
Canonicalization signalStrong signal for new URLWeak or no signal

The critical row is link equity transfer. When you use a 302 for what should be a 301, you risk keeping the link equity stuck on the old URL. Google has said they will eventually figure it out, but "eventually" can mean weeks or months of lost rankings. [3]

For more on how redirects affect rankings, see How Redirects Affect SEO Rankings.

The most common mistake

Using a 302 for a permanent move because your framework or CMS defaults to it. Many web servers and frameworks return 302 by default. Always check.

How search engines actually handle them

Google's official position has evolved over the years:

Google treats long-standing 302s similarly to 301s eventually, but the transition is slower and unpredictable. [3] A 301 sends an immediate, unambiguous signal. A 302 forces Google to guess your intent. Google's John Mueller has said that while they can figure out permanent moves from 302s, "it's much easier if you just use a 301." [4]

Bing is stricter. A 302 tells Bing the move is temporary, full stop. Bing is less likely to transfer ranking signals through a 302.

Other search engines generally follow the HTTP spec more literally. A 302 means temporary. They keep the old URL.

307 and 308: the method-preserving alternatives

The HTTP specification also defines 307 (Temporary Redirect) and 308 (Permanent Redirect). These work like 302 and 301 respectively, with one key difference: they guarantee the browser will not change the request method from POST to GET.

For standard website pages (where requests are always GET), this distinction does not matter. 301 and 302 are the right choice. For API endpoints or form submissions where you need to preserve POST, use 307 or 308. For the full comparison of all redirect status codes, see HTTP Redirect Status Codes.

The decision flowchart

Is the old URL coming back?
  |
  +-- YES --> Use 302 (Found)
  |
  +-- NO ---> Is the content at the new URL equivalent?
                |
                +-- YES --> Use 301 (Moved Permanently)
                |
                +-- NO ---> Is there a relevant replacement?
                              |
                              +-- YES --> Use 301 to that page
                              |
                              +-- NO ---> Return 410 (Gone)

If you are choosing between a redirect and a canonical tag for duplicate content, see Redirect vs Canonical Tag.

Trace your redirect chains

Find redirect loops, broken chains, and unnecessary hops instantly.

Try Redirect Tracer

Common mistakes

1. Using 302 when you mean 301

This is by far the most common error. Default configurations in Apache, Nginx, and many frameworks use 302 unless you explicitly request 301. Always verify your redirect status codes after deployment. See your server-specific guide for how to set the correct code: .htaccess, Nginx, or Cloudflare.

2. Using 301 when you mean 302

Less common but equally damaging. If you 301 a temporary promotion and then try to bring back the original URL, browsers will have cached the redirect. Users will keep getting sent to the old promotion page from their browser cache, even after you remove the redirect from the server.

3. Chaining 301s and 302s together

A redirect chain mixing status codes confuses search engines about intent. If any hop in the chain is a 302, Google may treat the entire chain as temporary.

Page A --301--> Page B --302--> Page C
                                 ^
                    Google may not pass full
                    equity to Page C

4. Not auditing after migration

After a site migration, audit every redirect. It is common for CMS plugins, CDN rules, and server configs to introduce unintended 302s. A single misconfigured redirect rule can affect hundreds of pages.

How to verify your redirects

Check your redirect status codes using curl:

curl -I -L https://example.com/old-page

Look for the HTTP/1.1 301 or HTTP/1.1 302 line in each hop of the response. If you see a 302 where you expected a 301, fix it at the source: your server config, your .htaccess, your CDN rules, or your application code. For more testing approaches, see How to Check URL Redirects and How to Trace Redirects with cURL.

For bulk checking across an entire site, see How to Check Redirects in Bulk.

The bottom line

If the move is permanent, use 301. If it is temporary, use 302. When in doubt, it is almost always a 301. The cost of a wrong 302 (lost link equity, slower indexing) far outweighs the cost of a wrong 301 (aggressive browser caching you can work around).

Before forcing any HTTPS redirects, make sure your SSL certificate is valid and your DNS records point where you expect. A redirect to a broken destination is worse than no redirect at all.

References

  1. IETF, "RFC 9110 - HTTP Semantics, Section 15.4: Redirection 3xx," June 2022. https://httpwg.org/specs/rfc9110.html#status.3xx
  2. Gary Illyes, Google, "30x redirects don't lose PageRank anymore," Twitter/X, July 2016.
  3. Google, "Redirects and Google Search," Google Search Central, 2024. https://developers.google.com/search/docs/crawling-indexing/301-redirects
  4. Google Search Central, "SEO Mythbusting: Redirects," YouTube, 2019. https://www.youtube.com/watch?v=ZHHSiGKBJMo

Never miss a broken redirect

Trace redirect chains and detect issues before they affect your users and SEO. Free instant tracing.

Try Redirect Tracer