SEO

307 and 308

Also called 307 Temporary Redirect, 308 Permanent Redirect

Redirects that keep the original request method intact — 307 for a temporary move, 308 for a permanent one.

Quick facts: 307 and 308

Category
SEO
Also called
307 Temporary Redirect, 308 Permanent Redirect
Level
Advanced
Affects
Form submissions, API requests, redirect behaviour, debugging
Where to see it
Browser developer tools, server configuration, CDN rules, Screaming Frog
In this article4
  1. How 307 and 308 work
  2. Why 307 and 308 matter
  3. Common mistakes with 307 and 308
  4. How to act on it

How 307 and 308 work

Every request to a server carries a method as well as an address. Asking to read a page is one method; submitting a form with data attached is another. When a redirect sends the request somewhere else, that method either travels with it or it does not.

The older redirect codes were vague on this point, and browsers settled it by convention rather than by rule: a form submission that met a 301 or a 302 was commonly turned into a plain page request, and the submitted data was dropped. That behaviour became so widespread it could not be changed, so two stricter codes were defined instead. A 307 is a temporary redirect that must keep the method; a 308 is a permanent redirect that must keep the method.

The mapping is easy to hold in your head. In terms of what they mean for search, 308 sits alongside 301 as the permanent one, and 307 sits alongside 302 as the temporary one. The difference is only about what happens to the request itself.

Why 307 and 308 matter

They matter most where data is being sent, not where pages are being read. Forms, checkouts, payment callbacks and interfaces between systems all rely on the method surviving the hop. A submission that quietly becomes a page request arrives empty, which produces the sort of bug where a form works on one address and fails on another for no visible reason.

You will also meet a 307 without anyone having set one. When a site is on the browser’s list of addresses that must always be secure, the browser rewrites the request itself before it leaves the machine, and the developer tools record that as an internal 307. It is the browser’s own note to itself, not a response from your server, which is why it will not appear in a crawl. It is worth recognising when you are debugging HTTPS.

Common mistakes with 307 and 308

The first is reaching for them when an ordinary page has moved. For a normal URL change, a 301 remains the sensible choice: every plugin, hosting panel, crawler and report handles it without ambiguity, and there is no method to preserve when someone is simply reading a page.

The second is treating the internal 307 in developer tools as a server problem. Nothing on your server produced it, and no redirect needs removing. Chasing it wastes an afternoon.

The third is assuming a plugin can set them. Most redirect plugins offer permanent and temporary and nothing else, so where a 308 is genuinely required it usually has to be configured on the server or at the CDN by a developer.

How to act on it

Keep the everyday rule simple: pages that move for good get a 301, pages that move for now get a 302. Reach for 308 or 307 only when a request carries data — a form endpoint, an API path, a payment return address — and losing that data would break something.

When you do use one, test it by making the real request rather than by opening the URL in a browser, because a browser only ever reads pages. And record the choice somewhere your developer will find it, since a redirect nobody understands tends to be replaced with the wrong one at the next redesign.

Do and do not

Do

  • Keep 301 and 302 for ordinary page moves
  • Use 308 where a request carries data that must survive
  • Test by making the real request, not opening the URL

Do not

  • Chase the internal 307 your browser created itself
  • Expect a redirect plugin to offer these codes
  • Swap a working 301 for a 308 without reason

Questions people ask about this

Should I use 308 instead of 301 for my site move?

For ordinary page moves, no. A 301 is understood by every tool, plugin and report you are likely to use, and there is no request method to preserve when someone is simply reading a page. Keep 308 for endpoints that receive data, such as form handlers or interfaces between systems, where losing the method would break the request.

Do search engines treat 307 and 308 differently from 302 and 301?

In terms of what they signal, no. The permanent pair behaves as a permanent move and the temporary pair as a temporary one, so 308 is read like a 301 and 307 like a 302. The distinction between them exists for the request method, which matters to browsers and applications rather than to indexing.

Why does my browser show a 307 I never configured?

Because the browser created it. When a site is on the list of addresses that must always be loaded securely, the browser upgrades the request before sending it and logs that as an internal 307 in developer tools. Your server never saw the insecure request, nothing is misconfigured, and there is no redirect on your side to remove.

Related terms

Found this useful?

Share it, or ask an AI to summarise it

Back to the glossary

Knowing the term is the easy part

Applying it to your own site and budget is the work. Book a call and I will tell you what actually applies to you.