Back to blog
Case Study Apr 22, 2026 12 min read

Case study: rebuilding a 50k-product catalog in 6 weeks

How we migrated a legacy ecommerce site to a modern stack without losing a single ranking.

article.body

The brief

A mid-market fashion retailer with 50,000 SKUs, 1.2M monthly organic sessions and a legacy Magento 1 stack came to us with a brutal deadline: re-platform to a modern headless stack in 6 weeks, before Magento 1 lost PCI compliance support. The non-negotiable constraint: no traffic loss during or after migration.

The pre-migration audit

We spent the first week cataloguing every URL, every redirect, every canonical, every schema, every meta tag on the existing site. We exported 50k product URLs, 200k category and filter URLs, and 5k editorial URLs into a spreadsheet that became our migration source of truth. Without that audit, the migration would have lost 30% of traffic from URL mismatches alone.

The new architecture

Headless commerce: Shopify as the commerce backend, Next.js on Vercel as the storefront. Edge-rendered product pages with ISR for inventory updates. AVIF images served from Cloudflare R2. Algolia for search. The new architecture targeted 1.2s LCP at the 75th percentile, down from 4.8s on the legacy stack.

URL strategy: keep what works

We mapped every legacy URL to a new URL. 80% kept the same structure. 15% had minor changes (lowercase slugs, removed trailing slashes). 5% restructured. Every changed URL got a 301 redirect to its new location. The redirect map was built in week 2 and tested in staging weekly until launch.

Schema migration

We rebuilt every schema type from scratch in the new stack. Product, Offer, AggregateRating, BreadcrumbList, Organization. Validated in CI. Verified in Rich Results Test for every template before launch. Schema is the most-broken thing in migrations — it's also the easiest to verify if you ship validation in CI.

Launch day

We launched at 3am on a Tuesday — the lowest-traffic window in the analytics data. We monitored Search Console, Bing Webmaster, Cloudflare logs and our own RUM dashboard in real time. The first 24 hours saw a 6% traffic dip — expected, as Google re-crawled the changed pages. By day 5, traffic was back to baseline. By day 14, traffic was 12% above baseline thanks to the LCP improvement.

Post-launch monitoring

We monitored daily for 30 days, then weekly for 90 days. We caught and fixed 4 issues that the pre-launch testing missed: a broken hreflang on the French market, a missing schema on the sale category template, a 302 redirect that should have been 301, and a sitemap that excluded 2,000 newly-added products. Each was fixed within hours of detection.

Results after 6 months

Organic sessions: +34% vs pre-migration baseline. Mobile conversion rate: +28%. Average page load time: -68%. The CFO was happy. The CTO was happy. The SEO team was exhausted but vindicated. Migrations don't have to lose traffic — they just have to be planned obsessively.

The lessons

Audit before you architect. Build the redirect map early. Test the schemas in CI. Launch in a low-traffic window. Monitor relentlessly for 30 days. None of this is glamorous, but it's the difference between a migration that grows the business and one that craters it.

Want this for your site?
Get in touch with our SEO experts.
Contact us