
Every redirect sends a status code along with the new address. Most people only ever hear about two of them: 301 and 302.
There are actually four common ones. They look similar, and they all send the visitor somewhere else. The difference is what they tell browsers and search engines about the move.
The good news is that picking the right one comes down to two simple questions.
The two questions that decide it
Before looking at the codes, ask yourself:
Is this move permanent or temporary?
Does the request method need to stay the same?
The first question matters for almost every redirect. The second only matters for forms, APIs and other requests that send data. For a normal page or domain move, you can mostly ignore it.
The four codes at a glance
301 Moved Permanently: the old URL is gone for good. Browsers can cache it, and search engines move signals to the new URL.
302 Found: the move is temporary. The original URL stays the one that counts.
307 Temporary Redirect: the same as 302, but the browser must keep the original request method.
308 Permanent Redirect: the same as 301, but the browser must keep the original request method.
So 301 and 308 are the permanent pair. 302 and 307 are the temporary pair.
When to use a 301
Use a 301 when the old address isn’t coming back. For example:
oldbrand.com → newbrand.com
example.com/services/design → example.com/design
This is the right choice for rebrands, domain changes, website migrations and URL clean-ups. It tells search engines the new URL should take the old one’s place.
Google’s own site move guidance recommends permanent server-side redirects for this, and says they don’t cause a loss in PageRank.
If you’re unsure and the move is permanent, a 301 is almost always the safe default. You can read more in our 301 redirect glossary entry.
When to use a 302
Use a 302 when you plan to bring the original URL back. For example:
example.com/sale → example.com/black-friday during a one-week campaign
example.com/app → example.com/maintenance while something is being fixed
A 302 keeps the original URL as the canonical one. Search engines don’t treat the destination as its replacement.
The most common mistake is using a 302 for a move that’s actually permanent. Many registrars default to it. The redirect still works for visitors, but you’re telling search engines the old URL should stick around. Our 301 vs 302 comparison goes deeper into the differences.
When 307 and 308 matter
With 301 and 302, some clients may change a POST request into a GET when they follow the redirect. For a normal web page, that doesn’t matter because visitors are just loading pages.
It does matter when a form or an API sends data to a URL that has moved. If the method changes, the data can be lost on the way.
That’s what 307 and 308 are for. They tell the client to repeat the exact same request at the new address.
Use 308 when an API endpoint or form handler has moved permanently.
Use 307 when it has moved temporarily.
For domains, pages and marketing links, you’ll rarely need either.
A quick decision guide
Moving a page or domain for good: 301
Running a campaign or temporary page: 302
Moving a form or API endpoint for good: 308
Moving a form or API endpoint temporarily: 307
What about browser caching?
Permanent redirects can be cached by browsers. That’s good for speed, but it means a visitor’s browser may remember a 301 even after you change it.
If you change a permanent redirect and it seems not to update, test in a private window first. It’s usually the browser, not the redirect. Our redirect tester always shows the live response, without cache.
Can you change a 302 to a 301 later?
Yes, and it’s one of the most common fixes after a launch. If you set a temporary redirect and the move turns out to be permanent, change the type to 301.
Search engines will pick up the new signal the next time they crawl the old URL. You don’t need to remove and recreate anything, and visitors won’t notice the change.
Going the other way is trickier. Browsers may have cached the 301, so some visitors keep following it for a while even after you switch to a 302. That’s why it’s worth getting permanent redirects right the first time.
What about meta refresh and JavaScript redirects?
Not every redirect is a status code. Some pages redirect with a meta refresh tag or a line of JavaScript after they load.
These work for visitors, but they’re slower, and search engines treat them as weaker signals. Google calls client-side redirects a last resort. They also can’t run if the page never loads, for example when the old hosting is gone.
For anything that matters, use a real server-side redirect with one of the four codes above.
Choosing the code in Redirect Supply
Redirect Supply supports all four: 301, 302, 307 and 308. You pick the type for each rule when you create it, and you can change it later without touching your website or DNS.
If you want a full reference of how each code behaves, see the redirect types cheatsheet in our docs.

