Pull CDN vs Push CDN
How Each Model Gets Files to the Edge
Pull CDN vs push CDN describes two ways of getting files onto a CDN edge. A pull CDN, also called an origin-pull CDN, fetches content from your origin server the first time an edge server needs it. A push CDN works the other way round. You upload files to the CDN in advance, and they are stored on its servers, usually in a storage zone or bucket. Visitor requests are then answered from those stored files.
The difference matters most for the first request and for updates. With a pull CDN, the first visitor to each edge location triggers a fetch from the origin, which is slower. Later visitors receive the cached copy. With a push CDN there is no on-demand fetch, so there is no first-request delay, but someone must upload every file and every new version.
Which Sites Suit Each Model
- Pull CDNs suit sites with many files that change over time, such as a blog or news site. The origin stays the source of truth, and the CDN fills itself as visitors arrive.
- Push CDNs suit a fixed set of large files that rarely change, such as video downloads, software packages or a catalogue of images uploaded in batches.
Many providers offer both models, and some sites use each for different content. Static assets might be pushed while pages and user uploads are pulled from the origin. The basics of how a CDN is organised are in what a CDN is.
Example: A Photo Library Versus a Product Catalogue
An online photo library receives thousands of new images every day from its users. A pull CDN suits this, because each image is fetched from the origin the first time someone requests it, with no separate upload job. A push CDN would require a process to upload every new file.
A product catalogue with a few hundred images that changes twice a year is different. Uploading all images in one batch, then pushing updates when a season changes, can be simple and predictable. The push model also gives the site full control over what is stored at the edge.
Frequently asked questions
Is a pull CDN always slower than a push CDN?
Only for the first request to each edge location, and for a file whose edge copy has expired. Once a file is cached, both models serve it from the edge at similar speed. The gap is most visible for rarely requested files, where a pull CDN may have to fetch from the origin again and again.
Does a push CDN need an origin server?
Not for the files it stores. A push CDN keeps uploaded files on its own servers, so static assets can be served without an origin. Dynamic pages still need something to generate them, which is usually an origin server. A site may therefore use both: a push CDN for files and a server for pages.