Knowledge Hub
Headless WordPress
Written by Thom Krupa
Last update: 6/11/2024
Feature | Headless WordPress | |
---|---|---|
CMS Type | API | |
Editor Experience | ||
Dashboard Internationalization The CMS interface can be displayed in multiple languages, making it accessible for non-English speakers. | ||
Multilanguage Content Support for creating and managing content in multiple languages. Useful for global websites that need to cater to different regions. | ||
Scheduling & Releases Allows you to schedule content to be published at a specific time and date in the future. | N/A | |
Content Versioning Keeps track of different versions of content, allowing you to revert to previous versions if needed. Like an "undo" button for your content. | ||
Autosave Automatically saves changes as you work, preventing data loss if something unexpected happens, like a browser crash. | ||
Preview Content Lets you see how content will look on your live site before publishing it. Like a sneak peek before it goes live. | N/A | |
Multiple Environments Support for different stages of content (e.g., development, staging, production). This allows testing changes in a safe environment before going live. | ||
Workflow Sets up an approval process for content creation. For example, a writer might submit content, then an editor reviews and approves it before publishing. | N/A | |
Customizable UI Allows customization of the CMS user interface to match your brand or specific needs. | ||
Team Management | ||
User Roles Predefined roles (like admin, editor, viewer) with specific permissions. | ||
Custom User Roles Ability to create custom roles with specific permissions tailored to your organization’s needs. | ||
Organization Management Allows you to manage different user groups and access within the CMS. | N/A | |
Developer Experience | ||
REST API An API that follows REST principles, allowing developers to interact with the CMS using standard HTTP requests. | ||
GraphQL API An API that uses GraphQL, allowing clients to request exactly the data they need, making data fetching more efficient. | ||
Images API API specifically for managing images, including uploading, processing, and retrieving images. | ||
Content Management API API for managing content, including creating, updating, and deleting content items. | ||
Field Types Different types of data fields available for content, such as text, number, date, media, etc. | Advanced Custom Fields | |
Custom Field Types Allows you to create even more specific field types beyond the basic ones, to perfectly match the type of content you manage. | Advanced Custom Fields | |
Webhooks Allows the CMS to send real-time notifications to other systems or services when certain events happen (e.g., content published). You can use these to trigger actions in other applications. | N/A | |
CLI Command Line Interface tools that allow developers to perform tasks and manage the tool via the command line. | ||
SDK A set of tools and pre-written code snippets that developers can use to integrate the CMS with their project more easily. | ||
Free Tier | ||
Free Plan Available Some headless CMS providers offer a free plan with limited features, allowing you to try it out before committing. | you need to pay for servers | |
Team Members The number of users (team members) that can be added to the CMS. | Unlimited | |
Locales The number of different languages and regional settings the CMS supports for content creation and management. | Unlimited | |
Projects Support for managing multiple projects within the same CMS account. | Unlimited depends on the server | |
Security & Compliance Offerings | ||
Two-factor authentication Adds an extra layer of security when logging in. | N/A | |
Team Logs Tracks user activity within the platform for better accountability. | N/A | |
GDPR Compliance with the General Data Protection Regulation for handling personal data. | N/A | |
SOC2 Service Organization Control 2 compliance for managing customer data. | N/A | |
ISO27001 International standard for information security management. | N/A | |
Others | ||
Extensions Additional plugins or add-ons that can enhance the functionality of the platform. | ||
Built-in Backups & Restore Features that automatically back up content and settings, allowing easy restoration in case of data loss. | N/A |
It's WordPress without the PHP theme. Instead of querying data in templates, you use API to fetch content. Similar to other headless CMSes you can use whatever front-end you want. Without the need to learn or even touch PHP. It's also simpler to maintain and keep safe. If you consume content during the build or first render, you don't need to deal with traffic spikes or issues with performance and uptime.
Often the main reason to decouple CMS from the frontend is the will to freely use modern frameworks like Next.js or Gatsby. With those tools come multiple benefits, from a better developer experience to a great UX that gives modern JS frameworks like React and Vue.
Every site running WordPress since version 4.7, which has been published in late 2016, is a headless CMS by default unless you’ve disabled it. The REST API endpoint in WordPress started as a plugin and eventually, it moved into core.
It's pretty powerful and you can manage every part of the WordPress website, from posts, pages to menus and WP settings. The issue is, that often in real-world projects you need all of this data all at once. It might be quite a waste of resources to make requests for all of those endpoints on every single page request or during static pre-building.
Here comes the WPGraphQL plugin.
The plugin enables a graphql endpoint to fetch exactly the data you need with one single request. It integrates with some of the most popular plugins like Advanced Custom Fields or Yoast. Similar to REST API, WPGraphQL offers an easy way to extend existing queries or create new ones.
The headless WP community is bigger than ever. The plugins are hitting stable, production releases and are used by more and more developers. Just take a look at the most popular WP plugins.
Last year, Yoast announced even better Yoast REST API endpoint. It integrates with WPGraphQL too thanks to plugin created by Ash Hitchcock. It's not an official integration, but works really well.
ACF integrates with both REST API and GraphQL. If implemented properly you can create a very structured and powerful content models. You can create reusable components that will be available in different post/page templates. Editors can easily create landing pages and posts. Then you can fetch that data using GraphQL fragments, like this:
{
post(id: "acf-example-test", idType: URI) {
acfDocs {
flexibleContent {
__typename
... on Post_Acfdocs_FlexibleContent_LayoutOne {
text
anotherTextField
}
... on Post_Acfdocs_FlexibleContent_LayoutTwo {
image {
id
sourceUrl(size: MEDIUM)
}
}
... on Post_Acfdocs_FlexibleContent_LayoutThree {
gallery {
id
sourceUrl(size: MEDIUM)
}
}
}
}
}
}
There are WordPress filters, hooks, and actions available if you want to customize or build new functionality into your site. Or better yet develop it as a plugin and release it on WordPress.org or publish it on GitHub. You can check out a list of WPGraphQL extensions here.
It's not just about the plugins. Many tools and companies start to see an opportunity in the headless WP movement. There is a great integration with Gatsby via gatsby-source-wordpress. It's been downloaded almost 1 million times already and it's growing.
WPengine works on their own headless solutions, check out Atlas which helps with managing headless WP instances.
We have had an opportunity to work on a bunch of Headless WordPress projects. One of them we/ve featured on our blog. Check out the Backlinko case study. After a few years of monolithic infrastructure, they decided to move to Next.js and headless WordPress. The website is now 3 times faster.
We struggled with Backlinko's loading speed for years. Due to large, high-res images and illustrations, our page sizes were enormous. And despite optimizing our WordPress theme as much as possible, our load times were still slow.
We decided to work with Bejamas to help move us over to Next.js. The move made a tremendous difference in our load times and Core Web Vitals scores.
Brian DeanSEO Expert, Founder of Backlinko.com
While WordPress might be the most popular solution for businesses, downsides can be overwhelming. For example, we've recently researched 20K websites for speed and performance and found that 79.3% of WordPress run websites have a poor or slightly above poor Lighthouse performance score ie 0-50. With Google pushing for speed as an important ranking factor this may become a problem for businesses.
From a business standpoint, headless WordPress is a great solution if you already use WP. If you (and editors!) like its design and feel, just give it a try!