Every time someone visits your WordPress site, their browser makes dozens of requests: for images, stylesheets, JavaScript files, fonts, and more. All of those requests travel from the visitor's device to your web server and back. If your server is in Toronto and your visitor is in Vancouver, that round-trip takes time. Multiply that by hundreds of assets per page load, and the delays add up.
A Content Delivery Network (CDN) solves this by serving your static files from a network of servers distributed around the world. Your visitor in Vancouver gets images from a server in Seattle. Your visitor in London gets them from a server in Frankfurt. The travel distance shrinks dramatically, and so does the load time.
What Static Assets Are
"Static assets" refers to files that do not change from request to request - they are the same for every visitor. This includes:
- Images - your hero images, product photos, blog post featured images, and gallery files
- CSS files - the stylesheets that control your site's appearance
- JavaScript files - plugin scripts, theme scripts, and third-party library files
- Web fonts - custom typefaces loaded from your server or a font service
- Video files - if hosted on your own server (though video is usually better on a dedicated service)
Dynamic content - the HTML your server generates for each visitor, which may differ based on login status, location, or cookies - is typically not served through a CDN, though some CDN configurations cache this too.
Why a CDN Reduces Load Time
When your images and scripts are served from a CDN edge server close to the visitor, two things happen:
Latency drops. The physical distance data travels affects how long the first byte takes to arrive (Time to First Byte, or TTFB). Shorter distance means lower latency.
Origin server load decreases. Every asset served by the CDN is one fewer request hitting your hosting server. For high-traffic sites, this can meaningfully reduce server resource usage and improve the experience for all visitors simultaneously.
CDNs also typically apply automatic optimizations: Brotli or gzip compression, HTTP/2 or HTTP/3 multiplexing, and aggressive caching headers that tell browsers to store assets locally and avoid re-downloading them on subsequent visits.
Cloudflare: The Free Option
Cloudflare operates one of the largest CDN networks in the world, and their free plan includes CDN functionality that improves asset delivery globally. When you point your domain's nameservers to Cloudflare, it automatically proxies your traffic through its network.
Cloudflare's free CDN:
- Caches static assets at edge locations in over 200 cities worldwide
- Provides free SSL
- Enables Brotli compression automatically
- Includes basic DDoS protection
For most WordPress sites, Cloudflare's free plan provides meaningful performance improvements with minimal configuration. The tradeoff is that Cloudflare sits between your visitors and your server for all traffic - which is relevant if you have specific privacy, compliance, or Canadian data residency requirements.
BunnyCDN: An Affordable Alternative
BunnyCDN is a well-regarded CDN provider with pricing that starts well below the major competitors. At roughly $0.01 per GB of transfer in North America and Europe, it is an accessible option for small to medium sites with moderate traffic.
BunnyCDN integrates cleanly with WordPress via its own WordPress plugin, which automatically rewrites asset URLs to use your BunnyCDN delivery zone. Setup takes around fifteen minutes once your BunnyCDN account is configured.
BunnyCDN is a pull CDN by default: you configure a "pull zone" that points to your origin server, and BunnyCDN fetches and caches assets the first time they are requested, then serves them from the edge on subsequent requests.
Configuring WordPress to Use a CDN
Several WordPress performance plugins include CDN integration that rewrites asset URLs with minimal configuration:
WP Rocket - arguably the most user-friendly WordPress caching and performance plugin. The CDN tab lets you enter your CDN URL and specify which file types to serve through it. Works with any CDN including Cloudflare and BunnyCDN.
W3 Total Cache - a longstanding free option with comprehensive CDN support. The configuration is more complex than WP Rocket but the functionality is equivalent.
WP Offload Media - specifically designed to serve media library files (images, PDFs, attachments) through Amazon S3 or compatible storage services, with CloudFront or BunnyCDN delivery. Useful when you want to completely offload media from your hosting server.
The Impact on TTFB vs. Cacheable Resources
A clarification worth making: CDNs dramatically improve the delivery of cacheable static assets, but they have a more limited effect on TTFB for dynamic HTML pages (unless you configure full-page caching at the CDN level, which is more complex).
The biggest gains from a CDN come from image delivery. For most WordPress sites, images represent the majority of page weight. Moving image delivery to a CDN while keeping page caching properly configured on your hosting server gives you improvements across both dimensions.
If you are on dotCanada hosting and want help configuring Cloudflare or another CDN with your site, our support team can walk you through the setup.

