
The Challenge
A regional retail chain with 12 physical locations had a WooCommerce store that had grown organically over seven years. The result was a site weighed down by 47 plugins, a 6.2-second average Time to First Contentful Paint, and a mobile conversion rate of 1.1% — well below industry average.
Their peak season (November–December) regularly caused the site to slow to a crawl. They'd been burning through hosting upgrades without addressing the underlying problem: the architecture couldn't scale.
Our Approach
Rather than trying to fix the existing WordPress installation, we proposed a full platform migration to a headless architecture:
- Shopify as the commerce backbone (products, inventory, checkout, payments)
- Next.js as the frontend, with static generation for product pages and server-side rendering for cart/checkout flows
- Contentful for non-product content (banners, landing pages, editorial)
The key insight was separating concerns: Shopify is exceptionally good at commerce operations; Next.js is exceptionally good at building fast, SEO-friendly frontends. Using each for what it does best gave us a better result than trying to make either do everything.
The Migration Process
Phase 1: Data Migration (weeks 1–2)
We exported all product data, customer records, and order history from WooCommerce and migrated it to Shopify using a custom Python ETL pipeline. Product images were processed through Cloudinary for format optimization and CDN delivery.
Phase 2: Frontend Build (weeks 3–7)
We built the Next.js frontend from scratch, referencing the existing site's category structure but completely redesigning the UI for mobile-first. Key technical decisions:
- Product pages generated statically at build time (5,000 pages in ~4 minutes)
- Incremental Static Regeneration (ISR) for inventory-sensitive pages
- Cart state managed client-side with Shopify's Storefront API
- Search powered by Shopify's native search + custom filtering UI
Phase 3: SEO Preservation (week 6–8)
With 7 years of accumulated domain authority at stake, we mapped every URL from the old site to its equivalent on the new site, implemented 301 redirects, and preserved all existing meta tags and canonical URLs. Post-migration Google Search Console showed zero loss in indexed pages.
Phase 4: Cutover and Monitoring (week 8)
We performed the DNS cutover during the lowest-traffic window (Tuesday 2–4 AM) with a rollback plan in place. Real User Monitoring via Vercel Analytics was active from minute one.
Results
After 90 days post-launch:
| Metric | Before | After | Change |
|---|---|---|---|
| Avg. page load (LCP) | 6.2s | 1.9s | −68% |
| Mobile conversion rate | 1.1% | 1.34% | +22% |
| Monthly organic sessions | 42,000 | 51,000 | +21% |
| Peak traffic handling | Crashed at 800 concurrent | 3,000+ concurrent | 4× capacity |
The conversion rate improvement alone represented an additional €180,000 in annual revenue at their average order value.
Lessons Learned
The biggest surprise was how much performance was gained from image optimization alone — roughly 40% of the load time improvement came from serving WebP/AVIF images at correct dimensions via a CDN, before we even counted the framework benefits.
The hardest part was the redirect mapping. Seven years of organic content means thousands of URLs, category restructuring, and product renames. We spent more time on this than any other single task, but it was worth every hour.