Summary
- 412 pages were migrated individually, each measured against the page it replaced.
- Core Web Vitals passed on mobile before launch and held through it.
- Publishing a page moved from a three-day ticket to an eight-minute edit.
- Sector
- Consumer finance
- Engagement
- 9 weeks, 2025
- Scope
- migration, next.js build, core web vitals, cms
Assessing the risk
Cobalt acquires most new accounts through organic search. A migration that loses rankings does not cost a redesign; it costs a quarter of revenue. The question was never which framework to use. It was how to migrate without a single day on which the entire site is new.
A page-by-page migration
We deployed the new build behind the existing domain and migrated the highest-traffic page first. Both versions ran concurrently, split by traffic, until the new page matched or exceeded the old one on every metric that mattered. Then we migrated the next page.
- The migration had no single cutover date. It had 412 of them.
- Every page retained its URL, metadata, and structured data unless there was a measured reason to change it.
- Any page that regressed was reverted the same day and remained reverted until it did not.
Outcome
Three pages regressed. All three were reverted the same afternoon and shipped again a week later. Nothing was lost, because nothing was fully committed before it was measured.
The change we did not anticipate was editorial. A page used to take three days and a developer. It now takes eight minutes and neither.