What headless WordPress means
Headless WordPress means running WordPress purely as a content back end and building the public front end as a separate application. In a normal WordPress site, one system does two jobs at once: it stores your content and it also renders the pages visitors see, using a PHP theme. Going headless splits those two jobs apart. WordPress keeps doing what it is genuinely good at, which is letting people write, edit, and organize content in a familiar dashboard. The visible website, though, is built with a modern front end such as a React or Next.js application, and it pulls content from WordPress over an API instead of through a theme.
The word "headless" is just a picture. The "head" is the front end, the part a visitor looks at. Cut the head off the body and the body keeps working, it simply hands its content to whatever head you attach. That is the whole idea. Your editors still log in to wp-admin and see the posts, pages, and custom fields they are used to. Behind the scenes, none of the theme rendering happens on WordPress anymore. A different application asks WordPress for the content and decides how to display it.
This matters because the two halves of a website have very different needs. Content management wants a stable, well-understood editing experience, and WordPress has spent two decades getting that right. The front end wants speed, flexibility, and the freedom to use current tools. Trying to serve both from one PHP theme is a compromise, and headless WordPress is a way to stop compromising. You get the editor people already know and a front end built the way a modern web team would build any application from scratch.
It is worth being honest up front: headless is not automatically better than a normal WordPress site. It is a specific architecture that solves specific problems, and it adds complexity in exchange. This guide walks through how it works, what you gain, what you give up, and how to tell whether it fits your project. If you want the broader concept behind this pattern first, our explainer on what a headless CMS is is a good companion read.
How headless WordPress works
The connection between the WordPress back end and the front end is an API. WordPress ships with a built in REST API, and there is also a popular plugin called WPGraphQL that adds a GraphQL API. Either way, the principle is the same. Your front end sends a request that says, in effect, "give me the ten most recent posts" or "give me the page with this slug and all of its custom fields," and WordPress answers with structured data, usually JSON. The front end takes that data and renders it into real pages.
Picture the flow. An editor writes a blog post in wp-admin and hits publish, exactly as always. That content sits in the WordPress database. When a visitor asks for your blog, the front end application requests the post data from WordPress through the API, receives the title, body, author, and any custom fields, and builds the page. With a framework like Next.js, that building can happen ahead of time at build, or on the server when the page is requested, so the visitor receives a complete, fast page rather than waiting for the browser to fetch everything.
Because the front end is a normal application, it is not limited to showing content on a website. The same WordPress back end can feed a web app, a mobile app, a set of digital signs, or several sites at once. This is one of the quiet strengths of the approach: the content lives in one place, and any number of front ends can read from it. You write once and publish to many surfaces without copying content around.
There is one more piece that trips people up, so it is worth stating plainly. The API only carries data, not design. WordPress sends the title, the body text, the author, the featured image reference, and any custom fields you set up, but it does not send a finished, styled page. The styling, the layout, the fonts, the spacing, and the interactive behavior all live in the front end. That separation is the source of both the freedom and the extra work: the front end can look like anything, but someone has to build every part of how it looks and behaves, because none of it comes from a theme anymore.
The important mental shift is that WordPress stops drawing your pages. In a traditional setup the theme decides what every page looks like. In a headless setup the front end owns all of that, and WordPress becomes a source of data. Nothing about writing content changes for your team. Everything about how content reaches the screen does.
Traditional vs headless WordPress
Before the details, here is the shape of the choice in one view. Read it as a map of trade-offs, not a scoreboard, because the right answer depends on which rows matter most to your project.
| Factor | Traditional WordPress | Headless WordPress |
|---|---|---|
| Front end | PHP theme renders pages | Separate app renders pages |
| Editing experience | Familiar wp-admin | Familiar wp-admin |
| Live preview | Works out of the box | Needs extra setup |
| Front end freedom | Bound to theme system | Any modern framework |
| Performance ceiling | Good with care | Very high, pages can be prebuilt |
| Attack surface | Public WordPress site | WordPress can be locked down |
| Moving parts | One system | Two systems to run |
| Page builder plugins | Work as designed | Many do not carry over |
| Best fit | Standard sites, tight budgets | Custom front ends, multi channel, high traffic |
If your eye keeps landing on the rows about front end freedom, performance, and locking down the back end, headless is speaking to you. If the rows about live preview, page builders, and keeping things to one system feel more important, a well built traditional WordPress site is probably the calmer choice. For a wider look at picking a content system in general, our guide on how to choose a CMS puts this decision in context.
Why teams go headless
Teams do not go headless for novelty. They go headless because a specific pull got strong enough to justify the extra effort. A few pulls come up again and again.
Front end freedom. The most common reason is wanting to build the front end with a modern framework instead of a PHP theme. A React or Next.js front end gives developers the same tools they would use for any web application: component based building, a rich ecosystem, and app like interactivity. For a site with an ambitious design or heavy interactive features, building on that foundation is far more pleasant than bending a theme to fit. If you are weighing this exact split, our comparison of React vs WordPress looks at it head on.
Performance. Because a headless front end can prebuild pages as static files or render them on the server, visitors can receive complete pages very quickly. A framework like Next.js is designed around exactly this. Fast first loads help real people and they help search rankings, and doing it this way sidesteps a lot of the plugin and theme weight that slows ordinary WordPress sites down. Our guide on how to improve website speed covers the techniques that make this pay off.
Security. A public WordPress site is a well known target, and much of that exposure comes from the front end being the same thing attackers can reach. In a headless setup you can put WordPress behind restrictions, serve the public site as prebuilt pages, and shrink what is exposed to the open internet. It does not make security someone else's problem, but it does reduce the surface.
Publish once, use everywhere. When the same content needs to appear on a website, in a mobile app, and maybe on other surfaces, a headless back end feeding several front ends is a clean way to avoid duplicating content. Editors work in one place and every front end stays in step.
There is also a longevity argument that quietly matters over years. When content lives in a well structured back end and the front end is a separate application, you can rebuild or redesign the front end without touching the content, and you can even change front end frameworks later while keeping every post and page exactly where it is. Traditional WordPress ties your content and your presentation together in the theme, so a redesign is riskier and a technology change is harder. A decoupled setup keeps those concerns apart, which gives you more room to evolve the look of the site without a migration each time. For a business planning to run and refresh a site for years, that flexibility can be worth as much as the day one speed.
The trade-offs and downsides
Headless WordPress is a real architecture with real costs, and pretending otherwise sets teams up for regret. Here are the trade-offs worth naming clearly before you commit.
You now run two systems. Instead of one WordPress install, you have WordPress and a separate front end application, each with its own hosting, deployment, and maintenance. That is more to build, more to keep updated, and more that can go wrong. For a small brochure site, that overhead rarely earns its keep.
Live preview gets harder. In a normal WordPress site, an editor clicks preview and sees the exact page. In a headless setup the front end is separate, so preview has to be wired up on purpose, and it is one of the fiddlier parts of the build. Editors who rely on preview will notice if it is missing, so it needs planning.
Many plugins stop doing their visible job. A large share of WordPress plugins work by adding output to the front end through the theme. Page builders, many form plugins, popup tools, and similar plugins assume they control what visitors see. In a headless setup they do not control the front end at all, so their visible features simply do not carry over. Plugins that manage content or data on the back end are usually fine. Plugins that render things on the page usually are not.
More developer dependence. A traditional WordPress site can often be adjusted by a capable marketer through the dashboard. A headless front end is an application, so front end changes generally need a developer. That is worth knowing before you choose it, because it shifts who can change what.
Debugging spans two systems. When something goes wrong on a traditional site, the problem is somewhere in one WordPress install. On a headless site, an issue could sit in WordPress, in the API, in the build step, or in the front end, so tracing it takes a bit more care and a clearer picture of how the pieces connect. This is manageable with good practices, but it is another reason the architecture rewards teams who are comfortable with modern front end development rather than teams hoping to avoid it.
None of this makes headless a bad idea. It makes it a considered idea. The gains are real, and so are the costs, and the point is to take on the costs only when the gains clearly matter for your site. A useful test is to ask what specifically pushes you toward headless. If you can name a concrete pull, such as a custom front end the theme cannot deliver or a mobile app that needs the same content, the trade is probably worth it. If the honest answer is that headless simply sounds more current, that is a sign to stay with a traditional build.
REST API vs WPGraphQL
When you go headless, you choose how the front end talks to WordPress. There are two common paths, and the choice is not dramatic, but it does shape the developer experience.
The first path is the built in WordPress REST API. It ships with WordPress, needs no extra plugin, and exposes your content at predictable web addresses. It is well documented and dependable. The main friction is that you sometimes have to make several requests to gather everything a page needs, and each response can include more fields than you actually want, so the front end does a bit of stitching and trimming.
The second path is WPGraphQL, a plugin that adds a GraphQL API to WordPress. With GraphQL the front end asks for exactly the fields it needs in a single request, and gets back exactly that shape. For complex pages that pull from several content types at once, this can make the front end code cleaner and cut the number of round trips. The cost is an extra plugin to install and keep updated, and a query language for the team to learn. If GraphQL is new to you, our guide on REST vs GraphQL explains the difference in plain terms.
| Consideration | WordPress REST API | WPGraphQL |
|---|---|---|
| Setup | Built in, nothing to add | Install and configure a plugin |
| Fetching a complex page | Often several requests | One request, exact fields |
| Over fetching | Common, you trim client side | Rare, you ask for what you need |
| Learning curve | Familiar web requests | New query language |
| Good when | Simpler content needs | Rich, mixed content on many pages |
Neither choice is wrong. For a content site with straightforward needs, the REST API is perfectly good and one less thing to maintain. For a front end that assembles rich pages from many content types, WPGraphQL often pays for itself in cleaner code. We are happy to pick the right one for your case rather than defaulting to a favorite.
Architecture and hosting
A headless setup has two homes, and understanding them keeps the project predictable. On one side sits WordPress, running on ordinary WordPress hosting, holding your content and serving the API. On the other side sits the front end application, which needs hosting suited to a modern web app, whether that is a static host with a content delivery network for prebuilt pages, or a runtime that can render pages on request.
A common and healthy pattern is to keep WordPress private or lightly exposed, used mainly by editors and by the build process, while the public front end is prebuilt into fast static pages that a content delivery network serves around the world. When an editor publishes, a build runs, the affected pages are regenerated, and the fresh version goes live. This gives visitors static file speed while editors keep a normal dashboard. If the terms static and dynamic are fuzzy, our piece on static vs dynamic websites untangles them.
There is a build step in the middle that deserves a mention, because it is where a lot of the reliability comes from. When content is prebuilt, publishing does not change the live site instantly by itself. Instead, a build runs, turns the latest content into fresh pages, and deploys them. Modern hosts can trigger that build automatically when an editor publishes, and can rebuild only the pages that changed rather than the whole site, so the delay between publishing and going live stays short. Understanding this loop matters, because it is different from the traditional model where saving a post updates the page immediately, and editors should know what to expect.
The hosting reality is simply that you are running and paying for two things instead of one, and connecting them reliably. For a serious, high traffic, or highly custom site, that is a fair price for the speed and flexibility. For a small site, it is often more machinery than the job needs, which is exactly why this decision deserves a careful look rather than a default. It is also why a good build plans for the whole loop, from editor to build to live page, rather than treating the front end and the back end as two projects that happen to share content.
Choosing a front end
The front end is where most of the value of going headless shows up, so the choice deserves thought. For content sites that care about search visibility, Next.js is the most common pick, because it can prebuild pages as static files or render them on the server, which is exactly what a public, search facing site wants. You can read the framework's own material at nextjs.org, and our comparison of Next.js vs React explains why a framework often beats plain React for this kind of site.
Plain React on its own, typically built with a lean build tool, is a reasonable choice when the front end is more of an application behind a login than a public, crawlable site, because search rendering matters less there. Other frameworks in the same family can also read from a WordPress API, since to them WordPress is just a data source. The connection is the same regardless of which front end you choose: it requests content over the API and renders it.
It also helps to think about who maintains the front end after launch. A framework with strong conventions, like Next.js, tends to produce code that a new developer can pick up quickly, because the structure follows a shared pattern rather than one team's invention. That lowers your long term risk if the people who built the site are not the people who maintain it a year later. A more freeform React setup can be just as clean, but only if the original team was disciplined about structure, so it puts more weight on how the build was done.
The deciding question is usually whether the site needs strong search visibility and fast first loads for cold visitors. If yes, lean toward a framework that renders complete pages, like Next.js. If the front end is a private tool where those concerns fade, a lighter setup is fine. This is the kind of call we make with clients every week, and we are glad to make it with you rather than leave it to chance.
SEO with headless WordPress
Search visibility is a common worry with headless setups, and the honest answer is that headless can be excellent for SEO or it can hurt it, depending entirely on how the front end renders pages. The deciding factor is whether search engines receive complete, readable pages.
If the front end prebuilds pages or renders them on the server, search engines get full HTML with the content already in place, which is ideal. This is one of the arguments for using a framework like Next.js for a headless WordPress front end: it makes complete pages the default. If instead the front end renders everything in the browser, search engines first receive a near empty shell and have to run your code to see the content, which they can do but not always promptly. That is the pattern to avoid for a public site that depends on search.
The other thing to plan for is metadata. In traditional WordPress, popular SEO plugins manage titles, descriptions, and other tags in the page output. In a headless setup those plugins do not control the front end, so you either read their data through the API and apply it in the front end, or handle metadata in the front end directly. It is entirely doable, it just has to be part of the build rather than an afterthought. To understand what search engines actually measure on the speed side, our guide on Core Web Vitals is a useful reference.
Structured data, sitemaps, and clean, readable web addresses need the same intentional treatment. On a traditional site a plugin often generates the sitemap and adds structured data for you. On a headless site the front end has to produce those, which is a solved problem in frameworks like Next.js but still a task on the build list rather than something that appears for free. The good news is that when all of this is handled properly, a headless site often ends up with cleaner, faster, more controllable output than a plugin heavy traditional site, which is why teams that care deeply about search sometimes choose headless precisely for the control it gives them over what reaches the page.
When headless makes sense
Let us make this concrete. Headless WordPress is a strong choice when several of these describe your project.
- You want an ambitious, custom front end with app like interactivity that a theme would fight you on.
- Performance is a priority, and you want prebuilt or server rendered pages for fast first loads.
- The same content needs to feed more than one surface, such as a website and a mobile app.
- You want to reduce the public exposure of WordPress and serve a hardened, prebuilt front end.
- You have, or are hiring, developers comfortable with a modern front end framework.
- The site is important enough and busy enough to justify running two systems well.
A middle path is worth knowing about too. You do not have to go fully headless to get some of the benefits. A traditional WordPress site can be tuned to load quickly, kept lean by avoiding heavy plugins, and hardened with sensible security practices, and for many businesses that gets close enough to the goal without the extra system. Going headless makes the most sense when a traditional site, even a well tuned one, cannot deliver the front end you actually need, or when the multi surface and security arguments are strong on their own. If a tuned traditional site would do, that is usually the pragmatic answer.
And here is the honest flip side. Headless is usually not worth it when the site is small and standard, when the budget is tight, when non technical staff need to change the front end themselves through the dashboard, or when live preview and page builders are central to how your team works. In those cases a well built traditional WordPress site gives you most of what you need with far less overhead. Matching the architecture to the job is the whole game.
How to build one
At a high level, building a headless WordPress site follows a clear sequence, even though the details take real skill.
Set up WordPress as a back end. Install WordPress, model your content with the post types and custom fields the site needs, and decide how editors will work. Add WPGraphQL if you want a GraphQL API, or plan to use the built in REST API. The goal here is clean, well structured content, because everything the front end does depends on it.
Expose and secure the API. Confirm the content you need is available through the API, and decide how the front end and build process authenticate where needed. This is also where you plan how much of WordPress is exposed publicly versus locked down for editors and builds only.
Build the front end. Create the front end application, usually with Next.js for a public site, and have it request content from WordPress and render the pages. This is the bulk of the work: layouts, components, navigation, templates for each content type, and handling of images and media.
Handle previews, metadata, and forms. Wire up editor preview, apply SEO metadata in the front end, and replace any front end plugin behavior, such as forms, with front end equivalents. These are the details that separate a demo from a site a team can actually run.
Deploy both halves and connect them. Host WordPress and the front end, set up the build so publishing content updates the live pages, and test the whole loop from editor to visitor. Then monitor it like the two part system it is. If you would rather not assemble all of this yourself, this is exactly the kind of build our development team takes on.
Cost and timeline
The most honest thing to say about cost is that it depends on scope, and the only accurate number is a quote for your exact project. A headless build is generally more involved than a standard WordPress theme build, because you are creating a custom front end and running two systems instead of one. That extra effort buys speed, flexibility, and a hardened back end, and whether it is worth it comes down to how much those gains matter for your site.
On timeline, a focused headless build with a clear content model and a defined set of page templates is very achievable in a normal project window, while a large site with many content types, rich interactivity, and careful preview and metadata handling takes longer. The biggest driver is not the technology, it is how much custom design and functionality the front end has to deliver. A tight, well scoped first version keeps both cost and timeline sensible, and you can always grow from there.
We quote headless projects by scope rather than guesswork, so the number reflects your actual pages, content types, and features. If you want a realistic read on what your idea would take, the fastest path is to request a free quote and tell us what you have in mind.
Common mistakes to avoid
Headless projects go sideways in a few predictable ways. Knowing them in advance saves real time and money.
Going headless for a site that did not need it
The most common and expensive mistake is choosing headless for a small, standard site to sound modern, then paying for two systems and losing conveniences the team relied on. If a traditional WordPress site would serve the goal well, that is not a lesser choice, it is the right one. Reach for headless when the pull is real.
Forgetting about editor preview
Teams often build the visitor facing site beautifully and only later realize editors can no longer preview drafts the way they used to. Preview needs to be planned into a headless build from the start, not bolted on at the end when everyone is frustrated.
Assuming plugins will just work
Counting on a page builder or a front end plugin to carry over to a headless front end leads to unpleasant surprises, because those plugins render through the theme you are no longer using. Decide early what front end behavior you need and plan to build it in the front end rather than expecting a plugin to supply it.
Rendering only in the browser on a public site
Building the front end so it renders entirely in the browser, then wondering why search visibility and first load speed suffer, undoes much of the reason to go headless. For a public, search facing site, prebuild or server render the pages so complete content arrives right away.
Underestimating the two system reality
Treating headless as a one time build rather than two systems to run and update leaves teams surprised by ongoing maintenance. Plan for keeping both WordPress and the front end healthy over time, because that is the real commitment you are making.
Getting started
Headless WordPress is a genuinely good architecture for the right project. It keeps the editing experience your team knows, and it frees the front end to be fast, flexible, and built with modern tools. The cost is real complexity: two systems to run, preview and metadata to plan, and front end plugins that no longer carry their visible weight. When the pull toward a custom front end, strong performance, a hardened back end, or multi surface publishing is genuine, that trade is well worth making. When the site is small and standard, a well built traditional WordPress site is the calmer, cheaper answer.
If you are not sure which side of that line you are on, that is exactly the conversation we enjoy having. We build both traditional and headless WordPress sites, and a good team will point you to the lighter option when it is genuinely right rather than selling you complexity you do not need. You can read about the WordPress project itself at wordpress.org, and when you are ready, tell us what you are building and we will give you an honest recommendation.
Tell us about your site, your content, and what you want the front end to do, and we will map a sensible path, whether that is a headless build or a simpler route. We would rather send you home with the right architecture than the fanciest one, and we will say so plainly if a traditional build serves you better. You can get in touch whenever you like, or request a free quote, and we will help you decide with clear eyes.