302 Found

The HTTP 302 Found status code, previously known as "Moved Temporarily", is returned by the server to redirect the client to a new location specified in the Location header. Because the response is temporary, the URI is revalidated on each subsequent request.

Usage

When the 302 Found status code is received, the client understands the requested resource has temporarily moved. A second request retrieves the resource at the new location. This is simpler than a 301 because the client is not expected to update internal links.

Note

For backward compatibility, the client is permitted to change the request method from POST to GET on the redirect. To remove ambiguity, the server returns an alternative status code instead. The 303 status code indicates the redirect must use a GET method, while the 307 status code requires preserving the original method.

SEO impact

Google treats a 302 as a weak signal the redirect target is indexable, unlike 301 which is a strong signal. Google indexes either the source or the target URL. A 302 persisting over a prolonged period is eventually treated as equivalent to a 301 and ranking signals transfer accordingly. Bing holds ranking signals on the original URL for 302 redirects. If a 302 consistently points to the same destination across multiple crawls, Bing starts treating the redirect as a 301 Moved Permanently.

Example

The client requests a resource temporarily moved. The server indicates the new location and supplies a relevant message for client-side display.

Request

GET /news.html HTTP/1.1
Host: www.example.re

Response

HTTP/1.1 302 Found
Location: http://www.example.re/testing/news.html
Content-Type: text/html
Content-Length: 167

<h1>The Newsfeed has moved</h1>
<body>
The site is under development and the newsfeed has
temporarily moved to
<a href=/testing/news.html>here</a>.
</body>

Code references

.NET

HttpStatusCode.Found

Rust

http::StatusCode::FOUND

Rails

:found

Go

http.StatusFound

Symfony

Response::HTTP_FOUND

Python3.5+

http.HTTPStatus.FOUND

Java

java.net.HttpURLConnection.HTTP_MOVED_TEMP

Apache HttpComponents Core

org.apache.hc.core5.http.HttpStatus.SC_MOVED_TEMPORARILY

Angular

@angular/common/http/HttpStatusCode.Found

Takeaway

The 302 Found status code indicates the requested resource has temporarily moved. The client makes a second identical request to the Location header URI to retrieve the resource. Because the move is temporary, the URI is revalidated on each future request.

See also

Last updated: March 6, 2026