SEO glossary

What is 302 redirect?

A 302 redirect is an HTTP response that sends users to another URL temporarily, signaling that the original address should stay in search results.

Check it free: Redirect Checker

302 redirect: A 302 redirect is an HTTP response that sends users to another URL temporarily, signaling that the original address should stay in search results.

A 302 redirect uses the status code 302 Found to send visitors to a different URL for now, while telling search engines that the original address is still the real one. The response looks almost identical to a permanent redirect; only the status code differs:

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

RFC 9110, section 15.4.3 defines it. Its sibling, 307 Temporary Redirect, means the same thing but guarantees that the request method — a POST, for example — isn’t changed.

How search engines treat it

Google’s redirects documentation explains the difference in terms of canonicalization: a permanent redirect is a strong signal that the target should be canonical, a temporary one is a weak signal. In practice, with a 302 Google usually keeps the original URL indexed and shows it in results, while visitors still land on the target.

If a “temporary” redirect stays in place for a long time, Google may conclude it is really permanent and switch to the target anyway. Don’t rely on that; send the status code you mean.

When a 302 is the right choice

  • A page is briefly unavailable — a seasonal product, a short promotion — and will return at the same URL.
  • A/B tests that send part of the traffic to a variant URL; Google recommends 302 rather than 301 for this.
  • Sending logged-out users to a login page and back.
  • Pointing a stable URL such as /latest-report at whichever report is current.

For a whole site down for maintenance, a redirect isn’t ideal at all: serve 503 Service Unavailable with a Retry-After header so crawlers come back later.

The accidental 302

Many platforms send a 302 by default, so permanent moves often go out as temporary ones without anyone deciding it:

// PHP: a Location header on its own sends 302
header('Location: /new-page');

// Express (Node.js): res.redirect() defaults to 302
res.redirect('/new-page');          // 302
res.redirect(301, '/new-page');     // what you probably meant

Checking redirect status codes after every migration or plugin change catches this in seconds.

Common mistakes

  • Using 302 for HTTPS migrations, domain moves or changed slugs. Those need a 301 redirect.
  • Mixing 301 and 302 hops in one redirect chain, which sends contradictory signals.
  • Redirecting every visitor by IP location with a 302. Googlebot crawls mostly from the US and may never see your other versions; offer a language banner and use hreflang instead.
  • Leaving “temporary” campaign redirects in place for years.

Check your redirects

The redirect checker shows every hop with its exact status code (301, 302, 307, 308 or meta refresh), location and timing, so you can spot a 302 that should be a 301 and catch loops or long chains.

Frequently asked questions

Does a 302 redirect pass PageRank?

Google has said 3xx redirects don’t lose PageRank. The practical difference is which URL gets indexed: with a 302, Google usually keeps the original URL in results instead of the target.

How long can a 302 redirect stay in place?

As long as the move is genuinely temporary. If it lasts months with no plan to revert, switch it to a 301; Google may otherwise start treating it as permanent on its own schedule.

What is the difference between 302 and 307?

Both are temporary. A 307 guarantees the browser repeats the request with the same method and body, while after a 302 browsers may change a POST into a GET. Search engines treat them alike.