HTTP 302 Found

The temporary redirect: the resource is somewhere else right now, but the original URL remains the real one.

What HTTP 302 means

HTTP 302 Found tells the client to fetch the resource from the URL in the Location header, but only this time — the original URL is still the canonical address and should be requested again in the future.

Historically browsers changed POST to GET when following a 302, which contradicted the spec. HTTP later added 307 Temporary Redirect to guarantee the method is preserved; 302 remains the pragmatic default for simple GET redirects.

Common causes of 302 responses

  • A page is temporarily served from another location (maintenance, A/B test, campaign landing).
  • Post-login or post-checkout flows redirecting the browser (the POST-redirect-GET pattern, where 303 is technically the precise choice).
  • Geo or language-based redirects that vary per visitor.
  • A misconfigured “permanent” move accidentally left as 302 for years.

Good practices for developers

  • If the move is actually permanent, switch to 301/308 — long-lived 302s send mixed signals to search engines.
  • Use 307 when the request method and body must be preserved, 303 to force a GET after a POST.
  • Do not cache 302 responses unless you add explicit Cache-Control headers.

Example response

HTTP/1.1 302 Found
Location: https://example.com/summer-sale/
Cache-Control: no-store

SEO impact

Search engines keep the original URL indexed when they see a 302, since the move is declared temporary. A 302 left in place for months is usually treated as a de-facto 301 by Google, but explicit is better: pick the code that matches your intent.

FAQ

Does a 302 redirect hurt SEO?

Not when used for genuinely temporary moves. Problems appear when a permanent move is served as 302, delaying signal transfer to the new URL.

What is the difference between 302 and 307?

307 guarantees the HTTP method is preserved when following the redirect. 302 in practice lets browsers convert POST to GET.

When should I use 303 See Other?

After processing a POST, to send the browser to a result page with GET — the classic POST-redirect-GET pattern.