We are always looking for new and innovative ways to further speed up and optimize your sites. For the past couple months, our team has been working behind the scenes with the developers at WP Rocket to coordinate some changes with their brand new version 3.0 plugin (released April 3, 2018). We are excited to announce that WP Rocket 3.0 and Kinsta are now fully compatible and will be from here on out.
Check out everything you need to know below about using WP Rocket at Kinsta and how it can be a great match for you and your clients.
Using WP Rocket at Kinsta
For those of you who aren’t familiar with WP Rocket, it’s a popular all-in-one premium caching and optimization plugin for WordPress. Normally we don’t allow caching plugins in our environment because they conflict with our built-in caching solution. However, as of WP Rocket 3.0, their page caching functionality will automatically be disabled when running on Kinsta servers. As a result, we allow WP Rocket on our platform because there is no longer any incompatibilities.
This allows you to now use Kinsta’s caching solution but still take advantage of the amazing optimization features WP Rocket has to offer (we will dive into these below).
Why is caching important? Caching is the process of storing resources from one request and reusing those resources for subsequent requests. Basically, it reduces the amount of work required to generate a page view and decreases the load on the web server. It’s the number one way to negate the delay from the dependency WordPress has on PHP and a database (read more about WordPress vs static HTML).
WP Rocket 3.0 Features
If you haven’t seen the new 3.0 version of WP Rocket yet the UI is beautiful; while still being easy to use and navigate! Below we’ll dive into a few of the recommended features that you can utilize from WP Rocket to speed up your WordPress site, as well as how it’s synced with the Kinsta environment.
We will also be running some speed tests to see which options have the most impact on a live site. Remember though, results can vary from site to site, so make sure to test on your own site or staging.
If you’re using a staging site at Kinsta, WP Rocket has whitelisted our URL structure (staging-sitename.kinsta.cloud) which means it will not count as a site against your overall license count. The same goes for running on localhost.
Even though caching is automatically disabled in WP Rocket when running on Kinsta, the “Clear cache” option in the WP Rocket menu is synced up with the Kinsta environment. If you clear your WP Rocket cache, it actually clears your entire site’s Kinsta cache instead. How cool is that? And as always, you can clear your Kinsta cache from the top right-hand side of the admin bar.
The “Purge this URL” also works the same way, but instead of purging your site’s entire cache it clears the cache of the URL you’re currently on. This is great if perhaps you made a manual update to a page or post
For performance reasons, we don’t recommend constantly clearing your site’s entire cache, as it then has to rebuild. Purging individual URLs is a much better way.
If you change something on your WordPress site, such as a plugin or theme, you might see a warning from WP Rocket. The Clear cache button here also clears the Kinsta cache.
Lastly, if you click on the “Clear Cache” button from the WP Rocket dashboard, this also clears the Kinsta cache.
As we mentioned earlier, WP Rocket page caching is automatically disabled for sites hosted on Kinsta. Thus, we recommend leaving WP Rocket’s cache settings as is with “Enable Caching for Mobile Devices” checked.
- Minify HTML: Minifying HTML removes whitespace and comments to reduce the size. We ran speed tests and saw a 0.84% decrease in load time with this option enabled. ⏱ You might not see crazy improvements with this feature, but generally, less whitespace and code is a good thing.
- Combine Google Fonts files: Combining Google Fonts will reduce the number of HTTP requests. If you are utilizing a host with HTTP/2 enabled, it is no longer recommended to combine files due to improvements with parallelization. Kinsta fully supports HTTP/2. Loading your fonts from your own CDN can also sometimes improve performance. Check out our guide on how to host local fonts.
domain.com/style.css?ver=4.6. Some servers and proxy servers are unable to cache query strings, even if a
- Minify CSS files removes whitespace and comments to reduce the file size. We ran speed tests and saw a 1.69% decrease in load time with this option enabled. ⏱ Due to the way CSS works, this could break your site, so make sure to test it. Again, in general, less whitespace and code is a good thing.
- Combine CSS files merges all your files into 1, reducing HTTP requests. If you are utilizing a host with HTTP/2 enabled, it is no longer recommended to combine files as they can now be loaded in parallel over a single connection. Kinsta fully supports HTTP/2. Read more about combining external CSS.
- Optimize CSS delivery eliminates render-blocking CSS on your website for faster-perceived load time. Read more about this in our in-depth articles on render-blocking CSS and optimizing critical rendering path. We ran speed tests and saw a 0.17% decrease in load time with this option enabled. ⏱ Remember though, this is more about perceived load time rather than actual load time.
Under the “Media” menu they give you an option to lazy load your images and video, as well as disable additional scripts from loading such as Emojis and Embeds. Let’s dive into each of these a bit.
Lazy loading is an optimization technique that loads visible content but delays the downloading and rendering of content that appears below the fold. By enabling the lazy load option it can improve actual and perceived loading time as images, iframes, and videos will be loaded only as they enter (or about to enter) the viewport and reduces the number of HTTP requests.
- Enable for images: We ran speed tests and saw a 3.89% decrease in load time with this option enabled.
- Enable for iframes and videos: We dropped eight YouTube videos onto a page and saw a 74.43% decrease in load time with this option enabled. WP Rocket has an option to automatically replace a YouTube video with its preview image. This is an incredibly powerful way to speed up videos on your WordPress site.
Check out our in-depth tutorial on lazy loading in WordPress.
With the release of WordPress 4.2 came the integration of emojis into core for older browsers. The big issue with this is that it generates an additional HTTP request on your WordPress site to load the
wp-emoji-release.min.js file. And this loads on every single page.
Disable Emoji: The disable emoji option will reduce the number of HTTP requests. It won’t break them, it will simply default back to the user’s browser emoji version. We ran speed tests and saw a 2.2% decrease in load time with this option enabled.
Check out our in-depth article on disabling emojis.
With the release of WordPress 4.4 came the oEmbed feature into core. You have probably seen or used this before. This allows users to embed YouTube videos, tweets and many other resources on their sites simply by pasting a URL, which WordPress automatically converts into an embed and provides a live preview in the visual editor. If you have Facebook embed in your site, check out how Facebook’s new update will impact it, and how to fix it.
However, what this means is that it also generates an additional HTTP request on your WordPress site now to load the
wp-embed.min.js file. And this loads on every single page.
Disable WordPress embeds: The disable embeds option will reduce the number of HTTP requests. We ran speed tests and saw a 4.9% decrease in load time with this option enabled. ⏱ Check out our in-depth article on disabling embeds.
Under the “Preload” menu they give you an option to enable cache preload, DNS prefetch, and font preloads. Not all of these will work at Kinsta. But let’s dive into each of these a bit.
We don’t recommend this option for sites hosted on Kinsta because it can actually reduce performance by overloading PHP workers.
Prefetch DNS Requests
DNS prefetching allows you to resolve domain names (perform a DNS lookup in the background) before a user clicks on a link, which in turn can help improve performance. It is done by adding a
rel="dns-prefetch" tag in the header of your WordPress site. We recommend adding prefetch to external requests from your CDN, Google Fonts, and Google Analytics. Here is an example below:
<link rel="dns-prefetch" href="//cdn.domain.com/"> <link rel="dns-prefetch" href="//fonts.googleapis.com/"> <link rel="dns-prefetch" href="//www.google-analytics.com">
This is harder to speed test, but you can rest assured it will help speed up your site.
If you’re hosting fonts on your own domain, and not on an external service like Google Fonts, we recommend adding them to the “Preload Fonts” list in WP Rocket. By preloading fonts in your HTML’s
<head> element, web browsers can start downloading fonts before they are discovered in your CSS file.
Due to the fact that WP Rocket syncs to the Kinsta environment cache, you can’t use the advanced rules. If you need to exclude a URL or directory from caching or force cache a certain query string you can always reach out to the Kinsta support team.
Under the “Database” menu WP Rocket gives you the ability to perform cleanups on posts, comments, transients, and tables.
When combined with our automatic weekly database optimizations, keeping your database clean by removing unnecessary post revisions and transients will ensure your database is working at peak performance.
It is not uncommon for older sites to have 100+ revisions on their main pages. This is simply due to years of editing and updating content. Let’s say for example a site has 700 pages or posts with 150 revisions on each, this would be over 100,000 entries in the database. This takes up storage space, and even with database indexes, this can sometimes harm performance.
WP Rocket gives you the option to delete the following:
- Trashed posts
Check out our in-depth post on how to optimize revisions for faster performance.
Similarly to revisions, spam and trashed comments can simply add up to wasted space over time. WP Rocket gives you the option to delete the following:
- Spam comments
- Trashed comments
If you aren’t using comments on your WordPress site we recommend simply disabling comments to prevent spam from coming through at all. You then also don’t have to worry about installing spam plugins.
Transients in WordPress are sometimes overlooked, but they are very important! In fact, we’ve seen corrupted transient cache completely take down a WordPress site. These are meant to be temporary and so it’s safe to remove them and we do recommend it. If they are needed by a plugin they will automatically be regenerated. WP Rocket gives you the option to delete the following:
- Expired transients
- All transients
The database cleanup option reduces the overhead of database tables. However, at Kinsta we utilize InnoDB instead of MyISAM and therefore this is not usually needed. InnoDB has shown to perform better and be more reliable. A big reason to use InnoDB over MyISAM, is to take advantage of row-level locking. This allows your database queries to process faster. If you migrate your WordPress site to Kinsta, this is one of the many optimizations our engineers make on your site.
WP Rocket also gives you the option to schedule automatic cleanup of your database on a daily, weekly, or monthly basis. This is scheduled with a cron job behind the scenes.
Under the “CDN” menu you can enable a third-party content delivery network. This is really a no-brainer when it comes to performance. They take the load off of your web server while speeding up the delivery of content to your visitors thus making their experience better. Check out why we think every site should be using a CDN.
If you’re a Kinsta client, this menu won’t be needed as the Kinsta CDN is automatically deployed on your site behind the scenes.
We recommend running your WordPress site first through a website speed test tool to confirm all of your assets (JS, CSS, and images) are loading from the Kinsta CDN.
Heartbeat is a WordPress Core API for server-polling. It’s used by many themes and plugins to maintain a stream of connection with your server. This allows WordPress developers to build real-time updates into their products.
By default, the client-side Heartbeat code runs every 15-60 seconds. Depending on your site and server configuration, frequent Heartbeat server pings may not be necessary.
With WP Rocket, you can reduce Heartbeat ping intervals to 2 minutes or completely disable pings altogether for your site’s backend (WP dashboard), frontend, and post editor.
For most sites, we recommend using the “Reduce Activity” option. Many modern plugins and themes make sure of Heartbeat for core functionalities, so disabling it completely could potentially break your site.
Under the “Add-Ons” WP Rocket gives you the ability to add additional services to your site like Cloudflare, Sucuri, Google Analytics, and Facebook Pixel. If you use any of these services on your site, we recommend setting them up through WP Rocket to ensure you are benefiting from the most optimized integration for these services.
If you’re already using other plugins to integrate these services into your site, you can safely remove those plugins after configuring the add-on in WP Rocket.
The developers of WP Rocket are the same people behind Imagify, one of our favorite image optimization services. If you’re looking for an easy-to-use WordPress plugin for optimizing images, take a look at Imagify. And click to learn more about image optimization and other optimization plugins and solutions.
Final Speed Tests
We then ran some final speed tests with everything enabled so you could see a before and after. Note: this WordPress site is hosted at Kinsta.
Before WP Rocket
We ran 5 tests in Pingdom without WP Rocket and took the average.
We then ran a test in Google PageSpeed Insights without WP Rocket.
After WP Rocket
We then ran 5 tests in Pingdom with WP Rocket and options enabled and took the average.
We then ran a test in Google PageSpeed Insights with WP Rocket.
Here is the takeaway from the results above:
- In our Pingdom tests, we saw a 9.12% decrease in total load time when running WP Rocket. While this might not seem crazy high, this only took a few minutes and less than 10 clicks to accomplish.
- Remember that WP Rocket’s bread and butter is in their caching solution. But here at Kinsta, we are already using our built-in cache, so we are only sharing results of their other optimization features. So really it’s a 9% improvement on top of Kinsta’s lightning fast cache.
- The site we were utilizing for the test is fairly optimized already. Larger sites and those that are not as optimized will easily see even greater results.
- Curious why there are additional requests in the final version? This is usually due to lazy loading of images as it creates blank
data:image/gif;base64requests. But don’t worry, it’s still going to be faster.
- If you’re hosting video you could possibly see decreases in load time of up to 50% or more. This is accomplished by utilizing WP Rockets feature that replaces YouTube videos with clickable preview thumbnails. This is really handy!
- In our Google PageSpeed Insights tests, we saw an increase in our score from 88/100 to 98/100. However, scores are not as important as overall load times, so take these with a grain of salt. We discuss this in our article about Google PageSpeed Insights.
As you can see above, WP Rocket makes it incredibly easy to speed up your WordPress site with just a few simple clicks!
The team at WP Rocket consistently push out new features that directly co-align with the web performance recommendations we share at Kinsta. You can expect to see an even tighter integration with their plugin over the next few months! We are excited that clients can now use this plugin without any additional modifications needed.
We would love to hear what you think? Do you use WP Rocket? Let us know below in the comments.