Why Pay for a CDN if Cloudflare is Free?

I’ve often called Cloudflare the best CDN, even though it’s free. And honestly, it’s not easy to refute. Cloudflare works so well and with so little setup, that they dominate the CDN space like no other. So why would you even bother paying money for a CDN like KeyCDN or BunnyCDN when Cloudflare is free?

I’ve used both free and paid CDN solutions. And after testing all of them extensively, here are the benefits of a paid CDN over Cloudflare. Whether or not these are worth it, is entirely up to you.

1. Cloudflare Doesn’t Provide Logs for Free

When you turn on Cloudflare, you have to just assume that it’s doing its job. Yes, you can test it by checking the “cf-cache-status” response header, but you have no way of knowing what other requests were served by the cache. Specifically, the following information is missing:

  1. Which files were served by Cloudflare?
  2. Which files missed Cloudflare’s cache?
  3. When were they served?
  4. From which datacenter were they served?

If you want these logs, you need to subscribe to Cloudflare’s Enterprise tier service that’s pretty expensive – over $200/month!

A paid CDN on the other hand gives you these statistics. For example, here’s a screenshot of BunnyCDN’s log screen:

BunnyCDN Log Screen
Log screen for BunnyCDN

A filled green box means the file was served from cache. A hollow square means it was served from the origin.

KeyCDN Fails Miserably at This

I was extremely disappointed when I paid $50 for KeyCDN, only to find that they don’t provide logs on demand. All they have is a screen of “real-time” temporary logs that’s not searchable. Instead, they make you pay $3/day to push your logs to an external service for analysis. Considering that my daily CDN cost was $0.02, this was a ridiculous amount.

So if you want good log files, use BunnyCDN, and avoid KeyCDN.

2. Free Cloudflare Doesn’t Always Use the Datacenter in the Same Country

You might be surprised to learn that the free Cloudflare plan doesn’t always serve your content from the datacenter closest to your visitor. Neither do they guarantee that they’ll hit a datacenter in the same country!

Here’s a screenshot of me accessing my site through a VPN in India using the “cdn-cgi/trace” tool provided by Cloudflare for debugging:

Cloudflare Doesn't Always Server Content from the Closest Datacenter
Cloudflare Doesn’t Always Server Content from the Closest Datacenter

You can see that the “loc” response along with the IP address indicates that the request is coming from India. However, the “colo” key shows that the request is being routed through Singapore instead! Cloudflare identifies its data center EDGE locations via the IATA airport code.

Why Doesn’t Cloudflare Use the Closest Data Center?

The reason is that bandwidth costs around the world vary greatly. In a post on their official blog, Cloudflare pointed out that transit costs in Asia can be 7 times the benchmark. Africa is even worse with bandwidth transits being 14 times more expensive!

As a result, Cloudflare doesn’t make use of all its datacenters to service traffic from its free tier plans. Even though they claim that there’s no hard and fast rule, I have never seen a request from India being served from within India. It either goes to Japan, Singapore, or half-way around the world to France!

Apparently, the only way to ensure that Cloudflare uses the fastest EDGE server is to subscribe to their Business plan – for $200/month!

But Other CDNs can Be Counterproductive

Paradoxically, the performance of other paid CDNs can actually be worse if they blindly use a data center in the same country!

Take Africa for example. Most CDNs have a terrible presence in Africa. Usually, the only datacenter is in Johannesburg, South Africa, deep in the South. So when there’s a request from Morocco or Egypt way up in the north, most CDNs ping the Johannesburg datacenter, which is very slow.

The free Cloudflare tier however, services requests originating from North African cities to France, Italy, or Germany. That’s merely a hop, skip and a jump away in terms of data transit! So in the end, Cloudflare ends up being faster than traditional paid CDNs for poorly serviced areas like Africa and Asia.

So Should you Pay for Other CDNs?

Honestly, I went through a phase where I purchased a paid CDN for web hosting simply because I felt I should. I thought that it must be better than the free Cloudflare tier. But after months of data and trying to convince myself otherwise, I had to accept the numbers in front of me.

Cloudflare’s free tier is not only faster in many ways, it also reduces the number of domain lookups by the visitor’s browser since it acts as a reverse proxy. So despite the few benefits of paid CDNs shown above, I’ve ended up reverting back to Cloudflare’s free tier. Hey, it works better than anything else out there, so why not right?

About Bhagwad Park

I've been writing about web hosting and WordPress tutorials since 2008. I also create tutorials on Linux server administration, and have a ton of experience with web hosting products. Contact me via e-mail!

Speak Your Mind