Someone asked on LinkedIn recently whether a CDN is worth it for a small local website. The answer they got was probably not: the visitors and the server are already close, so there is little distance to save.
On distance alone, that may be right. But the question only comes up because a CDN is usually sold as an extra. Put it inside the hosting plan and the question goes away.
Why the Question Exists
A CDN usually reaches a small site in one of two ways:
- a separate CDN subscription, on its own invoice
- a developer configuring CloudFront or Cloudflare, billed by the hour
Either way it has to earn back its own cost, and on a small site with nearby visitors that is a hard sell. So the honest answer to “is it worth it?” becomes “probably not”, and the site goes without.
So the answer depends on how the CDN is sold. If the CDN is already part of the hosting, there is no separate cost to justify, and what is left is what it does for each of the three people involved.
Win One: The Site Owner
The site owner gets faster pages at no extra charge.
A WordPress page is normally built on every request: PHP runs, the database is queried, the page is assembled and sent. A page served from the CDN’s cache skips all of that. The CDN already holds a finished copy and sends it. That saving has nothing to do with how far the visitor is from the server.
This only works if the whole page is cached. A CDN that carries only the images still leaves every page to be built by the server.
Win Two: The Host
The host gets a quieter server, and this is the reason a host can afford to include the CDN.
Cached pages do not reach the server at all. In our standard configuration the admin area (wp-admin) and the login page go straight through to the server uncached. For every other page, the CDN follows the cache headers WordPress sends.
There is a second, smaller saving on AWS: traffic between our servers and CloudFront is not charged as outgoing data. A server that answers only the requests the cache cannot is a smaller server, and a smaller server is a lower bill for the host.
Win Three: The Agency
The agency gets controls at the edge, without another plugin.
One agency we host for looks after five sites for one client group. They asked which countries each site blocked, then asked us to apply one site’s list of 51 countries to all five. Later they asked for four more countries. That change took 22 minutes from their email to done, across all five sites.
A security plugin can block countries too, but it does so inside WordPress, after the request has reached the server, and it has to be set up on each site separately. Blocked at the CDN, those visitors stop before they reach WordPress, and one change can go to all of a client’s sites at once.
The Work Is in the Setup, and It Is Done Once
A CDN in front of a WordPress site needs the same things every time:
- a certificate for the domain
- cache rules that keep the admin area and the login page uncached
- a firewall attached at the edge
- compression switched on
- a timeout long enough for the slower admin pages
We built that as a standard configuration in December 2021 and have revised it six times since: an authorisation header, a separate rule for the login page, a longer timeout, compression, a header for the login page, and a standard firewall. Each revision was rolled out across our sites by the same script, and the script can tell which version a site is on.
That is what makes including it affordable. Once the standard exists, a new site’s CDN is the same job as the last one: it is part of every site’s go-live, alongside monitoring and email sending. There is no ongoing work to bill for, so there is nothing to pass on.
Three Questions for Your Hosting
- Is there a CDN in front of your whole site, or only your images? Only the first takes the work off your server.
- Is the CDN on its own invoice or its own hourly quote? If it is, it is competing for budget against everything else, and on a small site it usually loses.
- Who changes its settings when you need something at the edge, such as blocking a country? If the answer is “install a plugin”, the request still reaches your server first.
If you are not sure whether your site sits behind a CDN, or what it is caching, I am happy to take a look.



