302 redirect (Found)

The resource is temporarily at a different URL. Clients should keep using the original URL for future requests.

TypeTemporary
Follow-up methodmay change POST to GET

How Google handles a 302

Google treats a 302 as a weak signal that the target should be canonical, and usually keeps the original URL in its index. If a 302 stays in place for a long time, Google may start treating it like a permanent redirect. Browsers do not cache a 302 unless caching headers allow it.

Use a 302 for

  • Short-lived promotions or seasonal pages
  • Maintenance or out-of-stock pages you will reverse
  • Geo or language routing where the original URL should stay indexed
  • Login flows ("please sign in, then come back")

Don’t use it for

  • Permanent moves and migrations: use 301 or 308
  • Redirecting after a form POST when you need the method kept: use 307; to force a GET, 303 states it explicitly

What happens to a POST

A browser sends POST /checkout with a form body. The server answers with…

POST /checkout + body
302 Location: /pay
GET /pay body dropped

Temporary, method may change. Same historical rewrite as 301: browsers follow a POST→302 with a GET. That accident is why 303 and 307 were created.

Setting up a 302

Apache (.htaccess)

Redirect 302 /sale /summer-sale-2026

Nginx

location = /sale { return 302 /summer-sale-2026; }

vercel.json

{ "redirects": [{ "source": "/sale", "destination": "/summer-sale-2026", "permanent": false }] }

Netlify _redirects

/sale  /summer-sale-2026  302

Need rules for a whole list of URLs? The redirect rule generator writes them for Apache, Nginx, Vercel and Netlify.

Check that it works

Questions

Is a 302 bad for SEO?

No, when the move really is temporary. It becomes a problem when a permanent move is done with a 302, because Google may keep showing the old URL and the new one takes longer to be treated as canonical.

What is the difference between 302 and 307?

Both are temporary. A client may change a POST to a GET when following a 302 (historically, browsers do); 307 forbids changing the method or body.

Why do frameworks default to 302 or 307?

A temporary redirect is the safer default because browsers do not cache it. Set permanent explicitly when the move is permanent.

Other codes: 301 · 303 · 307 · 308 · 301 vs 302