301 vs 302 vs 307 Redirects: Which Status Code Should You Use?

Redirect status codes tell browsers and crawlers whether a move is permanent or temporary, and whether the HTTP method should be preserved. Picking the wrong one can affect SEO, caching, and form submissions. Here is a practical comparison.

Key takeaways

  • 301 Moved Permanently — use for permanent URL changes and HTTP→HTTPS. Search engines consolidate ranking signals to the new URL; browsers may cache aggressively.
  • 302 Found — historically ambiguous; many clients treat it like a temporary redirect. For a clear "temporarily elsewhere" response, prefer 307 or 303 depending on your semantics.
  • 307 Temporary Redirect — temporary move; the client should repeat the same method (e.g. POST stays POST). Good for short maintenance or A/B routing when method matters.
  • 308 Permanent Redirect — like 301 but method and body must not change; use when you need strict permanent semantics with POST preservation.

301 — permanent redirect

Use 301 when the old URL is gone for good: canonical HTTPS URL, domain migration, or merged pages. Google treats 301 as a strong signal to transfer SEO equity to the target. Configure your web server or CDN so http:// always 301 to https:// on the canonical host.

302 — temporary (legacy)

302 means "found" at a different URI temporarily. In the wild it has been overloaded. For new work, if you need "temporary" with predictable behavior, prefer 307 (same method) or 303 (see other, GET for follow-up) as appropriate.

307 and 308 — method-preserving redirects

307 (temporary) and 308 (permanent) require clients not to change the request method when following the redirect. That matters for APIs and forms that POST. For a permanent HTTPS migration of bookmarked HTTP links, 301 remains the most common choice for public sites; 308 is the stricter alternative when you must not allow POST→GET downgrades.

SEO quick note

For consolidating duplicate HTTP/HTTPS or www/non-www URLs, use one canonical pattern and 301 (or 308) to it. Avoid chains of multiple redirects where possible; they slow crawlers and users. Our redirect checker shows the full chain, status codes, and timings so you can verify what the world actually sees.

Verify your redirect chain

Run your domain through our free tool to see each hop, HTTP status, and response time—no signup.

HTTP to HTTPS redirect check