Page cache stores the rendered HTML of an entire page after the first visitor pays the cost (PHP, MySQL, computation). Subsequent visitors get the prebuilt HTML without WordPress running at all. Concrete numbers: dynamic WordPress = 300-800ms per request; cached page = 30-80ms. It is the single optimization that flips an "unbearable" site into a "fast" one with one click.
Why this matters
Without page cache, every visitor wakes up WordPress: full bootstrap, autoload, plugins, hooks, DB queries, theme rendering. All to deliver HTML almost identical to what the previous visitor saw five seconds ago. A blog that does 1,000 visits a day issues 1,000 full PHP runs uncached - or 50 runs cached (only when the cache rebuilds).
Core Web Vitals impact: TTFB drops 200-700ms (the entire PHP layer disappears). LCP follows. Capacity-wise, a server that handles 50 req/s uncached can sail past 500-2000 req/s cached. The difference between a site that crashes from a Twitter mention and one that sails through it.
Important: page cache only helps anonymous visitors. Logged-in users (admins, members, WooCommerce shoppers after login) bypass it. They need object cache instead (see separate article).
How to detect
Header check: curl -I https://YOUR-SITE.com/. Look for headers like X-Cache: HIT, x-litespeed-cache: hit, cf-cache-status: HIT, or X-WP-Cache: HIT. None means no cache is active.
Performance check: GTmetrix or PageSpeed Insights. Compare TTFB. Uncached sites show 500-1500ms; cached sites 50-300ms. High TTFB usually means missing cache.
How to fix
Pick a plugin based on budget and stack:
WP Rocket - €59/year. Easiest, works out of the box, handles 90% of cases without tuning. Includes database cleanup, lazy load, and CDN integration. Best when your time is more valuable than the license.
LiteSpeed Cache - free, but only on LiteSpeed or OpenLiteSpeed servers (not stock Apache or Nginx). If your host runs LiteSpeed (Hostinger, NameHero, many others), this is the top pick. Even faster than WP Rocket and bundles image optimization.
W3 Total Cache - free, complex to configure. Supports every stack, with page cache, object cache, browser cache, and CDN integration. Demands technical comfort.
Cache Enabler - free, minimal, by KeyCDN. Great for simple blogs.
Baseline settings after install: page caching = ON, browser caching = ON, GZIP = ON. If lazy load is offered, also ON. Flush cache after every plugin/theme deploy.
Common mistakes
Mistake one: enabling cache without checking forms and checkout. A cache that captures a POST and replays it makes forms appear submitted while doing nothing, or breaks checkout. Most plugins exclude these automatically, but verify. Mistake two: forgetting to exclude logged-in cookies or ?wpnonce URLs - logged-in users end up serving each other's HTML. Mistake three: stacking two cache plugins. They fight, and one cancels the other. Pick one.
Verifying the fix
Re-run curl -I - the cache HIT header should appear. PageSpeed Insights TTFB should fall to 100-300ms. Overall score typically jumps 30-60 points. WebPageTest Speed Index drops sharply. Submit a contact form and complete a checkout to confirm dynamic flows still work.