Both CloudFlare and MaxCDN are incredibly popular services, and both can go a long way towards helping you increase the performance of your website.
However, largely due to the fact that both companies offer CDN (Content Delivery Network) services, a lot of people get confused about which one best fits their needs.
In reality, although many of their features do cross over, CloudFlare and MaxCDN are distinctly different types of service.
I’ll kick off with explanations of a few basic concepts — such as CDNs, caching and server response times — before explaining what each of these two services offers, why you’ll likely want to use one or other (or both), and how they differ.
Why is this so important? Well, the farther away from a server each of your visitors is, the longer they’ll have to wait for the files that make up your website to reach them. By storing files in multiple locations around the world, a CDN allows each of your site’s visitors to automatically load them from whichever server in the network is the closest. This helps to reduce the waiting time for your webpages to load on their screens. (More on this below.)
In addition to using a CDN to serve static files (i.e. files that will not change on the fly), there are also a number of other inherent performance-related benefits to CDNs — one of which is caching.
When you sign up for an account with a hosting company, you’re given either full control of a full server (dedicated hosting) or partial control over a portion of a server (shared hosting, VPS hosting, and so on). Your WordPress database, core WordPress files, themes, plugins, images, and the like, are all stored in space on the server that you’ve been allocated by your hosting company.
Each time someone visits a page on your WordPress website, multiple requests are sent to your server. For example, when someone visits the homepage, the WordPress index.php file will be accessed. Calls to other core WordPress files will also be made on your server.
Each additional data request increases the time it takes for a page to load. One of the most efficient ways of solving this problem is to pre-cache a static version of each page of your website. When someone visits your website, they’ll download a static HTML version of each page instead of loading it dynamically each time with calls to your database.
Caching is one of the most effective ways of increasing the speed of a website. It can easily reduce page loading times from four seconds to less than one. By reducing page loading times, you’ll end up with happier visitors, and with happier visitors comes increased traffic and even improved search engine rankings. Because of this, making sure your website loads quickly should be a priority.
Another big factor that affects website loading times is the server response time.
Server response time is a measure of the time it takes for a browser to request data from your server, and for your server to deliver it to the browser. It can be frustrating to receive slow response times from your hosting company — particularly if you’ve already optimized your pages by properly caching them — and, to be honest, sometimes the only solution is to switch hosting companies to one that offers better response times. (This is especially true if you’re using generic shared hosting, rather than specialist WordPress hosting.)
In addition to using a hosting service that’s not up to the job, there are other factors that can contribute to slow server response times. These range from your specific package or the amount of traffic your website receives to limited CPU resources and general lack of memory.
Finally, another big factor in server response times is the physical distance between the location of a website visitor and the location of your server. The further the visitor is from the data center, the slower the server response time will be. Therefore, if your data center is located in Texas, someone from New York will get considerably better response times than someone accessing your website from London — who, in turn, would get much better response times than someone visiting your website in Dubai.
What’s more, because much of the load will be on the CDN (rather than your original server), they can also significantly bolster your original hosting plan’s ability to handle larger-than-expected amounts of traffic. This means that your website will be less likely to go offline should you suddenly receive a traffic spike. On top of that, since CDNs are delivering your content to visitors, the amount of bandwidth you use with your hosting account will also be greatly reduced. (This is particularly relevant if your hosting company charges you for bandwidth, as some do.)
In a nutshell: Assuming your website’s audience is global, using a CDN can be one of the most effective ways to speed up your website.
Now, with all that out of the way, let’s take a look at what these two CDN providers offer. Let’s start with CloudFlare.
With CloudFlare, all of your website traffic will go through its global network of data centers.
CloudFlare has 31 data centers across six continents — with a particularly high density in North America and Europe. Incidentally, it also has a dedicated website that provides up-to-date notifications on the performance of each data center. This is particularly useful for monitoring purposes.
That said, CloudFlare is NOT aimed solely at increasing a site’s performance. Crucially, it also offers a range of services to help safeguard your website against malicious attacks, including:
In 2004, CloudFlare handled the largest DDoS attack in internet history — which highlights the company’s experience in preventing large-scale website attacks. For an excellent overview of how CloudFlare works to protect websites, check out the handy diagrams (and text) on its official page.
To use it, you need to change your DNS (Domain Name Servers) to those of CloudFlare’s. This is a necessary step in CloudFlare’s security system that means all of your web traffic will flow through its network before reaching your site. If attackers were able to bypass your DNS, they could then completely bypass all of CloudFlare’s security measures. For example, if potential attackers found out your server’s IP address, they could then attack your server directly. Changing the domain DNS settings helps to prevent this.
Once you’ve pointed your domain’s DNS to CloudFlare, you need to add your hosting configuration information (such as your server IP address). These are the same settings your hosting company would use if you used their DNS settings, and email servers and redirects can also be configured. Don’t be concerned about the steps — all you have to do is open a ticket with CloudFlare, and it’ll help you configure your website settings.
The good thing about CloudFlare is that, once your DNS is pointed its way, it’ll automatically start caching pages on your website — there’s no need to configure anything on your site. I do, however, recommend opening a ticket with your hosting company and asking them to restore original IP information to server logs. This is a necessary step, since CloudFlare is a reverse proxy. All hosting companies have experience with CloudFlare, so it’s highly unlikely your hosting company will have difficulty performing this step for you.
CloudFlare has three settings pages: settings overview, security settings, and performance settings. Most website owners will be happy with the default settings, however you can actually adjust a range of different security and performance options. For example, you can switch features such as hotlink prevention, email address obfuscation, caching level, and image optimization on and off. Be aware, though, that adding additional security measures to your website this way may inadvertently stop legitimate visitors from viewing it.
One of my favorite parts of CloudFlare is the analytics page, which gives you a complete report on your website traffic. You can view a report for all websites on free plans or all websites on paid plans, or view reports on a website-by-website basis.
The report displays total pageviews, regular traffic, crawlers and bots, and threats. The country of origin of threats is displayed, and there’s a breakdown of the search engines that have crawled your website over the given time period.
Around 30 apps are available for CloudFlare, and can be selected through your account to add tools or integrate your websites with popular internet services.
A Better Browser, for example, will warn visitors who are using an old browser to update to a newer version, while ScrapeShield helps you monitor websites that are duplicating your content. There are also integration options for Google Analytics, Google Webmaster Tools, CodeGuard, and VigLink.
Many people use CloudFlare to improve their website speed; others use the service to make their websites more secure. I use it for both of these reasons — however, it was a DDoS attack I experienced earlier this year that made me sign up to the service.
Now let’s take a look at MaxCDN.
First, let’s take a look at MaxCDN‘s data centers. MaxCDN has 57 data centers: 22 in North America, 31 in Europe, three in Asia, and one in Australia. (This is more than CloudFlare offers.) MaxCDN, however, does not have a data center in Africa or in South America, although one is planned for Brazil.
All MaxCDN data centers use fast SSD servers with 10GB connections, and the company has partnerships with major internet service providers around the world to help speed up mobile connections.
To use MaxCDN on a WordPress website, you’ll need a caching plugin, such as W3 Total Cache, WP Super Cache, or WP Rocket. Alternatively, there are also an increasing number of specialist managed WordPress hosts, such as WPEngine and Flywheel (to name a couple of the industry leaders) offering MaxCDN’s services built into some of their (usually more pricey) hosting plans.
The number of configuration options available to you with MaxCDN depends on the caching plugin you’re using. W3 Total Cache offers more than 20 unique settings for content delivery networks, while WP Rocket only offers four. (Note: WP Rocket is one of the few caching plugins available for WordPress that also offers support for CloudFlare.)
While CloudFlare allows you to enable and disable certain features of its CDN, it doesn’t offer you the same level of control that MaxCDN does. MaxCDN lets you store cached files at netdna-cdn.com, or at a custom domain of your choosing.
Cached files are divided into three types, and each type is stored in a particular zone.
MaxCDN also offers you a huge amount of information about your cached files. The reports section allows you to see the size of files that are being distributed on your CDN, the top 50 files, the data centers that files are being called from, status codes, zone breakdown, and more. All of these reports help you see what files are being viewed, where they are being viewed from, and what is using up most of your bandwidth.
MaxCDN allows you to protect your account using a two-step authentication process; you can whitelist the IP addresses of people who are permitted to access your account.
MaxCDN can’t, however, make your website more secure in the way that CloudFlare can. It doesn’t protect your website from DDoS attacks or SQL injections, but it does offer some security options for applications such as OAuth authorisation, IP Whitelisting, HTTP Referrer Whitelist, and Secure Tokens.
CloudFlare and MaxCDN have very different pricing structures. CloudFlare doesn’t ever charge you for using its CDN, while MaxCDN’s pricing plans are based on how much bandwidth your website uses.
As you can imagine, CloudFlare’s free plan is hugely popular. It helps make your website more secure, gives you good analytical data about your traffic, has SSL support, and offers you unlimited bandwidth for your cached files at no cost. That said, the plan is limited in some respects. For example, it does not support some browsers, and traffic stats are only updated every 24 hours.
I use the pro plan on my personal blog and for my discussion forum. It costs $20 per month for the first website and $5 per month for each additional website.
Upgrading to the pro plan adds a web application firewall, real-time statistics (updated every 15 minutes), mobile optimization features, and image optimization. With the recent news that Yahoo is discontinuing its Smush.it service, being able to optimize images with ease is a feature I’m really pleased to have at my disposal.
While the free plan checks your website for changes on a weekly basis, the pro plan improves the crawl rate to three days.
Retailing at $200 per website per month, the business plan offers daily crawling, advanced denial of service attack mitigation, and support for Railgun to improve your website speed considerably. The enterprise plan costs a whopping $5,000 per month, and is geared towards large companies.
The cost of MaxCDN depends on how much bandwidth your website uses every month. If you check the bandwidth you’re currently using with your hosting company, you’ll get a good idea of the plan you’ll need to purchase. However, don’t be too concerned if you purchase a plan that offers more bandwidth than you need — MaxCDN rolls over bandwidth to the following month.
MaxCDN’s cheapest plan retails at $9 per month. This offers 100GB of bandwidth and two website zones. Any bandwidth used over your allocation is charged at $0.08 per GB.
Paying $39 per month will increase bandwidth allocation to 500GB, while the most popular plan retails at $79 per month for 1TB. Higher plans have reduced overage costs and a higher allocation of website zones.
Starter plans grant access to MaxCDN’s 12 core data centers in North America and Europe. If you want access to additional data centers, such as Hong Kong, Singapore, Sydney, Israel and Tokyo, you need to pay $15 per month per zone. This fee is not applicable to those who choose high-volume plans. Additional zones can be purchased for all plans at a cost of $12 per year, and custom SSL is available for $99 per month.
If you want a 20% saving on all plans, consider paying annually. If you choose a monthly plan and find that the plan handles all of your traffic efficiently, you’ll save money by paying for it in advance.
The cost of using MaxCDN will get higher as your page impressions and bandwidth increase over time. However, it’s important to remember that using MaxCDN will also greatly reduce the bandwidth you use with your host.
For example, my hosting company charges me $0.20 per GB when I go over my bandwidth allocation. Therefore, using 2,000GB of additional bandwidth with my hosting plan would cost me $400 with my hosting company, but would only cost me $120 with MaxCDN (if I were using its most popular plan at an overage rate of $0.06 per GB).
Bear this in mind when reviewing the costs of a content delivery network, such as MaxCDN, since many website owners find that they actually save money on bandwidth when they start using a CDN.
When it comes to the speed of their networks, there seem to be varying opinions on which service improves website performance the best. Some think CloudFlare is quicker; others feel MaxCDN is quicker.
I’ve used both services, and haven’t noticed one service to be quicker than the other — although it’s worth noting that I’ve never done a fully comprehensive comparison between the two to test the respective speeds of their CDNs.
At the start of this article, I noted that many features of CloudFlare and MaxCDN overlapped. That’s true because a big part of CloudFlare’s service is its content delivery network. However, once you delve deeper you can see that a direct comparison of the two services isn’t exactly a fair one.
The pricing table of CloudFlare suggests it has a major limitation with its CDN. The free plan crawls weekly and the pro plan crawls every three days. You need to upgrade to the business plan at $200 per month to crawl daily.
Well, in my experience it hasn’t been an issue. CloudFlare lets you purge files at any time, and you can purge them individually or purge your complete cache. CloudFlare also allows you to set up page rules to define the caching rules of certain parts of your website.
Purging files frequently can affect performance. MaxCDN notes in its FAQ page:
I’ve been very happy with CloudFlare, because it’s improved both the security and speed of my website. However, it’s not a true content delivery network. Yes, it speeds up my website, but it has many limitations.
Like many website owners, I was unaware of the limitations of CloudFlare’s CDN. Unfortunately, my website suffered another DDoS attack recently.
One thing that concerned me about this recent attack was that CloudFlare did not display a cached version of my website. Why was a CloudFlare error message displayed instead of a cached version of my pages?
Well, it’s all down to how CloudFlare’s Always Online feature works. CloudFlare states that:
Unfortunately, the Always Online information page only displays the above statement. The ‘Why is Always Online not working?‘ information page explains the limitations of CloudFlare’s content delivery network in full:
This statement surprised me. One of the biggest selling points of a content delivery network is that a cached version of your website will be displayed if your website goes down, yet CloudFlare states that only a couple of cached pages will be displayed in the event of an origin server going down.
I was suspicious that CloudFlare displayed any cached pages in the event of a server going down, as all pages on my website were down. The Always Online explanation page also notes that:
My websites were added to CloudFlare more than three months ago, so the lack of cached pages is unlikely to have been at the root of this problem. I asked CloudFlare to clarify this issue. A day later, they advised me that:
There it is in black and white: CloudFlare’s cache system is only supposed to help with timeout errors. If your server is down, no cached pages will be displayed.
Therefore, if we’re talking about content delivery networks, comparing CloudFlare and MaxCDN, and asking ‘Which is Better?’, my answer would be MaxCDN. MaxCDN will cache every single page on your website and will display a cached version of your website in the event of downtime — which is why it’s fair to say it’s a true CDN.
Where MaxCDN excels is the level of control it gives you over its content delivery network. Its pull zones, push zones, and vod zones make it easy to determine how content is stored, and the ability to define the crawl rate of your pull zones means you can control when cache files are purged and renewed. MaxCDN also highlights which files are being downloaded and from where — something that CloudFlare doesn’t offer.
If, however, downtime is not something that concerns you, and you simply want to speed up your website, you should give CloudFlare a try. The fact that it allows an unlimited amount of bandwidth on any of its plans means CloudFlare could save some website owners hundreds or even thousands of dollars every year by using its free CDN — as long as they’re aware of its limitations.
MaxCDN has a great reputation for providing 24-hour support, which is something that attracts many people to its service. For example, the main author of this website, Brin Wilson, frequently comments on the great support from MaxCDN.
My initial experience with CloudFlare was positive, but during my recent DDoS attack I opened a support ticket asking for help. After 14 hours, I contacted CloudFlare through Twitter, and eventually got an unhelpful reply that advised me to upgrade to its $200-per-website-per-month business plan. When I noted how poor its customer service had been for a customer who was paying a monthly fee to use its pro plan, I was advised:
I pointed out to them that my ticket was not “just a question” and that my server was being attacked.
To summarize, MaxCDN is known for providing great support to its customers and responding to tickets within the hour. In contrast, unless you sign up to CloudFlare’s business plan at $200 per website per month, you probably won’t receive a response to your tickets for a couple of days. As someone who pays a monthly fee to CloudFlare, I’m obviously very disappointed by this approach to customer service.
Finally, we need to talk about security.
If you’re looking to make your website more secure and protect it from DDoS attacks and other malicious hacking methods, CloudFlare is clearly the best option, since MaxCDN does not offer that functionality.
You’ll only receive a limited amount of DDoS protection with the free and pro CloudFlare plans. I cannot, however, criticize them for this. DDoS protection is expensive, and using CloudFlare’s free or pro plans will undoubtedly give your websites more protection than simply relying on the security your hosting company provides.
If you want the best of both worlds, you may want to consider using MaxCDN for your content delivery network and CloudFlare to secure your website. This was something that was suggested by MaxCDN support when, as part of the research for this article, I asked them about the differences between the two services.
Some hosting companies have an option to add CloudFlare or MaxCDN directly through your hosting control panel, so, if you’d like to use one of these services, I’d recommend speaking to your host to see if they have integration options for one or the other (or perhaps both) already set up.
To summarize my thoughts on CloudFlare and MaxCDN:
And there you have it!
Using CloudFlare and/or MaxCDN? Thoughts?