Skip to main content
SiteIndex

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 status

What 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

  1. Link directly to the final URL to avoid the hop.

Example response

HTTP/1.1 308 Permanent Redirect
Location: https://example.com/new-location

Worked 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

  1. Find the status line in your browser's Network panel, API client, or server access log.
  2. Read the response body and headers shown above; headers such as Location, Allow, Retry-After, and WWW-Authenticate explain the next step.
  3. 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.

Related codes

Tools