WordPress CDN Plugins and Integrations Compared

WordPress CDN options compared on per-gigabyte egress rates, request fees and full-page caching

The hidden variable in CDN pricing is egress, the charge for data leaving the network, and it is where the difference between providers becomes enormous. Bunny charges $0.01 per gigabyte in Europe and North America, with a $1 monthly minimum and no request fees. Some enterprise CDNs charge several times that and add per-request charges on top, which turns a busy month into a bill nobody forecast.

Before any of that, though: a CDN fixes distance, not slowness. If your site is slow for visitors in the same country as your server, a CDN will not help, and buying one is a way of spending money to avoid diagnosing the problem. This article covers what it does fix and what each option costs.

Verified August 2026. Prices confirmed against vendor pages.


What a CDN does and does not fix

A content delivery network stores copies of your files in data centres around the world and serves each visitor from the nearest one. What it removes is the round-trip time to your origin server, which for a visitor in Sydney fetching from a server in London is substantial and unavoidable by any other means.

What it does not fix is anything happening on the server or in the browser. Slow database queries, an unoptimised theme, thirty plugins, heavy JavaScript blocking the main thread: a CDN delivers all of those faster to distant visitors and changes none of them. If your Core Web Vitals problem is Interaction to Next Paint, a CDN is not the purchase.

There are two distinct things sold under the name. Asset offloading caches images, CSS and JavaScript, which is straightforward and safe. Full-page caching at the edge caches the HTML too, which is much faster and introduces the hard question of invalidation: when you update a page, every edge location must be told, and until it is, visitors see the old version. Most sites want the first and should approach the second deliberately.


The 6 options compared

1. Cloudflare free

A genuinely free CDN with unmetered bandwidth, plus a firewall, rate limiting and bot filtering, which is an unusual combination and the reason it is the default recommendation for most WordPress sites.

No egress charge at all on the free plan removes the entire cost model that shapes the rest of this comparison, which is why it is difficult to argue against for a content site. It caches assets by default and can be configured to cache HTML with care. It also gives you the security layer described elsewhere in this pillar, so a single free change improves both speed and protection. Its limitations show at the margins: less control over cache behaviour than a dedicated CDN, and full-page caching that requires either careful configuration or a paid add-on to work well with WordPress.

  • Price: Free, with unmetered bandwidth
  • Egress: None on the free plan
  • Best for: Almost every site, as the first thing to try
  • Watch out for: HTML caching needs care or a paid add-on

2. Bunny

The best value among paid CDNs and the clearest pricing in this article. The Standard network of 119 points of presence charges $0.01 per GB in Europe and North America, $0.03 in Asia and Oceania, $0.045 in South America and $0.06 in the Middle East and Africa, with a $1 monthly minimum and no request fees.

Two details make it particularly suitable for WordPress. You can toggle regions, so a site with no African audience need not pay African rates, and a Volume network is available at $0.005 per GB for the first 500TB across 10 points of presence if breadth matters less than cost. For a typical site serving 100GB a month to European visitors, that is a dollar. Against a free Cloudflare plan it competes on control and cache behaviour rather than on price, and it wins for people who want to configure things precisely.

  • Price: From $0.005 to $0.06 per GB by region and network
  • Egress: Charged per GB, no request fees, $1 minimum
  • Best for: Sites wanting control with predictable low cost
  • Watch out for: Region rates vary sixfold; toggle what you need

3. QUIC.cloud

Built by the LiteSpeed team and integrated with LiteSpeed Cache, which makes it the natural choice if your host runs LiteSpeed and you are already using the free plugin.

The integration is the point. Full-page caching at the edge is difficult precisely because of invalidation, and a CDN that understands the caching plugin can purge intelligently when you update a post rather than requiring you to configure rules or clear everything. It also handles image optimisation and critical CSS generation from the same account, which consolidates several line items. A free tier exists with monthly allowances, and paid usage is metered. If you are not on LiteSpeed, this loses most of its advantage and the general-purpose options above are better.

  • Price: Free tier with allowances; metered beyond
  • Egress: Metered usage, check current rates
  • Best for: LiteSpeed sites already running LiteSpeed Cache
  • Watch out for: Little advantage on non-LiteSpeed stacks

4. KeyCDN

A straightforward pay-as-you-go CDN with regional per-gigabyte pricing and no monthly commitment, positioned similarly to Bunny and worth pricing against it on your own traffic distribution.

Its appeal is simplicity: you pay for what you transfer, the rates are published by region, and there is no tier to outgrow. For a site with predictable traffic in one or two regions, comparing it directly with Bunny on your actual monthly transfer is a ten-minute exercise that settles the question. Where either beats Cloudflare’s free plan is control, cache rules, and the ability to reason about exactly what is cached where. Where neither beats it is price, since free is difficult to undercut.

  • Price: Pay as you go, regional per-GB rates
  • Egress: Charged per GB; confirm current rates
  • Best for: Predictable traffic in one or two regions
  • Watch out for: Price against Bunny on your own numbers

5. Amazon CloudFront and enterprise CDNs

The category where egress pricing bites hardest, and the reason this article opens with it. Enterprise networks charge more per gigabyte than the independents and frequently add per-request charges on top of transfer.

Per-request charges matter more than people expect on a WordPress site, because a single page view fetches dozens of files: images, stylesheets, scripts, fonts. Forty requests per page view across a hundred thousand page views is four million requests a month, billed separately from the data those requests carried. Set against Bunny’s explicit “no request fees” and Cloudflare’s free unmetered plan, the enterprise option needs a specific justification, and for a WordPress content site it usually does not have one. Where it does: complex origin configurations, existing infrastructure on the same cloud, or contractual requirements.

  • Price: Higher per-GB rates plus per-request charges
  • Egress: The dominant cost, and easy to underestimate
  • Best for: Sites already inside that cloud ecosystem
  • Watch out for: Request charges on top of bandwidth

6. No CDN, and a closer server

Free, and correct for a surprising share of sites. If your audience is in one country and your server is in that country, the distance a CDN removes is already close to zero.

Check your analytics for where visitors actually are before buying anything. A local business, a national publisher, or a membership site serving one market gains very little from edge delivery, and the money is better spent on hosting that is faster at the origin or on removing the JavaScript that is actually slowing the page. If your server is in the wrong country entirely, which happens more often than it should, moving hosting is a one-off change that beats layering a CDN over a badly placed origin. Cloudflare’s free plan remains worth enabling regardless, for the firewall rather than for the delivery.

  • Price: Free, or the cost of better-placed hosting
  • Egress: None
  • Best for: Single-country audiences
  • Watch out for: Check your analytics rather than assuming

Comparison table

OptionBandwidth costRequest feesFull-page cachingBest for
Cloudflare freeFree, unmeteredNoneWith care or paid add-onMost sites
Bunny$0.005 to $0.06/GBNoneYesControl at low cost
QUIC.cloudFree tier, then meteredCheck ratesYes, plugin-awareLiteSpeed sites
KeyCDNRegional per-GBCheck ratesYesPredictable regional traffic
CloudFront and similarHigher per-GBYes, per requestYesExisting cloud estates
No CDNNoneNoneYour caching pluginSingle-country audiences

Invalidation, and the stale content problem

Everything difficult about CDNs is invalidation. Copies of your content exist in dozens of locations, and when you change something, each of those must be told. Get it wrong in one direction and visitors see yesterday’s page; get it wrong in the other and you are purging constantly and caching nothing.

  • Assets are easy, HTML is not. Images and stylesheets change rarely and can be cached for a year using versioned filenames. HTML changes whenever you edit a post, which is why full-page edge caching needs a purge mechanism rather than a long expiry.
  • Never cache logged-in responses at the edge. Serving one member’s dashboard to another is the worst failure mode available here, and it happens when HTML caching is enabled without excluding authenticated sessions.
  • Exclude carts, checkouts and account pages explicitly. On a store these must always be dynamic, and a CDN that caches a cart page produces customers seeing each other’s baskets.
  • Test purging before you rely on it. Publish a change, then check the live page from a different country using a proxy or an online tool. If the old version persists, your purge is not reaching the edge.
  • Watch your cache hit ratio. A low ratio means you are paying for a CDN that is mostly forwarding requests to your origin, which is the worst of both arrangements.

The pragmatic arrangement for most WordPress sites is asset offloading with long expiry and versioned filenames, plus HTML caching only if you have tested purging thoroughly and excluded every authenticated path. That gets most of the benefit with almost none of the risk.



Related guides

Frequently asked questions

Do I need a CDN?

Only if your visitors are far from your server. Check your analytics for visitor location and compare it with where your hosting is. A single-country audience served locally gains very little.

Is Cloudflare’s free plan really enough?

For most WordPress sites, yes. Unmetered bandwidth with no egress charge, plus a firewall, is difficult to beat. Paid CDNs win on cache control rather than on cost.

Will a CDN fix my Core Web Vitals?

It can help Largest Contentful Paint for distant visitors. It does nothing for Interaction to Next Paint, which is a JavaScript problem, or for Cumulative Layout Shift, which is a markup problem.

How much bandwidth will I use?

Multiply your average page weight by your monthly page views. A 2MB page at 50,000 views is 100GB, which on Bunny’s European rate is about a dollar and on an enterprise CDN considerably more, plus requests.

Can I cache HTML at the edge on a store?

Only with cart, checkout, account and any logged-in session excluded. Get that wrong and customers see each other’s carts, which is the single worst outcome in this whole subject.

Does a CDN replace my caching plugin?

No. The caching plugin stops your server rebuilding the page; the CDN shortens the distance it travels. They solve different halves and most fast sites run both.


The verdict

Check where your visitors are first. If they are in the same country as your server, a CDN is solving a problem you do not have, and the money belongs somewhere else.

Then start with Cloudflare’s free plan. Unmetered bandwidth, no egress charge, and a firewall included. For most WordPress sites this is where the search ends.

If you want precise cache control: Bunny, at $0.01 per GB in Europe and North America with no request fees and a $1 minimum, with regions you can toggle off to avoid paying six times as much for an audience you do not have.

And read the egress terms before signing anything. Per-gigabyte rates vary sixfold by region and per-request charges are invisible until the invoice arrives. That is the number this category hides, and it is knowable in advance.