Skip to content

CDN Guide » Purge

Last updated: February 20, 2017

Introduction to Purge

Purging is instructing the CDN to no longer serve a file from cache. By doing a purge for /images/logo.png, you instruct the CDN to invalidate that cached image on all edge servers globally. After the purge has completed and a user requests the purged file, the CDN will send a (conditional) request to your origin. Your origin will then respond by sending the newer version of the file which the CDN will cache and serve to users going forward.

Some CDNs don't do invalidation but delete the object from cache. A few CDNs can do both (you choose). See table below.

Tip: unrelated to purge, your origin should always sends objects to the CDN with the Last-Modified (or ETag) header. Without one of these headers, the CDN cannot do conditional requests and will always fetch the complete object from origin to satisfy a user request for an expired object, resulting in slow cache miss responses and unnecessary bytes over the wire. Sending the Last-Modified (or ETag) header speeds up communication between CDN and origin.

Purge type
Is the object invalidated (expires in cache) or deleted (removed from cache)?

Purge time
Many CDNs nowadays do the purge (near) instantly but on some CDNs it may take several minutes.

Purge assurance
When has the purging of objects completed on all CDN POPs? Some CDNs provide a way to know, for every purge request, when the purge was actually completed.

Purge capabilities
Purge per file, purge all files, purge per directory (recursive or not), purge by file type or file extension, purge by tag or key. Do not assume every CDN has all these capabilities.

Purge costs
Some CDNs (eg. CloudFront) charge for purging if you go over a certain number of purges per month.

CDNs and Purge

  • Yes = Yes
  • Sortof/partially = Sort of/partially
  • No = No
  • Extra costs = Extra costs
  • Unknown = Unknown
AdvancedHosting More info Sortof/partially Yes Delete File, all No
ArvanCloud Yes Extra costs Invalidate File, all No
BaishanCloud More info Yes Yes Invalidate or delete File, all, directory (recursive/not) Yes
BelugaCDN More info Yes Yes Delete File, all, directory (recursive/not) Yes Yes Yes Invalidate File, all No
CacheFly Yes Yes Delete File, all, directory No
CDN77 More info Yes Sortof/partially Delete File, all Sortof/partially
CDNetworks Sortof/partially Yes Delete File, all, directory (recursive/not), file extension Yes
CDNvideo Sortof/partially Yes Delete File, all Yes
ChinaCache More info Sortof/partially Yes Delete or Invalidation File, all, directory (recursive/not) Yes
Cloudflare More info Yes Yes Invalidate File, all, header Unknown
CloudFront More info Sortof/partially Sortof/partially Unknown File, all, directory (recursive/not) Yes
Edgecast More info Sortof/partially Sortof/partially Invalidate File, all, directory (recursive/not), file extension Yes
Fastly More info Yes Sortof/partially Delete or Invalidate File, all, directory (recursive/not), tags No
G-Core Labs More info Sortof/partially Yes Delete File, all, directory (recursive/not), file type No
Imperva Yes Yes Delete File, all, directory (recursive/not), file extension, tags Yes
Kingsoft Cloud More info Sortof/partially Yes Delete File, all, directory Yes
Leaseweb More info Yes Yes Delete File, all Yes
Limelight More info Yes Yes Delete or invalidation (user's choice) File, all, directory (recursive/not) Yes
Lumen Yes Unknown Unknown File, all Unknown
StackPath Yes Yes Unknown File, all No
Tata Communications More info Yes Yes Invalidate File, all, directory (recursive/not) No
Tencent Cloud More info No Yes Invalidate File, all, directory (recursive/not) Yes
CDNs missing in this table? That is because we don't have the relevant info

More info per CDN


AdvancedHosting CDN for Static Content should soon have purging complete withing a few seconds. VideoCDN purging takes a few minutes.


Purge by tag/key is in development.


BelugaCDN exposes completion times and information on how many assets were invalidated by the purge request via the API with real-time feedback in the UI. They support full regular expressions on purge request paths. More info in the docs.


CDN77 has a limit of 2000 URLs per purge request and limits the number of purge/prefetch requests to 60 per 5 minutes.


Average purge time is 3 minutes.


Cloudflare support articles: How do I purge my cache, How to Purge Cache Using Cache-Tags [Enterprise only].


AWS Documentation: Invalidating Objects (Web Distributions Only).
It usually takes 10 to 15 minutes for CloudFront to complete your invalidation request, depending on the number of invalidation paths that you included in the requestThe first 1,000 invalidation paths that you submit per month are free; you pay for each invalidation path over 1,000 in a month (see CloudFront pricing page).


  • Purging happens pretty fast (10 - 30 seconds) most of the time, but it happens regularly that purging is not complete within 60 seconds. It's handy they provide a way to know when the purge has completed.
  • Edgecast supports purging by file extension, e.g. /dir/*.css


Fastly claims instant purging and from our experience the invalidation/removal of content in cache happens very fast indeed. Their API docs cover all capabilities. To get started you can probably best read the Fastly Help Guide about Purging. Fastly customers may run into the API rate limiting: "You can make up to 1,000 non-read requests per hour."

G-Core Labs

More info in their How to clear CDN cache? article.

Kingsoft Cloud

The average time is 40s, and the completion rate is 99.97% within 5 minutes. For URL purge request, the daily upper limit is 1000. For directory purge request, the daily upper limit is 100.


Leaseweb Purge API documentation


Purging by tag will be supported in an upcoming version of the SmartPurge REST API. There is no limit to the number of purge requests. However, there is a limit of 100 URLs and 100 Patterns per request, and 60 URLs and 60 Patterns per minute per customer account. Purging is free, with additional priority for SmartPurge Plus customers. SmartPurge provides two purge modes: evict, which removes objects from the cache, and invalidate, which triggers a refresh to update the cached content from origin.

Tata Communications

Tata does not accept purge requests containing internationalized characters like è ó ö À. The solution is to encode the path to the file, like so for example with JavaScript: encodeURI("/images/ståle/1.png"). The result will be "/images/st%C3%A5le/1.png" and Tata purging works with this.
From experience, we know purging happens fast across all POPs almost always. However, it is too bad Tata gives no insight into if and when the purge has happened. The good news is that Tata serves responses with the Age header, e.g. Age: 69714. This tells you the number of seconds the object has been in cache. If you see Age: 0 you know TATA just fetched the object from origin. You can easily check the Age header value with curl. The following command GET fetches an object and prints out the response headers:

curl --compressed -vvo /dev/null ''

Tencent Cloud

The distribution of the purge request across the network takes approximately 5 minutes. Custom purges such as tag, key or header require Tencent DevOps involvement. 10000 files and 100 folder purges are the default daily values which can be adjusted on special request. Each purge request and status is logged. Logs data is available through the console.

Share this page on Twitter

More CDN Guides