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 the downstream effects of choosing wrong can haunt your SEO for months.

This guide covers exactly when to use each, what search engines actually do with them, and the mistakes that quietly drain your organic traffic.

The Core Difference

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

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

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

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

Consolidating duplicate content

Merging www and non-www versions

Removing old pages

Sending users from a deleted page to a relevant replacement

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

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.

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. A 301 sends an immediate, unambiguous signal. A 302 forces Google to guess your intent.

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.

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)

Trace your redirect chains

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

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.

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 bulk checking across an entire site, use a redirect tracing tool that can follow chains and report the status code at each hop.

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).


Every redirect is a decision. Make sure yours says what you mean.

Never miss a broken redirect

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