Skip to main content

308 vs 301 Redirect: Which Should You Use for SEO?

2 min readBy SEO Snapshot

The Short Answer

For SEO, a 301 and a 308 are equivalent. Both are permanent redirects, both pass ranking signals (PageRank) to the destination, and both tell Google to swap the old URL for the new one in its index. If you only care about SEO, either is fine.

The difference is technical: a 308 preserves the HTTP method and body; a 301 may let clients change a POST into a GET. For normal page redirects, which are GET requests, this never matters. It only matters when you redirect an API call or a form submission and don't want a POST silently turned into a GET.

301 308
Type Permanent Permanent
SEO signal passed Yes Yes
Method preserved Not guaranteed (POST may become GET) Yes (POST stays POST)
Best for Page/URL moves, migrations Redirects that must keep POST/PUT
Support Universal, ancient Universal in modern browsers

Which to Use

  • Moving a page, renaming a URL, HTTP to HTTPS, www to non-www: use 301. It's the long-established default, universally understood, and every SEO tool reports it cleanly.
  • Redirecting an endpoint that receives POST/PUT, or a form action: use 308 so the method and body survive the hop.
  • On modern hosts like Vercel or Next.js: permanent: true emits a 308 by default. That's fine for SEO. Don't "fix" it back to a 301 just because a tool labels it differently.

The temporary counterparts follow the same split: 302 (may change method) versus 307 (preserves method). Use those only for genuinely short-lived redirects, since they don't consolidate ranking signal the way 301 and 308 do.

Generate the Rules

Build permanent redirects for your stack with the redirect generator (Apache and Nginx), or the Vercel and Netlify versions. Whatever you choose, avoid redirect chains and always point straight to the final URL.

FAQ

Q: Does a 308 pass SEO value like a 301? Yes. Google treats 301 and 308 the same for ranking. Both are permanent redirects that consolidate signals onto the destination URL.

Q: Vercel or Next.js gives me a 308 instead of a 301. Is that a problem? No. permanent: true produces a 308, which is SEO-equivalent to a 301. Leave it as-is.

Q: When does the method-preservation difference actually matter? Only when you redirect a non-GET request, such as a POST form submission or an API call. For ordinary page redirects, which are GET requests, 301 and 308 behave identically.

Check your site's SEO score for free

Analyze your site