Technical SEO

307 redirect

Also called: 307, 307 temporary redirect, 307 status code

A 307 redirect is an HTTP/1.1 temporary redirect that sends the client to the URL in the Location header while preserving the original request method and body, so a POST stays a POST. Google follows it but does not treat the target as canonical.

The 307 status code exists to fix an ambiguity in the older 302 Found. Under 302, some clients wrongly downgraded a POST to a GET when following the redirect. 307 closes that gap: the method and body carry over unchanged, which matters for form submissions, API calls, and anything that is not a plain GET. For a GET request, 307 and 302 behave identically.

307 vs the other redirects

So 307 and 308 are the method-preserving pair, while 302 and 301 are the older, looser equivalents.

One common surprise: Chrome shows a 307 Internal Redirect in DevTools when it upgrades http:// to https:// because of an HSTS policy. That is generated inside the browser with no request leaving the machine (Non-Authoritative-Reason: HSTS), not a status your server sent. A 307 is also not cacheable unless you add a Cache-Control or Expires header.

Practical rule: use 307 (or 302) only for genuinely temporary moves, A/B tests, maintenance pages, or geo and device routing. If the change is permanent, reach for 301 or 308.

How it affects your traffic

If you serve a 307 (or 302) where the move is actually permanent, Google keeps indexing the old URL and withholds the canonical signal from the new one, so rankings and link equity stall on a page you are trying to retire. The reverse mistake, a 301 on a page you plan to bring back, is just as painful to unwind. Getting redirect status codes right across a migration, an HTTPS rollout, or a URL cleanup is core crawl-and-index hygiene, and it is exactly the kind of issue we check in a Technical SEO engagement.

Get Technical SEO that moves the needle

We turn terms like this into ranked pages and qualified pipeline. Start with a free Initial SEO Strategy.