Case study · Migration, Performance

DTC commerce migration

A performance-first replatform that lifted conversion alongside Core Web Vitals, with zero SEO regression.

Year
2025
Engagement
11-week migration, 30-day post-launch monitoring
Outcome
LCP 4.2s to 1.3s, +18% conversion
Migration, Performance
2025

LCP 4.2s to 1.3s, +18% conversion

Headline metrics

LCP

4.2s to 1.3s

Mid-tier mobile, RUM data, p75

INP

320ms to 88ms

p75 across PDP, PLP, and cart

Conversion

+18%

Storefront-wide, controlled for seasonality

SEO regression

0%

Tracked queries held position through cutover

Approach

What we did.

01

Performance and SEO audit

Three-week audit of the existing Shopify Plus stack: theme bloat, third-party tag inventory, image weight, render-blocking JS, hydration cost, and the full SEO surface (URLs, schema, sitemaps, indexation, backlinks). We left the audit with a ranked list of every regression risk and every performance win, sized in milliseconds.

02

Headless architecture

Built a headless Next.js 16 storefront against the Shopify Storefront API. Product, collection, and cart routes are statically generated where possible, streamed where dynamic, and use Next.js Cache Components so PDPs render fast and stay fresh. Checkout stays on Shopify so we do not rebuild the part that already works.

03

Redirect map and SEO parity

Every legacy URL mapped 1:1 to the new architecture in a single CSV. Product schema, collection schema, breadcrumb schema, Organization, and WebSite schema all rebuilt server-side from typed data. Sitemaps regenerated, GSC and BWT both validated pre-cutover.

04

Build with a performance budget enforced per PR

We set hard budgets: LCP ceiling 1.8s mid-tier mobile, INP ceiling 150ms, JS payload ceiling 120KB gz on home and PDP. Lighthouse CI ran on every PR and blocked merges that breached. The discipline is mostly cultural, but the gate makes it real.

05

Cutover

Launched behind a feature flag, promoted by route group over 24 hours with live rank and conversion monitoring. We held the cutover twice for unrelated tag-manager issues and resumed once cleared. Final cutover completed inside the planned window.

06

30-day post-launch monitoring

Daily CWV monitoring via web-vitals plus Vercel Analytics RUM, weekly rank diff against baseline, weekly conversion comparison, and a single Slack channel for any anomaly. The conversion lift held through the first full month and into quarter two.

Scope of work

  • Replatform
  • Performance
  • Core Web Vitals
  • Technical SEO
  • Conversion engineering

Stack

Next.js 16Shopify Storefront APITailwind v4Vercelweb-vitalsLighthouse CI

Client read

We expected the performance lift. The conversion lift on top of it, with rankings holding, is the part that paid the project back inside one quarter.

Head of Growth, DTC commerce client

Want this kind of outcome?