301Moved Permanently
PermanentThe URL has permanently moved to a new location.
Use case: Use when a page URL changes permanently — e.g., domain migration, URL restructuring, or content consolidation.
SEO impact: Passes ~100% of link equity (PageRank) to the new URL. The recommended redirect for SEO.
302Found (Temporary)
TemporaryThe URL is temporarily at a different location.
Use case: Use for temporary moves — e.g., A/B testing, maintenance pages, seasonal promotions.
SEO impact: Does NOT pass link equity reliably. Google may treat long-standing 302s as 301s, but it's unpredictable. Avoid for permanent moves.
The response to the request is at another URL (always GET).
Use case: Used after POST form submission to redirect to a result page (Post/Redirect/Get pattern).
SEO impact: Rarely used for SEO purposes. Treated similarly to 302.
307Temporary Redirect
TemporaryHTTP/1.1 successor to 302. Preserves the original HTTP method.
Use case: Temporary redirect that must preserve POST method (302 may downgrade to GET).
SEO impact: Treated like 302 — temporary, doesn't pass link equity reliably.
308Permanent Redirect
PermanentHTTP/1.1 successor to 301. Preserves the original HTTP method.
Use case: Permanent redirect that must preserve POST method.
SEO impact: Treated like 301 — passes link equity. Use 308 only when you need method preservation.
meta-refreshMeta Refresh
TemporaryClient-side redirect via <meta http-equiv="refresh" content="0; url=...">.
Use case: Fallback when server redirects aren't available. Sometimes used in SPA routing.
SEO impact: Google treats meta refresh as a soft redirect. Slower than server redirects. Avoid for SEO-critical URLs.
javascriptJavaScript Redirect
TemporaryClient-side redirect via window.location = '...' or location.replace().
Use case: Conditional redirects in JavaScript apps, A/B testing, geolocation redirects.
SEO impact: Google may execute JS redirects but it's slower and less reliable. Avoid for critical SEO moves.