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.
Service WordPress + Astro
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
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 we build
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
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
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
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
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
WordPress keeps WooCommerce, EDD, BuddyPress, MemberPress. Astro handles marketing + content. Best tool for each layer.
Zero risk to existing revenue infrastructure.
06
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
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
01
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
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
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
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.
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.
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.
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.
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.
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?
Discovery call is free. Fixed-price quote within 48 hours. NDA on request.