302 Redirect

What a 302 temporary redirect is, why Google calls it a "weak" target-processing signal (not the zero-equity dead end of SEO folklore), the legitimate use cases Google actually recommends it for, and the one mistake that costs you rankings.

First published: Jul 2, 2026 · Last updated: Jul 17, 2026 · Advanced
demand #2 in Redirects#10 in HTTP Status Codes#65 in Technical SEO#89 on the site
1 evidence signal on this page

A 302 redirect (HTTP status 302, 'Found') is a temporary redirect: it forwards users to a new URL while signaling that the original URL should stay in search results. The nuance most guides get wrong: Google's crawling infrastructure calls a 302 a weak signal that the target should be processed, versus the strong signal a 301 sends — but that's separate from Search's indexing pipeline, which says it doesn't treat a temporary redirect as a signal the target should be canonical (weak isn't zero, and processed isn't canonical). Google (Mueller, Illyes) has said 302s still pass link signals, and if a 302 stays up long enough, Google can start treating it like a 301 — a practitioner-observed pattern with no published timeline. It's the correct choice for genuinely temporary situations — Google explicitly recommends 302 over 301 for A/B tests, plus geo/device routing and maintenance pages. The one real mistake is using a 302 for a permanent move, which can leave the old URL ranking instead of the new one for an unpredictable stretch of time.

TL;DR — A 302 (“Found”) is a temporary redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't.. Google’s precise framing has two stages, not one: crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. infrastructure calls it a weak signal that the redirect target should be processed, versus a 301’s strong signal — and, separately, Search’s indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. pipeline says it doesn’t treat a temporary redirect as a signal the target should be canonical (the target can still index via other signals). Two mechanisms get conflated constantly: link-signal/PageRankPageRank is Google's original recursive link-graph algorithm: a page's score depends on the scores of the pages linking to it, and in the published model each page's score is split across its outbound links (the simplified version: links are weighted votes). Google says it's evolved since launch but still part of its core ranking systems. passing (Mueller and Illyes have said it isn’t zero on a 302, though that’s their public statement, not a formally published universal rule) and canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it./indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. preference (which is what actually differs — a 302 tells Google to keep the source URL indexed). Left in place long enough, a 302 can flip — a practitioner-observed pattern, not a documented mechanism, with no published timeline. Google recommends 302 over 301 for A/B testing. The one real mistake is using a 302 for a permanent move; never build the redirect destination from unchecked user input either.

”Moved Temporarily” → “Found” — a quick history

The 302 was born ambiguous. In HTTP/1.0 it was called “Moved Temporarily,” and the spec said clients should reuse the original request method when following it. In practice, browsers didn’t — many silently switched a POST to a GET on redirect, contrary to spec. HTTP/1.1 acknowledged reality by renaming 302 to “Found” and adding two unambiguous alternatives: 303 (See OtherA 303 See Other is a temporary HTTP redirect that tells the client to fetch a different URL with a GET or HEAD request, no matter what method the original request used. It's the mechanism behind the Post/Redirect/Get pattern, and search engines treat it as a weak signal like a 302 or 307.), which always switches to GET, and 307 (Temporary Redirect), which never changes the method. The current spec, RFC 9110 (2022), still notes that clients may change POST to GET on a 302 — which is exactly why 307 exists for cases where they must not. For everyday GET-based page redirects (the SEO use case), 302 and 307 behave the same way to search engines; the method-preservation distinction only matters for form posts and API calls. Evidence for this claim RFC 9110 defines 302 Found as a temporary move to another URI and notes that user agents may change POST to GET when following it. Scope: HTTP semantics for 302 responses. Confidence: high · Verified: IETF: RFC 9110 §15.4.3 — 302 Found

For search purposes, Google groups 302 (found), 303 (see other), and 307 (temporary redirect) together as “Temporary,” opposite 301 and 308 as “Permanent.”

The compact decision, if you’re choosing between them:

  • 302 — a following client may change POST to GET (RFC 9110). Fine for a plain GET-based page redirect; avoid it if you can’t tolerate the method changing.
  • 307 — never changes the method or resends a different request. Use it when a form submission or API call must be replayed exactly as sent.
  • 303 — deliberately points at a different, non-equivalent resource, normally fetched with GET/HEAD — the classic “redirect after a POST to a confirmation page” pattern, not a like-for-like stand-in for the original request.
  • CachingCaching stores a copy of a page or resource — in a browser, a CDN edge node, or a search crawler's own cache — so it can be served again without regenerating or re-downloading it. It isn't a direct ranking factor, but it feeds page speed and crawl efficiency. — a 302 is not heuristically cacheable just because of its status code (RFC 9111); it’s only stored/reused if you set explicit freshness or cache directives. Don’t assume a CDN or browser will treat a bare 302 as cacheable by default.

Weak signal vs. strong signal — Google’s precise words

Skip the folklore and read Google’s actual language. In its crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor.-infrastructure docs, Google says a 302 is a weak signal:

“By default, Google’s crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. follow the redirect, and Google systems use the redirect as a weak signal that the redirect target should be processed.”

The 301 row of the same table is identical except for one word — strong:

“Google follows the redirect, and Google systems use the redirect as a strong signal that the redirect target should be processed.”

“Weak” does not mean “zero” — but it’s also worth being precise about what is weak. These are two different Google systems talking about two different stages, not one continuum:

  • Crawling infrastructure (the “weak signal” quote above) is about whether the redirect target gets processed — essentially, does Google’s crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. bother fetching and looking at the destination.
  • Search’s indexing pipeline is a separate, later stage, and it states its own rule directly: GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. follows the redirect, but the indexing pipeline doesn’t use the redirect as a signal that the redirect target should be canonical. The target page might still be indexed if other canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it. signals are present.” Evidence for this claim Google follows a 302 temporary redirect but does not use it as a signal that the destination should become canonical; Google recommends 302 rather than 301 for temporary site tests. Scope: Google Search handling of temporary redirects and A/B tests. Confidence: high · Verified: Google: Redirects and Google Search Google: Website testing

Read together: a 302 gives Google a weak nudge to go look at the target (crawling), but Search’s indexing pipeline doesn’t treat that same redirect as a vote for making the target canonical (indexing). The target can still end up indexed and canonical — just from other signals doing that work, not from the 302 itself. Don’t collapse these into “a 302 is a weak vote for the target being canonical” — that’s not what either doc says; they’re describing different scopes.

Two mechanisms, not one

This is where most competitor content muddles things, so keep them separate:

  1. Link-signal / PageRankPageRank is Google's original recursive link-graph algorithm: a page's score depends on the scores of the pages linking to it, and in the published model each page's score is split across its outbound links (the simplified version: links are weighted votes). Google says it's evolved since launch but still part of its core ranking systems. passing is not zero on a 302. Gary Illyes said back in 2016 that Google no longer applies PageRank dilution across 301, 302, or other 30x redirects (retiring the old “~15% loss per hop” folklore), and Mueller made the same point about 302s specifically: “do work the same as normal redirects… It’s not that they don’t pass any PageRank or anything like that.” Treat this as Google’s own public statement on the question, not a formally published, universal guarantee — current primary documentation doesn’t spell out an exact link-signal transfer rule for every redirect type in every situation.
  2. Canonicalization / indexing preference is the mechanism that actually differs. A 301 is a strong signal to index the destination; a 302 is a weak one, so Google’s default is to keep indexing the source.

“Does a 302 pass PageRank?” and “does a 302 change which URL ranks?” are two different questions. The answer to the first is yes; the answer to the second is “not by default.” Conflating them is how the “302 = zero equity” myth got started.

Related to this: when you redirect a URL, Google tracks both ends. “Google keeps track of both the redirect source (the old URL) and the redirect target (the new URL). One of the URLs will be the canonical; which one, depends on signals such as whether the redirect was temporary or permanent. The other URL becomes an alternate name of the canonical URL.” For a 302, the source stays canonical — for now.

What happens if a 302 stays up too long — the “flip”

Here’s the part that surprises people: a temporary redirect that never gets removed can stop being treated as temporary. Mueller: “if you have 302 redirectsA 302 (\"Found\") is a temporary redirect: it forwards users to a new URL while telling search engines the original URL should stay in the index. It's a weak canonicalization signal, not the zero-equity dead end of SEO folklore. for the long run, we treat them exactly the same as 301 redirectsA 301 redirect is the HTTP status code for a permanent move: it tells browsers and search engines a URL has moved for good, and it's the strongest signal for consolidating a page's ranking signals onto the new URL. Google says permanent redirects don't cause a loss in PageRank. anyway.”

Why does that happen? This is my own working explanation from my Ahrefs canonicalization guide — a practitioner’s mental model built from observed behavior, not a mechanism Google has formally published — think of it as a scale tipping. Permanent redirects send signals forward to the new URL; temporary redirects send signals backward to the original URL. But:

“If a temporary redirect is left in place long enough or the URL it’s redirected to already exists, it may be treated as a permanent redirect and send signals forward instead. It requires enough signals to flip the scale we saw earlier for canonicalization signals. As links build up, internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. are changed, sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. URLs are updated, etc., more signals point to the new URL than the old URL, and the flip occurs.”

The catch: nobody knows how long that takes. As I wrote in my redirects guide, “Nobody knows how long a 302 redirect has to exist before Google starts treating it as a 301 redirect. Usually, it’s a few weeks to a few months, but it can be days, weeks, or months.” And Google can act sooner if it thinks you made a mistake: “Only if Google thinks you used a 302 redirect by mistake for a permanent move does this not happen. In that case, it treats the redirect as a 301… In some circumstances, Google even appears to treat 302s as 301s from the get-go.” Don’t quote a specific day-count for this — there isn’t a published one, and any figure you see (including the “2 days” number that circulates in Bing folklore) is not something Google has confirmed.

How Bing treats a 302 — it watches behavior, not just the header

Bing reaches the same place by a slightly different road, and it said so explicitly. In its longstanding explainer on redirects, Bing describes watching the observed pattern of a redirect over repeated crawls rather than trusting the status code alone: redirects that keep changing destination get treated more like 302s even if they’re labeled 301, and redirects that always point to the same place get treated more like 301s even if they’re labeled 302 — Bing’s system starts to “think about them more like 301s as we continue to crawl them again and again.” That’s the same convergence Google describes, arrived at independently: given enough consistent behavior over time, both engines trust what a redirect does over what its header claims.

Bing’s older guidance also leaned harder on “use 302 sparingly” than Google does today, warning that a misused 302 can leave value stranded on the original URLs. The practical takeaway is identical to Google’s: match the redirect type to your actual intent.

When a 302 is the right call

Google doesn’t just tolerate 302s — for one use case it recommends them. From its A/B testing guidance:

“If you’re running a test that redirects users from the original URL to a variation URL, use a 302 (temporary) redirect, not a 301 (permanent) redirect. This tells search engines that this redirect is temporary—it will only be in place as long as you’re running the experiment—and that they should keep the original URL in their index rather than replacing it with the target of the redirect (the test page). JavaScript-based redirects are also fine.”

The legitimate use cases (all genuinely temporary):

  • A/B testing — Google’s explicit recommendation, above. But don’t overstay it: Google warns that “if we discover a site running an experiment for an unnecessarily long time, we may interpret this as an attempt to deceive search engines and take action accordingly.” Run it as long as you need for significance, then remove it.
  • GeoGenerative Engine Optimization — visibility inside AI answer engines., device, and language routing — where the “right” destination depends on the visitor, and no single URL should permanently replace the source. This one needs more than picking a status code, though: confirm what GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. itself gets routed to (it typically won’t carry a real visitor’s location/device signals, so check what your rule serves it), whether the routing relies on cookies or headers that a crawler won’t send, whether your cache keys and Vary header correctly separate the variants (so a cache doesn’t serve one country’s page to another), that a screen-reader or no-JS visitor can still reach the content, and that a visitor can override the automatic routing rather than get stuck on a redirect loopA redirect loop is a chain of redirects that circles back on itself instead of ever reaching a live page — URL A redirects to B and B redirects back to A (or a longer cycle). No page ever returns a 200, so browsers show ERR_TOO_MANY_REDIRECTS and crawlers can't index anything.. Pair it with proper hreflang on the localized versions — the redirect and hreflang should agree, not fight each other.
  • Temporary maintenance / service-unavailable pages — Google’s own example: “if a service your site offers is temporarily unavailable, you can set up a temporary redirect to send users to a page that explains what’s happening, without compromising the original URL in search results.” Think about which of these two situations you actually have. If the URL itself simply can’t be served right now (the backend is down, you’re mid-deploy), a 503 Service Unavailable with a Retry-After header on the same URL is often the more accurate response — it says “temporarily can’t fulfill this request, try again later” without redirecting anywhere. Reach for a 302 when you’re deliberately routing visitors to a different, genuinely useful explanatory URL (a status page, a “we’ll be back” page with more detail) rather than just marking the original as unavailable.
  • Time-limited promotions — send visitors to a campaign page for its run, then revert.
  • Load balancing / failover — routing traffic elsewhere when an origin or data center is temporarily unavailable.

See the Examples tab for these annotated side by side, and the Checklists tab for a pre-flight pass.

The one real mistake

Using a 302 when you mean a permanent move. You’re telling Google to keep the old URL indexed, so the new page you want ranking may not take over for an indefinite, unpredictable stretch — a real cost in lost visibility, not a theoretical one. If a page is gone for good, use a 301 (or 308). Related sibling mistakes: mixing 301s and 302s inconsistently inside a redirect chainA → B → C instead of A → C. Each hop loses link equity and adds latency., and — the failure mode of any redirect — accidentally pointing two URLs at each other and creating a redirect loop.

Implementing a 302

The header is what matters — status line 302 Found plus a Location. Google’s own PHP example:

header('HTTP/1.1 302 Found');
header('Location: https://www.example.com/newurl');
exit();

Apache (.htaccess) — the R=302 flag is what makes it temporary (an R=301 or a bare R would default to permanent):

Redirect 302 /old-path https://www.example.com/newurl
# or with mod_rewrite:
RewriteRule ^old-path/?$ https://www.example.com/newurl [R=302,L]

nginx — redirect issues a 302 (permanent would issue a 301):

location = /old-path {
    return 302 https://www.example.com/newurl;
}

Whatever the stack (WordPress redirect plugins, a CDN/edge rule, an application-level handler), the rule is the same: server-side redirects are preferred, and you must deliberately choose the temporary code — most tools default to 301, so a 302 is usually an explicit setting.

One security note that applies to any redirect, not just 302s: if the destination in your Location header is ever built from user-controlled input (a ?next= or ?returnUrl= query parameter, for example), you’ve got the ingredients for an open redirect — an attacker crafts a link on your domain that actually bounces visitors somewhere malicious. Don’t send visitors to whatever URL shows up in a request parameter; allowlist the destinations you’ll actually redirect to (a fixed set of known-safe paths or origins), and test how your redirect logic handles encoded and scheme-relative inputs (//evil.example, %2F%2Fevil.example, and similar tricks) before trusting it in production. Review each platform’s exact snippet syntax against its current version before shipping — the examples above are illustrative, not a substitute for testing against your own server/CDN.

For the permanent-move counterpart and the full head-to-head, see the sibling articles on the 301 redirect, 301 vs 302, and 302 vs 307 in this cluster.

TIP Confirm the redirect is temporary in both code and intent

The trace verifies the current 302 and destination; it does not stop a long-lived temporary redirect from eventually conflicting with your other canonical signals.

Run the source URL through my Redirect Checker and review the whole chain before and after the temporary condition ends. Redirect Checker Free

  1. Confirm the source returns 302 and the final page is healthy and relevant.
  2. Check canonicals, internal links, and sitemaps still support the source URL when it should remain canonical.
  3. Remove the temporary redirect on schedule or replace it with a permanent code when the move becomes permanent.

Try it live

This is a real endpoint on this site — not a simulation. Hit it from the button, open it in a new tab, or curl -i it from your terminal, and the server answers with the actual status code this article is about.

Open in new tab ↗

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.