Service WordPress + Astro
Build headless WordPress that actually scales.
Decouple WordPress with an Astro frontend. Editors keep their admin. Visitors get a 0.6-second site. We have shipped this exact stack three times for ourselves.
// astro.config.mjs
import { defineConfig } from 'astro/config';
import { wordpress } from '@wbcom/astro-wp';
export default defineConfig({
site: 'https://example.com',
output: 'static',
integrations: [
wordpress({
endpoint: 'https://wp.example.com/graphql',
cache: 'aggressive',
isr: { revalidate: 60 },
}),
],
});
Why headless
WordPress is the best CMS. It is not always the best frontend.
The admin works. The editorial workflow is what marketing teams know. Plugins do what plugins should do. The problem is everything in front of the database · page load, build pipelines, framework agility, modern frontend patterns. Headless lets you keep what works and replace what holds you back.
What it feels like
Two browsers. One site. Same content.
Simultaneous render of the same homepage. Left: traditional WordPress PHP stack with the plugins a community site typically runs. Right: the Astro + Cloudflare Workers stack we ship for our own store. Scroll up and back down to replay.
- 7× faster median LCP
- Sub-1s FCP at the edge
- 0ms server processing for cached pages
What we build
A migration that does not require new editorial habits.
Editors stay in WordPress. Visitors get an Astro frontend. We handle the bridge layer, the CDN strategy, and every Gutenberg block that needs custom rendering.
01
WPGraphQL or REST · your call
We pick the API surface based on your editorial workflow. WPGraphQL for typed schemas and Gutenberg block content, REST for simpler editorial use.
Switching API later does not require frontend rewrite.
02
ISR for editor velocity
Editors save in WordPress and the Astro page revalidates in under a minute. No "redeploy the entire site" round-trips.
Marketing ships content as fast as on monolithic WP.
03
Edge-rendered, never CDN-stale
Astro builds static at deploy, plus on-demand revalidation at the edge. Stripe-checkout-grade caching without the staleness.
Cached page TTFB averages 47ms.
04
Block parser that actually works
Gutenberg blocks render in Astro components · image, columns, button, custom blocks. Editor visual matches frontend visual.
No "looks wrong on the frontend" support tickets.
05
Auth + commerce stay on WP
WordPress keeps WooCommerce, EDD, BuddyPress, MemberPress. Astro handles marketing + content. Best tool for each layer.
Zero risk to existing revenue infrastructure.
06
Full SEO + schema parity
JSON-LD, OG tags, sitemap, robots, canonical · preserved or improved versus the WP source. Yoast/RankMath data flows through.
Migrations launch without ranking dips.
0.6s
average LCP across our three production headless WordPress + Astro sites
Measured continuously. Core Web Vitals reports public on request.
The bridge layer
Type-safe content collections from your existing WordPress.
Astro reads WordPress through a typed loader. Editorial fields you already use show up as a Zod schema on the frontend. No duplicate content models. No syncing scripts.
// content collection schema
import { defineCollection, z } from 'astro:content';
import { wpLoader } from '@wbcom/astro-wp/loader';
export const collections = {
posts: defineCollection({
loader: wpLoader({
type: 'post',
perPage: 100,
}),
schema: z.object({
title: z.string(),
excerpt: z.string(),
author: z.object({
name: z.string(),
avatar: z.string().url(),
}),
categories: z.array(z.string()),
featured_media: z.string().url().optional(),
seo: z.object({
title: z.string(),
description: z.string(),
og_image: z.string().url().optional(),
}),
}),
}),
};
Process
How a headless migration runs.
01
Discovery
Two weeks. We audit your existing WP install, identify the URL prefixes that move to Astro, document the redirect map, and lock the API contract.
Fixed-price quote, no surprises.
02
Build
Four to six weeks. Astro frontend ships in parallel with content migration. WP backend is untouched. Staging URL available within seven days.
Editors can preview every page before launch.
03
Cutover + monitor
One week. DNS or edge-routing flip during a low-traffic window. We monitor Search Console + Core Web Vitals + error logs for thirty days post-launch.
Zero ranking loss across our last six migrations.
Common questions
Frequently asked
-
How long does a headless WordPress migration take?
Six to ten weeks for a content-heavy site. Discovery + IA mapping is two weeks, build is four to six, content migration and SEO redirect mapping runs in parallel, and a soft-launch QA week closes it.
-
Do we have to rebuild our content?
No. Existing posts, pages, custom post types, ACF fields, Gutenberg blocks, and media library all stay where they are. Astro queries them via GraphQL or REST. Editors keep working in the same WP admin they use today.
-
What about plugins like WooCommerce, BuddyPress, MemberPress?
They keep running on WordPress. Headless does not mean "kill the plugins." It means "the marketing surface is faster and the app surface stays where it works." We split traffic by URL prefix at the edge.
-
Will we lose Gutenberg?
No. We render Gutenberg blocks as Astro components. Block visual fidelity is preserved. New blocks added in WordPress show up automatically without a frontend deploy.
-
How do we handle SEO during migration?
A redirect map covers every old URL. Schema markup, sitemaps, and canonical tags are migrated as-is or improved. We coordinate the cutover during low-traffic windows and monitor Search Console for the first thirty days post-launch.
-
What does it cost?
Migration projects are scope-dependent for marketing-only sites. Full content sites with custom block parsing and editor flow optimization are scoped after discovery. Discovery call is always free and we send a fixed-price quote within 48 hours of the call.
Ready to ship faster WordPress?
Tell us what you want to build.
Discovery call is free. Fixed-price quote within 48 hours. NDA on request.