# 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.

URL: https://yes-seo.com/glossary/redirect-302

A **302 redirect** uses the status code [302 Found](https://yes-seo.com/http-status-codes/302) 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](https://www.rfc-editor.org/rfc/rfc9110#section-15.4.3) defines it. Its sibling, [307 Temporary Redirect](https://yes-seo.com/http-status-codes/307), 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](https://developers.google.com/search/docs/crawling-indexing/301-redirects) 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](https://yes-seo.com/http-status-codes/503) 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](https://yes-seo.com/glossary/redirect-301).

- Mixing 301 and 302 hops in one [redirect chain](https://yes-seo.com/glossary/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](https://yes-seo.com/glossary/hreflang) instead.

- Leaving “temporary” campaign redirects in place for years.

## Check your redirects

The [redirect checker](https://yes-seo.com/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.

