SEO glossary
What is a 307 Redirect?
Learn what HTTP 307 Temporary Redirect means, how it differs from 302 and 301, method preservation rules, and SEO implications for crawlers and mixed API/HTML hosts.
Definition
A 307 Temporary Redirect is an HTTP status code that temporarily routes requests to a different URL while requiring clients to repeat the original request method and body on the destination—unlike 302, which historically allowed method change.
307 Redirect: temporary move, same method on the next hop
307 Temporary Redirect tells the client: the resource is temporarily at another URI, and you must not change the HTTP method when following the redirect. A POST stays POST; GET stays GET. The response includes a Location header with the alternate URL.
For SEO, most discussion centers on GET fetches of HTML documents. Googlebot's primary crawl mode is GET without bodies—so 307 on public article URLs behaves like 302 Redirect in practice: an extra hop to a temporary destination. The distinction matters when the same domain mixes marketing pages and form/API endpoints behind one hostname.
307 response example
POST /api/subscribe HTTP/1.1
Host: example.com
Content-Type: application/json
{"email":"user@example.com"}
HTTP/1.1 307 Temporary Redirect
Location: https://api.example.com/v2/subscribe
Content-Length: 0
The client reissues POST to the new URL with the same body—not a GET probe.
For GET crawls:
GET /docs/intro HTTP/1.1
Host: example.com
HTTP/1.1 307 Temporary Redirect
Location: https://cdn.example.com/docs/intro
Googlebot follows with GET to the CDN host—watch cross-host canonicalization and HTTPS certificate validity.
Why 307 exists: fixing 302 ambiguity
Historically, some clients treated 302 Redirect as "change POST to GET on next hop." That broke form submissions and APIs. RFC 9110 defines:
| Code | Semantics | Method on follow-up |
|---|---|---|
| 302 Found | Temporary | May change (legacy behavior) |
| 307 | Temporary | Must not change |
| 301 Moved Permanently | Permanent | May change POST→GET |
| 308 | Permanent | Must not change |
SEO teams migrating HTML only may never configure 307—but infrastructure teams often do on shared load balancers.
307 vs 302 for SEO crawls
Googlebot requests HTML with GET. For GET:
- 307 → GET at
Location(one hop) - 302 → GET at
Location(one hop)
Indexing signals depend on permanence intent, not method preservation. A years-long 307 on a renamed blog post is the wrong code—use 301 Redirect.
When 307 appears in SEO audits
- Kubernetes ingress defaulting to 307 for path rewrites
- OAuth/login flows 307 to identity provider (usually not indexable)
- Maintenance switches at edge returning 307 to static bucket
- HTTP/2 push or gRPC gateways exposing marketing paths accidentally
Crawl tools listing 307 on sitemap URLs warrant immediate review.
SEO implications
Temporary signal
Search engines should keep the original URL in the ecosystem. Long-running 307 on public content splits crawl attention between source and destination—mirror the 302 problem.
Cross-domain 307
www.example.com/page → 307 → docs.example.com/page risks split crawl quotas and redirect chains. Prefer single canonical host with 301 when consolidation is permanent.
Crawl budget
Each 307 on high-volume internal links doubles fetch work until links update to final URLs.
Indexing of redirecting URL
URLs that only 307 without rendering content at the source typically do not rank—the destination is evaluated. Source may appear as "redirect" in Search Console.
Appropriate 307 use cases
API versioning during transition
/v1/resource 307 to /v2/resource while clients migrate—temporary, method-safe.
Load balancer health reroutes
Origin unhealthy; edge 307 to standby pool. Revert when primary returns 200 OK.
Strict proxy maintenance pages
Some proxies issue 307 to maintenance HTML while preserving POST for checkout retry—rare but valid.
Inappropriate 307 uses
| Scenario | Use instead |
|---|---|
| Permanent domain move | 301 or 308 |
| HTTPS enforcement | 301 |
| Deleted content | 404 or 410 |
| Trailing slash policy (permanent) | 301 |
Implementation notes
Nginx (temporary, method-preserving via error_page—verify behavior)
Many teams use return 307 explicitly:
location /temp-docs {
return 307 https://example.com/docs$request_uri;
}
307 in chains and loops
/page → 307 → /mirror → 307 → /origin
Two temporary hops still form a redirect chain. Worse:
/a → 307 → /b → 307 → /a
A redirect loop—crawl failure regardless of 307 semantics.
Example: ingress misconfiguration
Marketing site example.com added K8s ingress rule redirecting /blog/* with 307 to blog.example.com during a subdomain experiment. Experiment ended but rule remained eighteen months.
Impact:
- Every blog crawl: two hosts, 307 hop
- Split backlink equity between hosts
- Sitemap listed
example.com/blogwhile live content only on subdomain
Resolution: 301 Redirect to chosen canonical host (example.com/blog), single sitemap, HSTS on HTTPS, internal links updated. Crawl depth to articles dropped one hop.
How Crawlox helps with 307 redirects
Crawlox records status codes including 307 across authorized crawls, maps Location targets, and highlights paths where 307 persists on indexable HTML. Distinguish infrastructure 307 from intentional temporary routing, detect chains that add unnecessary hops, and confirm whether marketing URLs should be consolidated with 301 Redirect instead of long-lived temporary redirects.
Related terms
Frequently asked questions
When should SEOs care about 307 redirects?
When crawlers or tools hit URLs that 307 to another host—common behind reverse proxies, Kubernetes ingress, or API gateways colocated with marketing sites. Misconfigured 307 on HTML paths can block indexing like any redirect.
Is 307 better than 302 for temporary moves?
For method safety (POST/PUT), yes. For standard GET HTML pages, 302 and 307 behave similarly for Googlebot GET crawls—but 307 is clearer in spec.
Does Google consolidate URLs with 307?
307 signals temporary relocation. Do not use it for permanent migrations expecting signal transfer—use 301 or 308.
Can 307 cause redirect loops?
Yes. A 307 from A to B and B back to A creates a loop crawlers cannot resolve—same as other redirect types.
Do browsers follow 307 for GET requests?
Yes. Browsers repeat GET on the Location URL. Users see the destination content; crawlers record an extra hop.
References
Explore authoritative guidance and frameworks related to 307 redirect.
Explore every glossary definition
Return to the glossary to search by term, alias, starting letter, or category.