Cloudflare and QUIC.cloud are leading the way in WordPress CDNs and are consistently top performers in CDN Performance Tracker.
For most static sites, Cloudflare with APO or QUIC.cloud’s standard plan (when using LiteSpeed) is plenty. There are also third-party plugins that offer free full page caching from Cloudflare (similar to APO). Dynamic/WooCommerce sites can further accelerate dynamic requests with Argo Smart Routing, and for even better results, would use Cloudflare Enterprise.
The problem is, hosting companies started integrating very limited versions of Cloudflare because people aren’t comfortable configuring it, and Cloudflare Enterprise costs a lot of money. However, they’re often poorly integrated and lack many features you normally get when setting up your CDN directly through the CDN provider. It’s convenient… but not ideal.
With very limited exceptions (e.g. Rocket.net’s free Cloudflare Enterprise), you’re better off setting up Cloudflare directly so you have full access to your Cloudflare settings/features. Feel free to use my tutorials to set up and configure your Cloudflare settings or QUIC.cloud settings.
Key Features To Look For In Your CDN
- Network: CDNs usually have a network page with their points of presence (PoPs) and data transfer rate in terabytes per seconds (Tbps). If you have specific regions you want to target, check the network page. Otherwise, higher numbers are better.
- Dynamic (Full Page) Caching: this alone can reduce TTFB by ~72% by caching HTML. Except for Cloudflare APO, most CDNs include dynamic caching by default.
- Smart Routing: this can reduce TTFB by another 33%. When your GPS re-routes you because of traffic congestion, smart routing is the same but for your CDN. It’s especially good for dynamic/WooCommerce sites as some content isn’t cacheable.
- Security: firewalls, bot protection, and DDoS protection not only protect your site, but can block unwanted requests to the server and reduce hosting resource usage.
- Image Optimization: unlike many plugins, image CDNs don’t use server resources and dynamically resize images for mobile devices and browsers. While QUIC.cloud does this via LiteSpeed Cache, you would usually need a paid add-on like Mirage + Polish (Cloudflare) or Bunny Optimizer (BunnyCDN) to do this. It’s also convenient.
- Cache Hit Ratio: after setting up your CDN, monitor your cache hit ratio in your analytics. 80% is good, 90% is better (and roughly what I get through Rocket.net).
- Lower Latency, TTFB, Improved Core Web Vitals: further distances between your server and visitors means higher latency and a slower the TTFB. This is why Google lists CDNs as a top factor for optimizing TTFB. TTFB is also 40% of LCP, part of FCP, and impacts other core web vital metrics. This is why TTFB is so important!
1. Cloudflare Enterprise
*For Mission-Critical (e.g. Dynamic/WooCommerce) Sites.
Some hosting companies (e.g. Rocket.net + Cloudways) as well as FlyingCDN (on FlyingPress) offer Cloudflare Enterprise at affordable rates. However, not all their integrations are the same.
Rocket.net’s Cloudflare Enterprise was released first, has the most powerful integration, and their CEO (Ben Gabler) has extensive experience with CDNs as StackPath’s former Chief Product Officer. It’s 100% free when using their hosting and set up automatically on every site launched at Rocket.net. This is a big reason their hosting averages a ~100ms global TTFB and was top tier in Kevin Ohasi’s WP Hosting Benchmarks. The hosting itself is great, but that is a different story. It doesn’t include Mirage + Polish for image optimization, so you’ll need a plugin (like Optimole).
Cloudways’ Cloudflare Enterprise is poorly integrated. Even from the start, it didn’t support full page caching and served annoying challenge pages. While both of those issues were fixed, it’s still extremely limited and is sold as a $5/mo add-on. Plus, their hosting received no awards.
Servebolt’s Cloudflare Enterprise (called accelerated domains) costs $299/month which combined with their hosting, runs about $400/month. While the Cloudflare integration is great and their hosting won top tier in Kevin’s Benchmarks, $400/month isn’t realistic for most sites.
FlyingCDN’s Cloudflare Enterprise is used on FlyingPress (the cache plugin I recommend when using Nginx/Apache servers). It’s a great alternative if you don’t want to switch hosting.
Kinsta and WP Engine’s Cloudflare integration aren’t considered Cloudflare Enterprise. They may have a few Enterprise features, but nothing compared those on true Cloudflare Enterprise.
Setup Instructions
This varies depending on which integration is used. Rocket.net’s is automatic while Cloudways and FlyingCDN require you to verify ownership by adding TXT or CNAME records in DNS settings.
2. Cloudflare
*For Sites On Nginx/Apache Servers.
Setting up Cloudflare directly (with APO or a free full page caching plugin) is plenty for most static sites that don’t require the extra performance and security that come with Cloudflare Enterprise. This method is actually better than most Cloudflare integrations done by hosting companies because you get access to your Cloudflare dashboard and features that come with it.
First, add your site to Cloudflare and get to a page where they tell you to change nameservers.
Next, login to your domain registrar and replace your current nameservers with Cloudflare’s:
Once your website is added, use my tutorial to configure your Cloudflare settings. The high majority of settings are fine left as default. The main 5 things I would do are enabling Early Hints, Crawler Hints, Hotlink Protection, enabling “Full (Strict)” in your SSL/TLS settings, and watching a short video on configuring Cloudflare rules to enhance security (from Troy Glancy).
Full page caching is still needed to cache HTML for improved TTFB which the free plan doesn’t do by default. This is where you can choose to use APO ($5/mo) or a free third-party plugin like Super Page Cache or App for Cloudflare® which aside from a few differences, do the same thing.
Setting up APO is easy, here are the steps:
- Purchase APO in your Cloudflare dashboard.
- Install the official Cloudflare plugin.
- Create an API token and add it to the plugin.
- Enable APO in the plugin.
- Purge cache.
- Confirm it’s working in uptrends.com. Enter the domain as https://www. and you should see: CF-Cache-Status: HIT, cf-apo-via: tcache, cf-edge-cache: cache, platform=wordpress.
If you’re running a dynamic site and using Cloudflare directly, consider Argo Smart Routing.
3. QUIC.cloud
*For Sites On LiteSpeed Servers.
QUIC.cloud was designed for LiteSpeed servers and is set up through LiteSpeed Cache. It’s also needed for certain page/image optimizations to work in LiteSpeed Cache. While they have a free plan, you’ll want the standard paid plan which uses all 80+ PoPs and includes DDoS protection.
You also get free monthly credits. Most LiteSpeed hosts I’ve tried use LiteSpeed Enterprise which includes 10GB free monthly bandwidth. If you need more, add credits to your account.
Step 1: In the LiteSpeed Cache General settings, request a domain key and add your Server IP.
Step 2: Go to CDN → QUIC.cloud CDN Setup → “Begin QUIC.cloud CDN Setup.” Then click “Refresh CDN Setup Status” and you’ll get 2 nameservers (kevin.quicns.net and jon.quicns.org). QUIC’s DNS provides better performance when using LiteSpeed with more accurate geo-routing.
Step 3: In your domain registrar, change your nameservers to QUIC’s.
Step 4: Configure the “CDN Config” settings in QUIC.cloud’s dashboard. 3 things I would try:
- QUIC backend – lets QUIC connect to your server via QUIC and HTTP/3.
- Block Browser XML-RPC – most sites don’t use XML-RPC and can block it.
- Hotlink Protection – prevents sites from copying images and using your bandwidth.
Step 5: Switch to the standard plan ($.02 – $.08/GB depending on regions you select).
QUIC.cloud also has a nice tutorial on setting it up:
4. Bunny.net
*Powerful Image Optimizer And WordPress Integration.
If you compare Bunny.net’s network to Cloudflare’s, they have at least 2x less PoPs and slower data transfer speeds (Tbps). It also requires some extra configuration you can use my guide for.
On the plus side, you can use Cloudflare and Bunny.net simultaneously which is what Gijo (FlyingPress developer) recommended a while back. This way, you get access to features like Bunny Optimizer (image optimization) and geo-replication, although both of these cost extra.
You’ll create a pull zone and get a CDN URL which you’ll paste into the Bunny.net plugin (and other cache plugins if they ask for it). Then login and use my tutorial to configure the settings.
RocketCDN (By WP Rocket) Uses Bunny.net, But Use It Directly Instead
Just like many Cloudflare integrations, the convenience adding RocketCDN using WP Rocket comes at a price of not having access to Bunny.net’s many features as well as the dashboard. Plus, WP Rocket advertises “unlimited bandwidth” when your CDN bandwidth actually is very limited. They don’t list any hard numbers but will eventually cut you off, so it’s a guessing game.
5. CloudFront
*Large and fast network.
Amazon CloudFront has a whopping 600+ PoPs and performs well on cdnperf.com, but it’s as popular in the WordPress community since it’s not used in most CDN integrations. It’s also not as easy to set up (instructions). You’ll create an S3 bucket and create a CloudFront distribution.
CloudFront Pricing
Per Month | US, Mexico, Canada | Europe and Israel | South Africa, Kenya, Middle East | South America | Japan | Australia, New Zealand | Hong Kong, Indonesia, Philippines, Singapore, South Korea, Taiwan, Thailand | India |
First 10TB | $0.085 | $0.085 | $0.110 | $0.110 | $0.114 | $0.114 | $0.120 | $0.109 |
Next 40TB | $0.080 | $0.080 | $0.105 | $0.105 | $0.089 | $0.098 | $0.100 | $0.085 |
Next 100TB | $0.060 | $0.060 | $0.090 | $0.090 | $0.086 | $0.094 | $0.095 | $0.082 |
Next 350TB | $0.040 | $0.040 | $0.080 | $0.080 | $0.084 | $0.092 | $0.090 | $0.080 |
Next 524TB | $0.030 | $0.030 | $0.060 | $0.060 | $0.080 | $0.090 | $0.080 | $0.078 |
Next 4PB | $0.025 | $0.025 | $0.050 | $0.050 | $0.070 | $0.085 | $0.070 | $0.075 |
Over 5PB | $0.020 | $0.020 | $0.040 | $0.040 | $0.060 | $0.080 | $0.060 | $0.072 |
6. Fastly
*Large and fast network.
Fastly only has around 95 PoPs but has a higher data transfer date than Cloudflare at 377 Tbps.
Follow their start here page or the instructions on their plugin page. After creating a CDN service and an API token, you’ll use their plugin to save your Fastly API token and Service ID.
7. SiteGround CDN
*More limited, expensive, and unreliable compared to Cloudflare.
Not a fan of SiteGround, but that’s a different story (I also feel the same about WP Engine and Kinsta). If you insist on using any of these hosting companies, you’re better off using Cloudflare directly, FlyingProxy, or using a more performant and cheaper host with higher resource limits.
The free version doesn’t use dynamic caching and while the $14.99/month premium version does, that’s just 1 of very few features you get. It hardly provides any security or performance optimizations you would get on Cloudflare and also uses Google Cloud network with less PoPs.
There’s another big problem with SiteGround’s CDN: you have to use their DNS to use it which was blocked by Google for 4 days, causing 2 million SiteGround domains to get deindexed in Google. If you login to your Twitter, you can see people’s frustration in this tweet and this one.
Status Update: We are glad to inform you that we have implemented a fix for the Google bot crawling issue experienced by some sites. Websites are already being crawled successfully. Please allow a few hours for the DNS changes to take effect. Thank you for your patience!
— SiteGround (@SiteGround) November 12, 2021
The lack of responsibility you are taking here is incredible. If this was simply Google’s fault, surely other hosts would be facing issues? Clearly something has changed on your set-up that has caused an issue. Are you aware just how damaging this is to many of your customers?
— Kim Snaith (@ichangedmyname) November 10, 2021
You should be advising people to move to an external DNS to resolve the issues if it is causing them massive losses in business. I have just sorted our connectivity issue in around 25 minutes by moving to googles DNS. If you had let us know 4 days ago, we wouldnt be £20k+ down!
— Jon Bunce (@thejonbunce) November 11, 2021
If you move to your Google Search Console > SETTINGS > CRAWL STATS you will, if unlucky like me, see something like this :-( pic.twitter.com/ocBEkWKsaw
— Tristan Haskins (@trishaskins) November 12, 2021
In typical SiteGround fashion, results can be slower than promised.
Ironically, SiteGround previously discontinued Cloudflare and introduced their own paid version of their CDN which is slower, less reliable, and costs much more than APO at $14.99/mo.
8. WP Engine CDN
*Limited Cloudflare features with no full page caching.
WP Engine’s CDN is similar to Kinsta’s CDN (neither are anything close to Cloudflare Enterprise). You get Polish and layer 3 & 4 DDoS protection with WP Engine’s, but again, lose out on all those features you would get setting up Cloudflare directly. Similarly, WP Engine’s hosting is extremely limited on monthly visits, bandwidth, and storage. Having to jump to their next plan is common.
9. Kinsta CDN
*Limited Cloudflare features (supports full page caching) but poor integration.
Kinsta jumped back and forth on advertising their CDN as “Cloudflare Enterprise,” but it’s not. It’s basically Cloudflare with full page caching + layer 7 firewall rules with bandwidth limits. You can see complaints about their poor Cloudflare intergation in their CDN TrustPilot reviews.
Their hosting is just as bad as WP Engine with low resource limits (including PHP threads) and ridiculous add-ons that show you how limited the base hosting is. Which is probably why they don’t participate in Kevin Ohashi’s benchmarks and can struggle with resource-intensive sites.
10. WPX XDN
Limited PoPs and no full page caching.
XDN is a free CDN from WPX Hosting.
It only has 42 locations and doesn’t support full page caching. The only “benchmark” they give is a GTmetrix report of the CEO’s homepage, but they hardly list any technical specs. Since WPX uses LiteSpeed, use QUIC.cloud instead. However, due to their downtimes, awful response to a massive outage, and aiming for a 400ms global TTFB, I don’t recommend WPX’s hosting or CDN.
The outage was because they don’t use a redundancy system which their CEO called “expensive.” He blamed the outage on their partner’s CEO who died just months earlier (had customers used Cloudflare with the “always on” feature, there would have been less damage).
XDN’s data centers are listed on their blog:
New York/Jersey, USA (x2) | Miami, USA | Paris, France |
Chicago, USA (x3) | Toronto, Canada | Tokyo, Japan |
Dallas, USA | Amsterdam, Netherlands (x2) | Singapore |
Seattle, USA | London, UK | Mumbai, India |
Los Angeles, USA | Manchester, UK | Johannesburg, South Africa |
Ashburn, USA | Frankfurt, Germany (x2) | Sofia, Bulgaria |
Atlanta, USA | Moscow, Russia | Sao Paulo, Brazil |
Kansas City, USA | Sydney, Australia | Madrid, Spain |
Silicon Valley, USA | – | – |
11. KeyCDN
Limited PoPs and only serves static files.
KeyCDN only has 40 PoPs and doesn’t support key features like full page caching.
Most of KeyCDN’s data centers are located in Europe, so it would mostly make sense if that’s where your visitors are. They also developed the CDN Enabler plugin which rewrites CSS, JavaScript, and images so they’re served from a CDN, although the plugin has poor reviews.
KeyCDN Pricing
REGION | FIRST 10 TB per month |
NEXT 40 TB per month |
NEXT 50 TB per month |
OVER 100 TB per month |
---|---|---|---|---|
North AmericaEurope | $0.04/GB | $0.03/GB | $0.02/GB | $0.01/GB |
AsiaOceania | $0.09/GB | $0.06/GB | $0.04/GB | $0.02/GB |
AfricaLatin America | $0.11/GB | $0.08/GB | $0.06/GB | $0.04/GB |
12. Sucuri
Limited PoPs and only serves static files.
Sucuri is a security service at heart so I would personally lean towards a company that specializes in the CDN field, or at least speed optimization. Plus, they only have 14 locations which is unattractive. I haven’t had a chance to try their CDN, just know it’s not widely used.
13. JetPack CDN
JetPack’s CDN is another option, but I don’t recommend JetPack.
It’s a slow plugin with features you probably don’t need. If you’re using JetPack, learn which features you’re using and install other plugins (or do things manually), then delete it. If you insist on trying it, it can serve images, photos, CSS, and static JavaScript files from their CDN.
Do you agree with these CDN rankings? I’d love to hear your own experience in the comments. And of course, any suggestions you would like to see me add to this guide are always welcome.
Cheers,
Tom