- Internet & the Web
Why you should use a CDN for website optimization
Content distribution network
What does CDN stands for, and what is it?
CDN stands for Content Delivery Network or Content Distribution Network. But most of the times it's called a CDN, because that's much easier :-). Anyway, let me describe you what is CDN is or does. Let me begin with saying that it isn't actually a different network than the "regular" internet network. It is a range of optimized systems for file serving. Let me show you the Wikipedia definition first, that would make it much clearer:
A content delivery network or content distribution network (CDN) is a system of computers containing copies of data, placed at various points in a network so as to maximize bandwidth for access to the data from clients throughout the network. A client accesses a copy of the data near to the client, as opposed to all clients accessing the same central server, so as to avoid bottlenecks near that server. (source: Wikipedia)
I highlighted some of the most important features of a CDN in the text above. Simply said, a CDN is used to make your website files load fast! By placing the files around the globe on optimized servers in optimized networks, files are loaded in the fastest and cheapest way possible. And in this article you will read how to use a CDN to optimize your website.
Some history about the uses of a CDN
A CDN originally wasn't built to make a website load faster. In the early years a content distribution network was mostly used for video streaming, to facilitate hundreds or even thousands of users watching a movie or listening to music at the same time. This article isn't about video streaming as it is about website optimization, but if you want to know more about video streaming this you can read this Wikipedia article.
After the video streaming came the idea of using a CDN for file transfer. This meant placing a downloadable file on file servers around the world, to insure fast downloading times. Akamai, still a leading provider of CDN services, became a big player by providing this service. Chances are the almost anyone who has ever downloaded a file (software, games etc.) has used the Akamai network to do this. According to Akamai, 20% of the world's Internet traffic is delivered over the Akamai platform (source: Akamai).
The next step was using all this technology for website optimization. Since a website is just a collection of files, it makes good sense to put in some optimized file serving to make a website load faster. And this is where it becomes interesting for you, since you can use this technology on your own site. Unfortunately you can't just simply sign up for the Akamai services, since they are only serving big enterprise customers. But there are smaller players which you can use for your website. And some of them leverage the Akamai network (or other highly optimized big player network), so there is a solution for every website.
Why you should use a CDN for website optimization
If you are interested in optimizing the loading time op your website, I assume you already own a website. And you are probably hosting your site on a virtual or dedicated server. And you already found out that your website isn't loading as fast as you want it to load. This certainly is the case when you are running a Magento webshop, which is very resource intensive and it's server load causes your frontend to load slowly. But slow loading is also the case with Wordpress or Drupal websites, they don't always load as fast as you want.
By implementing a CDN for your website, you separate the file serving task of your webserver from the site rendering task. You are reducing the load on your server, which allows it to render the site faster (or you can lower your package to a cheaper one :-). Amazon makes is really clear why a fast loading website is important: Every 100ms of load time improvement increases the revenue with 1%.
Most of the loading time of your website involves waiting for the files to download. If you use a CDN, these files will always be located on the server nearest to your visitor. Your visitor will experience very limited latency in the network, meaning the files will be loaded by the speed of light. Overall this gives the visitor a very fast experience, reducing the load time of your websites to just a few seconds. And, when you combine it with hosting in the cloud, you can give your visitors a steady and reliable website performance.
Not convinced yet?
Deploying a CDN for your website might seem a difficult and time-consuming task, but this isn't really the case. And the benefits are there. As you might know, Yahoo has it's own tool for website optimization, called YSlow! They have a list of recommendations and best practices, and using a CDN is a major recommendation. Just read "Best Practices for Speeding Up Your Web Site", and scroll down to "Use a content delivery network". If you want to test your site online, use GTMetrix. Here you can see a list of optimizations for your website, and if you aren't using a CDN you will certainly see that in the list of recommendations.
Wordpress optimization with a CDN
The self-hosted Wordpress blogging platform is fast by itself, but you can improve the loading times by using a CDN. There is a plug-in to optimize Wordpress, called W3 Total Cache. It makes use of an advanced Wordpress cache, which you can connect to a content delivery network. It's a great plugin, and widely recognized as the best optimization plugin for wordpress around. And it's free!
Which CDN provider can you use?
There are several CDN providers around, but not all of these are suited for your "small" website. Large providers like Akamai are only useful if your website is burning tons of terabytes. If you are reading this page, this is probably not the case (all the large sites are already using cdn for website optimization :-). Luckily, there are also lots of smaller but very professional providers which offer affordable and smaller scale CDN services. Or, in the case of Rackspace, you can still use the Akamai network since they partnered up with Rackspace for their file serving.
I made a list of the best CDN providers, along with their pricing and which network they use. Some CDN providers have their own network, while other providers tap into a larger CDN network. There are also combinations of network, for better redundancy and performance. Just give them a go, and let me know the results!
Rackspace Cloud Files
Monthly: 18 cent per GB (= 1 TB for $180)
Monthly: 1 GB for $0,15
Self-owned + Packet Exchange
One-time: 1 TB (1.000 GB!) for $39.95
Monthly: 10 GB for $9,95
One-time: 1 TB (1.000 GB!) for $34.95
Monthly: 10 GB for $20 (see detailed info)
Amazon AWS S3 with Cloudfront
Monthly: 30 cent per GB (= 1 TB for $300
Monthly: 1 GB for $0,093
CDN providers - Detailed information
- Rackspace Cloud Files: Superior network with affordable pricing
Rackspace recently switched to the superior Akamai network for their CDN offering. Akamai is the world leader in content distribution, so you can't go wrong with that. Rackspaces' pricing model is similar to that of Amazon S3 with CloudFront, only with lower prices for CDN traffic and a far better network. Their pricing is fairly simple and flexible as well: For every GB you store you pay 15 cents per month, and data transfer is priced at 18 cents per GB. That means that if you store 1 GB and it gets requested to a total of 100 GB data traffic in a month, you pay about 18 dollar for that month. You don't pay extra for the CDN option, so you should always enable it. And remember, it's the Akamai network, with 84.000 servers in 1.000 networks across 72 countries (source: Akamai).
Rackspace itself is a great company as well, with 24x7 chat/phone/ticket support, and an 100% network uptime guarantee. I use Rackspace Cloud Files myself, and I am an very satisfied customer. They are easy to setup (and have a large knowledge base), and if you use Wordpress for example you can use a plugin like W3 Total Cache to include the CDN for your site. Their offering comes at a higher price than MaxCDN, but lower than Amazon S3 with CloudFront. But combined with their great network en excellent customer support, Rackspace Cloud Files is a perfect choice for your CDN.
Pros: Superior Akamai network - competitive pricing - great customer (Fanatical) support 24x7 - easy to use - extensive knowledge base, including how to integrate CDN into you website.
Cons: Quality has it's price - No standard plugins.
Link: Click here to signup for Rackspace Cloud Files --> Select Cloud Files.
- MaxCDN: Best value for money
Combining very competitive bandwidth pricing with a low monthly storage fee, MaxCDN gives you the best value for money. They have easy to use plugins for popular software like Wordpress, Drupal, Joomla, Magento and many more, so it's easy to setup their CDN for your site (you don't have to code yourself). They also have an active development blog, and 24x7 support via chat/mail/phone. And they have an impressive customer base, like Mashable and TemplateMonster. The 1 TB offer counts only for your first year, after that it's $99 dollar for 1 TB (prices drop when you consume more) which is still very competitive considering the other providers.
Pros: Affordable pricing - lots of plugins for popular software - 24x7 support - Active development - Good coverage of locations in North America
Cons: Few locations in Europa (mostly peer locations on the Packet Exchange network), no locations in Asia/Pacific.
Link: Click here to signup for MaxCDN
- VPS.net CDN: Great pricing on a good network
VPS.net uses the Level3 network, which is not as extensive as the Akamai network Rackspace uses. But, Level3 has hundreds of nodes around the globe, so you're still covered on every continent. VPS.net has a highly competitive pricing for your first GB of data traffic. What makes it different from MaxCDN and Rackspace Cloud Files is that in order to use their CDN, you have to sign up for a cloud server. While a great product, it requires you to pay at least $20 per month for 10 GB of storage. The cloud server comes with 250 GB of non-CDN traffic, so you have to buy the CDN traffic on top of it. If you were already looking for a cloud server, and want cheap CDN traffic on a good network, VPS.net is a good match for you. If you don't need a cloud server, you're better off with Rackspace of MaxCDN.
Pros: Low pricing - good network - 24x7 support - Cloud server/CDN combo is great if you need a cloud server.
Cons: Higher monthly costs because of required cloud server - more difficult to setup because the cloud server doesn't act as a file server out-of-the-box.
Link: Click here to signup for VPS.net CDN
- Amazon S3 with Cloudfront - For Amazon EC2 lovers :-)
Amazon has did a great job creating Amazon Web Services, most famous for it's EC2 (virtual cloud servers) and S3 (online storage) products. S3 is widely used by many organisations who need scalable and affordable storage. And while it's normal S3 storage and bandwith prices are low (storage is much cheaper than Rackspace, which really counts when you are storing tens of terabytes), adding CDN isn't. If you are only hosting in the US, and you don't care for slower loading times in some parts of the country, the default service is well fitted for you. But if you want to give every visitor the same loading time, no matter where they are coming from, you will need a CDN, which Amazon calls CloudFront. Normal bandwidth is priced at 15 cent per GB, but if you add CDN this prices doubles! And extra 15 cent is added for every GB of traffic. And that's only US traffic, Asia prices are at 20 cent per GB on top of your normal 15 cent per GB. This makes Amazon CloudFront the most expensive option. Besides that, setting up S3 isn't as easy as Rackspace Cloud Files, and is more intended for developers than "normal" webmasters. There is also no support available, unless you pay hundreds of dollars per month. I tried S3 extensively, but finally gave up in favour of Rackspace Cloud Files. Amazon S3 was too technical for me. But, if you are a developer, and already using EC2 or other AWS products, S3 might be the best option.
Pros: Very well integrated with other Amazon AWS products - Low pricing for storage.
Cons: High pricing for CDN - Not easy to setup - No support included (!).
Link: Click here to signup for Amazon S3 with CloudFront
I did my best to give your a list of the top players in the CDN business. As you can read, Rackspace Cloud Files is my favourite because of pricing, support and superior network. Rackspace offers the best price if you aren't using lots of storage and bandwidth, but still want to use a great content distribution network. But, if you plan to use lots of traffic, MaxCDN may be the best option for you because of their lower traffic prices. VPS.net is the best choice if you also want to setup a cloud server. Amazon S3 with CloudFront should only be your choice if you plan to use more of the Amazon Web Services. But even if you do it may be a good option not to choose CloudFront as your CDN because the pricing is way too high compared to the alternatives.
In the end it's up to you, but don't hesitate to ask me a question of you want to know more. Or, just visit the CDN providers and have a look for yourself. Have fun!
Read some more about website optimization
From the experts for O'Reilly is this a highly rated book covering technical practices for improving your website. Using a CDN for website optimization is one of the topics covered, as well as server and code improvements.
Some relevant links
Dutch link site with lots of informative links about using a CDN.
- Hosting In The Cloud: What is it and how can you use it?
One of the most common "buzz terms" floating around today is cloud hosting. Despite the growing popularity of cloud computing in general, few people actually understand what these terms really mean. It's...
- Cloud computing a.k.a. Software-as-a-Service, what to use it for?
The term Cloud Computing refers to a computing model in which IT applications and services are delivered to customers over the Internet. Cloud computing is very different from conventional on-premise...