Do I Need a CDN?

Before we can answer the question, we need to know what a CDN does, what it can do for your site. And most importantly, does it clean your garage? Okay, maybe garages are irrelevant, but we’ll see about that…

What is a CDN?

CDN stands for Content Delivery Network, but that’s probably not any more helpful than what you already know. From the physical side, a CDN is a bunch of servers, located at strategic points around the world. Still not helping? Alright, let’s talk about what you gain from a CDN.

A website is built with more than just a plain HTML page. Any given page has CSS files (style sheets), JS files (JavaScript), probably images, and maybe even custom fonts. The average site has over 80 different files that the visitor’s browser needs to download. We usually call these “static resources”. In other words, they are files that don’t change frequently.

While a high-quality webhost will take steps to make sure those 80 files load pretty quickly, the average webhost does no such thing. As a result, those 80 files will take way longer to load than they need to.

The storage & delivery problem

To make things even clearer, let’s use an analogy. Let’s say you start a business selling fishing lures. You’re making such great lures, that word is spreading quickly, and your garage is filling up pretty quick.

Soon, you’re spending a lot of time filling orders, dealing with lost shipments, etc. So much, that you aren’t making any new lures, or fishing, or really doing anything that you enjoy. You need help! Now, you could hire a few folks to do all that tedious work, or you could work hand off the delivery to a company dedicated to the task.

We’ll compare this shipping company to the features of a CDN.

A CDN delivers files faster

So the first thing a CDN provider does is to optimize their servers to deliver static resources/files as fast as possible. You can often enable Gzip or Brotli compression to get even more performance out of a CDN.

This is just like our shipping company, they have one job, delivering your lures. They don’t have to worry about anything except getting your product in the hands of your customers. And doing that as quickly and reliably as possible.

Side note: you should also use expiration times greater than 1 month, and you can go all the way up to 1 year if desired. Using a proper expiration time tells the visitor’s device to keep those files on hand. That way, it doesn’t need to keep downloading all 80 files every time they visit a page on your site.

A CDN gives you global reach

As mentioned, a CDN is a global network of servers, placed at strategic locations. Let’s say you have your site hosted in the United States, Dallas perhaps. Then you have a visitor from Europe, and all 80 of those files have to be transferred from the US to Europe. Or even worse, maybe you have customers in Australia or Asia somewhere, and the transfer times will really start to add up.

With a CDN, your files are cached (stored) in the location nearest your visitors. So even a visitor half-way around the world gets the same experience as the guy that’s in Dallas.

In the case of our fishing lure business, this means our shipping company having warehouses all over the world, with stock on hand. Someone orders a lure from Japan? No problem, we’ll ship one directly from Tokyo and it’ll be there next day.

A CDN shares the load

Now, most servers can handle serving 80 files, even if they don’t do it very fast. But most servers are handling more than 80 requests at a time (if not, you’re just wasting resources). Often, a single server will be shared by several websites, possibly even a couple hundred websites. Additionally, while 80 files is the average for a single page, some pages have 150, 200, or even 300 files to load. That can be hard, perhaps impossible, for a single server to handle efficiently.

With a CDN, all 80 of those files will be delivered by their servers, and your server can focus on it’s most important job: building and delivering the 1 HTML request for each page.

You wanted a cleaner garage? Well, this is it! Our fictitious shipping company keeps the stock in their warehouses, so you only need room in your garage for making new stock, and creating new lures. Shoot, you could even hire out the manufacturing process too, but that’s a story for another day!

There are a few other things a CDN can do, but those aren’t necessarily standard features, so we’ll discuss those in a bit.

How does a CDN work?

If you watched the video, good for you, skip to the next section. For the rest of you, here’s the short version:

Push vs. Pull

There are two kinds of CDN systems, push mode and pull mode. In push mode, you upload all your files to the CDN manually, and then link to those files in your site. That can be a lot of work, so we’ll focus mostly on the easier one, pull mode.

A pull mode CDN, also known as “origin pull”, lets you keep the files on your server, and you simply change the URLs on your site. You can do this easily with a plugin like CDN Enabler, and many caching plugins include this sort of feature.

For the sake of example, let’s say you have an image at https://www.example.com/images/my-awesome-image.jpg
This is the “origin” URL or location.

Your CDN plugin will change that to point at the CDN, like https://cdn.example.com/images/my-awesome-image.jpg

Then, when someone loads your image from Australia, their device sends the request to the nearest server in Brisbane to get the image. If the Brisbane server doesn’t have it yet, it fetches it from your “origin” server in Dallas (www.example.com).

Of course, that’s a bit slower for the first visitor, but with the CDN storing files locally, every other person in Australia will now get your awesome image at lightning speed.

The PoP

Now, that’s a bit simplistic, because most CDNs will have at least 2 servers per location. Each location is known as a PoP, or Point of Presence. In a pull mode CDN, each server in a PoP has it’s own cache, so each server has to fetch your images from the origin in Dallas.

This is why it’s important to set a good expiration date, as you don’t want the CDN (edge) servers fetching files from the origin server very often.

Do I need a CDN?

After all that, we come back to the original question. There are 3 reasons you might need a CDN:

  1. Your server isn’t very fast for delivering static files like CSS and Images.
  2. You have a target audience spread over a wide area, perhaps even globally.
  3. Your server is getting overloaded by all the requests for static resources.

If any of those apply, then using a CDN is an easy decision. But I said a CDN can do more than that, right? So let’s talk about some other reasons you might use a CDN.

Beyond a CDN

Our Easy IO system is a perfect example of extending the usefulness of a CDN. The fact that Easy IO includes a CDN is really just an added bonus. It’s real purpose is optimizing your images: compressing and scaling them to the perfect size. By utilizing a CDN, we are able to speed up the delivery of an image once it’s been optimized by our ExactDN rocket servers.

Several other companies offer similar features with their CDN services. For example, KeyCDN and BunnyCDN both offer image optimization as an add-on for a small monthly fee.

Cloudflare features image optimization and a website firewall as a paid add-on to their free CDN service (among other features). Sucuri and StackPath use their CDN services to provide protection to your entire site.

So can a CDN like Easy IO speed up your site? Unless your site is already loading in less than a second or two, the answer is most likely yes. So give it a try and see how fast your site can really be. And maybe you’ll even find some time finally to clean out your garage!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.