301 vs 302 Redirects: Which One to Use (and When It Actually Matters)

Updated July 25, 2026

🛠️ This guide pairs with our free HTTP Header Checker — Trace redirect chains hop by hop, grade security headers, and fetch as Googlebot.

Every redirect answers one question for search engines: is this move permanent? Answer it wrongly and you either keep dead URLs in the index for months or accidentally deindex pages you meant to bring back. Here’s the decision in plain terms, plus the modern 307/308 variants and the chain problem most sites don’t know they have.

The four status codes

CodeMeaningMethod preserved?Search engines treat it as
301Moved permanentlyNo (POST may become GET)Transfer signals to target, drop old URL
308Moved permanentlyYesSame as 301
302Found (temporary)NoKeep old URL indexed
307Temporary redirectYesSame as 302

For normal page-to-page redirects the method question is irrelevant (browsers GET pages), so the practical choice is simply 301 for permanent, 302 for temporary. The 307/308 variants matter when redirecting API endpoints or form targets, where converting a POST to a GET would break things.

When 301 is correct

A 301 tells Google “transfer everything to the new URL”: indexed status, and the large majority of link equity (Google has said PageRank loss through 301s is no longer a practical concern — but chained hops still cost crawl time and latency).

When 302 is correct

Genuinely temporary situations — and they’re rarer than their usage suggests:

The classic mistake is shipping 302s for permanent moves because a framework or hosting panel defaulted to it. Google now treats long-lived 302s as de-facto 301s, but the transition costs you weeks of split signals during exactly the period (a migration) when you can least afford it. If the old URL is never coming back, use 301.

The silent killer: redirect chains

Individual redirects are fine. Chains — A→B→C→D — are where sites bleed:

The fix is mechanical: trace the chain, then update the first rule to point directly at the final destination. Our HTTP Header Checker shows every hop with its status code and latency — paste the oldest URLs you still have links pointing at (check your backlink reports and old marketing emails) and collapse anything with 2+ hops.

Migration checklist

  1. Map old→new for every URL — your XML sitemap is the source of truth for “every URL”.
  2. Implement one-hop 301s from each old URL directly to its new home — not to the new homepage (mass-redirecting everything to the homepage is treated as a soft-404).
  3. Keep redirects live for at least a year; permanent is better. Old backlinks never stop sending traffic.
  4. Verify by fetching, not by clicking: browsers cache 301s aggressively, so a fixed redirect can look broken in your own browser. Use the header checker or curl for the truth.
  5. Watch Search Console’s coverage report for spikes in “Page with redirect” and “Redirect error”.

Quick answers

Try the free HTTP Header Checker →