Static WordPress is a version of your site that embeds images and files directly onto flattened pages.
These pre-rendered pages are totally separated from database servers. The combination creates a faster, more secure, and far more resilient website.
Headless Hostman takes the best of both traditional WordPress and countless Static solutions to create a site that is easy to manage, fast, and secure.
For each website, you get:
You also get:
If you’re looking for another plain WordPress host, this isn’t for you.
Yes, we give you all the functionality of WordPress — in its true form — but there is one extra layer:
Edit your content. When you’re done, hit update, and then hit “update on Headless” or do a push and we’ll handle the rest.
It’s a slight change to your publishing process, but it is a change.
Head to our Get Started page.
Pick Your Plan
Plans are based on unique monthly visitors. Bots and scrapers are not included.
You can have unlimited sites within that formula.
You Can Always Upgrade Later
And we’ll been keen on letting you know when you’re approaching your limits.
At checkout, you’ll enter:
Make sure your details are accurate.
You will be charged within 24-48 hours. The invoice and receipt will come from Top Hat.
You’ll land on a thank-you page and receive an email with your login credentials.
Your email contains (3) things:
Our emails tend to hit the spam folder a lot, so please check there if you don’t see it.
Think of it as our version of cPanel, or any major hosting company’s dashboard.
From here you can:
You can also add other sites, as long as your plan limits are maintained.
Log into your Starter WordPress site and get to work.
Two options:
If you DIY, we recommend All-in-One WP Migration.
Please Note: If we migrated the site for you, you can skip this step after onboarding and come back to it when you need.
If you migrated the site yourself, you’ll first want to publish everything to the test static domain.
To get started, scroll down and click “Let’s Ride.”
This will take every published page on your WordPress site and publish it statically. The first time may take longer as the system absorbs, pushes, and caches all assets. Future pushes are faster after this big ingestion.
Once the push is complete, click “View Live Site” to preview the static staging site before changing DNS. Be sure to QA everything before going live.
After your first, big push you shouldn’t necessarily need to do a Full Push very often.
Especially with Global Elements (scroll down). We’d recommend picking only what needs to be updated from the options below.
Single Page Push/Deletion
After the first full push, you can push individual pages when making updates. On the page editor sidebar, click “Update this page on Headless”. The system will confirm success and update the date stamp.
You can also delete pages from the static site. Click “Delete” and the page will be removed from the static environment. WordPress will mark it as a draft, ensuring only published content is live.
Having issues with page assets? Use “Clear Assets” on that page, then re-push to re-ingest all images and files.
Partial Push (by Post Type)
In the Full Push menu, you can also select to do a partial push by selecting the Post Type.
Post-Mapping
Post-mapping allows you to automate pushes using conditions. For example, auto-update a status page every 24 hours using cron triggers.
More commonly, when you publish a blog post, you can map related pages (like blog indexes or the homepage) to update automatically. This keeps listing pages synced without manual effort.
Sitemaps and Robots.txt are updated with every push action.
If you need to manually re-push them for any reason, you can do so under Full Push > Global Elements.
We automatically push your 404 page with every Full Push.
You can also re-push it manually Full Push > Global Elements.
We support Redirection, Yoast SEO, and RankMath.
Redirects need to be manually pushed each time you update them (within their associated Plugin menus) to avoid pushing unverified rules live prematurely.
Every Static deployment is logged in Cloudflare and available in the Cult Portal on a site-by-site basis.
If you need to revert to a previous deployment, it’s nearly instant.
Head to the Site in Question, and Scroll Down to Deployment Logs
Click Revert Here
And, You’re Back to the Future
The Deployment should be immediately available upon confirmation.
Future Deployments Will Overwrite
Please note: the next push of any varietal will overwrite a reverted deployment.
For smoother switchovers:
Log in to your Cult Portal and locate the site you’re ready to launch.
It will be on the home page under “My Sites.”
Click “Change Live URL” under DNS.
Input the domain you want to use (e.g., doxordeath.org
).
Once entered, the system will begin verifying DNS records.
If and when the A record and CNAME are correct, you’ll see confirmation with green icons.
Your site is not live yet. But it’s ready.
Cloudflare Static currently doesn’t currently support Apex domains (non-www) unless you manage DNS through Cloudflare.
To use a domain like example.com
, instead of www.example.com
, you must move your DNS to Cloudflare by updating your domain registrar’s nameservers.
Once your DNS is managed through Cloudflare, delegate access to our team so we can configure your Apex domain.
Until Them, We Automatically Use the WWW Version
Until then, we use the www version automatically.
We also automatically redirect the Apex to www, and there’s no SEO downside to this setup.
Once you see green checkmarks confirming your DNS is pointed correctly, click Update Static Site.
The system will prompt you to immediately re-push your site to apply the domain change to the static environment.
This is critical. Until the push happens, visitors won’t see your live content properly and your live domain will render a broken site.
You’ll be redirected to initiate a full site push. Complete this step to publish your updated site using the final domain.
After the push is done, any warning messages in the Cult Portal will disappear, and your site is now fully live.
Delegation Panel
As an admin, you have access to the Delegation Panel. This lets you assign a Site Master—a superuser role within Headless Hostman.
Site Masters can be granted granular control, including permissions for full pushes, partial pushes, performance controls, post mapping, and diagnostics access. If you don’t assign these, default permissions apply: admins see everything; editors can push or delete.
Notifications
You can set up email notifications for events like full pushes, partial pushes, sitemap updates, and 301 redirects. By default, the initiator of an action receives the email. You can also CC additional users as needed.
IP Lockdown
You can restrict WordPress access by IP address. This is mainly used in enterprise settings. If you’re not familiar with managing static IPs or proxies, proceed with caution.
Do you have to re-push your entire site when you update your menu, footer, or site-wide scripts?
Nope. You can configure Headless Hostman to recognize global elements by class or ID. Once configured, these elements can be pushed independently from the Full Push > Global Elements menu.
Example: If you change your navigation bar and have 109 pages, you don’t need to push all pages.
Just add the nav class or ID to the global sync list, save it, and trigger the push—it updates across your site in minutes.
Elements you can configure this way include:
The diagnostics panel checks essential site health metrics:
Browser Changes
The system also watches for browser-specific script issues.
For example, when Firefox released a breaking update in April 2025, our affected customers were notified automatically.
Error Log
You also have access to an error log for debugging broken plugins or development issues.
Not super active in your WordPress site? You can shut it off.
Here’s How:
It will be complete inaccessible, but your Static Site will be alive and well.
Our most-popular security feature is two-step Auth.
This requires anyone logging into WordPress to log into the Cult Portal first, and click “Access Site.”
Everyone else? They get the red screen of death.
Here’s How:
Within the Admin Console, you can enter a range of IP addresses — one per line — to restrict access to the WordPress site.
This is for advanced users who know what they’re doing. You should only use this if you or your organization uses a Dedication IP address for a Proxy or VPN.
Once this is toggled on, the two-step auth (mentioned above) is automatically disabled as they are conflicting in principal.
Upon request, we can restrict your company’s Cult Portal access to Google Single Sign on.
A few credentials are required to do so.
We are developers, so if there is another solution you’d like to implement for SSO at the Cult Portal level feel free to reach out, and we can quote it out.
Headless Hostman includes a custom performance pack built specifically for static publishing.
Popular caching plugins like WP Rocket or Perfmatters don’t work efficiently here, because they cache pages dynamically and rebuild every time they’re cleared. Because of that, the changes are often delayed or harder to detect by our Static Conversion mechanism.
Instead, our performance features — like critical CSS, style deferring, Gutenberg cleanup, and lazy loading — are applied automatically when you push your site to static.
These have no effect on your staging environment and don’t interfere with previewing changes.
Generate Critical CSS
This captures the CSS needed to render the above-the-fold content on each page and places it at the top of the document.It improves First Contentful Paint by allowing the browser to render visible content immediately, without waiting to load all external stylesheets.
Be aware, your Theme or Site Builder might already do this. It’s not a good idea to stack them.
Defer Stylesheets
After the above-the-fold content is rendered, deferred stylesheets load the rest of your styles in the background.
You must combine this with Generate Critical CSS to prevent layout shifts.
Gutenberg Removal
Even on custom themes, the Gutenberg block editor may still load.
If you’re not using it, remove it here to improve speed and reduce clutter.
Lazy Load Images
Lazy loading delays loading of images that appear below the fold until they are about to come into view.
You can choose between default, faster, and fastest preload thresholds to control when images load during scroll.
Auto Preload Images Above the Fold
This ensures that above-the-fold content is always loaded instantly by automatically reading what’s appearing and embedding them in the header as preload links.
It bypasses lazy loading for these assets during static conversion and forces them to preload.
This improves FCP and other core vitals.
Experimental Features: Background Images
Background images cannot be preloaded. Anything above-the-fold should be an IMG tag object.
However, two experimental features can help:
These are experimental and should be tested before use.
Add Image Dimensions
Automatically adds width
and height
attributes to all image tags.
This prevents layout shift and improves visual stability on load.
Defer Scripts Until First Interaction
Prevent render-blocking by deferring JavaScript execution until the user interacts with the page. This includes scrolling, touching, clicking, or moving the mouse. Scripts will then load and execute in the background.
A must-have if you want instant speed score boosting.
Lazy Load Iframes
Iframes (e.g., embedded videos or forms) are slow.
Lazy load them unless they appear above the fold. Options include fast, faster, and default load thresholds.
Defer Below-the-Fold Content
This uses visibility: hidden
to deprioritize content below the fold.
It doesn’t dramatically improve PageSpeed scores but may help actual browser performance.
Minify HTML
Minified HTML reduces page size and theoretically improves parsing speed.
Not always impactful, but it’s available.
Troubleshooting: Stylesheets
If things break when using “Defer Stylesheets,” you can and should exclude mission-critical stylesheets.
Just paste the relative URL into the exclusion field.
Troubleshooting: Scripts
Use our smart exclusion library for scripts that shouldn’t be deferred. It’s been compiled from common issues across hundreds of sites. If needed, enable this to automatically exclude known problematic scripts.
Use the Test Tool
Our built-in test tool lets you render any page as static without pushing it live.
Use this to experiment with performance settings safely and preview the results before deployment.
Building a custom function and want to call the Hostman to push a page?
Use the following function. It will also call to update mapped pages, too.
headless_hostman_push_single_page($postid)
Please Note
This is not intended to be fired rapidly. By doing so you will cause a development pipeline hold up.
If you need to push more than a small handful of posts, use the push by Array of IDs
Building a custom function and want to call the Hostman to delete a page?
Use the following function. It will also update mapped pages, too.
headless_hostman_delete_single_page($postid)
Building a custom function and want to call the Hostman to push an entire post type?
Use the following function. Please note, post_type must be in the lowercase version — like you would use for a WP Query (ex: page, post). It only accepts one at a time.
This function is set to not conflict with existing Full Pushes. If one is going on when this function is called, it will try again in 5 minutes.
While running, you cannot initiate another full push unless you go to the Full Push page and cancel. You can also view progress there, if you wish.
headless_hostman_full_push_by_type($post_type)
Building a custom function and want to call the Hostman to push an array of Post/Page IDs?
Use the following function. Please note, the array must properly formatted, ex: array(1, 2);
.
This function is set to not conflict with existing Full Pushes.
headless_hostman_push_array($array)
We are developers, and regularly collaborate with our customers’ development departments to create custom solutions.
If you need one, please reach out to discuss. We’ve provided bespoke solutions for dozens our or customers.
NitroPack tries to do what we do, in a non-static way.
It doesn’t play nice with our native functions.
Technically, WP Rocket and all the optimization Plugins can work.
But they don’t work well with Headless Hostman.
Our Native Performance settings match every function offered, are meant for Static, and are far superior.
Everything is routed through Cloudflare. This enables your domain to get WAF, bot protection, and the like.
You cannot have Sucuri in front of it additionally.
You could, however, use it to protect this WordPress staging site to:
We’re working out an integration for this. Stay tuned.
The first thing to check: does it work on your Staging WordPress site?
Whatever it is — a missing image, file, broken script, load delay — if it’s not working on your Staging WordPress website it’s not going to work on your Static Site. Our tool takes what you have, as it is.
For troubleshooting your Staging WordPress website, use inspect element and the Network tab to see if anything is pulling an error.
In the Full Site Push panel, you’ll see API credits.
These are not paid credits. You can’t buy more. You don’t need to buy more.
We use these to make sure our infrastructure doesn’t get overloaded by requests from your website. You’ll likely be well within its limits.
These credits refresh automatically every hour.
Enterprise Customers
Our Enterprise Customers get access to more than 5,000/hour depending on their plan.
If you’re using any functions or Plugins to trigger wp_update_post
, it is mission critical to click the exclusion option under Performance > Critical CSS.
Our native Critical CSS generator looks for you to save/update a post. When it does, it auto regenerates the Critical CSS via a Cron Job in the background.
Triggering the wp_update_post
hook will cause this to fire, and to schedule many corresponding Crons that will slow down the functionality of our Conversion mechanisms.
If you’re missing assets on the Static site:
If they’re still missing:
If they’re still missing:
If they’re still missing:
Yes, you can.
Within each individual post/page is the ability to test a conversion and view it before pushing to Headless.
Run the test, click the link, and verify all is well.
Your on-site 301 redirect plugins will not function by themselves because your site lives on the Headless Hostman Static environment.
301s are server-based, not WordPress-based. This is no longer your live site server — it’s your staging site.
It’s easy to push them, though.
We Do Not Support .htaccess Redirects
They must be entered using one of the three Plugins mentioned above.
Want us to add a Plugin? Drop us a line at [email protected]
In short, yes. But a big caveat.
PHP cookies do not work because your live site is Static and disconnected from a database.
However, just make your cookies run with Javascript/jQuery and they’ll be ready to rock.
If you need developer assistance making these changes, reach out.
Simply mark it as “Draft” in WordPress.
We only push Publish-status pages.
If you do a Full Site push, all Draft-status pages/posts are ignored. If they were already sent, they will then be deleted during the Full Push.
You can also head to the post/page and hit the “Delete from Headless” button to remove it without a Full Site Push.
Most Plugins work out of the box. Some may need a tweak, or in rare cases, may not work with Headless Hostman.
If the Plugin makes sitewide changes, you need to do a Full Site Push.
Contact us to get a diagnosis.
SEO Plugins are notorious for not writing robots.txt to the public root folder.
You can Google how to do so with your SEO Plugin, or just copy the contents from the Plugin, create your own file, and use FTP to upload it to the root folder (public_html).
After you do so, be sure to head to Full Push > Push Sitemaps & Robots.txt, and verify it on your live site.
Elementor is famous post-migration for not updating Stylesheets with the new domain.
If you see missing assets on your Elementor site, it’s likely this.
Click their “Regenerate CSS,” or manually update offending Stylesheets to be relative links.
Not in the traditional sense of the word, no.
The Headless Hostman files live outside of the public_html and cannot be found in the plugins folder, or anywhere within your site install.
The only thing you will see is our MU-PLUGIN defining the directory and holding our critical platform image assets.
Our conversion tool is built with PHP and native WordPress functions.
We use native WordPress functions, heavily reliant on WP Query and Post IDs to identify pages — depending on what Push feature you use.
We don’t “crawl” your site blindly. We don’t use browserless emulators.
Yes, it does.
Our goal is to reduce the amount of work needed to get your site onto Static to the bare minimum.
We’ve set your Headless environment to route Ajax and WP-JSON requests back here to your Staging Site to return results to the Static Site. We obfuscate your URL so the Staging Site URL is never exposed. We also don’t allow any other sites to make those requests.
If you’re coding functions with Ajax, always make the URL reference this staging site in full. We will automatically search and replace it with your Live URL and route it back here in a secure fashion
Our default network is on Cloudflare serverless Static.
We do have a custom package tier with a full AWS integration. Contact us to discuss.
We have a full Multisite integration. If you’re trying to buy this, you do need to go through an onboarding with our team as Multisite is a beast all of its own.
Yes, if your organization needs a dedicated WordPress server we can provide one within an Enterprise package.
For the Live Static site, on Cloudflare, it’s a serverless infrastructure. It’s a dedicated nameserver area, and is dedicated in the spirit of the term — although that terms doesn’t truly apply to serverless in our opinion.
If you’d like a true “dedicated static live site” you should use your own AWS S3 Static Service, which we are compatible with.
We have started this process with Vanta and are awaiting a final audit to make it official.
This process can take up to two years, but we are making strides. Our progress in the interim has introduced aligned controls, data handling, and internal policies that are available upon request.