Cache tuning · Beginner · 30 minutes
How to set up WordPress caching — The Cache Header Is the Only Verdict
You want cached HTML answering in double digits rather than hundreds of milliseconds, and proof that it is actually being served from cache.
The short answer
Take a TTFB reading first, then enable LiteSpeed Cache and confirm the response header reports a hit — that header is the only verdict that counts, because a site can feel quicker and still be rebuilding every page in PHP. On LiteSpeed hosting the plugin talks straight to the server's own cache engine, which no PHP-level caching plugin can do from inside the request it is trying to shorten.
A cached page on this platform should come back comfortably under 200 ms for a nearby visitor. Persistent readings above roughly 600 ms mean the cache is not being hit, or is not being used at all, and no image compressor will fix that.
By the HostingFast team · Reviewed 24 August 2026
Beginner
Assumed skill
30 minutes
Time at the keyboard
5
Stages in the runbook
24/7
Engineers on shift
This runbook is ordered around measurement: baseline, one change, re-measure. That order is what stops caching from becoming a folder of toggles nobody can explain six months later.
One habit before you start: log out, or use a private window, whenever you judge the result. Logged-in administrators bypass the page cache entirely, so your everyday browser is showing you the one experience no visitor ever has.
Baseline before you enable anything
`curl -s -o /dev/null -w '%{time_starttransfer}' https://yourdomain`, run five times, gives you the number this whole exercise is meant to move. Write it down. Without it, every later change is an opinion.
Take it from a private window's perspective — that is, unauthenticated — and against a page real visitors land on rather than the homepage nobody visits. A product page or a popular post is a more honest baseline than the front door.
Server-level cache beats PHP-level cache, and here is why
A caching plugin written in PHP still has to boot PHP to decide whether to serve the cached copy. LiteSpeed's cache lives in the server itself, so a cache hit is answered before PHP is involved at all. That structural difference is why the right plugin on this platform is LiteSpeed Cache and not a generic alternative.
Enable page caching and leave the TTLs on their defaults. The plugin ships with sensible presets, and most sites are transformed before anyone opens an advanced panel. Then read the response headers on a second request and confirm the LiteSpeed cache header reports a hit.
The pages that must stay dynamic
Carts, checkout, account pages and logged-in views must never be served from a shared cache. On WooCommerce the plugin excludes these automatically — verify that it has rather than assuming, then add any custom dynamic pages of your own to the exclusion list.
The failure here is quiet and expensive: a cached cart shown to the wrong customer looks like a bug for weeks before anyone works out what it is. Test by adding an item in a private window, then loading the cart in a second private window and confirming it is empty.
Layer the extras one at a time, and re-measure
WebP conversion, CSS and JavaScript minification, browser cache headers, critical CSS. Enable one, test the site, then move to the next. Flipping nine switches together tells you nothing when a page breaks, and reverting the lot is the only remaining option.
Re-run your curl baseline after each one and keep the numbers in a note. If cached HTML is already under 200 ms, further server-side tuning has little left to give and your remaining seconds are in payload and rendering — which is a different job with different tools.

Where the cache lives in the server
Every runbook here was exercised on the platform we actually operate — cPanel, LiteSpeed, NVMe storage, one-click installs — so the cache headers and panel screens match yours rather than a generic host's.
NVMe storage and LiteSpeed caching power every tier, from the smallest plan up — speed is the baseline here, not an upsell.
- LiteSpeed caching built into the server, not patched in by plugin
- Built-in WebP image optimisation at no extra cost
- NVMe SSD storage on every tier, not just the expensive ones
- Staging environments for testing changes before they ship
Why HostingFast
Standard on every plan
A baseline before a change
One curl command, run five times, gives you the figure every later step is measured against.
The header is the proof
You confirm a cache hit from the response headers rather than judging by how the site feels.
The mechanism explained
Server-level caching answers before PHP boots, which is why the plugin choice on LiteSpeed is not arbitrary.
Exclusions verified
Cart, checkout and account pages are checked in two private windows, not assumed to be excluded.
One switch at a time
Extras are layered and re-measured individually, so a broken page has exactly one suspect.
Scoped honestly
Getting caching right on the first pass is a beginner-level job — about 30 minutes, including the measurements.
Quick Start
From order to online
- 1
Take the baseline reading
`curl -s -o /dev/null -w '%{time_starttransfer}' https://yourdomain`, five times, against a page visitors actually land on. Write the figure down — everything after this is a comparison against it.
- 2
Install the plugin that matches the server
On LiteSpeed hosting, LiteSpeed Cache. It speaks to the server's own cache engine, so a hit is served before PHP boots — something no PHP-level plugin can do from inside the request.
- 3
Enable page caching on the defaults
Turn caching on, leave the TTLs alone, then request the page twice and read the response headers. The LiteSpeed cache header reporting a hit is the only confirmation that counts.
- 4
Verify the dynamic exclusions
Cart, checkout, account and logged-in views must stay dynamic. WooCommerce pages are excluded automatically — test it with two private windows, then add your own dynamic pages to the list.
- 5
Add one optimisation, re-measure, repeat
WebP, minification, browser cache headers — one at a time, with a curl reading after each. And find the purge button early: 'my edit is not showing' is almost always yesterday's cached copy doing its job.
Built In
Loaded onto every plan
- LiteSpeed caching built into the server rather than patched in by plugin
- Built-in WebP image optimisation at no extra cost
- NVMe SSD storage on every tier, not just the expensive ones
- Free SSL on every plan, renewed automatically before it can expire
- Staging environments for testing changes before they ship
- Per-site PHP version switching from the control panel
- Daily backups, with self-service restores you run from the panel
- cPanel — the control panel most of the industry already runs
- Human support on duty every hour of every day
- 99.9% uptime as the target, monitored around the clock
Frequently Asked
What people ask us most often
What number should a cached page actually return?
A cached page served to a nearby visitor should come back comfortably under 200 ms, against the 800 ms Google treats as a good time to first byte. Readings that sit above roughly 600 ms on cached HTML point at the cache not being hit, or at contention on the machine — and no amount of image compression moves that figure.
How do I prove a page is being served from cache and not rebuilt?
Request it twice and read the response headers on the second request: the LiteSpeed cache header will report a hit. Do it unauthenticated, because logged-in administrators bypass the page cache entirely. The site feeling snappier is not evidence — the header is.
Where does the platform physically run?
From a London datacentre with redundant power, cooling and multiple upstream carriers, fronted by server-level caching that keeps cached pages quick for visitors anywhere. For most sites the engineering matters more than the pin on the map — NVMe disks, LiteSpeed, and restrained account density per machine move the numbers further than geography does.
Is the free SSL certificate genuinely free?
Completely, on every plan. It issues as soon as your domain points at us and renews itself well before expiry. Cryptographically it matches any paid DV certificate — the paid options exist for wildcard coverage or organisation validation, which most sites never need.
Keep reading
How to Reset Your WordPress Password
Get back into wp-admin by the fastest route you still hold — WP-CLI, phpMyAdmin or the email link — beginner, about 5–15 minutes.
How to Park an Extra Domain
Put the idle names you are holding to work instead of leaving them resolving nowhere — beginner, roughly 5 minutes each.
Best Joomla vs WordPress
The shortlist with the reasoning shown: which specifications change the numbers and which are there to fill a table.
Joomla Hosting
Joomla installed in one click, with your existing site migrated in free.
Drupal Hosting
Drupal with Composer, Drush and per-site PHP control available on tap.
Changing hosts? Run through our checklist first.
A straightforward sequence for a switch your visitors never feel: which files move first, how to shift email across without losing a single message, the right moment to repoint DNS, and the two mistakes behind almost all the downtime we get asked to rescue.
Cache it in the server, not in PHP.
LiteSpeed caching compiled into every tier, NVMe storage, built-in WebP and free SSL — with engineers on shift at any hour.
View Joomla Hosting plans