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.

Technical SEOUpdated August 14, 2026
Also known asHTTP 307 Temporary RedirectTemporary Redirect (strict)

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:

CodeSemanticsMethod on follow-up
302 FoundTemporaryMay change (legacy behavior)
307TemporaryMust not change
301 Moved PermanentlyPermanentMay change POST→GET
308PermanentMust 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

  1. Kubernetes ingress defaulting to 307 for path rewrites
  2. OAuth/login flows 307 to identity provider (usually not indexable)
  3. Maintenance switches at edge returning 307 to static bucket
  4. 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

ScenarioUse instead
Permanent domain move301 or 308
HTTPS enforcement301
Deleted content404 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/blog while 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.

Browse glossary