Cloudflare DNS etc. Will this CDN speed up your website?
Summary: This blog post investigates whether Cloudflare will actually speed up your website, and if so, under what circumstances. It analyses Cloudflare DNS setups, free and paid versions and other considerations.
What is Cloudflare?
Cloudflare is a Content Delivery Network (CDN). It optimises delivery of content via a network of international servers and has other features like DNS, security and many other features.
Why we are conducting this experiment
Earlier this week, my web host, an Australian company, announced it will be discontinuing the cPanel Cloudflare plugin and Railgun. I was devastated. However, they reassured me that I will see more benefit not using Cloudflare than using it, at least in an Australian context. They claimed that on a website on their server loading in 0.86s, it takes 2.14s once you use the plugin and Railgun. Shocking! Isn't Cloudflare supposed to make the internet work the way it should? (i.e. make your website faster). Hence, I decided to do my own experimentation and see if this was true.
What we will be analysing
This blog post seeks to analyse whether Cloudflare does indeed speed up websites, and if so, under what circumstances. Some things to note before we analyse are:
- We are using an Australian web host/server
- Other countries may yield different results
- There are other factors such as the way the website was built
- In our tests we generally only used one website
- We only use the document loaded time
We will be using this website for speed testing: Web Page Test
First scenario: No Cloudflare
With our test website, without Cloudflare, the loading time in Australia was: 5.509s
Second scenario: Partial Zoning & Free Tier
Partial zoning is when you use the Cloudflare plugin in cPanel to connect the website to Cloudflare and the web host maintains control of the DNS. This is the load time in Australia for a partially zoned website on the free tier: 7.215s
This is a very poor result. Using Cloudflare in this way has slowed down the website by nearly 2 seconds.
Third scenario: Full Zoning & Free Tier
Full zoning is when the website uses Cloudflare nameservers and Cloudflare manages the DNS. This is the Australian load time for a free, fully zoned website: 5.989s
Fourth scenario: Full Zoning & Paid Tier (Pro plan)
If you do pay for Cloudflare and use their services, including paid ones like Argo, the load time in Australia of our test website was: 5.641s
This is much better than partial zoning, but only on par when Cloudflare was not in use.
The issue with Cloudflare in Australia
Australia is in a particularly undesirable situation with Cloudflare. Their closest server is based in Singapore and is the reason for these deplorable statistics. Singapore is geographically very far away from Australia.
Fifth scenario: Singaporean loading time, Partial Zoning & Free Tier
The load time in Singapore for the website using fremium from Cloudflare is not spectacular regardless of using Cloudflare's Singaporean server, the load time is now: 6.792s
This is still slower than our website's Australian traffic without Cloudflare and only half a second faster than when we look at Australian traffic for partial zoning & free tier.
The free plugin and free services from Cloudlfare given to you by your web host is not that great after all.
Sixth scenario: Singaporean loading time, Full Zoning & Paid Tier
The load time for the above scenario is: 3.782s
So Cloudflare does improve your speed internationally, with the caveat being the location. What we can take from this, is that for Cloudflare to work best, you need:
- Full Zoning. Cloudflare must manage your DNS
- Paid Tier & paid services must be used to see a benefit
But let's not stop here. There's a few more layers to this...
Seventh scenario: Singaporean loading time, Full Zoning & Free Tier
The performance for this is not too bad, better than Australian load time without Cloudlfare, but markedly worse than when you had paid services: 5.004s
Further testing: Does Content Management System Matter?
We will now do a quick test with a Joomla website. All the above stats are based on a WordPress website. This Joomla website is using Full Zoning & Paid Tier. The Australian load time is: 5.003s
This is the Singaporean load time: 3.942s
Is Railgun any good?
This test involves the partially zoned, free tier website.
Recall that the Australian load time is: 7.215sWith Railgun, the loading time is: 6.614s
This is slower than a setup without Cloudflare and not enough improvement
If you are in Australia and do not have much international visitors, do not use Cloudflare. If you are outside Australia, results may differ. For example with Singapore, website load times perform extremely well.
If you are in Australia but have international visitors, using Cloudflare is good, but only if you are in the paid tiers.