A Content Delivery Network is a network of servers around the world that can be used to offer resources to users without having to pull them from the source server which is limited to one location. This makes the use of a CDN especially usefull for websites that operate globally, like the Joomla-SEO.net website, which attracts users from all continents:
Especially if you suspect your site is often accessed from developing countries, a CDN becomes even more efficient, as the infrastructure is often less advanced. Even if you think your website is very fast, it may not be the case in say, Gambia.
But even sites that only target a specific country will always have users that travel and want to access the site from abroad. Also, countries like the USA, Russia, China, etc. are too large to be served efficiently from just one location. So, enough reasons to implement a CDN, especially as it is does not have to be very difficult or expensive.
What does a CDN do?
A CDN fetches the files of your website, and distributes them to datacenters over the world. Based on how you set it up, the static files will be served from the CDN, which will usually be:
- css files
- local webfonts
Anything non-static, like the ever-changing content of your articles, i.e. the HTML files, should not be fetched from the CDN. Often, 75% of the size of your website will now be pulled from the nearest server of your CDN provider.
When you implement a CDN on your website, you basically configure the static content to be pulled from the CDN.Let's look at an example for an image. Without a CDN the image would be fetched as follows:
<img src="/images/seo-joomla.jpg." />
After the CDN is activated this will be:
<img src="http://cdn-url-xxxxx.netdna-cdn.com/images/seo-joomla.jpg" />
You clearly see the difference: instead of the relative URL that would pull the image from the website's domain, it is pre-pended with the domain of the Content Delivery Network.
Implementation of a CDN
If you want to use a CDN with Joomla, usually you will have to go through 2 major steps:
- Sign up with a CDN service. There are many, some expensive, some cheap or even free, or services that only bill used bandwidth, which make them nice for smaller sites.
- Configure the CDN in Joomla, usually using an extension.
As an alternative, you can choose a webhost that offers CDN functionality through their Cpanel. Siteground.com is an example, where you can switch on the CDN without any configuration in Joomla.
When selecting a CDN, check their reputation in the forums, their price, and any possible conflicts they could have with Joomla. Also check any requirements they might have. An example is CloudFlare, which forces you to have a website accessible through www-. Much used services are:
Currently a number of CDN Extensions are listed in the JED:
An extension that might not pop-up immediately when you look for plugins to support CDN's is Jbetolo. Between all the otther tools to enhance website speed, it also offers CDN functionality in one of the advanced tabs, though currently limited to Amazon Cloudfront and MaxCDN.
Set-up is pretty easy to do, depending on which one you choose.
Here on the Joomla-SEO.net site I use the NoNumber solution with , see a detailed tutorial on that in our blog about setting up a Joomla CDN with NoNumber.
For MaxCDN we have a special offer:
Video on setting up MaxCDN with Nonumber
Also check a Youtube video on setting up the CDN: