On the 6th of November, Automattic released a new version of Jetpack with an exciting new feature – “Site Acceleration”.
I generally hold off for a week or so before installing a new plugin update, just to wait for any potential bugs to be worked out. But once I had it installed, I got a chance to play around with and experiment with the CDN, and here are my findings.
What is Site Accelerator?
Site Accelerator is the new name for an older feature of Jetpack, plus an entirely new feature – namely the ability to host static in-built CSS and JS files for WordPress. In other words, it’s a free CDN. But only for those files that come bundled with WordPress and Jetpack itself.
In my opinion, the most important of these is jQuery. Because jQuery is render blocking on most sites, it’s critical to deliver it to your users as quickly as possible. Having a CDN do this is pretty amazing.
But I Already Have a CDN – How Does This Benefit Me?
Even if you have an existing CDN serving all your users, Jetpack’s site accelerator is a superb choice for one very good reason – it’s always primed.
With normal CDNs, you need to wait for a visitor to hit an EDGE node before the cache is “warm”. The first visitor to an EDGE node will experience higher wait times than if they had visited your site directly! The reason for this is that the EDGE node will request the data from your origin server and pass it along.
Each EDGE node has the same problem. With leads us to the paradoxical situation where having a large number of EDGE nodes for a CDN provider is actually a disadvantage since there will be many more uncached requests for your files!
This is true for all CDNs. However, since Jetpack hosts static files that it itself has created, their CDN network is always “primed” with the static CSS and jQuery assets for users worldwide. For this reason, having static (especially render blocking) assets hosted by Jetpack is super useful. Your visitors will always hit a primed cache which will deliver static files to them at lightning speed.
How Do I Enable Site Accelerator?
Once you’ve installed the latest Jetpack update, go to your WordPress dashboard, Jetpack -> Settings. Now scroll down till you find the “Site Accelerator” section and enable the button that says “Speed up static file load times” after enabling the Site Accelerator as shown here:
Before and After Comparisons of jQuery Delivery with Site Accelerator
Now from the outset, the single biggest disadvantage of CDNs, is the extra DNS lookup. Any extra speed a CDN offers needs to be weighed against the connection time and DNS lookup of the very first request.
So here’s a test on my site for how jQuery is delivered directly from my site without Site Accelerator. Note that because the request is coming from my site, there’s no additional DNS lookup:
We see here, that the total time for my site to deliver the render blocking jQuery file was 318 ms. That’s not bad. But here’s what happens when the same file is delivered through Jetpack’s CDN:
It’s just 211 ms after including the DNS lookup and the connection time! That’s amazing. It really is. And you can rest assured that this speed will remain constant no matter which EDGE node the user hits, because Jetpack is loading a “global” version of the file that isn’t specific to your site.
In short, there’s no reason to not use the amazing free feature that Jetpack is providing users. Even with an existing CDN, you should weigh the advantages of using Jetpack’s CDN simply due to the fact that its EDGE servers are always “primed”.