301 vs 302 redirect
Definition: A 301 redirect tells browsers and search engines a page has moved permanently and the new URL should be treated as canonical, while a 302 signals a temporary move that keeps the original URL in search results.
Also called: permanent redirect, temporary redirect, 308 redirect, 307 redirect
Updated
The status codes side by side
| Code | Meaning | How Google treats it |
|---|---|---|
| 301 | Moved permanently | Strong signal that the target should be canonical |
| 308 | Moved permanently, request method kept | Same as 301 |
| 302 | Found, temporary | Followed, but not a signal that the target is canonical |
| 307 | Temporary, request method kept | Same as 302 |
Google says permanent redirects tell its indexing pipeline that the target should be canonical, while temporary redirects keep the source URL in results unless other signals point the other way (Redirects and Google Search). For search purposes 301 and 308 behave the same, as do 302 and 307; the difference is whether browsers may change a POST request into a GET.
Which one to use
Use a permanent redirect when the old URL is not coming back: a site migration, a move to HTTPS, a merged or renamed page, a new URL structure. Google advises using one only when you are sure it will not be reverted.
Use a temporary redirect when the original URL will return: a short maintenance page, a seasonal campaign, or a test.
Our view: the most common audit finding is a 302 left in place for months after a permanent change, often because it was a CMS or framework default. If the move is permanent, say so.
Meta refresh and JavaScript redirects
Google says an instant meta refresh is treated as a permanent redirect and a delayed one as temporary. JavaScript redirects work only if Google renders the page, and most AI crawlers do not run JavaScript at all, so prefer server-side redirects whenever you can.
The redirect checker shows the exact status code at each hop.