WordPress to Astro & Next.js Migration Services

WordPress to Astro & Next.js Migration Services

5.00/5 - (17 votes)
8 min read
Guide

#How to migrate WordPress to Astro or Next.js?

Keep WordPress as the content backend and rebuild the public front end as a separate site that reads from it. Astro usually fits content sites and marketing pages; Next.js fits front ends with application logic or signed-in users. I measure first, because a slow WordPress site is often slow for reasons a new framework does not touch, and when fixing caching or images is enough I say so.

#Who provides WordPress to Astro & Next.js migration?

I do: Mariusz Szatkowski, a WordPress developer since 2006, based in Gdynia, Poland. I work alone, so the audit, the code, the redirect map and the launch are mine, with no team and no subcontractors. This site, wppoland.com, runs on Astro and Cloudflare Pages.

#What does WordPress migration to Astro & Next.js include?

Moving the public layer to Astro or Next.js, rebuilding templates and components, reading content from WordPress over the REST API or WPGraphQL, carrying over forms and integrations, and redirects from the old URLs. The editorial admin, roles and publishing flow stay in WordPress unless I agree otherwise. You supply the visual design and layouts; I implement them. If you want the process in detail before hiring anyone, the website migration guide covers it step by step.

#Where do I deliver WordPress migration projects?

Remotely, for companies in the UK, Ireland and the rest of Europe. I work by email, written documents and the repository, so every decision is on record. Contracts are B2B under Polish law; invoices carry my EU VAT ID PL7393037445 under the reverse-charge rule.

#WordPress migration pricing

Every migration is quoted individually after the audit. The price depends on the number of templates, content volume, integrations and languages. Send a brief and you will get a written quote with its assumptions.

#When a migration makes sense

The bottleneck is rarely WordPress itself; it is usually one layer. Queries a plugin runs on every request, caching that skips logged-in users, images served at their original size, or a theme loading a dozen CSS and JS files. Each is measurable on its own, and several can be fixed without replacing the front end.

A front-end migration pays off when the problem sits in the theme and the rendering, when you want templates in version control and publishing through a build, or when the same content has to feed other channels over an API. It rarely pays off when the site depends on plugins that generate the front end (page builders, WooCommerce with many extensions), because every one of those features has to be rewritten.

Separation also changes the attack surface. Public traffic no longer reaches PHP, but the WordPress installation, plugins, accounts and API still need updates, access control, backups and monitoring. A headless setup does not protect a compromised backend or an insecure integration.

#Astro or Next.js? Which to choose?

Both frameworks can generate static pages and render on a server. They start from different assumptions.

AstroNext.js
Modelmulti-page site, src/pages/index.astro is the home pageReact application with the App Router (app/)
Browser JavaScriptnone by default; a component becomes an interactive island only with client:load, client:idle or client:visibleClient Components marked with 'use client'
Renderingoutput: 'static' by default; a single page renders on demand with export const prerender = false and an adapterprerendering, dynamic rendering, ISR via export const revalidate
Refreshing CMS contenta new build, or pages rendered on demandrevalidatePath, revalidateTag, draft previews through draftMode()
Typical hostingadapters @astrojs/cloudflare, @astrojs/netlify, @astrojs/node, @astrojs/vercel; a static build on any web serverNode.js server, Docker container, or static export (output: 'export') without ISR or Proxy
Fitscompany sites, blogs, documentationcustomer portals, apps with login, data that changes per request

Astro is not a React framework. React components work in it through the @astrojs/react integration and reach the page as HTML or as islands with a client:* directive. Server islands are the other half: an Astro component with server:defer renders separately, so the rest of the page does not wait for it.

#What you get after a headless WordPress migration

  • A baseline audit. Representative URLs with LCP, INP, CLS and TTFB measured before any change, and the responsible layer named.
  • A front end in version control. Astro or Next.js templates and components in Git, publishing through a build, and a preview before anything goes out.
  • Editing stays in WordPress. Same accounts, roles and publishing flow. Content comes from /wp-json/wp/v2/ or WPGraphQL.
  • Forms, integrations and redirects. Moved across and documented, with the list of URLs to verify after launch.
  • A before-and-after report. The same URLs, the same test conditions, both measurement dates, and your field data if you have any.

The theme takes the plugins that injected your cookie banner and tracking scripts with it, so the new front end has to wire them again. For Irish sites, Regulation 5(3) of S.I. No. 336 of 2011 (the ePrivacy Regulations) requires consent, with clear and comprehensive information, before anything is stored on or read from a visitor’s device. In the UK the equivalent rule is regulation 6 of PECR 2003, substituted in February 2026 by the Data (Use and Access) Act 2025; check its current exemptions in Schedule A1 rather than relying on older guidance. I set up the consent tool and analytics so nothing optional loads before consent, and I check the network tab of the new site to confirm it.

#How the migration runs

  1. Audit and quote. I measure the site, list content types, ACF fields, forms and CRM or analytics integrations, and check which plugins output anything on the front end. Framework choice, scope, assumptions and timeline go into a written quote before any code exists. If I get access to personal data, I sign an Article 28 GDPR processing agreement first.
  2. WordPress as an API. I tidy the backend, restrict access to the admin and check what the REST API returns. WPGraphQL goes in only when the content structure needs it.
  3. The new front end. Templates built from your design in a private Git repository, with a preview version where you sign off. Every change comes with a written description.
  4. Redirects and metadata. WordPress stores the slug it generated, so I read the slug field from the API instead of recomputing it. Only URLs we change on purpose (date archives, attachment pages, ?p= parameters) go into the 301 map. Titles, descriptions, structured data, canonicals and hreflang move with the content, and I compare a crawl of the old and new versions.
  5. Launch. The old site keeps serving until the DNS record changes. If something is wrong afterwards, switching back means pointing the domain at the old version again. From then on WordPress is not public and serves editors only.

#Already on Next.js and moving to Astro?

The official Astro guide for migrating from Next.js lists the conversions:

  • pages/ becomes src/pages/, and routing stays file-based;
  • app/layout.jsx and head.jsx merge into one Layout.astro, with <slot /> in place of {children};
  • getStaticProps() goes away; data is loaded in the component frontmatter with fetch(), import.meta.glob() or getCollection();
  • Next’s <Image /> becomes <Image /> from astro:assets, while .jsx files keep a plain <img> that Astro does not optimise;
  • <Link> becomes <a href="">, and className becomes class.

React components can stay through @astrojs/react. The guide also notes that Astro is content-driven, so interactive dashboards take more work than in Next.js.

#Common migration scenarios

Content sites. Blog posts, articles and information pages change rarely and are read often, which suits static generation in Astro. What remains to settle is what triggers a build after publishing.

WooCommerce stores. Catalogue, basket, checkout and customer accounts all have to be rebuilt on the front end in a headless setup. For stores with many extensions I usually recommend staying on a classic theme and fixing its performance instead.

Applications with login. Customer areas and per-user data are Next.js territory: prerender the public pages and render the signed-in sections on the server.

For a public example, read the WPPoland rebuild case study. It covers the Astro content architecture, the six-locale workflow and the technical SEO controls behind this site.

#How to start a headless WordPress migration

Send a written brief through the contact form: current stack, target framework, URL constraints, integrations, languages and the business risk you want to reduce. I reply by email with the next steps and a quote that states its assumptions.

Discuss Migration

#Which services relate to an Astro and Next.js migration?

New Next.js work that does not start from a WordPress site is covered by the Next.js developer service. For hiring intent around Poland, see Hire Next.js developers in Poland. The WordPress to Astro migration report describes how this site moved.

Explore other WordPress services and knowledge base

Strengthen your business with professional technical support in key areas of the WordPress ecosystem.

Recommendations from LinkedIn

Recommendations and reviews of working with WPPoland

Selected recommendations from WordPress, WordCamp and e-commerce leaders - with a focus on delivery on time, technical depth, and a business-driven approach to WordPress development.

Karolina Czapla

Karolina Czapla

Marketing Strategist, Performance & Digital Strategy

“Working with Mariusz on WordCamp has shown me how rare it is to combine deep technical skill with genuine leadership. He plans, coordinates and delivers with precision, while giving the team space to grow and contribute....”

Co‑organiser, WordCamp Gdynia 2024 & 2025

Anna Kamińska

Anna Kamińska

Talent Acquisition Specialist / HR People Partner

“Mariusz's portfolio speaks for itself. It reflects his precision, versatility and sense of responsibility. You can trust him to guide a project from idea to delivery, keep stakeholders informed and make sure things are d...”

Worked on the same team

Sarah‑Luisa Kwolek

Sarah‑Luisa Kwolek

IT Project Management & Product Owner, Web/App

“For over two years I could always rely on Mariusz to handle WordPress tasks calmly and professionally, from styling and templating to third‑party integrations. He brings steadiness to the team and keeps the frontend side...”

Mariusz was her client for WordPress work

Argert Boja

Argert Boja

Senior Full‑Stack Developer

“Mariusz is the teammate everyone hopes for: strong full‑stack WordPress skills, clear explanations and a positive attitude even under pressure. He moves easily between custom plugins, performance work and Gutenberg layou...”

Worked alongside Mariusz on WordPress projects

Varun Patil

Varun Patil

Growth & CRM Lead

“Beyond development, Mariusz understands SEO, analytics and growth. He talks directly with stakeholders, asks the right questions and ships solutions that move business metrics, from AMP to tracking to performance.”

Managed Mariusz on growth initiatives

Rafał Osiński

Rafał Osiński

Founder @ EasyTrips.pl, Senior WordPress Dev

“I've known Mariusz through the WordPress community for many years. He's reliable, deeply involved and consistently shows up, at meetups, WordCamps and in projects. If you care about long‑term collaboration and someone wh...”

WordPress community co‑organiser

Daniel Blossfeld

Daniel Blossfeld

Process Optimization & Digitalization Consultant

“I had the pleasure of working with Mariusz for almost three years. During that time, his WordPress development skills proved invaluable across a range of projects, from website builds to online member areas and even Shop...”

Mariusz was his client for WordPress work

Natalie Wiszczor

Natalie Wiszczor

CRM & E-Mail Marketing Manager

“I had the great pleasure of working with Mariusz for over 4 years in the technical field. During this time, he proved to be a competent and reliable colleague. What stood out in particular was his friendly nature and his...”

Worked with Mariusz on different teams

Mark Chalklen

Mark Chalklen

Head of Design & Build at Itineris Limited

“Mariusz is a great member of the team, always happy to get stuck into any task and happy to learn new things. A great communicator and all round nice guy to work with. Hard to beat on our weekly Strava leader board thoug...”

Managed Mariusz directly

Jessica Di Pasquale

Jessica Di Pasquale

Leading SEO initiatives with data-driven growth strategies.

“Mariusz is a very skilled, patient and expert guy. Always ready to help and to fix errors, I really appreciated working with him. He is such a great colleague!”

Managed Mariusz directly

Biki John

Biki John

Content Marketing Aficionado & SEO Enthusiast

“It was great to work with Mariusz. I really appreciated his extensive knowledge of WordPress and how that came in handy whenever I needed support navigating the CMS. I commend Mariusz totally for his patience, good natur...”

Worked with Mariusz on different teams

Rafal Borowiec

Rafal Borowiec

Software Developer, Consultant, Manager and Lecturer

“I had an opportunity to work with Mariusz for 7 months. He excels in technical optimization for search engines (SEO). Mariusz has also strong expertise in AMP development, GTM, and GA. Mariusz feels very comfortable with...”

Managed Mariusz directly

Belinda Koch

Belinda Koch

Web-Tracking Analyst at TUI

“Mariusz is a great person to work with. He is extremely motivated to learn new things and share his knowledge, and is very knowledgeable on a wide range of topics. We worked together on digital analytics and tracking top...”

Worked with Mariusz on digital analytics and tracking topics

Ali Nezamolmaleki

Ali Nezamolmaleki

Growth, SEO, Analytical thinking, AMP

“Mariusz is an extremely talented person in his field of work. He is always capable of giving a new perspective to solve problems and to think out of the box in situations where everything seems to be locked. Working with...”

Worked with Mariusz on the same team

Karol Jakubcewicz

Karol Jakubcewicz

Front-end / JavaScript Developer

“Mariusz is an incredibly experienced WordPress developer and SEO/SEM specialist I've had the pleasure to work with for almost two years. As a pilot of the team responsible for AirHelp's website development, he's been one...”

Worked with Mariusz on the same team

Paweł Lewczuk

Paweł Lewczuk

Front-end developer, WordPress developer

“I collaborated with Mariusz on several projects and our cooperation was always exemplary. I believe there are many more joint projects ahead of us. Highly recommended!”

Mariusz was Paweł's client

Przemek Wroblewski

Przemek Wroblewski

Software Developer with 20+ years of experience

“I found Mariusz as someone with great expertise and profound knowledge of frontend solutions. Powerful, knowledgeable and accountable WordPress developer. Has an easiness to build interpersonal relations with others. He ...”

Worked with Mariusz on different teams

Frequently asked questions

Questions about scope, delivery, pricing, and execution quality.

Will I lose my Google rankings during migration to Astro or Next.js?#
The risk sits where URLs change. Before launch I list every indexed URL and build a 301 redirect map, carry over titles, descriptions, structured data, canonicals and hreflang, and compare a crawl of the old and new versions. After the switch I check the Google Search Console reports. Nobody can guarantee rankings, so I do not promise them.
How long does a typical WordPress to Astro migration take?#
Duration follows scope: the number of templates, languages, forms and integrations, and whether editors need draft previews. I give the timeline in the quote after the audit, together with the assumptions behind it.
Can I still use WordPress for content editing after migrating to Astro?#
Yes. Editors keep working in the same WordPress admin, and the Astro front end reads content over the REST API or WPGraphQL. On a statically built site new content appears after the next build, so we decide what triggers it. Pages that must show changes immediately are rendered on demand.
What are the main benefits of migrating from WordPress to Astro?#
The public front end stops running PHP and database queries on every visit, template code lives in a repository, and publishing goes through a build. A well-cached WordPress site can already serve pre-generated pages, so before recommending a migration I compare the bottleneck with the cost of a new front end. Performance targets are agreed against a measured baseline; a framework alone does not guarantee a score, a ranking or more enquiries. WordPress, its plugins, accounts and API still need updates, access control and backups.
What happens to my WordPress plugins after migration?#
I review each plugin before the migration. Anything that acts on the front end, such as forms, SEO metadata or embedded scripts, has to be rebuilt in the new front end. Backups, security controls and database maintenance stay relevant because WordPress keeps running as the backend. The result is a list of what stays, what changes and what goes.
Is Next.js or Astro better for my project?#
Astro renders pages to HTML at build time by default and sends no component JavaScript to the browser until you mark a component with client:load, client:idle or client:visible. That suits company sites, blogs and documentation. Next.js is a React framework with the App Router, server rendering, ISR and Draft Mode for previewing CMS drafts, so it fits applications with login and data that changes on every request.
How much does a WordPress to Astro migration cost?#
I quote individually after the audit, based on the number of templates, content volume, integrations, languages and the publishing workflow. Prices are not listed on this page. Send a brief and you will get a written quote with its assumptions.
Do you provide support after the migration is complete?#
Yes, as ongoing care: uptime monitoring every 1 to 5 minutes, backups kept for at least 30 days in EU countries, and updates tested on staging first. Care covers the WordPress backend and the front-end dependencies. I do not offer 24/7 on-call or guaranteed response times.

Need an FAQ tailored to your industry and market? I can build one aligned with your business goals.

Let’s discuss

Related Articles