Discovering & Testing Surge: A WordPress Page Caching Plugin

It’s been quite a journey since I first stepped into the hosting industry. At first, I was a complete rookie like every starter, but with a very clear goal: to learn new things and follow the industry’s key players.

After getting acquainted with the basics of hosting & performance, I dug deep into the world of WordPress, finding new plugins every day and getting fascinated by the new learnings and discoveries.

My Journey to Surge’s Discovery

While following the industry’s key players, I came across Konstantin Kovshenin’s profile, the respected WordPress maestro, counted among the WordPress core contributors. The hosting connoisseur has worked with Automattic for over a decade and is one of the most recognized names in the realm of hosting and performance.

What intrigued me the most about him was the precious tips that he frequently shared on his profile, and I wasn’t a fool to make the mistake of not following him.

Konstantin’s profile became my go-to platform for learning hacks and getting updated with the latest industry happenings (with his exciting comments, of course). During that journey, I found that he had launched a plugin named “Surge.” He defined the plugin as “a simple WordPress caching plugin.”

Now before I continue my story, let’s understand a bit about page caching and Surge.

A Brief Introduction to Page Caching & Surge

Page caching is a simple phenomenon that improves your web pages’ load time and enhances the overall performance resulting in quicker access to the contents of cached pages.

When a user views a cached version, the pages are loaded quickly, saving their time and reducing server load by 80%. This is especially beneficial for high-traffic websites that use database information to serve the pages.

And Surge is a cache plugin that generates and serves static HTML files for your WordPress site. It provides a faster load time and a shorter Time To First Byte (TTFB) to your website. The best part is that it does not require any configuration. You can install it on your WordPress website, and start working on any well-configured hosting platform.

Before installing Surge, ensure that you have the following updated versions:

Konstantin briefs Surge on his blog as:

“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.”

The Story Continues..

Now that you are acquainted with the terminologies, let’s continue with the story. My obsession with WordPress plugins was apparent from day one. Previously, I had collaborated with my team on the testing & performance of the fastest WordPress themes and the best WordPress page builders.

Also, working on a platform that is primarily focused on delivering optimum performance to its users, I’ve been quite fascinated with the way Cloudways provides its services.

So, I couldn’t ignore a newly launched plugin and that too of a virtual mentor whom I religiously followed. Konstantin’s short blog on the plugin’s usability was enthralling enough to convince me to try my hands on the plugin.

Here’s when things got more interesting; while reading the blog, I found Saad Khan’s comment (my mentor) saying that he wanted someone at Cloudways to test and review the plugin. I saw an opportunity and hurriedly contacted Saad to allow me to get started.

Witnessing my enthusiasm and interest, he gave the go-ahead, as he knew that even if he had wanted me to work on something else, I wouldn’t. ?

And that’s when it all got started!

Testing Surge: WordPress Caching Plugin

For my first test, I created a sample website using Elementor to check Surge’s performance. I integrated the Surge plugin to the sample website and tested it on three performance analysis tools, i.e., GTMetrix, Pingdom, and PageSpeed Insights. I witnessed impressive GTMetrix results and a slight improvement in the Pingdom and PageSpeed Insights numbers.

I had my results with me, and the next step was to test a heavier Ecommerce website. Thankfully, Saad was connected with Konstantin over email, and I was privileged to be added to the same thread to share my results.

What Went Wrong?

Konstantin noticed my efforts, went through the sample site, and confirmed that the plugin was installed and working correctly. He remarked that the results were exactly what he expected.

However, he suggested that Surge only focuses on page caching, so tools like GTMetrix and PageSpeed won’t provide the optimum insights. Such testing tools are based on front-end testing like image optimization, CSS, JS, etc, and Surge has no relation with them.

Testing With Konstantin’s Suggested Tools

His remarks were again an addition to my performance knowledge. He suggested using tools like ApacheBench, jMeter, and Hey (his personal favorite) to test the server response times. Now, this was also my introduction to the three tools and also somewhat a challenge. But I love challenges, so my excitement only grew.

I downloaded and played around with his suggested tools to learn how they work. Here’s a brief description of each of his suggested tools.

1) Apache Bench: It is a load testing and benchmarking tool for HTTP servers and is installed with an Apache webserver. This tool gets you prompt results by running simple command lines and shows the number of requests per second with concurrent requests your server can serve.

Apache Bench isn’t feature enriched like jMeter; however, it is suitable for beginners and intermediate users and is an excellent option for testing and benchmarking.

2) Apache JMeter: An open-source Java application designed to test the server load functionality. Apache JMeter tests performance by applying heavy load on a server to test the network and analyze the overall performance under multiple and concurrent user traffic load types.

3) Hey: It is a small program written in a Golang programming language that sends load to a web application. Hey is an HTTP load generator and an ApacheBench (ab) replacement. You can test the server performance by applying the Number of requests to run -n and the Number of workers to run concurrently -c.

Rather than going with a new e-commerce website, I decided to use the slow-loading e-commerce site that our team had created for the successful E-commerce Speed-Up Challenge. The website is cluttered with over 2000+ products and 24 plugins (outdated versions), making it a super-slow site, hence perfect for the tests.

My goal was to test the website with and without the Surge plugin. After using the plugin, the test concluded that the performance increased in connection time, reducing the deviation from 15 to 1.

When I shared the new results with Konstantin, he exclaimed that there should be 1000+ requests per second, but RPS was very low, and we found out the reason later. He asked for the website’s link to check if the Surge plugin was installed and working correctly.

After diagnosing the website, he found the real culprits that were corrupting the results: the server security features. I found the “Bot Protection” plugin and deactivated it following his instructions.

Testing Surge with Hey – HTTP Load Generator Tool

This time, I changed my approach a bit and used the Hey tool (Yes, Konstantin’s favorite for a reason). I used two websites; one that was created using page builders and add-ons, and used the slow e-commerce site (used earlier) as the second website.

Even though the process looks frustrating, my excitement and the learning opportunities (literally on every step) made it quite enjoyable.

I installed the Surge plugin on both websites, refrained from using any other optimization plugin, and tested both websites on the Hey tool.

But, again, I found myself stranded in confusion; as when I activated the plugin and checked the X-Cache in incognito mode, it showed miss. When I refreshed, it showed hit.

So, even after multiple efforts, I did not get > 1000 requests per second. I presented this concern to the pro again.

Konstantin dived in to assist and identified there might be a latency problem between the node and the WordPress site. He suggested running the tests and the site on the same data center.

Following his suggestion, I tested the website on the SSH terminal of the same server, and the RPS boosted up to 9399.82. I tested it on the ApacheBench tool that is pre-installed on the Cloudways server.

Konstantin recognized my efforts and noted that the increase in speed is due to the latency removal and having no HTTPS termination.

Closing Remarks

Overall, Surge is an excellent caching plugin for all users as it’s fast and is instantly activated, negating any techy troubles. The whole process of testing and communicating back and forth with the hosting & performance industry giant was a humbling experience and has paved the way for conducting similar collaborations in the future as well.

Like Surge, Cloudways is also a performance-focused hosting platform and made headlines later last year with its partnership with Object Cache Pro. It expanded its hosting capabilities remarkably and offered the Object Cache Pro’s robust caching capabilities complimentary (originally priced at $95) to all its users with a subscription plan of 2 GB RAM and above.

Share your opinion in the comment section.

Share This Article

“Beautifully optimized hosting for WordPress and Magento”

Arda Burak [Agency Owner]

Danish Naseer is a WordPress Community Manager at Cloudways. He is passionate about designing, developing, and engaging with people to help them. He also actively participates in the community to share his knowledge. Besides that, he loves to watch documentaries, traveling and spending time with family. You can contact him at [email protected]

This content was originally published here.