Migration playbook: WordPress to Next.js
Six steps that have stayed roughly the same across the last fifteen migrations.
Most "we want to migrate to Next.js" briefs follow the same path. Writing it down so we stop repeating ourselves.
The six steps
- Audit the WordPress site. Page count, plugin list, custom post types, redirects.
- Decide what stays in WordPress (often nothing - or sometimes the CMS, headless).
- Map URLs. Every old URL gets a new home or a permanent redirect. No exceptions.
- Rebuild the public site as static-first. Hit the database only where the page is actually dynamic.
- Cut over with a maintenance window. Soft launch, monitor 404s, ship redirect fixes for the first 48 hours.
- Decommission the old infra after the redirect log is quiet.
The trap
Treating it as a redesign and a migration at the same time. The two projects are independent. Doing both at once doubles the surface area for what can go wrong, and most of what goes wrong is in the migration half - content shape, redirects, image paths.
If the brief truly is "redesign + migrate," ship the migration first behind the same design, then redesign on top.