WordPress Core Contributor Konstantin Kovshenin has released a new page caching plugin called Surge. Searching the WordPress plugin directory, you will find hundreds of caching and cache purging plugins, but this one stands out from competitors in that it requires no configuration. The plugin starts working as soon as it’s activated, and there are no options.
What kind of performance improvements can you expect with Surge activated? Kovshenin’s tests indicate that WordPress site performance on cheap hosting can be significantly improved with the plugin:
Surge stores cache files on the filesystem, leveraging the Linux kernel page cache for efficient in-memory caching and invalidation. In various load tests, Surge has shown to easily handle 1000-2500 requests per second at 100 concurrent, on a cheap single-core virtual server with only 1 GB of memory. That’s over 70x faster than a stock WordPress install with a default theme and no plugins.
Kovshenin built Surge because he could not find a suitable plugin to work well with Sail, the CLI tool he has been developing for deploying WordPress apps to DigitalOcean.
“The biggest blocker for me was the configuration, screen after screen after screen, the amount of hoops I had to jump through just to get things working,” he said. “And sure, there are on-screen guides and wizards, video tutorials, hundreds of documentation articles, but all I wanted was a page caching plugin, not a rocket (no pun intended). I had to roll my own.”
In the interest of simplicity, Surge doesn’t even come with a “clear cache” button. Kovshenin said the plugin will automatically invalidate cached entries on various different events, such as when content is updated. He said you can toggle the plugin off and on if for some reason you need to clear the page cache.
“If you have to flush the cache, it means my invalidation is not good enough for you,” Kovshenin said in response to Twitter inquiries about no button to purge the cache. “If you do find yourself flushing the cache every once in a while, do let me know why. I’m sure there are plenty of cases I haven’t considered yet.”
When asked if Surge works with sites that have lots of dynamic content, Kovshenin said only anonymous requests are cached right now. Surge also forces some requests, such as robots.txt and favicon.ico, to be anonymous for better cacheability.
“Expanding into logged-in territory is something on my list to look at, but not going to make any promises,” he said.
I tested Surge on a few simple blog sites and found that it works as advertised. On one site it took the GTMetrix Performance score from 91% to 99%. Please note that the plugin requires PHP 7.4+.
Surge is available for free on WordPress.org. If you are already using a page caching plugin, you will need to deactivate it if you want to try Surge. Kovshenin cautioned in his announcement post that many managed WordPress hosts already have some built-in caching in place, so it may be a good idea to check with your host before adding a caching plugin.
Like a lot the simplicity context, but lackyng CLS and delay features cannot compete with other caches at the moment.
Gtmetrix only tests desktop speed on the free tier. I would suggest PSI or lighthouse for future tests.
You can use Web.dev or Google Page Insights with are free either.
This sounds like an excellent thing to recommend to people who don’t have access to caching solutions which run further up the stack.
Great name for the plugin. I love it. And from Surge’s FAQ:
“Where is the plugin configuration screen?
There isn’t one.”
I like that because page caching and compression are sufficient for the average site and user. It’s when people start checking every box that things go off the rails. I’ve been recommending Breeze or WP Rocket with default settings but Surge might end up being the best choice.
Sounds interesting. Does it cover only caches of website or optimize beyond cache?
Ayesha, it’s just page caching for now, no additional optimization features.
Your email address will not be published.
document.getElementById( “ak_js_1” ).setAttribute( “value”, ( new Date() ).getTime() );
This site uses Akismet to reduce spam. Learn how your comment data is processed.
Enter your email address to subscribe to this blog and receive notifications of new posts by email.
WordPress Tavern is a website about all things WordPress. We cover news and events, write plugin and theme reviews, and talk about key issues within the WordPress ecosystem…
© All Rights Reserved. Powered by WordPress, hosted by Pressable