
How to Pick the Right Push/Pull CDN For Your Website

Disclosure: Your support helps keep the site running! We earn a referral fee for some of the services we recommend on this page. Learn more
Fundamentally, all content delivery networks (CDNs) operate in the same way. Content is served to visitors speedily from various locations, depending on their proximity.
However, to the webmaster, CDNs vary massively.
Types of CDNs
There are two different types of CDNs: push and original pull (or simply ‘pull‘). Each has its own advantages and disadvantages.
Some sites work best with push CDNs, and some work better with pull CDNs.
Here’s a quick breakdown of the differences.
Push CDNs
Generally speaking, a push CDN works very much like secondary server. The user uploads content directly to the CDN (automatically or manually) and links to it.
Some push CDNs support FTP. Others, like Amazon Cloudfront, support REST, SOAP and other protocols.
The idea is that the user, or the primary server, takes responsibility for providing content to the CDN, pushing it to the network. This is flexible: users can specify the content that is uploaded, when it expires and when is is updated.
This method is also the most efficient in terms of how the traffic is used. Content is uploaded only when it is new or changed, thus keeping traffic to a minimum.
Origin Pull CDNs
An origin pull CDN works very differently from a push CDN. Instead of the user taking responsibility for putting files onto the CDN, the CDN does it for them.
With a pull CDN, the site owner leaves the content on their server and and rewrites their URLs to point to the CDN. When asked for a specific file, the CDN will first go to the the original server, pull the file and serve it.
The CDN will then cache that file until it expires.
Pull CDNs are easy to set up, and this method also minimises storage space. However, it’s less flexible can create redundant traffic as files are re-queried before they have been changed.
This method of content delivery is can also be slower. People who are trying to access the file for the first time, or accessing it after it has expired, may notice a small difference in speed. Setting the expiration correctly can help to minimise this problem, but it can involve trial and error.
Choosing the Correct CDN
For most sites, setting up a CDN can be automated. WordPress plugins like W3 Total Cache make the process painless. But the two different CDN types suit different kinds of sites.
- Sites that receive a great deal of traffic work best with pull CDNs. Content remains relatively stable and the traffic is spread out fairly evenly, so it makes sense to limit unneeded content pulls by allowing the webmaster to set a higher expiration. This ensures that the vast majority of visitors get served content cached on the CDN.
- Sites with minimal amounts of traffic will fare better with the push system; the content is put onto the CDN once and left up, rather than re-pulled at regular intervals.
If this is confusing think about a podcast: most of the episodes are older and rarely accessed, but also never updated. The podcast is likely best served over a push CDN.
However, a high-traffic image hosting site would be best with a pull CDN because the traffic will be evenly spread.
Choosing the Right CDN
If you’re not sure what to choose, don’t panic. Either system can work. You may just need to spend more time tweaking the settings to get the most benefit.
Remember: using a decent CDN is better than not using one at all, even if it’s not the ‘right’ type. CNDs mean better performance, happier users and improved search engine rankings.
Using MaxCDN with WP Engine | Eric Binnion
May 7, 2014
[…] from Who is Hosting This? […]
Using MaxCDN with WP Engine | Eric Binnion
July 17, 2014
[…] With a pull CDN, the site owner leaves the content on their server and and rewrites their URLs to point to the CDN. When asked for a specific file, the CDN will first go to the the original server, pull the file and serve it. The CDN will then cache that file until it expires[ref]Sourced from Who is Hosting This?[/ref]. […]
dipesh
July 1, 2015
good information – on push and pull type of cdn – didn’t know that: do you know if it is possible for cdn to redirect all https requests to http… can this be configured in cdn? i mean pull type cdn?
dipesh
July 1, 2015
…and also vice verca – all https to http?
Michael
June 6, 2016
For me, a right CDN is the solution that combines the best price and the best quality. Speaking from my experience, I can recommend INXY.COM company.
Freddy
July 2, 2016
Great great explanation on the differences, but I would actually like to clarify that in the “Push CDNs” case you do not upload anything TO the CDN you upload to the CDN’s origin be this a S3 bucket or something else (the hosting server, etc), because the CDN actually is just a network. Regards!
Vix
July 23, 2019
This is a nice article, congrats. But I have to disagree regarding the “Correct CDN” part. It is actually exactly the opposite: The less traffic and the smaller (in terms of individual size) content that you have, the better to use a pull CDN. The heavier the content gets and the more visitors you get, the more your origin server starts to struggle with numerous disk performance issues, web server optimization requirements, bandwidth exhaustion and whatnot. That is especially true for your image website example, which if large enough, will be experiencing all of the above issues and the owner would likely be paying extra to a knowledgable system administrator to fix these issues, or will simply be throwing money at the problem by renting larger server(s). I can’t understand the statement that the traffic would be more evenly spread with either type of operational mode of the CDN, so will not comment on that.
Another thing, when a CDN is used in a push mode, it is very rarely that content is being uploaded to the CDN storage manually. Even at the time when this article was written, all CDN providers offered APIs which were meant to be used by the CDN customers to allow the storage capacities to be integrated the same way that a local server storage would. Thinking of it, even if you are to do it manually like a small WordPress webmaster would, wether you have to upload the image for your next post to your own host , or to the CDN instead, it would require exactly the same effort for you. But you’d win a lot in performance if you upload to the CDN.
My 2 cents!:)