Starting constraint
The existing WordPress site had editorial value, indexed URLs, historical content, and multiple integrations. The risk was not whether Astro or Next.js could render pages. The risk was losing the editorial workflow, structured data, redirects, and stakeholder trust during cutover.
The migration plan therefore treated WordPress as a content system first and a rendering system second.
Diagnosis
The audit started with content types, taxonomies, URL patterns, canonical rules, hreflang, schema blocks, preview needs, search templates, and integration dependencies.
Only after that did the front-end choice make sense: Astro for mostly content-led surfaces, Next.js when authenticated or personalised flows mattered.
Architecture decision
WordPress stayed the editorial source of truth. The public front moved to a composable layer with edge delivery, strict URL mapping, and a redirect file tested before launch.
The plan deliberately avoided a big-bang rewrite. It grouped routes by risk: static content first, dynamic surfaces later, checkout or account flows only after separate validation.
Risk handling
The migration checklist covered 301 maps, canonical tags, sitemap parity, structured data parity, image dimensions, editorial preview, cache invalidation, and monitoring after DNS or proxy cutover.
Rollback was part of the plan, not a panic option. The old WordPress front remained available until the new front proved parity on the critical templates.