SiteError.comYour friendly guide to HTTP status codes
Status CodesBlog
  1. Home
  2. Compare
  3. 301 vs 308

301 vs 308

Moved Permanently vs Permanent Redirect

📦301Moved Permanently
🏠308Permanent Redirect

Redirect Codes: Permanent vs Temporary

Understanding the key differences between redirect types

Permanent Redirects
📦
301
Moved Permanently
Old-Style Permanent

Classic redirect

Resource has permanently moved. Browsers and search engines will update their bookmarks and indexes.

🌐POST /old-url
Server responds with new location
↓
📦301 → /new-url
⚠️ May change to GET
Key behavior:
  • Browser caches the redirect
  • SEO: Link juice transferred
  • ⚠️ May change POST to GET
📍
🔒
308
Permanent Redirect
Modern Permanent

Method-preserving

Like 301, but guarantees the HTTP method and body won't change during redirect.

🌐POST /old-url
Server responds with new location
↓
🔒308 → /new-url
✓ Keeps POST method
Key behavior:
  • Browser caches the redirect
  • SEO: Link juice transferred
  • ✓ Preserves HTTP method
🔐
Temporary Redirects
🔄
302
Found
Old-Style Temporary

Classic temporary

Resource is temporarily at another location. Original URL should still be used in the future.

🌐POST /temp-moved
Server responds with temp location
↓
🔄302 → /temp-url
⚠️ May change to GET
Key behavior:
  • No browser caching
  • SEO: Original URL preserved
  • ⚠️ May change POST to GET
⏱️
🔃
307
Temporary Redirect
Modern Temporary

Method-preserving

Like 302, but guarantees the HTTP method and body won't change during redirect.

🌐POST /temp-moved
Server responds with temp location
↓
🔃307 → /temp-url
✓ Keeps POST method
Key behavior:
  • No browser caching
  • SEO: Original URL preserved
  • ✓ Preserves HTTP method
🔄
Quick Decision Guide
Use Permanent (301/308) when:
  • URL has changed forever
  • You want search engines to update their index
  • Domain migration or restructuring
  • Old URL should never be used again
Use Temporary (302/307) when:
  • Resource is temporarily unavailable
  • A/B testing or maintenance mode
  • You want to keep the original URL active
  • Redirect might change or be removed soon
Use Modern (307/308) when:
  • Redirecting POST/PUT/DELETE requests
  • Request body must be preserved
  • Working with REST APIs
  • Modern application with strict HTTP semantics
💡
Key Insight

Permanent vs Temporary controls caching and SEO, while Old vs Modern controls HTTP method preservation. For APIs and POST requests, prefer 307/308. For simple page redirects, 301/302 are widely supported and sufficient.

 📦301🏠308
NameMoved PermanentlyPermanent Redirect
Category
3xxRedirection
3xxRedirection
DescriptionThe URL of the requested resource has been changed permanently. The new URL is given in the response.The resource has permanently moved to another URI, specified in the Location header. Method and body unchanged.
When to Use
  • The resource URL has changed permanently and will never return
  • You want search engines to update their index to the new URL
  • Consolidating multiple URLs to a canonical URL for SEO
  • Permanent redirect that must preserve the HTTP method (POST stays POST)
  • API endpoints that have moved permanently
  • Preferred over 301 when method preservation is critical
Common Causes
  • Website restructured with new URLs
  • Domain name changed
  • Page permanently relocated
  • API endpoint permanently moved
  • Maintaining POST method during redirect
  • Permanent URL restructuring
📦301Moved Permanently3xxRedirection
Description

The URL of the requested resource has been changed permanently. The new URL is given in the response.

When to Use
  • The resource URL has changed permanently and will never return
  • You want search engines to update their index to the new URL
  • Consolidating multiple URLs to a canonical URL for SEO
Common Causes
  • Website restructured with new URLs
  • Domain name changed
  • Page permanently relocated
🏠308Permanent Redirect3xxRedirection
Description

The resource has permanently moved to another URI, specified in the Location header. Method and body unchanged.

When to Use
  • Permanent redirect that must preserve the HTTP method (POST stays POST)
  • API endpoints that have moved permanently
  • Preferred over 301 when method preservation is critical
Common Causes
  • API endpoint permanently moved
  • Maintaining POST method during redirect
  • Permanent URL restructuring

Decision Tree

Is this redirect permanent?

Yes

Must the HTTP method be preserved (e.g., POST stays POST)?

Yes

Use 308 Permanent Redirect

Status Code: 308

No

Use 301 Moved Permanently

Status Code: 301

No

Use 302 or 307 (see 302-307 decision tree)

Status Code: 302

Popular Status Codes

  • 200 OK
  • 301 Moved Permanently
  • 302 Found
  • 400 Bad Request
  • 401 Unauthorized
  • 403 Forbidden
  • 404 Not Found
  • 500 Internal Server Error
  • 502 Bad Gateway
  • 503 Service Unavailable

Compare Codes

  • 401 vs 403
  • 301 vs 302
  • 404 vs 410
  • 500 vs 502
  • Compare any codes →

Categories

  • Informational
  • Success
  • Redirection
  • Client Error
  • Server Error
  • NGINX
  • Cloudflare
  • AWS ELB
  • Microsoft IIS

Tools

  • Cheat Sheet
  • Status Code Quiz
  • URL Checker
  • API Playground
  • Blog

© 2026 SiteError.com. All rights reserved.