Disclaimer: MaxCDN sponsors my CDN account but they are in no way requiring me to write a review. I do have a MaxCDN affiliate account and my links ARE affiliated so if you do purchase a MaxCDN subscription through my site, I will be getting paid for it.
During my spree of reviews for the products that I use, I came to a question, “Do I really need this?” as in, “Do I really need to pay $50 for a WordPress framework?”, “Do I really need THIS specific hosting package?” and finally I got to, “Do I really need to use a CDN?” especially when I already use CloudFlare.
The question, at least for me, was “YES”. I don’t “need” it but I have to admit, it’s really helpful and spending a little bit of cash can go a long way. For example, the WordPress framework allows me to stop coding every time I want a new template, I don’t have to use custom fields to add Google Plus accounts, and I don’t have to worry about code quality since I rarely touch PHP. This is pretty much awesome.
Then comes hosting (which is ABSOLUTELY necessary), Cloudflare, and my CDN.
I’ve already spoken about how you can easily optimize WordPress speed and one of my main points was using a CDN. So, let’s discuss that.
What’s a CDN?
A CDN is a “Content Delivery Network” and the way I think about it is that it’s a cheaper “server” that holds copies of your images, videos, and other miscellaneous files in multiple locations and is used to serve your visitors with that data. One of the key words here is “multiple locations”. A CDN is usually distributed throughout a region or part of the world so that visitors from Europe can access American content without a lag.
It may seem redundant (in a bad way) to use a CDN instead of just either upgrading your hosting or staying with your hosting but I found it quite useful for the load that I get. Think about it this way. What are all the things that your hosting does for you?
- Run PHP code
- Route HTTP requests
- Run database
- Keep your files intact
And it does so for all your visitors. Whenever a visitor comes to your site, they will inadvertently cause the server to run WordPress for them and serve them with data. WordPress tries to decide what data to get, how to display it, then asks the database to get it, and then it gets displayed. And this happens with every page load, no matter what. Caching helps alleviate that load, and it helps a lot but it’s not full-proof and can only go so far.
So what does CDN do for you?
Why A CDN?
A CDN will lessen the load on your server which is great because cheap hosting usually has limits to its bandwidth and WILL throw you out from overusage. And even with expensive hosting, you’re facing the issues of potentially overrunning not only your bandwidth (the amount of data that the server sends out) but also your CPU usage because it takes processing for images and other data to be sent.
In my case, when my traffic started spiking, my server started going down more often. The load of running scripts and serving images on top of that took it over the stop and slowed everything down to a halt. Imagine 25 second loads.
That’s when MaxCDN decided to sponsors me and my site with their CDN and guess what? My server is under its bandwidth limit every month and loads are always stable. So let’s get into the details.
Less load on a server
I get approximately 20K users a month with a little bit over that in page views.
Now, let’s see how much my server has to process over that same month:
Here’s how much MaxCDN saved me that month:
MaxCDN gets to save me about 80% of my bandwidth, and automatically cache my data on top of that.
A CDN can drastically change the speed load especially when it comes to having international users and having a spike in hits. International users, instead of accessing one server, access a local CDN server and get their data faster without overloading a single server.
I decided to disable my CDN and test the speed of my site (at the expensive of my visitors while performing the test, sorry!). I used pingdom tools with the closest server to me (Dallas):
The test is publicly available if you want to check it out. Here’s the time breakdown:
Obviously, images make an impact and so does script loading.
Let’s turn on the CDN and see the difference:
And again, it’s available publicly. The distribution of time spent is a bit different as well:
HUGE difference. Images don’t slow the site down as much, we just shaved off more than 2 seconds from the load. SWEET!
Slow site speeds cost businesses up to 1.6 billion pounds a year, now you may not run an ecommerce site but translate the money into visitors and visitor engagement, how much are you losing?
So what’s up with MaxCDN?
MaxCDN is my choice of CDN, mainly because I got a free sponsored account and it works flawlessly (otherwise, I wouldn’t use it, right?). So, here are some cool things I’ve foudn out about MaxCDN.
By using W3TC plugin (one that I HIGHLY recommend even without using a CDN), you can pretty much just plugin the API code you get from their site and you’re ready to go:
Note that I can also add what subdomain I want my content pulled from. If you hover over or open any of my images in a new tab, you’ll see that it comes from a “cdn” subdomain.
This saves me from setting anything up over that.
So, a cool thing about MaxCDN is that it runs through NetDNA (a CDN provider) and they have a really neat dashboard:
From here you can purge your CDN, view reports, and do everything else. It’s really damn simple. You can setup all kinds of zones for your data and for multiple sites.
Here’s a neat report to show you how much data has been served:
So, the cool thing that MaxCDN provides is different “zones” based on your data. There are five different zones:
- Pull Zone – for image, css files, js files etc. You can setup Gzip compression for further optimization, pseudo streaming, new cache control, overrides and even a robots.txt to allow/disallow crawling. Here you’ll have automatic purging and caching.
- Push Zone – I don’t personally use this but it’s a zone optimized for files that are less likely to change but that are bigger than most files like installers, ebooks, and pdfs. These files don’t get purged or deleted.
- VOD Zone – VOD is for flash, realplayer files, and whatever else. It’s basically for video/audio streaming. The reason for this zone is to disallow purging (cached until deleted or modified).
- Live Zone – this Zone is meant for live video or audio being streamed.
There are plenty of options to fulfill your needs. Like I said, I only use Pull Zones but it’s already super useful. If you deal with any kind of multimedia content, I’d highly suggest using this.
The last cool thing about MaxCDN is the pricing. I think that starter is good enough just for everbody, here’s the breakdown:
- Starter – 1TB/year, instant activation, reporting, and basically all that I’ve just mentioned. $39.95/year (that translates to roughly $3/month). You get only 1 zone. Each extra zone is $12/year
- Business – 1TB/month or 12TB/year, 25 zones, full API access. $79/month or $799/year
So, while you only get 1 zone, it’s very well worth it. And at ~$3 (you have to pay for full year) it’s very well worth it.
Positive/Negatives of using a CDN and MaxCDN
Every product has a positive and negative, for sure and so does the usage of CDN.
As far as just using a CDN goes:
- it’s not very useful for low-traffic sites that do not have many images and may complicate things when it comes to a setup
What about MaxCDN:
- When developing or working on a site, it can be cumbersome having to purge the CDN. CloudFlare (though not a CDN) allows “development mode” where nothing is cached and you’re served with live content. I found myself constantly purging a stylesheet when making upgrades to my site. I could have, of course, turned of CDN usage altogether but that seems like an unnecessary step
- I’m not entirely sure how one would setup a non-WP site
Using a CDN:
- a definite speed boost. A well distributed CDN can serve content to users overseas without an issue so that my European readers don’t experience a lag accessing my site
- less load on my server. Instead of bogging down my server with HTTP requests, a CDN is able to take a good chunk of processing on its shoulders. This allows for faster access times under load
- easy WP integration with W3TC. It’s a plug-n-play + minimal setup type of deal
- dashboard lets me quickly know how much bandwidth I’m using. I can also quickly purge all my files
- Different type of zones for different purposes. If I wanted to branch out into video development, I could easily switch or make another zone for better performance at that end.
- pretty cheap. Granted I have a sponsored account, it’s still better for me to invest in a CDN and spread my bandwidth usage between my host and a CDN instead of upgrading my host and bogging down that same server. Plus it’s cheaper doing things this way