301 vs 302 Redirects: When to Use Each and Why It Matters for SEO

Understand the difference between 301 and 302 redirects, their SEO impact, when to use each, and common mistakes that hurt rankings.

Last updated: 2026-02-17

The Difference Between 301 and 302 Redirects

A 301 redirect means "this page has permanently moved to a new URL." A 302 redirect means "this page is temporarily at a different URL." Both send the user to the same destination. The difference is what they tell search engines and browsers about the nature of the move.

That distinction sounds simple, but using the wrong one costs rankings, splits link equity, and creates indexing problems that can take months to untangle.

What a 301 Redirect Does

A 301 (Moved Permanently) tells the browser and search engines that the original URL is gone for good. The new URL is the canonical location of this content.

What happens when you use a 301:

  • Search engines transfer ranking signals (link equity) from the old URL to the new URL
  • Google de-indexes the old URL and indexes the new one
  • Browsers cache the redirect, so future requests go directly to the new URL without hitting the server
  • Backlinks pointing to the old URL pass their value to the new URL

When to use a 301:

  • You have permanently changed a URL slug or path structure
  • You have moved your site to a new domain
  • You have switched from HTTP to HTTPS
  • You have consolidated duplicate content to a single URL
  • You have merged two pages into one
  • The old URL will never be used again

What a 302 Redirect Does

A 302 (Found) tells the browser and search engines that the original URL still exists, but the content is temporarily available somewhere else. The original URL should remain indexed.

What happens when you use a 302:

  • Search engines keep the original URL in their index
  • Link equity stays with the original URL (not transferred to the redirect target)
  • Browsers do not cache the redirect as aggressively, checking back with the server on subsequent requests
  • The original URL retains its ranking position

When to use a 302:

  • A/B testing where you temporarily send traffic to a variant
  • Maintenance mode where the site will return to the original URL
  • Geolocation-based redirects (the "real" URL stays the same, users are temporarily routed elsewhere)
  • Temporary promotions that redirect to a campaign page
  • Any situation where the original URL will be restored

SEO Impact: Why the Wrong Choice Hurts

The SEO consequences of using the wrong redirect type are significant and often invisible until the damage is done.

Using a 302 When You Should Use a 301

This is the more common mistake. You permanently move a page but use a 302 instead of a 301.

What goes wrong:

  • Google keeps the old URL in its index, not the new one
  • Link equity does not transfer cleanly to the new URL
  • You end up with two versions in Google's index, splitting ranking signals
  • The new URL struggles to rank because it is not receiving the authority of the old URL

Google has said it will eventually treat long-standing 302 redirects as 301s. But "eventually" can mean months. During that time, your new URL is not getting the full benefit of the old URL's authority. Do not rely on Google to correct your mistake.

Using a 301 When You Should Use a 302

Less common but still problematic. You temporarily redirect but use a 301.

What goes wrong:

  • Google de-indexes your original URL
  • When you remove the redirect, the original URL has to be re-indexed from scratch
  • Any ranking authority the original URL had may be diminished
  • Browsers cache 301 redirects aggressively. Even after you remove the redirect on your server, some users will still be redirected because their browser cached the 301

Browsers cache 301 redirects indefinitely by default. If you accidentally use a 301 and then remove it, users with the cached redirect will still be sent to the old destination. The only fix on the user side is clearing their browser cache.

Side-by-Side Comparison

Attribute301 (Permanent)302 (Temporary)
MeaningPage has permanently movedPage is temporarily elsewhere
SEO link equityTransferred to new URLStays with original URL
Indexed URLNew URL replaces old in indexOriginal URL stays in index
Browser cachingAggressively cachedNot cached (or short cache)
Use caseDomain migration, URL restructuring, HTTPSA/B tests, maintenance, geo-routing
ReversibilityHard to reverse (browser cache)Easy to reverse
HTTP spec nameMoved PermanentlyFound

Common Mistakes

Mistake 1: Using 302 for All Redirects by Default

Many server frameworks and CMS plugins default to 302 redirects. Developers who do not think about the distinction end up using 302 for everything, including permanent URL changes.

Fix: Audit your existing redirects. Any 302 that has been in place for more than a few weeks and is not genuinely temporary should be changed to a 301.

Mistake 2: Redirect Chains Mixing 301 and 302

When a redirect chain contains both 301 and 302 redirects, search engines may not pass link equity through the entire chain. A single 302 in a chain of 301 redirects can break the equity transfer.

Example: /old-page (301) -> /new-page (302) -> /final-page

The 302 in the middle signals that /new-page is temporary, which can prevent the equity from /old-page from reaching /final-page.

Fix: Eliminate the chain entirely. Redirect /old-page directly to /final-page with a single 301.

Monitor your redirects continuously

Site Watcher tracks redirect chains, status codes, and SSL configuration. Know the moment a 301 changes to a 302 or a redirect chain appears.

Mistake 3: Not Redirecting at All

Worse than the wrong redirect type is no redirect at all. Deleting a page without redirecting it results in a 404 error, which immediately loses all link equity and breaks every inbound link.

Fix: Every URL that has ever been indexed or linked to should redirect to its nearest equivalent page. If no equivalent exists, redirect to the parent category or section page.

Mistake 4: Redirecting Everything to the Homepage

Lazy redirects that send every old URL to the homepage are called "soft 404s" by Google. Search engines recognize this pattern and may not pass link equity.

Fix: Redirect each old URL to the most relevant equivalent page. Map redirects individually rather than using blanket rules.

Mistake 5: Forgetting About the www/non-www Redirect Type

The redirect from www.example.com to example.com (or vice versa) should always be a 301. Using a 302 for this common redirect means search engines will index both versions of every URL on your site.

How to Check Which Redirect Type a URL Uses

Using Browser Developer Tools

  1. Open Chrome DevTools (F12)
  2. Go to the Network tab
  3. Enable "Preserve log"
  4. Visit the URL that redirects
  5. Click on the original request in the network log
  6. Look at the Status column: 301 or 302

Using curl

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

The response will include a status line like HTTP/1.1 301 Moved Permanently or HTTP/1.1 302 Found, plus a Location header showing the redirect destination.

Using Site Watcher

Monitoring tools that check redirect behavior automatically will show you the full redirect chain for every monitored URL, including the HTTP status code at each hop. This catches unintentional changes (like a server update that switches your 301s to 302s) before they affect SEO.

How to Implement Each Type

Apache (.htaccess)

# 301 Permanent Redirect
Redirect 301 /old-page https://example.com/new-page

# 302 Temporary Redirect
Redirect 302 /temp-page https://example.com/campaign-page

Nginx

# 301 Permanent Redirect
location = /old-page {
    return 301 https://example.com/new-page;
}

# 302 Temporary Redirect
location = /temp-page {
    return 302 https://example.com/campaign-page;
}

WordPress (via functions.php)

// 301 Permanent Redirect
function custom_redirects() {
    if (is_page('old-page')) {
        wp_redirect('https://example.com/new-page', 301);
        exit;
    }
}
add_action('template_redirect', 'custom_redirects');

JavaScript (Client-Side)

<!-- 301/302 cannot be set from JavaScript -->
<!-- This is a meta refresh, not a proper HTTP redirect -->
<meta http-equiv="refresh" content="0;url=https://example.com/new-page">

Client-side redirects (meta refresh and JavaScript window.location) do not send HTTP status codes. Search engines may or may not treat them as 301 equivalents. Always use server-side redirects when SEO matters.

Beyond 301 and 302: Other Redirect Codes

Two newer redirect codes exist but are less commonly used:

CodeNameMeaningKey Difference from 301/302
307Temporary RedirectSame as 302, but preserves HTTP methodPOST stays POST (302 may change to GET)
308Permanent RedirectSame as 301, but preserves HTTP methodPOST stays POST (301 may change to GET)

For standard website redirects (GET requests), 301 and 302 are the correct choices. 307 and 308 matter primarily for API endpoints where preserving the HTTP method (POST, PUT, DELETE) is important.

Monitoring Redirect Health

Redirects are not set-and-forget. Server updates, CMS upgrades, plugin changes, and CDN configuration changes can silently alter redirect behavior.

Status Code Tracking

Monitor the HTTP status code of every redirect. Catch when a 301 accidentally becomes a 302 or a redirect stops working entirely.

Chain Detection

Identify redirect chains where one redirect leads to another. Each hop in a chain adds latency and risks losing link equity.

Destination Validation

Verify that redirects still point to valid, live pages. A redirect to a 404 is worse than no redirect at all.

Change Alerting

Get notified when redirect behavior changes. If a URL that returned 200 yesterday returns 301 today, you want to know about it immediately.

The choice between 301 and 302 is not a technicality. It directly controls how search engines treat your URLs, where your link equity flows, and whether your site restructuring helps or hurts your rankings.

Never Lose Link Equity to a Wrong Redirect

Site Watcher monitors redirect status codes, chains, and destinations continuously. Catch redirect changes before they impact your SEO. $39/mo unlimited, free for 3 targets.