A 302 Is Not a 301, and Your Old Domain Is Leaking

Most rebrand post-mortems land on the same sentence: we lost our rankings when we changed the domain. Redirects get the blame, and the blame is usually right, but the reason given for it is usually wrong.
The version you'll hear is that a 302 leaks link equity where a 301 preserves it. That has been out of date for about a decade. Google confirmed in 2016 that 30x redirects don't lose PageRank, and the current Search Central documentation on redirects, last updated in April 2026, draws no distinction on equity at all. Both types get followed.
What actually goes wrong is something else, and if you've moved domains in the last couple of years there's a fair chance it's still going wrong on your store right now. Two things to check. Both cheap.
Redirect status codes, decoded
301/308
Permanent — tells Google the destination is canonical
302/307
Temporary — followed, but not treated as a canonical signal
2016
The year Google confirmed 30x redirects don't lose PageRank
What a 302 actually costs you
Google splits redirects into two groups:
- Permanent — HTTP 301, HTTP 308, an instant meta refresh, a JavaScript location change. These tell the indexing pipeline that the destination should be the canonical URL. That's the one Google indexes and shows.
- Temporary — HTTP 302, 303, 307, a meta refresh with any delay on it. These get followed by Googlebot, but the indexing pipeline does not use them as a signal that the target should be canonical. Google's own wording is that the target "might still be indexed if other canonicalization signals are present", which is to say it might sort itself out and it might not.
In plain terms: with a 302 sitting on your old domain, Google carries on showing the old URL. Customers search, see a brand you stopped trading under, click, get bounced, and the domain you're spending money to build stays second in Google's model of your business.
"Nothing leaked. It just never moved across."
The homepage dump
The second failure is more common and does more damage. Every old URL points at the new homepage.
It happens because someone set up a domain-level redirect and considered the job done. From the outside it looks fine. Nobody gets a 404.
Google reads it as a soft 404. John Mueller has been explicit about this: redirect a deep page to the homepage when the homepage holds no matching content, and Google treats it as a 404 with extra steps. The page comes out of the index and nothing transfers.
"A migration that looks complete in the redirect table is, from Google's side, a few hundred pages quietly deleted."
The fix is page-to-page mapping. Old collection to new collection. Old product to the same product, or the nearest one still in the range. Where genuinely nothing matches, let it 404. That's Google's own advice, and an honest 404 resolves faster than a soft one.
What Shopify does and doesn't do for you
Shopify's built-in redirect tool, under Content then Menus then URL redirects, only creates 301s. If your redirects were built there, the status code is right. The gaps sit around it:
- Rename a product or collection handle in admin and Shopify offers a "Create a URL redirect for [old handle]" checkbox, ticked by default. Untick it and there's no redirect and no warning.
- Delete a product and you get no such prompt.
- Change a page URL or a blog article URL and you get no prompt either. Those are manual.
- Extra domains connected to your store 301 to your primary domain automatically — but that's domain level only. It moves someone from olddomain.com.au to yourdomain.com.au. It does not move them from olddomain.com.au/collections/winter to your winter collection.
The temporary redirects almost always come from outside Shopify: a rule left on a server, a domain forward set at the registrar, a redirect app installed during a handover and never audited. Those are the ones that quietly default to temporary.
Fifteen minutes, and you can check this yourself:
- Pull a list of your old URLs — the old sitemap, the Search Console coverage report for the old property, or an export from whatever platform you were on.
- Check what each one returns. In Chrome, open DevTools, go to the Network tab, tick Preserve log, load the URL and read the Status column on the first row. 301 or 308 is permanent. 302 or 307 is temporary.
-
Or check from a terminal.
curl -I -L https://olddomain.com.au/some-pageprints the whole chain.
The bottom line
Write down two numbers. How many come back 302, and how many land on the homepage instead of a matching page. The first group isn't passing your canonical signal. The second group Google has most likely already dropped. If both numbers are zero, good. If they aren't zero, it's a morning with a spreadsheet and a bulk redirect import, and it's the cheapest item on any migration list.
If both numbers are zero, go and look at where else the old brand name is still sitting in your data, which is the subject of the companion piece, “Your storefront says one brand, your data says another”.
At beCommerce, we run this exact redirect audit as part of every domain migration and rebrand. If you want a hand checking yours, let's talk.
Is your store making any of these mistakes?
We audit Shopify stores for exactly these kinds of conversion-killing patterns — the ones that have become normalised until you see them through a customer's eyes.
Book your free audit →

