A recent episode of The Non-Canonical Cabinet podcast covered something every agency deals with during a site migration, which is how to tell search engines that a page has moved. The episode ran about nine minutes and went through 301, 302 and the lesser known 307 and 308 status codes, with a few chickens thrown in along the way. We went through the transcript and pulled out what actually matters for anyone handling redirects on client sites.
Picking the wrong redirect will not wreck your rankings
The episode opens with some reassurance. Whichever redirect you choose, one of your URLs will still stay in search, and Google will still index the page. The choice mostly decides which URL shows up in the results, so a wrong pick is a visibility annoyance and not a disaster. That is a useful thing to tell a nervous client before a migration, although it does not mean the choice is unimportant, as the next sections show.
301 vs 302 is a question of commitment
The hosts describe a 301 as a permanent redirect, like telling the post office you have sold your house and want your mail forwarded forever. A 302 is a temporary redirect, like going on vacation and asking for mail to go to the hotel while the original address stays on file.
On the crawling side, Google does not care. Its crawlers follow either redirect and land on the new page. The difference only shows up later in the pipeline.
Where the 301 actually earns its keep
The podcast breaks the later stages into three steps.
Clustering. Google groups all pages with similar main content together.
Canonicalization. Within a cluster, Google picks one URL to represent the group in search results.
Indexing and display. That chosen URL is the one searchers see.
For clustering, the hosts say Google is happy with either a 301 or a 302. The two codes diverge at canonicalization. A permanent 301 tells the index that the whole thing has moved, and Google passes the ranking signals from the old page to the new one. A temporary 302 tells Google the move is not final, so it assumes you are coming back, keeps the old URL in the results and mostly ignores the new one.
The practical takeaway is simple. If the move is for good, use a 301 and do not leave the page sitting in vacation mode. We have seen 302s left in place for months after a redesign on older client sites, usually because a developer set them up as a quick fix and nobody went back. If a client site is showing the old URL in search long after a move, check the status code before anything else.
What 307 and 308 are for
The hosts are clear that 307 and 308 are not trendy replacements. A 308 is the modern version of a permanent 301, and a 307 is the modern version of a temporary 302. The only major difference is how they handle POST data, such as a submitted form.
The episode uses a checkout example. A shopper fills in a payment form on Black Friday and hits submit, the primary payment server is overloaded, and the site fails over to a backup server with a redirect. With an old school 302, the browser converts the request into a blank GET and the form data is dropped, so the backup server receives an empty request and the checkout fails. With a 307, the browser keeps the request as a POST and forwards the same data, so the transaction goes through.
For search, though, the hosts say the system treats them equally. Permanent versus temporary is the only logic that matters. So a 308 behaves like a 301 and a 307 behaves like a 302 as far as Google is concerned, and the POST handling is a browser and application concern.
JavaScript and meta refresh redirects
The episode is blunt about client-side redirects. A server-side HTTP redirect is a clean, instant instruction. A JavaScript redirect or a meta refresh forces the browser to download the page, parse the code, wait for the script to run and only then send the user somewhere else. That is slow, can create a poor user experience, and search engines might miss it.
If a server-side redirect is truly impossible, a client-side one can work, but the hosts say it might not always work. On shared hosting or locked down platforms where you cannot touch server config, this is the situation where it comes up, and it is worth documenting as a known risk in your migration notes.
The recap in four lines
A 301 is for permanent moves and a 302 is for temporary moves.
Both work for URL clustering, but only a 301 helps with canonicalization.
A 307 and 308 act like a 302 and 301 but safely carry POST data.
Avoid JavaScript and meta refresh redirects whenever a server-side option exists.
Frequently Asked Questions
What is the difference between a 301 and a 302 redirect?
A 301 is a permanent redirect that tells search engines the page has moved for good, while a 302 is a temporary redirect that tells them the move is short term and the original URL should be kept.
Does Google follow both 301 and 302 redirects?
Yes. According to the episode, Google's crawlers follow either redirect, and both work for grouping similar pages into a cluster. The difference appears when Google picks the canonical URL.
Which redirect helps Google choose the new URL as the canonical page?
A 301. With a permanent redirect, Google passes the ranking signals of the old page to the new one. With a 302, Google assumes you will return, keeps the old URL in the results and largely ignores the new URL.
What are clustering and canonicalization?
Clustering is the step where Google groups pages with similar main content together. Canonicalization is the step that follows, where Google selects one representative URL from the cluster to show in search results.
What happens if I use the wrong redirect?
Google will still index the page. The main effect is which URL shows up in search, so choosing wrongly is not a disaster, but a temporary redirect on a permanent move can leave the old URL visible when you wanted the new one.
What are 307 and 308 redirects?
They are the modern equivalents of 302 and 301. A 307 is the temporary version and a 308 is the permanent version, and both preserve the request method and any POST data during the redirect.
Do 307 and 308 redirects work differently for SEO?
No. The episode says the search system treats them the same as their older counterparts. Permanent versus temporary is the only logic that matters for search.
Why does POST data matter in a redirect?
When a form such as a checkout is submitted and the server redirects it, an old school 302 can turn the request into an empty GET and the form data is lost. A 307 or 308 keeps it as a POST and forwards the same data, so the transaction can still complete.
Can I use a JavaScript or meta refresh redirect instead?
You can, but the episode recommends avoiding them. They force the browser to load the page and run code before moving the user, which is slower, can hurt user experience, and may be missed by search engines. Use them only when a server-side redirect is not possible.
Which redirect should I use for a site migration?
Use a server-side 301 (or 308) for any URL that has permanently moved, and reserve 302 or 307 for genuinely temporary situations such as a short failover.