Documentation

headless hostman, built by top hat
How It Works
What is Static WordPress?

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.

How Our Platform Works: WordPress + Static Hosting Integrated Under One Roof

For each website, you get:

  1. A vanilla WordPress website. Manage your content like normal.
  2. Our tech living on your WordPress website, which enables all of our features including the convert WordPress to Static
  3. A Static live site, hosted on the serverless Cloudflare network

You also get:

  • A Portal to manage all of your sites including: backups, FTP, users, security controls, DNS settings, and more.
This is Not a Traditional WordPress Host

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:

  1. Static Conversion tools, directly within WordPress
  2. A Static Live site, to host your production, live website

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.

Getting Started
1. Head to Our Get Started Page and Choose a Plan

Head to our Get Started page.

Pick Your Plan

Plans are based on unique monthly visitors. Bots and scrapers are not included.

  • 1 person = 1 visitor
  • Same person refreshing 100 times = still 1 visitor

You can have unlimited sites within that formula.

  • Ex: 10 installs × 1,000 monthly visitors = eligible for Phantom Flicker

You Can Always Upgrade Later

And we’ll been keen on letting you know when you’re approaching your limits.

2. Enter Your Info and Checkout

At checkout, you’ll enter:

  • Company Name — used to create your profile for the Cult Portal
  • First & Last Name — used on your WordPress site and Cult Portal
  • Email — used to deliver login credentials and onboarding info

Make sure your details are accurate.

  • Our system uses them to auto-generate your accounts.

You will be charged within 24-48 hours. The invoice and receipt will come from Top Hat.

  • If you selected “annual billing,” you will be charged for the full amount.
3. Receive Your Starter WordPress, Test Static Site, and Cult Portal Access — Instantly

You’ll land on a thank-you page and receive an email with your login credentials.

Your email contains (3) things:

  1. WordPress Site: A vanilla WordPress install like you’re used to. No fluff, just the basics—plus the Headless Hostman plugin that lets you publish to static with a click.
  2. Static Infrastructure: Each starter site is connected to a test domain so you can preview everything before going live. You can update the domain later when ready.
  3. Cult Portal Access: Think of it as your cPanel alternative for site management.

Our emails tend to hit the spam folder a lot, so please check there if you don’t see it.

4. The Cult Portal for Backups, FTP, and DNS Switching

Think of it as our version of cPanel, or any major hosting company’s dashboard.

From here you can:

  • Rename your default site
  • Access staging and WordPress links
  • Configure DNS when you’re ready to go live
  • Find FTP credentials
  • View static build logs
  • Enable backups
  • Add company users with delegated access
  • Manage billing and affiliate links

You can also add other sites, as long as your plan limits are maintained.

5. Migrating an Existing Site to Your New Blank WordPress Site

Log into your Starter WordPress site and get to work.

Two options:

  1. Use a plugin to migrate content yourself
  2. Or request a 100% free migration—just add us as an admin, and we’ll move the site in 1–2 business days

If you DIY, we recommend All-in-One WP Migration.

Pushing to Static
Full Site Push

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.

  • Note: Any push takes at least 2 minutes to be visible live after it “completes” within our platform

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.

Other Push Methods (Single, Partial, Mapping)

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.

  • These target page or post types
  • They’re faster and laser targeted

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.

Automatically Updated: Sitemaps and Robots.txt

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.

Automatically Updated: 404 Page

We automatically push your 404 page with every Full Push.

You can also re-push it manually Full Push > Global Elements.

Needs Manually Pushed: 301 Redirects

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.

Revert to a Previous Static Deploy

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

static wordpress revert and rollback tool

Click Revert Here

wordpress static revert in action

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.

DNS and Launching
0. [Please Read] Best Practices for Launch
  • Be sure you QA your Static Test site results carefully.
  • Coordinate with our team if you’d like assistance. We’re happy to, free of charge. We require 2 business days advanced notice to handle your request.
  • Schedule your DNS change and push during off-peak hours.
  • Make sure clients or internal stakeholders know it’s coming. Prepare them for downtime.
  • Reverting is always an option if something goes wrong.

For smoother switchovers:

  • We advise switching TTL to the lowest number possible on DNS changes.
1. Head to the Cult Portal and Locate Your Site

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.”

2. Locate DNS and Click "Change Live URL"

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.

3. [Please Read] Apex Domains and Static Cloudflare

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.

4. Confirm DNS and Initiate Update

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.

5. Re-push the Static Site from WordPress (with the Final Domain Associated)

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.

Advanced Features
Admin Console: Delegation & Notifications

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.

Global Elements: Instant Navigation, Footer, and Script Updates

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.

global element header example

Elements you can configure this way include:

  • Navigation bars
  • Footers
  • Header scripts
  • Body scripts
  • Footer scripts
Site Diagnostics

The diagnostics panel checks essential site health metrics:

  • Is your live website up?
  • Is the homepage rendering?
  • Are your important SEO tags (index tags, sitemaps, robots.txt, x-robots headers) present and valid?
  • Is your 404 page returning the correct status?
  • Is HSTS (Strict-Transport-Security) enabled?

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.

Security: Freeze Your WordPress Website

Not super active in your WordPress site? You can shut it off.

Here’s How:

  1. Head to the Cult Portal
  2. Navigate to the Site you want to shut down
  3. Click “Freeze It” under “WordPress Carbonite”
  4. Done

It will be complete inaccessible, but your Static Site will be alive and well.

Security: Two-Step WordPress Authorization

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:

  1. Head to the Cult Portal
  2. Navigate to the Site you want to lock down
  3. Click “Require” under “Two-Step WordPress Login”
  4. Done
Security: IP Login Restriction for WordPress

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.

Cult Portal Google Single Sign On

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.

Performance Package
Built for Headless WordPress without Any Plugins

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.

Optimize CSS

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.

Optimize Image Loading

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.

  • Please be aware, if your Theme builder is using this by default do not turn this on as it will cause issues.

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:

  • Load Above Fold Background Images on First Interaction
  • Convert Above Fold Background Images to IMG Elements

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.

Optimize Scripts and HTML

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 Scripts and Stylesheets

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.

Developer Functions
Programmatic Single Page Push

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

Programmatic Deletion of Single Page or Push

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)

Programmatic Full Push by Post Type

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)

Programmatic Push by Array of IDs

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)

Request a Custom Function

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.

Incompatibilities
NitroPack

NitroPack tries to do what we do, in a non-static way.

It doesn’t play nice with our native functions.

WP Rocket, Perfmatters, and Other Optimization Plugins

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.

Sucuri (for your Live Site)

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:

  1. Prevent brute force entry
  2. Scan for malware or problematic code
  3. And the like
WooCommerce

We’re working out an integration for this. Stay tuned.

Common Troubleshooting
[Insert thing here] Doesn't Work on the Static Site. What Do I Do?

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.

What Are "Credits?"

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.

When to Turn Off Critical CSS "Save Generation"

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.

Some Assets Are Missing on the Static Site

If you’re missing assets on the Static site:

  1. Make sure they’re visible on your WordPress site
  2. Open Inspect Element or the Network tab to make sure they’re actually loading from a URL on your site — not the previously migrated site

If they’re still missing:

  1. Head into the individual page/post
  2. Click the “Clear File Cache” option
  3. Re-push the entire page/post

If they’re still missing:

  1. Click the “Files We See” button and see if it appears in the listing

If they’re still missing:

  1. Contact us via Live Support or email
Can I Test Changes Before Sending It Headless?

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.

How Can I Push My 301 Redirects?

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.

  1. Download Redirection, Rank Math, or Yoast SEO Premium — if you don’t already use one of them
  2. Enter them there, if they don’t exist.
  3. If you’re using another Plugin, export from there and then import into Redirection. It’s super easy.
  4. Any time you make edits, head to Full Site Push and click “Push 301 Redirects”
  5. That’s it.

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]

Do Cookies Work?

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.

How Can I Make Sure a Page Doesn't Get Sent Headless?

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.

I've Activated a New Plugin. Why Doesn't It Work?

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.

I'm Getting a Robots.txt Issue in the Notifications Center. What Do I Do?

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.

Common (Non-Hostman) Issues with Elementor

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.

Technical Specs
Is This a Plugin?

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.

What's This Built On?

Our conversion tool is built with PHP and native WordPress functions.

How Does it Crawl and Convert?

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.

Does Ajax and/or WP-JSON Work on the Static Site?

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

Where Does the Live Static Site Live?

Our default network is on Cloudflare serverless Static.

We do have a custom package tier with a full AWS integration. Contact us to discuss.

Does Multisite Work?

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.

Contact us today to discuss.

Are Dedicated Servers Available?

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.

Are You ISO and SOC 2 Compliant?

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.