You changed a button's color on your site, saved, opened the page and found the old color. Or the opposite happened: a page that took four seconds to open now opens in under a second without you changing a letter in it. The culprit in both cases is the same: caching.
Cache is one of the most repeated words in any advice on speeding up a site, and one of the most misunderstood. Some mix it up with cookies, some think a single plugin ends the matter and few realize that a page passes through several layers of it before it reaches the visitor's screen. Here we explain the idea from the roots, then move to what matters to you: which type you need, which plugin to choose, when to clear it and which mistakes break your site.
And if you are still at the stage of choosing web hosting, knowing what cache a provider gives you ready-made can save you many paid plugins.
📋 Quick summary: caching at a glance
| Criterion | Details |
|---|---|
| Definition | A ready copy of data that was requested before, kept somewhere faster and nearer so it can be served without rebuilding it |
| The two basic cases | Cache Hit (a copy was found) and Cache Miss (none was found, so it is built again) |
| The main types | Browser cache, page cache, object cache, OPcache, CDN cache, DNS cache |
| The price | The chance of showing stale content until the lifetime ends or the copy is cleared |
| Who controls it | The Cache-Control header, cache plugins, the host and the CDN settings |
| Metrics affected | TTFB and LCP directly (good: TTFB up to 0.8 seconds and LCP up to 2.5 seconds) |
| Best-known WordPress tools | LiteSpeed Cache, WP Rocket, WP Super Cache, Breeze, Jetpack Boost |
What is caching?
The idea is very simple: do not redo what you have just finished. If a visitor requests a page and it is built for them, a copy of it is kept somewhere near and fast, and when a second visitor asks for it, the saved copy is served at once.
Think of your home refrigerator. If you had to go to the supermarket every time you needed milk, you would lose half your day on the road. The fridge keeps a copy near you, so you open the door and take it in two seconds. But the fridge has two limits: its space is limited, and what is inside expires after a while. Those are exactly the two limits of a cache: limited capacity and a lifetime.
The word itself is French in origin (cacher), meaning to hide or a hiding place. The idea first appeared inside computers: the IBM System/360 Model 85 (1968) was one of the first commercial machines to put a small fast memory between the processor and the main memory. It then moved to the web in the 1990s through browsers and proxy servers, and today it is present in almost every layer of the internet.
Why does your site need it?
Take an ordinary WordPress site. On every visit the server runs PHP, loads WordPress and then the theme and every active plugin, runs dozens of queries against a MySQL database, then assembles the result into an HTML page and sends it. And it repeats all of that for every visitor, even if the page has not changed in a month.
With caching the page is built once and kept as a ready file, and the next visitors get the file without the server touching PHP or the database. That is the difference between a site that stumbles at twenty visitors at the same moment and one that carries hundreds of them on the same plan.
How does caching work step by step?
The first request: Cache Miss
The first visitor arrives and the system looks for a ready copy and does not find one. That is a Cache Miss. The server builds the page the full (slow) way, sends it to the visitor and keeps a copy in the cache. The first visitor pays the price of the slowness, and is the one who "warms" the cache for those after.
The second request: Cache Hit
The next visitor finds the copy ready (a Cache Hit) and it is sent directly, and that is where you see the difference in speed. The share of requests that end in a hit is called the hit ratio, and the higher it is, the more the cache is doing its job. A low ratio usually means many pages are excluded from the cache or the lifetime is shorter than it should be.
Lifetime (TTL): when does the copy expire?
A saved copy does not stay forever. Each copy has an age called TTL (Time To Live), measured in seconds. If you set it to two hours, the copy is served for two hours, then counts as expired, and is rebuilt at the first request after that. Choosing the time is a real trade-off: a long time means more speed with a bigger chance the visitor sees stale content, and a short time means the reverse.
Purge: how do you force the cache to update?
When you publish a post or edit a page, you do not wait for the lifetime to end; the old copy is cleared by hand or automatically. Good cache plugins do this alone when you save a post, clearing the page concerned and the archive pages tied to it. The problem begins when there are several cache layers (a plugin, a server, a CDN and a browser), because clearing one does not clear the rest. That is the reason for most "I edited it and the change did not show" complaints.
The terms you will meet in every control panel
| Term | What it means | Example |
|---|---|---|
| Cache Hit | A ready copy was found and served | A second visitor opens the home page |
| Cache Miss | No copy exists, so it is built again | The first visit after clearing the cache |
| TTL | A copy's age in seconds before it expires | 3600 seconds = one hour |
| Purge / Clear | Deleting one copy or all copies before their age ends | The Clear Cache button in the plugin |
| Stale | An old copy that has not been updated yet | An edit that does not show for visitors |
| Origin | The original source, that is your server | It is called on every Miss |
Types of caching: the layers your page passes through
One page may be cached in six different places on the road between your server and the visitor's eye. The table below orders them from nearest the visitor to farthest:
| Layer | Where does it live? | What does it store? | Who controls it? |
|---|---|---|---|
| Browser cache | The visitor's device | Images, CSS and JS files, fonts | The HTTP headers your site sends |
| DNS cache | The device and the internet provider | The domain's IP address | The TTL in the DNS records |
| CDN cache | Edge servers near the visitor | Static files, and sometimes the whole page | The CDN's settings and cache rules |
| Page cache | The site's server | A ready HTML page | The host or a cache plugin |
| Object cache | Server memory (Redis or Memcached) | Database query results | The host and a connecting plugin |
| OPcache | PHP memory | PHP code after it is prepared for execution | PHP settings |
1. Browser cache
When you visit a site for the first time, your browser loads the logo, the style file and the fonts and keeps them on your device. On the next visit it does not request them again; it only asks the server: has the file changed? If not, the server replies with code 304 (Not Modified) without sending the file. This is the cheapest type of cache because it works on the visitor's device and uses almost no bandwidth.
2. Page cache
This type carries the most weight in WordPress. It keeps the final page as ready HTML and serves it to visitors who are not logged in without running PHP. Some cache plugins write these files to disk, and some solutions run inside the web server itself, such as Varnish, NGINX FastCGI Cache and LSCache on LiteSpeed servers. Server-level cache is usually faster, because it answers the request before WordPress has even started.
3. Object cache
The page WordPress builds needs many queries: menus, settings, widgets and user data. An object cache keeps the results of those queries in memory so they are not repeated. WordPress already has an internal cache, but it lives only for one request and then disappears. To make it persist between requests you need Redis or Memcached, two services that hold data in memory and that your hosting has to support.
Its real value is on sites where a page cache does not fit: stores, logged-in members and dashboards. On a VPS or a dedicated server, you are the one who installs and configures Redis. With an unmanaged VPS provider such as Contabo's servers, the whole burden falls on you.
4. Code cache (OPcache)
PHP is a language interpreted on each request, so the site's code is read and converted before it is run each time. OPcache keeps the code after conversion so the work is not repeated. It has been bundled with PHP since version 5.5, most hosts turn it on automatically, and you can review its settings from the PHP settings in a panel such as cPanel.
5. CDN cache
A content delivery network (CDN) keeps copies of your files on edge servers spread across data centers around the world, so the visitor far from your server loads the file from a server near them instead of from your distant one. A service such as Cloudflare stores static files (images, CSS, JS) by default according to the file extension, and does not store HTML pages unless you set a cache rule for that or use its paid APO service. Many people think that turning on Cloudflare means their pages are cached, and that is not correct.
6. DNS cache
When you type a domain name in the browser, your device needs to know the IP address behind it, which is the job of the DNS system. The answer is kept on your device and at your internet provider for the TTL set in the domain's record. That is why moving a site to a new server does not appear for everyone at the same moment: some people still carry the old address from the cache.
Ready-made layers instead of installing them yourself
Some hosts bring these layers together on one platform. Cloudways is a clear example: its WordPress page lists built-in caches (Memcached, Varnish and Redis) and Breeze, a free cache plugin pre-installed on every WordPress site. Details of this hosting and its performance are in the Cloudways review.
Cloudways lists built-in Memcached, Varnish and Redis caches and a pre-installed Breeze plugin for WordPress. Plans start at $14 a month with a 3-day free trial
☑️ Try Cloudways now
HTTP headers: how do you tell the browser and the CDN what to store?
Every response your site sends carries headers that tell the browser and the CDN: may this be kept, and for how long? The most important header here is Cache-Control. These are three common cases:
# static assets with versioned filenames
Cache-Control: public, max-age=31536000, immutable
# HTML pages: keep a copy but always revalidate
Cache-Control: no-cache
# sensitive pages: never store
Cache-Control: no-store
max-age=31536000 means a full year in seconds, and the word immutable tells the browser not to ask about the file at all. It suits files whose name changes with each update, such as style.a8f3c1.css.
no-cache fools many people: it does not mean "do not store", it means "store, but ask the server before using". The browser keeps the copy and checks that it is still valid through ETag or Last-Modified, and if it is, the server replies with code 304 without resending the file. The real ban is no-store, which suits sensitive pages such as checkout and account pages.
And if you use a CDN you will meet the s-maxage header, which applies to the shared cache (the CDN and intermediaries) and is ignored by browsers, and the word private, which stops the shared cache from keeping the page and leaves it to the browser alone. The full details are in the MDN documentation on HTTP Caching.
ver= parameter in most themes). If that does not happen, change the number by hand and clear the CDN cache.Cache against concepts readers mix up
Cache and cookies
Cookies are small text files a site keeps in your browser so it remembers you: your login state, language and cart contents. They are sent with every request. Cache is copies of the content itself (images, files, pages). The practical difference is clear: clearing cookies logs you out of sites, while clearing the cache does nothing more than slow the next load a little. The two have an important technical relationship: cache plugins usually skip pages whose visitor has a login cookie, so another visitor's page is not served to them.
Cache and the CDN
A CDN is not a replacement for a cache; it is a geographically distributed cache. A cache can exist without a CDN (in the browser or on your server), but a CDN always relies on a cache and adds the element of distance: the copy is kept near the visitor. That is why a CDN helps sites whose audience is spread across countries far from the server, and adds little to a local site visited by people in the server's own city.
How does cache really affect your site?
On speed
Cache hits time to first byte (TTFB) directly, because the server skips building the page. web.dev guidance counts a good TTFB as 0.8 seconds or less, a figure that is often hard to reach on busy shared hosting when every page is built from scratch. Better LCP (the good threshold is 2.5 seconds) usually follows, because the main content starts loading earlier. INP (good up to 200 milliseconds) and CLS (good up to 0.1) are not fixed by cache, because they come from JavaScript and page design, not server speed.
On the visitor
Google's study The Need for Mobile Speed (2016) found that 53% of mobile visits are abandoned if loading takes more than three seconds. The figure is old, but the direction has not changed.
On the server and the bill
When most requests come from ready files, processor and memory use fall, so a small plan carries visit peaks it could not before, and your need for a pricier plan comes later. That is often the cheapest improvement you can pay for, and free if your host provides it. To compare hosts on this point, see the best web hosting guide.
What cache does not do
Cache does not treat the cause; it hides the symptoms. A 4MB image stays 4MB, and a heavy theme stays heavy for the first visitor and for every visitor the cache copy has not reached yet. Start by cleaning up the base (compressing images, removing extra plugins, decent hosting), and then put cache on top of it.
Kinsta lists a CDN and edge caching on every plan, with 125GB to 1,000GB of CDN bandwidth by plan. Launch is $35 a month, or $350 a year
☑️ See Kinsta plans
Caching in WordPress: what options are there?
WordPress does not cache its pages by default, because it builds each page on request with PHP and the database. That is why cache plugins appeared. You have three routes that complement and do not compete: cache your host provides, a cache plugin and a CDN for files.
The best-known cache plugins
| Plugin | Price | Suits whom? | Note |
|---|---|---|---|
| LiteSpeed Cache | Free | Hosts that run on LiteSpeed servers | Server-level page cache needs a LiteSpeed server; on others only the optimization features work |
| WP Rocket | Paid, with a yearly license (check its pricing page) | Anyone who wants an instant result with the least setup | No free version, and it combines caching and file optimization in one plugin |
| WP Super Cache | Free | Simple blogs | From Automattic; it saves pages as static HTML files |
| W3 Total Cache | Free, with a Pro version | People with technical experience | Many options that can confuse a beginner |
| Jetpack Boost | Free version, with paid plans | Anyone who wants to turn it on with one click | Caching for pages and a CDN for images (check which features are free) |
| Breeze | Free | Cloudways users | Comes pre-installed there and works with Varnish |
Cache that comes ready at some hosts
Before you pay for a plugin, know what your host already offers. These examples are from the companies' own pages on October 12, 2026:
Hostinger: LiteSpeed servers
Hostinger's page lists NVMe storage and LiteSpeed servers, and a built-in CDN and object cache on its plans. Check which cache plugin comes with the WordPress installation. Details are in the Hostinger review.
Cloudways: Varnish, Redis and Memcached
Cache layers are part of the platform, with Breeze pre-installed. Cloudways also sells a Cloudflare Enterprise add-on from $4.99 a month per domain, according to its page when I read it.
Kinsta: edge caching
A CDN and edge caching are included on every plan, but the hosting itself is higher in price. See the Kinsta review before you decide.
Bluehost: caching on the plan
Bluehost's plan page lists static and object caching and a free CDN on its plans. I did not verify its caching plugin options, so check what comes with a new WordPress install. You can also install the site yourself with the guide to installing WordPress on Bluehost.
Most other hosts offer server-level cache to differing degrees, which is why it helps to read the provider's page before you buy. And if you are thinking of a ready-made website builder instead of hosting, the cache in it is usually managed for you and you will not control it.
Jetpack's free plan lists a global image CDN, and Jetpack Boost is its speed tool (check which features are free)
☑️ Discover Jetpack
Practical steps: how to check, set up and clear the cache
cf-cache-status (Cloudflare), x-litespeed-cache (LiteSpeed) or age. A HIT value means the page came from the cache. Header names differ from host to host, so if you find nothing, ask support.Ctrl + Shift + R on Windows and Cmd + Shift + R on Mac).Common cache problems and their fixes
I edited the page and the edit does not show
Open the page in a private window first. If the edit appears there, the problem is your browser's cache; if not, it is the site's cache. Clear in order: the cache plugin or host, then the CDN, then the browser.
The site's styling is old after a theme update
It is usually an old CSS file stored in the CDN or the browser under its old name. Clear the CDN cache and make sure the theme adds a version number to updated files.
Two cache plugins conflict
One of the most common beginner mistakes: installing two plugins that do the same job, which produces white pages or endless redirects. Keep one, disable the other and clear the cache afterwards.
An empty cart or the wrong username after login
A sign that a page meant for one user was stored and served to someone else. Add the page to the exclusion list and make sure the plugin skips the cache for anyone with a login cookie.
Bluehost's plan page lists static and object caching and a free CDN. Starter is $3.79 a month on a 36-month term and renews at $9.99
☑️ See Bluehost's offers
Who cares about caching, and who sees no change?
✅ Cache will make a big difference if:
- Your site is WordPress or any system that builds pages from a database
- Your visitors come back to the same pages again and again
- Your hosting is shared with limited resources
- Your audience is spread across countries far from the server (the CDN benefit)
- You have a store or registered members (the object cache benefit)
❌ It will not be enough by itself if:
- Your images are huge and uncompressed
- Your theme or page builder is very heavy
- Your hosting is slow by nature
- All your pages are personalized for each visitor (dashboards and apps)
- Your site is a small, already fast static HTML site
The final verdict: how should I order the work?
My direct view: do not start by buying a plugin. Start by asking what your host provides. If it gives you server-level cache, use it and in many cases that is the end of it. If not, one plugin is enough: the free LiteSpeed Cache if your servers run LiteSpeed, WP Super Cache for simplicity, and WP Rocket for those who prefer to pay for less complicated setup.
After that add a CDN for static files, test the page in a private window and with a measuring tool, and do not forget the exclusions if your site is a store. And remember that cache hides slowness and does not cure it: your images, theme and plugins have the first word, and cache comes after them, not before.
Hostinger's page lists NVMe storage and LiteSpeed servers, with a built-in CDN and object cache. Premium is $2.99 a month on a 48-month prepayment and renews at $10.99
☑️ See Hostinger's plans
✅ Caching FAQ
❓ What is caching in short?
❓ Does clearing the cache delete my passwords or data?
❓ What is the difference between cache and cookies?
❓ What is the difference between cache and a CDN?
❓ Does caching affect SEO?
❓ Can I run more than one cache plugin?
❓ Why do my edits not show after I save?
❓ How often should I clear the cache?
❓ Is caching suitable for WooCommerce stores?
❓ What is Redis and do I need it?
❓ What is the difference between no-cache and no-store?
no-cache allows the copy to be kept but requires checking its validity with the server before use. no-store stops the copy from being kept at all, and suits sensitive pages.Did you like this guide? Share it with your friends. And if you have any question, do not hesitate to share it in the comments box below.
Related Articles
☁️ What is Cloudflare?
The best-known CDN and how it stores your files near visitors. Cloudflare explained and its role in caching
🌐 What is DNS?
Why your site takes a while to appear on a new server. DNS explained, including its cache
📶 What is bandwidth?
How caching saves bandwidth. Bandwidth and its limits explained
📝 What is WordPress?
The system most cache settings revolve around. WordPress explained from scratch
🖥️ What is web hosting?
Where your site's files and its cache live. A web hosting guide for beginners
🚀 Cloudways review
Cloud hosting with built-in cache layers. Read the full Cloudways review