WordPress still runs a staggering share of the institutional web, and most of it is slower and more fragile than it needs to be. We've now done enough WordPress-to-edge migrations to have opinions that survive contact with production.
What WordPress got right
The reflex in modern web circles is to treat WordPress as legacy debris. That's wrong, and migrations fail when teams believe it. WordPress got the content model right: post types, taxonomies, custom fields, editorial workflow. Twenty years of newsroom and marketing teams have internalized that model. A migration that throws it away doesn't just lose data — it breaks the muscle memory of every person who publishes.
So the migration target has to speak that language. Collections that behave like custom post types, reference fields that behave like relationships, an admin that an editor can learn in an afternoon. The rendering layer is what you're actually replacing: PHP-per-request with edge-rendered Astro, origin servers with Workers, plugin sprawl with a small set of composable functions.
The migration mechanics
The WXR export is the honest interface. Parse it, map post types to collections, terms to taxonomies, meta to fields, and resolve media into R2 as you go. The hard ten percent is shortcodes and page-builder markup — we transform the common ones and flag the rest for editorial review rather than pretending a regex can understand a decade of nested shortcodes.
The result we aim for: sub-100ms TTFB globally without a caching plugin in sight, a database that fits in D1, and an editorial team that stopped noticing the CMS — which is the highest compliment infrastructure gets.