• Skip to content
  • Skip to primary sidebar
  • Skip to footer

Foliovision

Main navigation

  • Weblog
    • FV Player
    • WordPress
    • Video of the Week
    • Case Studies
    • Business
  • About
    • Testimonials
    • Meet the Team
    • We Support
    • Careers
    • Contact
    • Pricing
  • Products
  • Support
    • FV Player Docs
    • Pro Support
  • Login
  • Basket is empty
Affordable VAST/VPAID for Wordpress has arrived. Serve ads with your videos starting today!

WordPress Caching Drag Race: Hyper Cache vs. WP Rocket

9 January 2015 / Martin / 35 Comments

We love Satollo and loved Hyper Cache (we’re longtime paid users and supporters of his Newsletter technology as well). Strangely, sometimes good developers do bad work. The latest version of Hyper Cache (version 3) is a prime example of what can go wrong with rewrite upgrades.

Since we were struggling with Hyper Cache we decided to take a look at WP Rocket (enjoy 20% off with that link) who is the hot new caching kid on the WordPress block. Sadly WP Rocket is not a good replacement for us for now. We test and compare Hyper Cache and WP Rocket below.

What’s suddenly so wrong with Hyper Cache?

We liked the version 2.9.1.6 a lot. It performed wonderfully for us for two years (we tested and rejected W3 Total Cache and WP Super Cache for configuration/performance issues before settling on Hyper Cache).  Satollo decided he wants to merge the features from his other caching plugin (Lite Cache) into it.

All of that sounds fine, however there are both upgrade issues and installation issues, as well as performance issues (requests with query strings).

Upgrade issues

Upgrading from version 2 (2.91.6) to version 3 (3.1.0) breaks the caching and there is no notice about it. The notice only appears on the Hyper Cache settings screen saying:

“You must save the options since some files must be updated”

hypercache update warning
Hyper Cache post-update warning

As we maintain dozens of websites and have built hundreds of websites, this is truly disappointing. It means we can’t just upgrade the plugin automatically, but somebody must go through the sites and put in the correct settings.

There is an “Import Options” button, but it doesn’t import all the settings properly, so watch out for these!

  • Cookies to bypass – it will import the data, but will not enable the option (mean your WPTouch Pro desktop switch won’t work!)
  • Do not cache the blog main feeds – in previous version this was on by default
  • Don’t serve cached pages to comment authors – in previous version this was on by default  (means commenters won’t see their comments as pending moderation)

This means we have to update the plugin manually on all the websites and 99% of our client’s can’t do it on their own.

More complicated install

Installing a new copy of the plugin now involves extra step – following option needs to be enabled for a good commenter experience on your website:

  • Don’t serve cached pages to comment authors
    • You need to turn this one off, otherwise  commenters won’t see their comments as pending moderation and they will think your website is broken.
    • Commenter posts the comment and comes back to the same page where he left the comment – no evidence that the comment was accepted.

On the positive side, Hyper Cache now allows you to cache HTTPS and HTTP versions of your website separately. Although we recommend you redirect HTTP to HTTPS all the time.

Performance Issues: Query Strings

Due to the unfortunate assassination of a dozen French cartoonists (evidence points to yet another false flag attack), a client’s political analysis sites was facing over 300,000 visitors/day. We faced some performance issues on the server and were able to see the latest Hyper Cache under real stress. What we noticed is that many non-cached requests had query strings attached (i.e. client.com/2014/postname.html?utm_source=dlvr.it&utm_medium=facebook). The older version of Hyper Cache – 2.9.1.6 – the last one we liked has a setting to include the pages with query parameters in cache

WP Rocket also allows us to set which query parameters don’t play role in cache (http://wp-rocket.me/changelog/ — “Cache URIs with specific query strings variables (Advanced Options)”) – the ones above are for Google Analytics which runs in JavaScript, so it should be able to check it as long as the cache plugin won’t redirect the URL to one without query parameters, it should only serve its HTML

Performance Issues: Cache Control from Bots

Another five percent of uncached pages were being sent uncached due to an HTTP_CACHE_CONTROL header setting of “no-cache”. Bingbot user agent for example likes to send spurious “no-cache” requests. Hyper Cache 3 is written so that it only accepts this header for real visitors, not bots, but it clearly doesn’t detect Bingbot properly. For the moment, Hyper Cache 3 only recognises googlebot as a bot! The older version of Hyper Cache – 2.9.1.6 has a setting to ignore bots requests for uncached pages. Satollo, please allow website owners to decide if they want to recognise “no-cache” headers or not. There’s too much scope for abuse.

WP Rocket – Mobile disappointment

We’d heard very good things about WP Rocket, so we checked it out full of hope in our developer hearts. Perhaps WP Rocket  could be the cache plugin of our choice.

No mobile caching

This plugin can’t cache a separate version of your website for your mobile visitors. So if you are serving a separate theme to your mobile users (such as WPTouch Pro, as fully custom responsive themes require a ton of work) you can only disable the cache for these users and hope they don’t crash your site by large traffic.

wp rocket mobile cache
Caching advice (c) WP Rocket

A feature like this should not be hard to implement. All what needs to be added is a list of user agents which should get to the mobile caching.

Thankfully the mobile caching has been added in version 2.7 released on 11 March, 2016!

The ideal situation would be ability to create more independent caching groups which could depend on cookies. We are creating a mobile framework for effective image and content serving for mobile, tablet, retina and desktop devices, so a feature to cache each one independently would be awesome.

So we would like to see a configuration option where you name the caching group and then enter what cookies determine the device falls into this group as we detect if the device is mobile, tablet or a desktop, then detect retina and store that in a cookie.

On the positive side, WP Rocket contains a nice combine feature for your JS (which sadly doesn’t support wildcard masks) and CSS. The Lazy Loading for images works nicely as well if you prefer that. It’s nice to have it all in one plugin.

If WP Rocket would include solid mobile caching configuration, WP Rocket would be our caching plugin of choice. Some good news: for purely responsive sites coded to tread lightly, WP Rocket is ready to go as is.  For the moment, though, such sites are a small minority.

Hyper Cache vs. WP Rocket

We run the test on our Linode VPS server which we keep for this kind of purposes. It has Linode 1536 (that’s 1536MB of RAM) and runs NginX, MySQL and PHP5-FPM.

We found no difference in the performance between the two plugins. Following graphs show us how the load time changes depending on number of concurrent page loads using Load Impact (the differences are marginal):

wp rocket loadimpact 500
WP Rocket
hyper cache loadimpact 500
Hyper Cache

Following graphs show us what was happening on the server. Was it busy processing the PHP code? No, not at all, the server was virtually idle. We found that using htaccess with WP Super Cache in Apache is far worse.

hyper cache cpu 500
WP Rocket (first bump) vs. Hyper Cache (second bump)

Finally let’s compare the traffic to make sure it was all real. Both plugins served the same amount of data.

hyper cache traffic 500
WP Rocket (first bump) vs. Hyper Cache (second bump)

Conclusion

For core caching both WP Rocket and Hyper Cache are great. In terms of putting together a usable and resilient configuration, the new Hyper Cache is a step backwards and we continue to recommend older Hyper Cache 2.9.1.6 as the caching plugin of choice. WP Rocket shows some real potential and we’d like to step up to pro caching and pro support as soon as their developers sort out mobile caching.  We cannot recommend Hyper Cache 3 as it is a real step backwards. W3 Total Cache and WP Super Cache continue to face the same issues with configuration and stability (W3 Total Cache) and performance/server load (WP Super Cache) so we continue to use both Hyper Cache 2.9.1.6 and WP Rocket.

Martin Vicenik

Martin Viceník

Martin graduated as an engineer in Computer Science from Slovak Technical University in Bratislava. He grew up in Liptovský Mikuláš in northern Slovakia next to the beautiful Tatra mountains. He is the developer behind our FV Player.

Categories: WordPress Tags: caching, hosting, satollo, WordPress

Related Posts

  1. Simpler Caching System for WordPress: Surge

  2. Improve your WordPress speed by Caching Comments

  3. WordPress Speed Test 2012: WP Super Cache vs HyperCache

    WordPress Speed Test 2012: WP Super Cache vs HyperCache

Reader Interactions

Comments

  1. Jean-Baptiste 2 March 2015 at 3:58 pm

    Hi, Thank you for your review :)

    Regarding to mobile, creating specific caching versions per device is in our roadmap : trello.com/b/CrUcz6Jy/wp-rocket-roadmap

    Reply
  2. Andrei-Robert Rusu 21 April 2015 at 7:05 pm

    Mention in the review that adding a regex will break your website, worth to mention :)

    Reply
  3. Avatar photoAlec 22 April 2015 at 3:53 am

    Hi Andrei,

    Would you care to share some additional detail and context?

    Thanks.

    Reply
  4. Андрей777 27 June 2015 at 8:55 am

    Спасибо за интересную и полезную статью! Мне понравились ваши советы и рекомендации.

    Reply
  5. Hoang 19 August 2015 at 3:35 pm

    This is a rare post that actually give me somethings when I search on the net for a cache plugin.

    I tested WP Rocket currently and the result is good but sometime, I faced issue that cache deleted automatically which cause performance issue. I did get in touch with support but after a few emails exchange and ask for some details, they stop response, I’m going to ask for refund!

    That’s why I want to test out Hyper Cache, but is the version Download Version 3.2.2 good to use? There have some updates on the plugin since the time you post this.

    Thank you for your recommend.

    Reply
  6. Avatar photoAlec 19 August 2015 at 5:33 pm

    Hi Hoang,

    I’m sorry to hear that WP Rocket support is not very supportive.

    We’d recommend using Hyper Cache v. 2 as it’s more reliable.

    Let us know how it goes!

    Reply
  7. Hoang 19 August 2015 at 9:22 pm

    Hi Alec,

    Thank you for your response.

    I went ahead and install 2.9.1.6. The way it handle the server load is amazing and it work for us.

    Unfortunately, I notice an issue, when I publish a post, or edit and save a post, or just schedule a post, it take around 20 second for the page to load and the server load spiking from 5 to 20! Is it something normal when using the plugin?

    Thank you.

    Reply
  8. Avatar photoAlec 20 August 2015 at 2:44 am

    Hi Hoang,

    It sounds to me like you have issues with your server. If both WP Rocket and Hyper Cache 2 (the most reliable caching plugin we know) have trouble working properly then there’s something very strange. We offer Pro Support incidents for quick help although a single incident might only cover diagnosing the main issue in this case, depending on the severity. Really you should speak to your server admins/hosting company.

    Making the web work for you, Alec

    Reply
  9. Gulshan Kumar 20 August 2015 at 8:00 am

    What I like about WP Rocket is that it’s very good at serving static content. As you know up to 70% elements are static.

    Reply
  10. Avatar photoAlec 20 August 2015 at 4:03 pm

    Hi Gulshan,

    I think your comment was probably more comment spam than a serious evaluation but just in case…

    I take issue with your perpective that static resources are the most important part of a Wordpress caching plugin. Any good host should be able to serve static resources well: heck add a simple CDN if you want. Wordpress caching plugins are there to deal with the dynamic elements.

    Reply
  11. Hoang 21 August 2015 at 10:11 am

    Hi Alec, Thank you for your recommend. I will go for Pro Support incidents to recheck the server just in case. Thanks.

    Reply
  12. Ryan 29 September 2015 at 2:57 pm

    Hey Alec, I was just wondering if you have heard or worked with WP Super Simple Speed before. It’s newer and lightweight and I would like to know if you may of heard of it before I install.

    Thanks

    Reply
  13. Avatar photoAlec 30 September 2015 at 12:07 pm

    Hi Ryan,

    Haven’t tested WP Super Simple Speed yet. Lightweight is always nice. The key feature now is caching for multiple devices (mobile and desktop). Most of the caching solutions out there not only don’t cache mobile but actively make it difficult for us to code an add-on solution.

    Let us know how your test goes.

    Reply
  14. Colin 9 December 2015 at 12:29 pm

    Hi,

    You mention that WP-Rocket cannot cache Wptouch Pro requests

    Did you know that WPTocuh Pro has its own caching extension called “Infinity Cache” Wouldn’t this resolve the mobile caching issue you talked about?

    Reply
  15. Avatar photoAlec 9 December 2015 at 1:42 pm

    Hi Colin,

    Thanks for the tip. We’ve done a fair amount of work with Infinity Cache.

    Running two caching systems is far from ideal (double the management overhead). It would be much better if WP Rocket could really handle mobile full flegedly itself. We hope they will get around to it sooner rather than later.

    Reply
  16. Colin 16 March 2016 at 1:03 am

    Hi Alex

    It looks like WP rocket have implemented dedicated mobile cache which works with WP Touch. Have tested without Infinity cache and works well. Let me know your thoughts,

    Reply
  17. Luke Cananagh 24 June 2016 at 1:35 am

    WP Rocket supports HTTPS, mobile caching, DB optimization, most CDNs, as well as being able to purge Varnish and OPCache.

    wp-rocket.me/faq/ blog.wp-rocket.me/2-8-ilum/

    Reply
  18. Martin 27 June 2016 at 5:07 pm

    Hello Luke,

    I updated the information about that now.

    Currently we are facing issues with WP Rocket Minify – it just doesn’t work for some min.js script files and nobody knows why. I even talked to them on WordCamp Europe.

    Thanks, Martin

    Reply
  19. Hayden James 18 August 2016 at 6:55 pm

    I’ve been using WP-Rocket. Its resulted in the most gains. (of course not free)

    Also stopped using Hyper Cache, a good alternative is… Cachify.

    Reply
  20. JJ 3 October 2016 at 6:51 am

    Thank you thank you for this! I agree Hyper Cache 2.9 was the best caching plugin, and I combined it with DB Cache Reloaded Fix to give it an extra boost.

    When I first updated some of my site from Hyper Cache 2.9 to 3, I immediately received a notification from my host of CPU Overload causing my sites to be taken down, which was strange.

    Then I did a test of saving one backup of Hyper Cache 2.9, then updated all the sites to Hyper Cache 3 and see a couple what the CPUs were, and it was pretty high. So then I reinstall a backup of Hyper Cache 2.9 on all the site again, and behold the CPU went down.

    So yes, in 2016, I’m still using Hyper Cache 2.9, even though the need to update notificaiton for annoys, but it’s still best option combing Hyper Cache + DB Cache Reloaded Fix

    Reply
  21. Avatar photoAlec 5 October 2016 at 3:23 am

    Hi Hayden,

    We use WP Rocket these days but there are some really disappointing aspects.

    • Mobile is not handled particularly well (we’ve sent detailed notes on how to improve mobile), i.e. mobile is not cached separately and you need to find a secondary cache plugin for mobile (very primitive).
    • 404’s are not cached. This took down our own site recently in combination with a switch to Genesis theme (which makes 404’s pull all authors and all archives to be helpful: not very helpful in combination with WP Rocket). I blame WP Rocket more. 404 pages should also be cached if coming from the database.
    • Annoying support system. Getting an autoresponder with a laundry list of 25 steps to take when caching doesn’t work every time you submit a support ticket is a kick in the teeth to pro users with dozens of websites. We just want the personal support please.

    So if someone has not jumped on WP Rocket, I have to say JJ’s solution is pretty good. We wanted to outsource our cache plugin development (we decided writing caching routines wouldn’t be the core of our business). WP Rocket is a mixed experiment (quite a few of our requests have been implemented but with a long time lag).

    Proper caching should be free and part of core WordPress. Complex caching is just another hoodwink and torture the WordPress world imposes on helpless end users. What good is free and open source if the key features aren’t in the box or require an IT degree to implement properly?

    Reply
  22. Mike 3 December 2016 at 11:49 pm

    Caching plugins pretty much all do the same thing and are not always an appropriate solution for high traffic sites because they rely on PHP unless you use mod_rewrite or a custom nginx configuration. When you start to hit high volumes of traffic you really should be looking at a server-side caching solution like an nginx proxy cache or Varnish both or which blow these basic caching plugins out of the water.

    Reply
  23. Marc 8 January 2017 at 5:26 pm

    I have really mixed feelings about WP-Rocket. In most cases it seems to run pretty well and give you some significant speed advantage but in a lot of cases it appears to be highly unreliable and even risks your SEO. It appears you also have to try really hard to get a refund. So it is once more a situation where one like to try it out if works and then make a purchase decision. WP-Rocket does not offer this. Buy or die… Or you could null it yourself following these instructions: (link removed)

    Worked for me and I will see, if I get a license when I am fully convinced…

    Reply
  24. Martin 9 January 2017 at 1:25 pm

    Hello Marc,

    could you please post about what reliability issues you had and what SEO risk occurred? How did the support staff react to your requests?

    In general we like to work with them. What we didn’t like lately is that the 404 errors are not getting cached and the plugin authors are not going to improve that. So if you have a post with 2 broken images and each one generates 404 error handled by WordPress you might get your server overaloaded. Making sure WordPress is not running to server 404 errors for the static files would help though, but it’s sad the WP Rocket doesn’t take care of that and doesn’t cache the 404 errors.

    Thanks, Martin

    Reply
  25. Татьяна 28 July 2017 at 6:50 am

    Hello, Martin,

    2 years gone since the article was posted. What can you say about the current Hyper Cache? Do you still use it? Or does it become worse and worse? I used Hyper Cache for a while but after last update my users do not see the comments they wrote. I did not touch any settings moreover I can not fixed this problem out :(

    Thanks, Tatiana

    Reply
  26. Martin Vicenik 28 July 2017 at 2:06 pm

    Hello Tatiana,

    I didn’t had a change to test it lately. We are mostly using WP Rocket these days or the old reliable Hyper Cache version.

    What’s good about WP Rocket is that it stores cache files in such way that NginX rewrite can take care of cache serving. Also the cache purging goes through some filters, so we were able to implement a cache purge queue for it – making sure the homepage is not purged too often.

    The downside is that by default it purges the cache too often and there is no setting for it, so we are suggesting improvement to WP Rocket team for that: github.com/wp-media/wp-rocket/issues/478

    Thanks, Martin

    Reply
  27. Hayden James 21 October 2017 at 7:49 am

    I’m also using Hyper Cache 2. I want to use WP Rocket but the purging is annoying. Has this been fixed?

    Thanks!

    Reply
  28. Paul 3 December 2018 at 9:57 pm

    Thanx for a detailed discovery. Btw, a combinations of cache plugins can be used. I found a good plugins comparisons (s-sols.com/wordpress-site-response-time-optimization) with Rocket and Hypercache as well.

    Reply
  29. Martin Vicenik 4 December 2018 at 11:22 am

    Hello Paul,

    what’s the idea behind that? I wouldn’t go for that as it adds a lot of complexity to the setup. I couldn’t find any that combination in your article either.

    What I strongly recommend is to use a WP cache plugin for the persistent cache and NginX Microcaching to prevent race conditions when a page is purged from a cache. The problem with WP cache is that it takes some time for it to store the cached HTML (0,5 – 1 second) and it has no mechanism to serve the expired page. That way you can get a spike of uncached hits every time the cache is purged. Microcaching really helps with that.

    Thanks, Martin

    Reply
    • Paul 4 December 2018 at 11:56 am

      The idea is to combine several plugins e.g. s-sols.com/wordpress-site-response-time-optimization#lscache_hcext_autoopt_subc to get all functionality without buying.

      Put to cache – it’s ‘one time’ operation and it’s not so important. Furthermore, expired page will be got again from the engine. What’s the problem?

    • Martin Vicenik 4 December 2018 at 12:18 pm

      Hello Paul,

      the race conditions when storing a cached page occurs when you edit some article and you are getting a lot of visits on it. Imagine you get 100 requests every second and then suddenly the cache is purged by your edit – the WP cache plugin has no cache file to serve, so it accepts the first request and starts generating the page for it to store it in cache. However this can take something like 1 seconds, so all the other 99 requests in that second still have no cache file to load. So that way you get a spike of uncached hits. The key is to mark the cache entry as expired and generate the new version in background. Or use NginX Microcaching. I image the Litespeed cache is similar to that.

      Thanks, Martin

    • Paul 4 December 2018 at 12:27 pm

      Yes, I see the problem, but how does it influence in total server load? Ok, our first 100 visits in first 1 second will get uncached page and server has to generate it 100 times. But after that it will get it from cache million and million of times and wont load server. Influence of that spike doesn’t seem like huge. What do you think?

    • Martin Vicenik 4 December 2018 at 1:19 pm

      Hello Paul,

      issues like that can quickly escalate into a state where the PHP can longer access SQL quickly enough and fails to generate the cache file – meaning a complete server meltdown. We had that happen before and Microcaching really helped.

      I was wondering if this aspect is compared in that article.

      Thanks, Martin

    • Paul 4 December 2018 at 2:21 pm

      Useful experience. I’ll keep it in mind.

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

You can click here to Subscribe without commenting

Primary Sidebar

Categories

  • Business
  • Camera Reviews
  • Case Studies
  • Design
  • FV Player
  • Internet Marketing
  • IT
  • Life
  • SEO
  • Slovak
  • Video of the Week
  • WordPress

Footer

Our Plugins

  • FV WordPress Flowplayer
  • FV Thoughtful Comments
  • FV Simpler SEO
  • FV Antispam
  • FV Gravatar Cache
  • FV Testimonials

Free Tools

  • Pandoc Online
  • Article spinner
  • WordPress Password Finder
  • Delete LinkedIn Account
  • Responsive Design Calculator
Foliovision logo
All materials © 2025 Foliovision s.r.o. | Panská 12 - 81101 Bratislava - Slovakia | info@foliovision.com
  • This Site Uses Cookies
  • Privacy Policy
  • Terms of Service
  • Site Map
  • Contact
  • Tel. ‭+421 2/5292 0086‬

We are using cookies to give you the best experience on our website.

You can find out more about which cookies we are using or switch them off in .

Powered by  GDPR Cookie Compliance
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.

Necessary Cookies

Strictly Necessary Cookie allow you to log in and download your software or post to forums.

We use the WordPress login cookie and the session cookie.

If you disable this cookie, we will not be able to save your preferences. This means that every time you visit this website you will need to enable or disable cookies again.

Support Cookies

Foliovision.com uses self-hosted Rocket.chat and self-hosted Freescout support desk to provide support for FV Player users. These cookies allow our visitors to chat with us and/or submit support tickets.

We are delighted to recommend self-hosted Rocket.chat and especially Freescout to other privacy-conscious independent publishers who would prefer to self-host support.

Please enable Strictly Necessary Cookies first so that we can save your preferences!

3rd Party Cookies

This website uses Google Analytics and Statcounter to collect anonymous information such as the number of visitors to the site, and the most popular pages.

Keeping this cookie enabled helps us to improve our website.

We reluctantly use Google Analytics as it helps us to test FV Player against popular Google Analytics features. Feel free to turn off these cookies if they make you feel uncomfortable.

Statcounter is an independent Irish stats service which we have been using since the beginning of recorded time, sixteen years ago.

Please enable Strictly Necessary Cookies first so that we can save your preferences!