What a CDN actually does for your site
A plain explanation of content delivery networks, what they actually fix, and why they're one piece of infrastructure rather than a plugin you switch on.
CDN gets thrown around as a technical term, but the idea behind it is simple: keep a copy of your site's images, fonts, and scripts on servers scattered around the world, so visitors load them from somewhere close by instead of from wherever your site is actually hosted.
The problem it solves
If your server is in one location and a visitor is on the other side of the planet, every file has to travel that whole distance before their browser can even start rendering the page. That distance is real, physical delay, no matter how fast your server is. A content delivery network shortens the trip by putting cached copies of your static files closer to the visitor, so the page starts appearing sooner.
What actually gets cached
Images, stylesheets, JavaScript files, and fonts are the usual candidates, since they don't change on every request and can safely be served from a cache. Anything that's genuinely dynamic, a logged-in dashboard, a live price, still has to go back to the origin server. A CDN speeds up the parts of a page that are the same for everyone, which on most sites is most of the page weight.
The side benefit most people don't expect
Because traffic is spread across many edge locations instead of hitting one server directly, a content delivery network also absorbs a lot of abuse before it ever reaches your actual infrastructure. Traffic spikes, bots, and basic denial-of-service attempts get filtered at the edge rather than overwhelming a single machine. That's a security benefit as much as a performance one.
Why it's not something you just turn on
A CDN is one layer in a stack, not a standalone fix. It doesn't help if your images were never optimized in the first place, and it can't compensate for a database that's slow to respond. It works best as part of a hosting setup where the CDN, the compute, and the data layer are each doing the job they're suited for, rather than one overloaded server trying to do all three. That's the approach we take with how we host client sites.