Technical SEO · Glossary · Updated Apr 2026

HTTP 308 redirect

Definition

A 308 is the HTTP "Permanent Redirect" status code, defined in RFC 7538 (2015). It behaves like a 301 — permanent move, full link equity passed — except it preserves the original HTTP method. A POST stays a POST. The right choice for permanent redirects on APIs and form endpoints.

Find related

Long definition

The 308 status was added to fix a quirk of 301 and 302: both could legally rewrite a POST request into a GET on the redirect target, which silently broke forms and APIs. RFC 7538 standardized 308 in 2015 as the method-preserving counterpart to 301, mirroring how 307 is the method-preserving counterpart to 302.

Practical differences:

  • 301 — permanent. Many clients rewrite POSTGET on follow.
  • 308 — permanent. All compliant clients keep the method intact.
  • 302 — temporary. Many clients rewrite POSTGET.
  • 307 — temporary. All compliant clients keep the method.

For SEO, Googlebot has confirmed it treats 308 the same as 301: full canonicalization signal, full link equity. There's no bonus or penalty either way. The choice between 301 and 308 is operational, not SEO-driven.

When to use 308:

  • API endpoints moving to a new path. A POST to /v1/users redirected to /v2/users must remain a POST or the client breaks.
  • Form submissions behind a permanent redirect.
  • Webhook receivers that have changed URL.
  • Any non-idempotent endpoint where the method semantically matters.

When 301 is fine:

  • HTML pages crawled via GET. The method is already GET, so the rewrite-to-GET behavior is a no-op.
  • Static assets (images, CSS, JS) — same reasoning.
  • Sitemaps and robots.txt — also GET.

Browser support is universal in modern Chrome, Firefox, Safari, and Edge. Older HTTP libraries and SDKs occasionally lag — if you're shipping 308 to a known long-tail of legacy clients, test before flipping the switch. For most public-facing sites, 301 remains the default because the audience is browsers and crawlers, not POSTing API clients.

Common misconceptions

  • "308 is better for SEO than 301." It isn't. Google treats both as full permanent canonicalization signals. The difference is purely about HTTP method preservation, which only matters for non-GET requests.
  • "You should migrate all 301s to 308." Pointless effort for HTML pages — Googlebot crawls with GET, and there's no behavior to preserve. Only swap to 308 where you have actual POST/PUT/DELETE traffic going through the redirect.
  • "308 is too new for production." It's been an RFC since 2015 and supported in mainstream browsers and crawlers for years. Production-safe today.
  • "308 prevents redirect chains." It doesn't. Chains form from how rules are configured, not from which permanent-redirect code you pick. A 308 → 308 → 308 is just as wasteful as a 301 → 301 → 301.