GlossaryUpdated 2026-08-28

What Is a 307 Redirect? Temporary Redirect Guide

A 307 redirect is a temporary redirect that preserves the original HTTP method, making it the technically correct choice for temporary moves of POST requests and a modern alternative to the 302.

Explain It Like I'm 5

A 307 redirect is a 302 redirect that follows one extra rule: whatever you were carrying when you knocked on the door, you keep carrying when the door sends you somewhere else. That matters for forms and buttons, not so much for normal browsing.

Understanding 307 Redirects

The 307 status code means the requested resource temporarily lives at a different URL, and crucially, the HTTP method used for the original request must be repeated at the new URL. A GET stays a GET; a POST stays a POST. The older 302 was historically implemented in ways that could convert POSTs to GETs, which broke form submissions.

For plain page visits, the practical difference between 302 and 307 is nil for SEO: both are temporary, both keep the original URL indexed. The 307 is simply the method-correct modern equivalent defined in HTTP 1.1.

Where 307s appear in the wild: maintenance windows served at the same URL, HTTPS upgrade redirects configured at the server level, and application frameworks that use 307 internally for rerouting. Many hosting stacks now default to 307 instead of 302.

SEO guidance mirrors the 302: use it only for genuinely temporary situations, remove it when the period ends, and never use it to mask a permanent move.

Types of 307 Redirect

Temporary, Method-Preserving (307)

The resource is briefly elsewhere and the request method repeats unchanged.

Example: A maintenance page served temporarily while keeping login POSTs intact.

Internal Framework Rerouting (307)

Applications like ASP.NET Core use 307 by default when re-routing requests.

Example: A framework redirect from /old-route to /new-route during deployment.

Why 307 Redirects Matter

Most site owners will never consciously choose a 307, but hosting defaults increasingly serve them. Knowing they are temporary-class redirects lets you audit whether your stack is accidentally telling Google a permanent change is temporary.

Method-preserving: POSTs stay POSTs, GETs stay GETs
Semantically the modern, correct temporary redirect
Treated like a 302 by Google for indexing purposes
Commonly emitted by HTTPS and maintenance configurations

Best Practices

Use When the Method Must Survive

Any temporary redirect in front of form submissions, logins, or payment flows should be 307 so POST data is not silently dropped or converted.

Treat Like a 302 for SEO

The original URL stays canonical and indexed. Plan to remove the redirect when the temporary period ends.

Audit Server Defaults

Check whether your host or CDN emits 307 for HTTPS redirects; that is fine, but you should know it is happening.

Never for Permanent Moves

A URL that has moved for good needs a 301 so Google consolidates signals at the new address.

Common Mistakes

Assuming 307 is a new kind of permanent redirect

Fix: It is not. It is the temporary class; permanent is 301 (or 308).

Using 307 for domain migrations

Fix: Migrations are permanent. Use 301 so Google transfers indexing to the new domain.

Ignoring 307s because they look like 302s

Fix: Audit them with the same rigor as 302s; accidental temporary redirects on moved content split your signals.

How WPLink Spots Redirect Issues

WPLink records the status and final destination of every internal link target during its crawl. Links passing through 307 hops surface in the audit report so redirect misconfigurations never hide inside your content.

Frequently Asked Questions

Ready to optimize your internal links?

Get started with WPLink today and see the difference.

Download WPLink