LaunchRanked

GlossarySEO

What is the difference between 307 and 308?

Also called: 307 redirect, 308 redirect, 307 temporary redirect, 308 permanent redirect

Definition

A 307 is a temporary redirect and a 308 is a permanent one. Unlike 302 and 301, both require the browser to repeat the request with the same method and body. Google treats 308 like 301 and 307 like 302.

307 vs 308 redirect, explained

The older codes 301 and 302 let browsers change a POST into a GET when following the redirect. 307 and 308 were added to forbid that: the method and body must stay the same. For normal page views, which are all GET requests, the behavior is identical to their older siblings.

Google's redirect documentation groups them clearly. 301 and 308 are permanent redirects, which Google uses as a strong signal that the target should become the canonical URL. 302, 303 and 307 are temporary, so Google follows them but tends to keep the original URL in results. For SEO, choose permanent or temporary; the specific number within each group doesn't matter to Google.

You'll meet these codes on modern stacks. In Next.js, permanent: true redirects in the config send 308, permanentRedirect() sends 308, and redirect() sends 307 by default. So a Next.js site can end up with temporary redirects for moves that were meant to be permanent. Chrome also shows "307 Internal Redirect" when HSTS upgrades an http:// link to https:// inside the browser; that one never reaches your server or Google.

The rule is the same as always: permanent moves get a permanent code, and the old URL should point directly at the final one.

Why it matters for founders

If you use a framework default without checking, a permanent URL change can go out as a 307. Google may keep showing the old URL, and the signals you earned stay split across two addresses.

Example

You move /pricing-old to /pricing with redirect() in a Next.js route. The redirect checker shows 307. You switch to permanentRedirect(), it now returns 308, and Google treats /pricing as canonical.

Common mistakes

  • Using 307 for a permanent URL change.
  • Assuming Google prefers 301 over 308. It treats them the same.
  • Debugging HSTS's in-browser 307 as if it were a server redirect.
  • Switching codes but leaving internal links on the old URL.

Sources

Checked

← All 274 glossary terms