This work was shipped by the team behind StoreSmith, before StoreSmith existed. The merchant keeps its name. Figures are rounded on purpose.
the problem
A national home & living retailer had outgrown its Magento install. Every release needed a maintenance window, extensions fought each other on upgrade, and peak trading meant scaling servers by hand. The business wanted to move to Shopify Plus.
What it could not afford was the usual replatform dip. Organic search was a large share of revenue, the catalogue had years of indexed product and category URLs, and customers expected to log in and see their past orders. Stated plainly: move us without losing rankings, history or a single trading day.
what we built
A complete redirect map, generated rather than guessed. We crawled the live site and pulled every indexed URL from search console exports and server logs, then matched each one to its Shopify destination: product to product, category to collection, CMS page to page. Anything without a clean match was resolved by hand and signed off by the merchant. The map was loaded as URL redirects and checked automatically: every old URL requested, every response confirmed as a single 301 to the right place. Parity reached 100% before cutover.
Structured data carried across. Product, offer, breadcrumb and organisation markup were rebuilt in the new theme to match what search engines already had, then validated page type by page type against the old site.
Data migration that could be rerun. Products, variants, customers and full order history were extracted from Magento, transformed and loaded with Admin GraphQL bulk operations. The pipeline was idempotent: it could be run again and again against a staging store, and the final run on cutover day only had to pick up the delta.
Integrations rewired, not rebuilt from scratch. The ERP and delivery systems that had been wired into Magento were reconnected through webhooks and a small sync service, with inventory flowing from the ERP into Shopify.
how it shipped
We ran full rehearsals on a staging store until the migration was boring. Each rehearsal produced a diff report: record counts, sample orders, redirect checks, structured data checks. Cutover itself was a delta load, a DNS switch and a final redirect sweep. The old site stayed up, read-only, until the new one was confirmed healthy, so there was no window in which customers saw an error page.
After launch, the redirect map was monitored for 90 days. Crawl errors, unexpected 404s and ranking movement on the top landing pages were reviewed weekly, and any gap was patched the same day.
results
- Zero downtime at cutover.
- 301 parity at 100% for every indexed URL.
- Order history intact: customers logged in and saw what they had bought before.
- Revenue up double digits the following year.
what we’d do the same again
Treat the redirect map as code, with tests. Rehearse until the cutover is a non-event. Keep watching for 90 days, because the problems that matter show up in week three, not hour one.
what we’d do differently now
The URL matching, the transform scripts and the parity checks were the slowest part to write. Today the loop drafts all three from a crawl and a sample export, and a senior engineer reviews and signs every merge. The rehearsals stay exactly as they were.
stack
Shopify Plus · Admin GraphQL bulk operations · URL redirects · structured data (schema.org) · webhooks · ERP inventory sync · rerunnable migration pipeline.
Planning a move off Magento? See scale or read Magento with zero downtime.