Why teams move from WordPress to Astro
The editor is rarely the problem. The work around it is: plugin and theme updates, a PHP server and database to keep patched and cached, and page builders that load far more code than the pages need. Astro builds every page ahead of time and adds JavaScript only where a component asks for it, so the public site no longer depends on WordPress answering each visit.
- Plugin risk. Patchstack counted 11,334 new vulnerabilities in the WordPress ecosystem in 2025; 91% were in plugins, and 46% had no fix from the developer when they were disclosed.
- Field speed. In HTTP Archive's September 2026 data for US mobile visits, 62.0% of WordPress sites passed Core Web Vitals, 55.6% of those built with Elementor, and 84.2% of Astro sites.
- Hosting. A prebuilt Astro site needs no PHP or database at all, and on Cloudflare, requests to static assets are free.
- Ownership. Templates live in your repository, and the content sits in a CMS you choose, which can still be WordPress.
Those shares describe whatever people have built on each platform, not your own site. Our website platform speed report breaks them down by country; check your own field data in Search Console before paying for a move to fix speed.
WordPress and Astro compared for this move
The comparison below sets a typical WordPress install against the stack we build by default: Astro on Cloudflare with a headless CMS. Vendor prices were read in October 2026.
| Area | WordPress | Astro on Cloudflare |
|---|---|---|
| Hosting | A PHP server and database, cached and patched by your host or team | Prebuilt HTML on a static host or edge network; Cloudflare serves static assets without per-request fees |
| Editing | Block editor or a page builder inside wp-admin, with free Contributor, Author and Editor roles | Fields in a headless CMS with preview, or wp-admin itself if WordPress stays as the CMS |
| CMS limits | None in the software; the server sets the ceiling | Those of the CMS plan: Sanity Free holds 10,000 documents, and self-hosted Payload has no limit of its own |
| SEO controls | SEO and redirect plugins such as Yoast SEO and Redirection | Title, description, canonical and schema fields built into the templates; redirects in the host's rules file |
| Upkeep | Core, theme and every plugin | Package and framework upgrades in the repository; a static build keeps serving if one is missed |
| Lock-in | Open source under the GPL; page-builder layouts stay in the builder's own format | Code in your repository; content in a CMS you can switch or self-host |
| Running cost | Managed hosting such as Kinsta from USD 35 a month, plus premium plugin licenses | USD 0 to 5 a month on Cloudflare, plus the CMS: Sanity is free or USD 15 a seat |
What comes across from WordPress, and what doesn't
WordPress is easier to leave than a hosted builder such as Webflow, because the content sits in your own database and exports in a documented format. The WXR file from Tools, Export in wp-admin carries posts and pages, custom post types and taxonomies, categories and tags, custom fields, comments and users. What it doesn't carry is everything the theme and plugins added on the page.
- Comes across as data: post bodies, publish dates, authors, terms and custom fields, including the ones defined with ACF, as raw values.
- Comes across with cleanup: shortcodes, embeds and page-builder markup inside post bodies, which show up as raw text or broken layout outside the old theme.
- Copied separately: wp-content/uploads. The XML file lists attachments by URL but doesn't contain the files, so the originals come from the server.
- Stored by plugins: SEO titles, descriptions and redirect rules, which Yoast SEO and redirect plugins keep outside the post body.
- Rebuilt in code: forms, search, sliders, related posts and anything else a plugin printed on the page.
- Scoped on their own: comments, member areas and stores, which each need a decision before the build starts.
How WordPress content maps to Astro
We decide the content model from the inventory before converting anything. Each WordPress type becomes a schema the build checks, so an entry with a missing required field fails the build rather than going live.
| In WordPress | In Astro | How it moves |
|---|---|---|
| Posts and pages | A content collection or CMS type each, with a schema | Converted from the WXR file, or read from the REST API at build time if WordPress stays headless |
| Custom post types | Their own collection, template and route | Exported with the rest; routes rebuilt so each item keeps its slug |
| ACF field groups | Typed fields in the schema | Read from post meta; fields that point to images or other posts become files and references |
| Categories, tags and custom taxonomies | References, plus archive pages where they earn traffic | Archive URLs kept, or sent to the closest page with a 301 |
| Yoast SEO titles and descriptions | SEO fields on every entry | Read from yoast_head_json in the REST API, which returns the values Yoast rendered for each page |
| wp-content/uploads | Images processed by astro:assets | Originals copied; files with links or image-search traffic keep their URL or get a 301 |
| Blocks and shortcodes | Astro components | Found by searching the export, then mapped to components or cleaned out |
| Users and roles | CMS users with roles | Recreated; a writer-and-reviewer workflow needs a CMS plan with more than admin and viewer roles |
| Form plugins | A form endpoint you control: a Worker, a form provider or the CRM itself | Fields and destinations listed, past entries exported, each form tested with a real submission |
How we move a WordPress site to Astro
Every migration we run follows the same order: inventory, map, rehearse, switch, watch. On WordPress, most of the effort goes into the URLs the platform generates on its own and the features its plugins provided.
- Inventory. Every URL that answers, from /wp-sitemap.xml or the SEO plugin's sitemap, a crawl, a full year or more of Search Console and analytics landing pages and your backlinks, plus each form, script and integration.
- Headless or full move. We recommend one after seeing who edits, which plugins the editors depend on and whether your host serves the REST API publicly; on some hosts a security plugin blocks it.
- Redirect map. One row per old URL, each marked keep, redirect, merge or retire. Our redirect map generator matches old and new sitemaps for the first pass.
- Content and media. Posts, custom fields, Yoast metadata and uploads moved into the new model, with builder markup cleaned out.
- Staging. Templates, forms, analytics and consent built on an address search engines are told not to index, while WordPress keeps serving visitors.
- Rehearsal and launch. We run the full old-URL list against staging, fix every mismatch, then switch DNS in a planned window with redirects live and the sitemap submitted.
- After launch. Reviews at 30 and 60 days against the pre-launch baseline, then a handover of accounts, DNS and the redirect list.
To see before the build which of your URLs keep their path on Astro and which need a 301, run your WordPress sitemap through our free website migration planner.
Our WordPress to Astro guide documents the technical steps if your team wants to run them. When we run them, it's our website migration service, with the front end built through Astro development and the editing side through headless CMS development.
Checks before and after the WordPress switch
WordPress answers on many URLs nobody ever typed, so we test against the complete old-URL list rather than the menu.
- Every old URL crawled against staging returns a 200, a single 301 to a 200, or a deliberate 404 or 410.
- Platform URLs covered: /feed/, ?p= shortlinks, author archives, the /category/ and /tag/ bases, and attachment pages, which WordPress 6.4 switched off for new installs but kept on for upgraded sites.
- Query-string links redirected in Worker code, because Cloudflare's _redirects file can't match query parameters and answers 302 unless a line says 301.
- Titles, descriptions and Open Graph images compared field by field with what Yoast rendered on the old pages.
- Self-referencing canonicals on the new URLs, and hreflang rebuilt if WPML or Polylang produced it.
- The Schema.org data the SEO plugin output, rebuilt in the templates and run through the Rich Results Test.
- Forms tested with real submissions, and analytics events firing only after consent where the old site asked for it.
- Staging noindex removed, the new sitemap submitted in Search Console and server 404 logs read through the first week.
- Indexing, clicks and impressions by page compared with the baseline at 30 and 60 days. The full sequence is in our website migration SEO checklist.
When to stay on WordPress
A migration should buy something the current site can't provide. Staying is the better call in these cases.
- Plugins run the business: memberships, courses, bookings or a WooCommerce store that would cost more to rebuild than to maintain.
- Many writers publish through WordPress's built-in roles and like the block editor. Headless WordPress keeps that, at the price of running two systems.
- Nobody will own the code. Astro's core team provides security fixes for only the previous major version, so someone has to schedule upgrades.
- The site already passes Core Web Vitals and is patched. A slow WordPress site can often be fixed in place with a lighter theme, fewer plugins and better hosting.
Our comparison of WordPress and a custom website sets out when each pays off. If you're leaving but marketers need to lay out pages visually, WordPress to Webflow fits better than code. And if the site behaves more like an app than a set of pages, Astro vs Next.js covers the framework choice.
What Astro costs to run after WordPress
Running costs usually fall after the move, but the build is the real cost, and hosting savings alone rarely repay it. Prices below are from the vendors' pages in October 2026, in US dollars.
| Line | WordPress today | Astro after the move |
|---|---|---|
| Hosting | Kinsta Single 20GB: USD 35 a month or 350 a year. WP Engine Essential: USD 420 a year after the first | Cloudflare: free for static assets; Workers Paid from USD 5 a month, with 10 million requests and no bandwidth charge |
| Editors | Unlimited users at no cost | Sanity Free for up to 20 users with two roles, or Growth at USD 15 a seat; Payload is free to self-host |
| Plugins and licenses | SEO, page-builder and multilingual plugins, often renewed yearly | None; the features are code in your repository |
| Upkeep | Core, theme and plugin updates | Framework and package upgrades |
| If WordPress stays headless | WordPress hosting stays on the bill | The Astro host is added on top |
The migration itself is quoted from the URL inventory; we don't publish a fixed price. What sets it: the number of URLs and templates, custom post types and ACF field groups, the plugins whose features need rebuilding, integrations such as CRM or booking, and languages. For published market prices by site size, see what a website migration costs in 2026.
Questions before you choose
Will we lose Google rankings moving from WordPress to Astro?
Expect some movement: Google's site-move guidance warns of temporary ranking fluctuation while it recrawls. Lasting losses come from avoidable mistakes, such as old URLs that stop answering, titles the SEO plugin held that never came across, or a staging noindex left in place. We keep the permalinks Astro can reproduce, 301 the rest and compare against the baseline at 30 and 60 days. Nobody can guarantee rankings.
Can we keep our WordPress permalinks, including dates?
Yes. Post-name and date-based permalinks normally end in a slash, which matches Astro's default directory output, and a date structure becomes a route with year, month and slug. Category and tag archives keep their base, /category/ and /tag/ unless you changed it, or get a 301 when an archive isn't worth rebuilding.
Can our editors keep using wp-admin?
Yes, if WordPress stays as a headless CMS: editors keep the dashboard and Astro builds the public pages from the REST API or WPGraphQL. You still host and update WordPress. In a full move, editors work in the new CMS's web interface instead; dardo.studio works this way, and a published article is live two to three minutes later, once the site has rebuilt.
What happens to our plugins and ACF fields?
Plugins that only help editors, such as ACF, keep working in a headless setup, and in a full move their field groups become typed fields in the new model. Plugins that printed something on the page are rebuilt: forms get their own endpoint, search becomes a static index such as Pagefind, and caching plugins have nothing left to do.
What happens to our images, PDFs and blog archives?
Every original in wp-content/uploads is copied and resized by Astro's image pipeline. Images and PDFs with backlinks or image-search traffic keep their URL or get a 301. Posts move with their categories, tags and authors, and archive pages with no traffic are redirected to their closest equivalent.
How long does a WordPress to Astro migration take?
It depends on the number of URLs, post types, plugins to rebuild and integrations, and on how quickly approvals come back, so the timeline comes with the proposal after the inventory. After launch, Google says a small to medium-sized site can take a few weeks for most pages to move, which is why the project runs to the 60-day review.
What happens to the old WordPress install?
It keeps serving visitors until launch day. Cancel the hosting only after the Astro site responds on every old URL, a full export, database backup and uploads copy are in your hands, and no redirect relies on the old server. Keep the domain either way: it carries your links.
How much does a WordPress to Astro migration cost?
We quote from the URL inventory and publish no fixed price, since two sites with the same number of pages can need very different work. Custom post types, ACF field groups, plugins to rebuild, integrations and languages move the quote. Running costs usually fall: Cloudflare serves static assets for free and Workers Paid starts at USD 5 a month, as of October 2026.
From the blog
- Astro vs WordPress in 2026: editing, upkeep, yearly cost, speed and when to move
Astro vs WordPress for a marketing site: editing, plugin upkeep, yearly hosting cost and real-user speed, plus headless WordPress and when to stay.
- WordPress to Astro: how to migrate a WordPress site, headless or all the way, without losing rankings
Two ways to move from WordPress to Astro, what to export, how to keep Yoast titles, permalinks and uploads, and the WordPress URLs most migrations forget.
Sources & further reading
Sources behind this page, with further detail from the original publishers.
- Google Search Central: Site moves with URL changesdevelopers.google.com
- WordPress documentation: Tools Export screenwordpress.org
- WordPress documentation: Customize permalinkswordpress.org
- WordPress documentation: Roles and capabilitieswordpress.org
- Make WordPress Core: Changes to attachment pagesmake.wordpress.org
- Make WordPress Core: New XML sitemaps functionality in WordPress 5.5make.wordpress.org
- Yoast developer docs: REST APIdeveloper.yoast.com
- Astro docs: Migrating from WordPressdocs.astro.build
- Astro docs: Headless WordPress & Astrodocs.astro.build
- Astro docs: Content collectionsdocs.astro.build
- Astro docs: Upgrade Astrodocs.astro.build
- Cloudflare: Workers pricingdevelopers.cloudflare.com
- Cloudflare Workers docs: Redirectsdevelopers.cloudflare.com
- Sanity: Pricingsanity.io
- Payload: Get startedpayloadcms.com
- Kinsta: Pricingkinsta.com
- WP Engine: Plans and pricingwpengine.com
- Patchstack: State of WordPress Security in 2026patchstack.com
- HTTP Archive: Technology reporthttparchive.org
