301 vs 302 vs 307 vs 308 Redirects: Which One Should You Use?
Use 301 or 308 for permanent moves, and 302 or 307 for temporary ones. The key question is whether the HTTP method must stay unchanged.

If you are deciding between 301 vs 302 vs 307 vs 308 redirects, start here:
- use 301 for a permanent move when normal page requests are involved
- use 308 for a permanent move when the HTTP method and body must stay unchanged
- use 302 for a temporary move when normal page requests are involved
- use 307 for a temporary move when the HTTP method and body must stay unchanged
For most websites, that means 301 is still the default answer for permanent page migrations. The moment you are handling forms, APIs, or any request where a POST must remain a POST, you need to pay closer attention to 307 and 308.
If you are making this decision during a replatform or host move, pair this article with our website migration redirect checklist. Redirect status codes matter most when the surrounding migration plan is also clean.
The shortest practical explanation
The two decisions you are really making are:
- Is this change permanent or temporary?
- Does the original request method need to stay exactly the same?
That gives you a simple decision table:
| Intent | Method/body preservation needed? | Best choice |
|---|---|---|
| Permanent page move | Usually no | 301 |
| Permanent API or form endpoint move | Yes | 308 |
| Temporary campaign, maintenance, or test | Usually no | 302 |
| Temporary API or form endpoint move | Yes | 307 |
[!TIP] If you are redirecting normal web pages, do not overcomplicate it. Most teams should default to 301 for permanent moves and 302 for temporary ones.
What 301 means
A 301 Moved Permanently redirect tells clients and crawlers that the requested resource has a new long-term location.
Typical use cases:
- moving
/old-pageto/new-page - migrating from
old-domain.comtonew-domain.com - consolidating duplicate URLs
- forcing one canonical host
Why teams use 301 so often:
- browsers understand it well
- SEO teams expect it
- it matches common site-migration intent
- it works well for content URLs, landing pages, and docs
If you are doing a classic site move, 301 is still the safest default. See Google's guidance for site moves with URL changes.
If that move also needs to preserve old paths and campaign parameters, see how to redirect a domain without losing paths or UTM parameters.
What 302 means
A 302 Found redirect signals that the resource has moved temporarily.
Typical use cases:
- short-term campaign routing
- sending traffic to a temporary landing page
- maintenance mode
- quick rollback-friendly experiments
The biggest mistake with 302 is not technical. It is organizational. Teams use 302 for a move that is actually permanent, then forget about it for six months.
If the move is permanent, say so with a permanent code. Do not rely on search engines or browsers to infer your true intent.
What 307 means
A 307 Temporary Redirect is the temporary version that preserves the original request method and body.
That matters when the original request is not just a simple page load.
Examples:
- redirecting a temporary API endpoint
- moving form submissions during maintenance
- routing traffic through a temporary staging edge without changing request semantics
If a POST request must remain a POST, 307 is the safer temporary choice than 302.
What 308 means
A 308 Permanent Redirect is the permanent version that preserves the original request method and body.
Typical use cases:
- permanently moving API endpoints
- versioning service URLs while preserving non-GET behavior
- migrating application endpoints that must not degrade into GET behavior
For classic page migrations, 308 is valid, but many teams still prefer 301 because it is the more familiar SEO and content-migration code. For request-sensitive endpoint changes, 308 is the clearer signal.
The easy way to choose the right one
Use this decision tree:
Choose 301 when:
- the change is permanent
- the request is a normal page visit
- you are migrating URLs for SEO, docs, product pages, or blogs
Choose 302 when:
- the change is temporary
- you expect to remove or change the redirect later
- the request is a normal page visit
Choose 307 when:
- the change is temporary
- a form or API request method must stay unchanged
Choose 308 when:
- the change is permanent
- a form or API request method must stay unchanged
Common real-world examples
Example 1: Site migration
https://oldbrand.com/pricing -> https://newbrand.com/pricing
Use 301.
Example 2: Temporary launch page
https://yourbrand.com -> https://yourbrand.com/waitlist
Use 302 if the homepage will come back soon.
Example 3: API version move
POST /api/v1/orders -> POST /api/v2/orders
Use 308 if the move is permanent and the request method must remain unchanged.
Example 4: Temporary checkout reroute
POST /checkout -> POST /checkout-maintenance
Use 307 if you must preserve request semantics during a short-term change.
The SEO question everyone asks
Does 302 pass SEO value?
The better question is: does the code match the real intent of the move?
Google has long said that multiple redirect types can be processed, but you should still use the code that reflects whether the move is temporary or permanent. In practice:
- if the move is permanent, use 301 or 308
- if the move is temporary, use 302 or 307
Trying to "hack" intent with the wrong code usually creates more confusion than advantage.
The performance question teams forget
The status code choice matters less than the redirect architecture around it. A perfect 301 is still bad if it creates:
- a three-hop redirect chain
- HTTP -> HTTPS -> non-www -> final path
- inconsistent mobile and desktop behavior
- stale internal links that keep calling old URLs
That is why redirect QA matters just as much as choosing the code itself. If you want a fast check, test the full redirect path here.
If you are cleaning up legacy infrastructure, you should also look for redirect chains and loops before launch.
What to use in UrlEdge
If you are using UrlEdge for marketing pages, site migrations, docs moves, or domain consolidation:
- use Permanent 301 Redirects for long-term URL changes
- use Temporary 302 Redirects for reversible moves
- read the redirect types guide if your team needs policy-level clarity
If you are redirecting API or form traffic and method preservation matters, document that clearly before rollout. The risk there is usually not SEO. It is breaking application behavior.
Common mistakes
Using 302 for a permanent move
This is the most common mistake on the web. It usually happens because a redirect was created in a hurry and never revisited.
Using 301 for a short-term campaign
If you know a redirect is temporary, keep it temporary. Otherwise your future rollback becomes harder and your intent becomes muddled.
Ignoring request method semantics
If the original request is not just a page load, 307 and 308 stop being edge cases.
Fixing the code but leaving chains in place
One clean redirect is better than several technically correct redirects stacked together.
FAQ
Is 308 better than 301 for SEO?
Not by default. For normal page migrations, 301 is still the most common and practical choice. Use 308 when method preservation is part of the requirement.
Is 307 just a newer 302?
Not exactly. The key difference is that 307 is stricter about preserving the original request method and body.
Can I use 302 for A/B testing?
Yes, temporary testing is one of the clearest use cases for 302 style routing, especially when you know the final destination can change.
What should I use for a blog migration?
Usually 301. Pair it with a redirect map, updated internal links, and validation for chains and broken paths.
Related UrlEdge guides
- Redirect types explained
- Permanent 301 redirect setup
- Temporary 302 redirect setup
- How to spot redirect chains and loops
Authoritative references
Ready to optimize your redirects?
Start using UrlEdge today to manage your traffic at the edge.
Get StartedRelated Articles
View all
Firebase Dynamic Links Alternative: How to Replace It After the Shutdown
Firebase says Dynamic Links shut down on August 25, 2025. Learn how to replace them with branded smart links, app links, and safer fallback routing.

How to Redirect a Domain Without Losing Paths or UTM Parameters
Learn how to redirect a domain without losing paths, UTM parameters, or campaign tracking, while avoiding loops, SSL issues, and broken links.