BunnyCDN vs KeyCDN: Comparing Content Delivery Networks

Disclosure: This page may contain affiliate links. If you purchase something using those links, we may receive a commission, but it will not cost you anything extra.

In this post, we will do an in-depth comparison between BunnyCDN and KeyCDN, two affordable content delivery networks with lots of similarities and a few differences in between.

As traditional CDNs offering Pull-type as well as Push-type caching, they don’t act as a reverse proxy. That means, unlike Cloudflare or StackPath, they don’t handle the DNS resolution for your domains. Instead, they only offer CNAME subdomains for your caching zones.

Both came into existence around the same time as well. KeyCDN started its operations in 2014-2015, while BunnyCDN came into the light during 2015-2016. There is only a difference of one year or less. At least, that’s what this Google Trends graph says:

bunnycdn vs keycdn google trends
BunnyCDN vs KeyCDN – Google Trends

KeyCDN seems to be slightly more popular.

Looking at their Twitter pages as well, currently, KeyCDN has more followers. Maybe because they have been around for longer, or because of effective marketing strategies.

However, if you check the usage trends from W3Techs, the story is different. BunnyCDN has a better position.

So, for a person looking at the two providers for the first time, it can be a little confusing to pick one. So, in this review, we will explore the subtle and not-so-subtle differences between BunnyCDN and KeyCDN.


Unlike Amazon S3 and other enterprise-level providers, BunnyCDN and KeyCDN don’t charge for the no. of requests. But still, there are a few items that show up on your monthly bills. Here we will discuss three of them:

  • Bandwidth charges
  • Storage charges
  • Image processing charges

Bandwidth costs

Be it with pull zones or push zones, bandwidth charges will be the main item on your bill. Whenever someone accesses the assets on your CDN zones, it incurs bandwidth fees. So, first, let us look at that:

RegionBunnyCDNKeyCDN (first 10TB)
North America & Europe$0.01/GB$0.04/GB
South America$0.045/GB$0.11/GB
South Africa$0.06/GB$0.11/GB
*prices as on Sep 6, 2020

So, BunnyCDN’s charges are considerably lower. For traffic from North America and Europe, it is almost one-fourth. However, the price for KeyCDN lowers as your usage increases. For example, if your bandwidth is over 100TB per month, the price becomes one-third to one-fourth.

BunnyCDN also offers custom plans for large users, but the details are not available on their site.

Storage costs for Push Zones

You don’t need to pay for any assets cached on your pull zones. The only charge is for the bandwidth, as we have discussed above. But if you have deployed any push zones, there is a storage charge in addition to the bandwidth charge.

  • BunnyCDN – $0.005/GB/month for the first 500TB
  • KeyCDN – $0.29/GB/month for the first 500GB, $0.19/GB/mo (500GB-1TB), $0.09/GB (over 1TB)

Again, BunnyCDN is considerably cheaper. The initial charge is almost 1/60th compared to KeyCDN. Suppose you store 1TB of data on both the services and the costs will be like this:

  • BunnyCDN: $0.005 * 1000 = $5/mo
  • KeyCDN: $0.29 * 500 + $0.19 * 500 = $240/mo

Look at the whopping difference. KeyCDN costs 48X. So, if you are planning to use push zones to store terabytes of data, BunnyCDN is clearly better.

And there is another point. With BunnyCDN, there is no limit to the number of zones you can create with an account. Whereas KeyCDN imposes a limit: 3 zones per account.

Minimum Charge & Minimum Payment

Even if your usage is quite low, there is still a minimum monthly usage and a minimum payment. Let me try to make it clear. Even if you don’t use any bandwidth during a month, but have any active zone, the minimum charge will be deducted from your balance. And when you recharge your account, you have to pay at least the minimum payment amount.

With BunnyCDN, the minimum usage is $1/mo and the minimum payment amount is $10. While for KeyCDN, it’s $4 and $49 respectively. So again, BunnyCDN is almost five times cheaper.

Image Optimization Price

Both providers offer on-the-fly image processing. It allows several things including cropping, resizing, and WebP conversions via simple URL parameters. You can enable it for individual zones for an extra charge:

  • BunnyCDN: $9.5/mo, unlimited operations
  • KeyCDN: $1 per 2000 operations

The pricing strategy is different here. BunnyCDN offer the service at a flat rate, while for KeyCDN, it’s for the no. of operations. So, for large-scale users, BunnyCDN will be a better choice. On the other hand, if you have fewer images to process in a month, KeyCDN will be cheaper.

Payment Methods


  • Credit Card
  • PayPal
  • Bitcoin


  • Credit Card
  • PayPal

Data Center Locations / PoPs

No. of PoPs4234

In the PoPs department, I don’t think you can complain about either BunnyCDN or KeyCDN. Both have their presence in nearly all regions of the world, covering six continents. Look at their location maps as well:

bunnycdn location map

keycdn location map

But if you are nit-picking, BunnyCDN has a slight edge as it has a few more locations. Also, they have a data center in Lagos, Nigeria, whereas KeyCDN doesn’t have any center in West Africa.

Pull Zone Features

As the name suggests, pull zones pull the assets from your origin server and store them on edge locations. It supports a variety of features:

Zone Referrersyesyes
Origin Shieldyesyes
Token authenticationyesyes
Custom CNAME & SSLyesyes
Country-level blockingyesno
CORS Headeryesyes
Canonical Headeryesyes
Forward Host Headeryesyes
Edge Rulesyes, support conditionsyes, but not conditional
Network Limitsyesno
Video Streamingnoyes

From the above table, you can see that most of the features are available with both the providers. So, I will mention only the differences:


BunnyCDN’s perma-cache is a unique feature, which is highly helpful in reducing the load on your origin server. With normal caching, infrequent files often get deleted from the edge servers. Such files should be re-pulled from the origin server before sending them to the user.

With Perma-cache, you can connect a pull zone with a storage zone. The latter stands between your origin server and edge servers and stores all the files permanently. So even if a file is not available at an edge server, it pulls from the connected storage zone instead of your origin server. These storage zones also support geo-replication, which ensures lower latency.

perma-cache feature in bunnycdn

Country-level blocking and redirection

Pull zones in BunnyCDN allows blocking or redirecting requests based on a user’s country, whereas, with KeyCDN, I didn’t find a direct way to implement it.

Edge Rules

Edge rules allow setting headers and other things for each zone. Here is a list of the rules supported by BunnyCDN:

  • Block Request
  • Force Download
  • Force SSL
  • Change Origin URL
  • Override Cache Time
  • Redirect to URL
  • Set Request Header
  • Set Response Header
  • Enable/Disable Token authentication

You can set these rules conditionally as well. For example, if you want to set Force Download for a particular file, you can do that.

setting edge rules in bunnycdn

KeyCDN also supports some of these headers and rules. However, it doesn’t support conditions.

keycdn force download
the same thing with keycdn, but it doesn’t support conditionals

Network Limits

BunnyCDN allows implementing the following limits per pull zone:

  • Download speed limit
  • Requests limits
  • Maximum connections per IP
  • Monthly bandwidth limit
bunnycdn network limits

If you don’t want the usage to exceed a certain limit, this feature is highly useful.

KeyCDN currently doesn’t support such limits. All the requests go through unmetered until you have balance credits in your account.

Video Streaming

KeyCDN gets a point here. It supports live video streaming at an affordable cost. BunnyCDN supports HTTP Live Streaming, but according to their FAQ, currently, they don’t allow it.

Other Features

Optimization & Image Processing

As I mentioned in the pricing section above, Bunny Optimizer comes with a price tag of $9.5/mo. You can enable it at the zone-level.

Not just image processing, it includes css and js file minification as well. Here is a list of the supported features:

  • WebP Conversion
  • URL parameter based image processing
  • CSS and JS minification
  • Automatic image optimization for Desktop and mobile devices
  • Watermarking

KeyCDN also offers a similar feature. But it is not as comprehensive as Bunny Optimizer. Although it supports image processing based on URL parameters, currently there is no option to enable automatic compression. It doesn’t support file minification either.

Push Zone Features

Location selectionYesNo
FTP accessYesYes
API accessYesNo
rsync over SSHNoYes

The ability to select geo-replication regions is the main advantage I found with BunnyCDN storage zones over KeyCDN’s push zones. Because the cost depends on the regions you activate. Currently, there are five regions:

  • New York – $0.02/GB
  • Los Angeles – $0.02/GB
  • Falkenstein – $0.01/GB
  • Singapore – $0.03/GB
  • Sydney – $0.03/GB

If you select all the five regions, your files will be replicated across all the regions and the total monthly charge will be $0.11/GB (sum of the prices of all locations). Instead, if you activate only a specific location, you will be charged only for that specific location.

KeyCDN also supports geo-replication, but you have no choice to select locations.

On the flip side, KeyCDN supports accessing Push zones via SSH, which I couldn’t find with BunnyCDN storage zones.

Log Forwarding

KeyCDN supports the Syslog protocol, which allows you to send the logs to another server. The feature comes at an extra charge of $3 per day.

Whereas with BunnyCDN, you can view the detailed logs in the dashboard itself. You can also download it as a .log file. However, there are no mentions about how to set up the Syslog protocol.

Usage Monitoring

On BunnyCDN’s Statistics page, you can monitor the following metrics:

  • Bandwidth served: bandwidth, no. of requests, cache hit ratio
  • Datacenter traffic distribution
  • Details or non-2xx responses, which is useful in troubleshooting

KeyCDN’s Reporting section is divided into two: Usage, and Analytics.

Here is how the Usage page looks like.

And here is the Analytics page:

Overall, BunnyCDN gives a richer feel with more details. Especially the data center traffic distribution is quite helpful in finding where the majority of your visitors are from.

Support Quality

I did experience a few small glitches when I started using BunnyCDN in 2019. So I had to try their support ticket a couple of times. But their support team have been proactive all the time. The longest reply time I’ve got so far is only three hours.

My duration with KeyCDN is not as long as with BunnyCDN. But once I opened a ticket to enquire about their image processing feature while in trial mode. And the response time was slightly longer – almost a day.

However, I have seen people who have received a much faster response than me.


To compare the speed differences between the two CDNs, first I created a sample WordPress site. To make it close to a real site, I added some images and used the Elementor builder to create the page.

Then I tested the loading times from all the locations available in Pingdom Tools. You can see the result in the second column in the below table. After that, I created a pull zone each on KeyCDN and BunnyCDN with the origin URL set to our sample website. Then using the W3 Total Cache’s CDN feature, I integrated each pull zone one after the other and ran the speed tests again.

Locationwithout CDNwith KeyCDNwith BunnyCDN
Washington D.C301ms318ms336ms
San Francisco814ms512ms520ms
Sao Paulo1.18s673ms688ms
Average1.095s646ms (41% faster)673ms (39% faster)
tests using Pingdom Tools

Although the difference in the average loading time (646ms vs 673ms) is not huge, KeyCDN shows consistently faster results from all locations.

So, according to my tests, KeyCDN has a slight edge in performance.


Pros & Cons of BunnyCDN

  • Lots of features like perma-cache
  • Cheaper than the competition
  • Efficient support
  • Documentation could be better: they do have good docs, but I feel that detailed explanations are missing here and there.
  • comparatively newer provider

Pros & Cons of KeyCDN

  • Slightly faster
  • Clean user interface
  • Older and more popular
  • Higher minimum payment
  • Some features are missing

So, overall, my personal choice is BunnyCDN. It is the CDN I currently use on this site as well. That doesn’t mean KeyCDN is not good enough. They have been a stable provider for quite some time with decent performances. But to be honest, I couldn’t find a solid reason to consider KeyCDN over BunnyCDN.

If you have a different opinion or experience, please mention it in the comments.


  1. Hi Abhinav, Thank you so much for the articles, they’re super helpful for me!

    I’m a designer, and totally newbie in CDN and server related.
    I was using KeyCDN from 2014, before they put monthly minimum price, back then it’s really great.
    I like them because their UI and settings are newbie friendly, I followed their help page, and all works perfectly.

    My website is a static website, only to store my portfolio, just in case my client ask for it, and to upload project files so my client can download it and the URL link looks professional (files.example.com/project001.zip). Literally it can be considered as a “dead website”, because it only has very few visitors. So after a while, I think $4/month is a waste of money, especially payment upfront $49. A website with 10x more traffics only cost $1 in AWS (I read a review).

    So I want to tried AWS S3 and Cloudfront, but their website is super confusing for me, there’re tons of options, which is good for developers or big websites, but I’m looking a CDN with more simple setting. I spent a week to setup by watched dozens videos tutorial on Lynda, and text tutorial from many blogs, and I’m still confused, each tutorial has different setting which I don’t know the reason of it. It took a lot of steps to make it works, from setup IAM user, policies, make S3 and cloudfront, even to use a custom domain with SSL isn’t just a couple clicks like another CDN. And price/request quite scary for newbie, I read some of cases, bad people can request massive amount of header request, and end up we get a big billing charge.

    After got a headache, I’ve a plan to keep using KeyCDN, because they handle all of the securities, we only need to create pull and push zones. I want to convince myself by searched a 2020 review. After read your article, I’ll try BunnyCDN instead.

    Thank you.

    • I forgot to mention, based on their policy, AWS doesn’t take any responsibility for unusual “request”, and wont give a refund, consumer takes all of responsibility.

      We can create cloudwatch to set an alarm for monthly budget exceed, and cloudtrail to monitor the activity (paid). In the end we still lose, let’s say my monthly budget is $100 and I got bad header request 1M per day, then I can block the IP or region of the attacker, or shut down all AWS services, both cases end up I still need to pay that $100. To prevent that we can use AWS WAF.

      Another CDN will automatically block bad request. But in AWS we need to set up all of it manually, and we need to pay for better security, I believe it will end up expensive.

      However I’m a newbie, what I write above are based on some of reviews and bad experiences with AWS.

Leave a Reply