3xx Redirection
308 Permanent Redirect
The resource has permanently moved, and the client must keep the same method and body.
Check a URL's HTTP statusWhat it means
308 is the method-preserving version of 301. Many frameworks, including Next.js, use 308 for permanent redirects.
Common causes
- A permanent URL change where POST requests must stay POST.
- Framework-generated permanent redirects such as trailing-slash normalization.
How to fix it
- Link directly to the final URL to avoid the hop.
Example response
HTTP/1.1 308 Permanent Redirect
Location: https://example.com/new-locationWorked example
A client requests an old URL and receives a redirect with a Location header. It requests the destination next, preserving or changing the HTTP method according to the specific redirect code.
How to read this response
- Find the status line in your browser's Network panel, API client, or server access log.
- Read the response body and headers shown above; headers such as Location, Allow, Retry-After, and WWW-Authenticate explain the next step.
- Use the code's class to orient your diagnosis: informational, successful, redirected, request-related, or server-side.
SEO impact
Search engines treat 308 the same as 301: ranking signals move to the new URL.
How to check a status code
Enter a URL in the HTTP Status Checker to see its status code, every redirect hop, and response time. For redirect-heavy pages, the Website Speed Test shows how much time redirects add.
Frequently asked questions
- What it means: HTTP 308
- 308 Permanent Redirect: The resource has permanently moved, and the client must keep the same method and body.
- Common causes: 308
- A permanent URL change where POST requests must stay POST. Framework-generated permanent redirects such as trailing-slash normalization.
- How to fix it: HTTP 308
- Link directly to the final URL to avoid the hop.
Defined in RFC 9110.