308 Permanent Redirect means the target resource has a new permanent URL, given in Location, and the client must repeat the request there without changing the method or body. It is the method-preserving counterpart of 301 Moved Permanently, just as 307 is to 302. It was introduced in RFC 7238 (2014), made a full standard by RFC 7538 (2015) and is now part of RFC 9110.
Like a 301, a 308 is heuristically cacheable, so browsers remember it and go straight to the new URL next time. All current browsers, major crawlers and common HTTP libraries support 308; only very old clients, such as Internet Explorer on Windows 7, did not.
Example response
HTTP/1.1 308 Permanent Redirect
Date: Fri, 06 Nov 2026 10:15:32 GMT
Location: /docs/
Content-Type: text/plain; charset=utf-8
Content-Length: 21
Redirecting to /docs/ SEO and redirect checking
Google treats 308 like 301: a strong signal that the target is the new canonical URL, so the new URL replaces the old one in search results. Use 308 when the method must be preserved (APIs, form endpoints) or when your platform uses it by default; for ordinary page moves, 301 and 308 work the same for SEO.
Platforms such as Next.js and Vercel use 308 for permanent redirects and for trailing-slash normalisation. The 301 Redirect Checker shows whether each hop is permanent (301 or 308) or temporary, and the Trailing Slash Checker tests both URL variants.
Common causes and use cases
- A framework's permanent redirect, such as
permanent: truein Next.js, a Vercel redirect rule or a CDN rule. - Trailing-slash or letter-case normalisation where the request method must be kept.
- An API endpoint moved permanently while clients keep sending
POSTorPUTto the old URL. - HTTP-to-HTTPS upgrades on platforms and proxies that use 308 for them.