301 vs 302 vs 307 vs 308: Choose and Verify SEO Redirects
July 15, 2026
Author: Shusaku Yosa
A redirect forwards a request from one URL to another. Choose among 301, 302, 307, and 308 by the intended duration of the move and whether the request method must be preserved. Then test the actual response and destination, rather than treating the code as a guaranteed search-result switch.
Choose between a permanent move and temporary forwarding
A permanent move changes the location you intend to use going forward. Temporary forwarding anticipates a return to the original URL. Guide relocations, structural URL changes, and HTTPS consolidation commonly call for permanent redirects. A short-lived alternative screen may justify temporary forwarding, but first decide whether forwarding helps the reader.
Maintenance is not automatically a redirect use case. A short outage may need an appropriate 503 response instead. A retired page without a replacement may need 404 or 410. Consult Google’s HTTP response guidance to distinguish these situations.
Compare 301, 302, 307, and 308
Code | Duration | Request method | Search signal | Example |
|---|---|---|---|---|
301 | Permanent | POST may become GET | Strong canonical signal toward destination | Moved guide |
302 | Temporary | POST may become GET | Temporary redirect | Short-lived alternate screen |
307 | Temporary | Method is not changed | Temporary redirect | Forwarding that must preserve method |
308 | Permanent | Method is not changed | Permanent redirect | Move requiring method preservation |
The method distinction is defined in RFC 9110, HTTP Semantics. Routes involving form submissions or API requests need application-level testing. An SEO review of ordinary browser GET requests is not sufficient to validate them.
Separate canonical signals from ranking guarantees
Google’s redirect guidance distinguishes permanent and temporary moves. A permanent redirect is a strong signal that the destination should be canonical. It does not guarantee a search-result replacement on a chosen date. A temporary redirect likewise does not guarantee that the source will remain the displayed URL indefinitely.
Check the destination’s content, crawlability, other canonical signals, and the scale of the change. Avoid the simplistic claims that 301 guarantees full ranking transfer or that 302 cannot pass signals. Align internal links and canonical declarations using the canonicalization guidance.
Choose a response for moves, retirements, and downtime
Fictional situation | Candidate response | Reason |
|---|---|---|
Same guide at a new path | 301 or 308 | Equivalent content will stay at the destination |
Two guides consolidated into equivalent coverage | Permanent redirect after content review | A loosely related topic is not enough |
Retired service with no substitute | 404 or 410 | An unrelated destination does not fulfill the request |
Brief maintenance outage | Consider 503 | The original resource is temporarily unavailable |
Short-lived alternate screen | 302 or 307 | Set an end condition and restoration owner |
Automatically forwarding an out-of-stock product to a different product can frustrate readers. Consider whether retaining product information and explaining availability better serves their task.
Build a URL map and configure for your environment
Map sources to destinations before configuration. Record equivalence, expected responses, exceptions, and rollback arrangements. Apache, a CDN, a CMS, and application routing can each control redirects. A generic configuration pasted into the wrong environment can conflict with existing rules or create a loop.
Source → destination | Reason and duration | Expected / actual | Exception, rollback, owner |
|---|---|---|---|
/guide-old/ → /guide-new/ | Equivalent instructions; permanent | 301 / [check] | Exclude POST; retain old rules; operator |
/ended/ → none | No substitute; retired | 410 / [check] | Review explanation; editor |
[Fill in] | [Fill in] | [Fill in] | [Fill in] |
Decide how query strings, fragments, authentication, and application routes should behave. Arrange a suitable test environment and a way to reverse an unexpected result.
Test status codes, Location headers, and every hop
Inspect the first response, Location header, every hop, and final response using browser developer tools or another suitable checker. A final 200 alone does not prove that the journey is correct. Check for loops, irrelevant stops, missing content, broken actions, and unintended noindex rules.
In a fictional chain, “old HTTP → old HTTPS → new URL” can potentially become a direct move from the old entry point to the intended destination. Review the complete routing logic before simplifying it so that queries or login handling are not broken. Test any required methods and devices, not only a single GET request.
Monitor final URLs, links, sitemaps, and index processing
Update internal links to final destinations and align sitemaps and canonical declarations with the new plan. Track old and new URLs separately, including Google’s recorded fetch and indexing information. Do not promise a universal processing timetable.
- Source: expected redirect, with no new errors.
- Destination: normal response, correct content, and consistent search intent.
- Navigation: no recurring links to obsolete locations.
- Temporary moves: a documented end date or condition and owner.
Keep user-arrival verification separate from search-processing verification. That distinction helps when the redirect works now but stored search information has not yet been refreshed.
Continue with the guide that matches your next task: How to Find and Fix Broken Links: 404s, Redirects, and Temporary Errors; Canonical Tags: Setup, Verification, and How They Differ from noindex and Redirects; noindex Setup and Checks: robots.txt, Canonical Tags, and Access Control.


