307 Redirect

A 307 redirect is an HTTP status code that temporarily sends one URL to another while preserving the original request method. It tells browsers and search engines that a page has moved for now but will return to its original location. Unlike a 302, a 307 guarantees the browser repeats the exact request method and body, so a POST stays a POST.
The full label is “307 Temporary Redirect.” It was added in HTTP/1.1 to remove the ambiguity that let browsers change the request method on a 302.
HTTP/1.1 307 Temporary Redirect
Location: https://example.com/temporary-page
How a 307 Redirect Works
A 307 redirect runs at the server level before any page content loads. When a client requests the old URL, the server returns a 307 status and a Location header pointing to the new URL. The client then reissues its original request to that new address.
The process happens in three steps:
- A user or bot requests the original URL. The request reaches the server, including its method (GET, POST) and any body data.
- The server returns a 307 status and the new location. No content loads at the original address.
- The client repeats the same request at the new URL. The method and body are carried over unchanged.
That third step is what sets a 307 apart. A 302 historically allowed browsers to downgrade a POST to a GET, dropping the submitted data. A 307 forbids that change.
307 vs 302 Redirect
Both are temporary redirects, and search engines treat them the same. The difference is method handling.
- 302 (Found). Temporary. Browsers historically converted a POST to a GET when following it, which could strip form or API data.
- 307 (Temporary Redirect). Temporary. The browser must repeat the exact method and body, so a POST stays a POST.
For a simple GET page, the two behave identically. For anything that sends data, such as a login form, checkout submission, or API call, a 307 is the safer choice. For the general temporary case and its SEO handling, see the 302 redirect glossary entry.
On the SEO side, both keep the original URL indexed and pass full ranking signals. Google’s Gary Illyes confirmed in 2016 that all 30x redirects pass PageRank, so neither one “loses” link equity.
307 Internal Redirect
A “307 Internal Redirect” is different from a server-sent 307. It is generated by the browser itself, not returned over the network. Chrome DevTools shows it when a site uses HTTP Strict Transport Security (HSTS).
When a domain is on the HSTS list, the browser rewrites any http:// request to https:// before the request leaves the machine. DevTools logs that rewrite as a 307 Internal Redirect. No server responded with a 307. The browser enforced HTTPS locally. Seeing this in the Network tab is normal and means HSTS is working.
When to Use a 307 Redirect
Use a 307 for a temporary move where the request method must survive. Common cases include:
- Form and API endpoints. Redirect a POST or PUT request without downgrading it to a GET.
- Maintenance windows. Route requests to a fallback page while keeping methods intact.
- Geo or device routing. Send a request to a region- or device-specific handler while preserving the payload.
Do not use a 307 for a permanent move. When a URL changes for good, use a 301 (permanent) or a 308 (permanent, method-preserving). A 307 keeps the original URL indexed, which is wrong for a final change.
After setting any redirect, confirm it returns the status code you intended. linkutm’s redirect checker shows the exact code and the full redirect path for any URL.
Frequently Asked Questions
What is a 307 redirect?
A 307 redirect is a server response that temporarily points one URL to another while preserving the request method. It tells browsers and search engines the page has moved for now but will return. Because the browser repeats the exact method and body, a POST request stays a POST.
What is the difference between a 307 and a 302 redirect?
Both are temporary redirects that keep the original URL indexed. The difference is method handling. A 302 historically let browsers change a POST to a GET, while a 307 forces the browser to repeat the original method and body unchanged.
Is a 307 redirect good or bad for SEO?
A 307 used correctly does not hurt SEO, since Google confirmed 30x redirects pass full PageRank. The catch is that a 307 is temporary and keeps the original URL indexed. For a permanent move, use a 301 or 308 instead so the new URL ranks.
What is a 307 Internal Redirect in Chrome?
A 307 Internal Redirect is a browser-generated rewrite from HTTP to HTTPS, not a server response. It happens on sites using HSTS, where the browser forces HTTPS before the request is sent. Seeing it in DevTools means HSTS is active and working.
To confirm a redirect returns the right status code and avoids chains, run the free redirect checker at linkutm.