Redirect mapping for a Shopify migration
The workstream that decides whether a replatform keeps its rankings. It is a spreadsheet, and it has to be finished before launch day.
7 min read · Migrations ·
Redirect mapping is the single highest-stakes part of any replatform, and it's a spreadsheet rather than a technical challenge. Treat it as a workstream with its own owner and its own deadline — finished before launch day, not on it.
Step 1: get every URL, from four sources
One source is never enough, because each misses things the others catch:
- Your XML sitemap. What the old platform thinks exists.
- Google Search Console. What Google actually has indexed, including pages you forgot.
- A full crawl of the live site. What's genuinely reachable.
- Analytics, last 12 months. What has real traffic, including pages missing from all three above — old campaign URLs, PDFs, pages linked from an email years ago.
Combine and deduplicate. On a mature store the list is longer than anyone expects.
Step 2: prioritise
You don't need to hand-map ten thousand URLs with equal care. Sort by:
- Sessions in the last 12 months.
- Backlinks, if you have access to that data.
- Conversions.
The top few hundred get individual attention. The long tail can usually be handled by pattern rules — /product/ to /products/ — as long as the handles match.
That's why matching Shopify handles to your old slugs during the data migration is worth the effort: it turns thousands of manual mappings into one rule.
Step 3: map each to its closest equivalent
The rules:
- Products to products, collections to collections, pages to pages, blog posts to blog articles.
- A discontinued product goes to its successor, or to the collection it belonged to. Not the homepage.
- A merged category goes to the merged collection.
- A page with no equivalent either gets recreated or is allowed to 404 honestly. Both are legitimate.
Do not map everything to the homepage. It's the standard shortcut and search engines increasingly treat it as a soft 404, so you get neither the ranking nor an honest error.
Step 4: check for chains and loops
Before importing, run two checks on the spreadsheet:
- Chains: is any target itself a source elsewhere in the file? Collapse it — every old URL should point at its final destination in one hop.
- Loops: does A point to B and B to A? Rare and fatal.
Both are far cheaper to fix in a spreadsheet than in production.
Step 5: import
Shopify accepts a CSV under Online Store → Navigation → URL Redirects with Redirect from and Redirect to columns. Import in batches for large sets so a single malformed row doesn't fail thousands.
Mechanics in URL redirects.
Step 6: verify, twice
Before launch, on the staging domain where possible: sample a few hundred URLs and confirm each resolves to a live page.
Immediately after launch, on the live domain: crawl the whole old URL list. Every one should return a single 301 to a 200 page. Anything returning 404, a chain, or a redirect to a redirect goes on a fix list for the same day.
Step 7: watch for a month
- Search Console crawl errors, daily for the first fortnight.
- Traffic by landing page, compared against the same period before.
- Any page whose traffic collapses — that's nearly always a missing or broken redirect, and it's fixable in minutes once found.
Some ranking movement in the first weeks is normal as Google recrawls. What isn't normal is crawl errors climbing.
Who owns it
Someone with a name, not "the agency". On a large catalogue this is days of work and it competes with more visible launch tasks, which is exactly why it gets squeezed.
If you're commissioning a migration, ask explicitly whether redirect mapping is in scope and who does it. A quote that doesn't mention it is a quote missing the most important part — what a migration involves, and for larger catalogues, the Magento checklist.
A migration doesn't lose rankings because the platform changed. It loses them because a few hundred old URLs quietly started returning 404 — and nobody looked for a month.
Is this the problem you’re looking at?
Send me the link to your store and a line about what is going wrong. You get a straight answer within one business day — no pitch, no obligation.
[email protected]Or see what I do around Shopify: services, work beyond the theme, selected work.