How does LiteSpeed vs Nginx compare? And how does LiteSpeed vs Nginx do in WordPress? In my quest to find the best WordPress hosting, this was a question that always bothered me.

There were a lot of posts from niche blogs and not so-great-looking blogs claiming that LiteSpeed performed up to 1200% better than Nginx showing some nice LiteSpeed vs Nginx benchmarks. That sounded like a story that is too good to be true, but could it be really true?

Even the Litespeed vs Nginx benchmarks from LiteSpeed itself indicate a large performance difference, so if this would be true, using LiteSpeed would be phenomenal.

These blog posts did not really give me satisfactory answers, and benchmarks were often one-dimensional. The solution was easy: spin up a couple of servers myself and do some real testing!

In this article and in the above video, I will answer the following question: How does (Open)LiteSpeed compare against Nginx when using WordPress?

TL;DR

The below infographic summarizes it all:

LiteSpeed vs Nginx: The Big Battle (Benchmarks, WordPress & OpenLiteSpeed) 1
This benchmark in a neat infographic

But what is LiteSpeed?

LiteSpeed, or better, LiteSpeed web server, is a product from LiteSpeed technologies that allow you to run a webserver. A webserver is enabling a computer or server that is connected to the internet to host and serve websites.

LiteSpeed is known for its performance and compatibility with Apache, another very popular webserver.

In this article, we are focusing on the open-source version of LiteSpeed Web Server, which is called OpenLiteSpeed.

Some shared web-hosting companies use (Open)LiteSpeed with great success, but many large hosting companies use Nginx or Apache.

And what is NGINX?

Nginx is an HTTP and reverse proxy server. It can be used to host and cache applications and websites on any given server. It is used by many large companies such as Dropbox and Netflix, and is getting increasingly popular.

It’s known for serving static files really well, and also has special modules for caching (FastCGI) and handling PHP (PHP-FPM).

In addition, it also has functionalities for handling Mail proxies and load balancing.

LiteSpeed vs Nginx: The Results

For my testing set-up, I created 2 servers at Upcloud, both with 2 cores and 4GB of RAM at the London data centre. Upcloud is a great provider, with fast servers and disks.

I used Runcloud to deploy a WordPress website on each of these servers, which is a great control panel for hosting WordPress on your own servers (find the best control panels here). Finally, I used another server on which I installed a load-testing tool. On one server, I installed NGINX, and on the other server, I used OpenLiteSpeed. For some benchmarks, I also enabled FastCGI caching for Nginx and caching for LiteSpeed

Essentially, my benchmarks compare OpenLiteSpeed vs NGINX.

Then I performed the following tests on these WordPress sites:

  • TTFB and Load tests using Sucuri Performance Check.
  • 1000 clients per second test using Loader.io (with caching turned on)
  • 50 clients per second test, using Loader.io (with caching turned off)
  • From 0 to 10.000 clients in one second, using Loader.io (with caching turned on)
  • A test I wrote myself, where 10.000 posts are inserted, 10.000 posts are queried, and 10.000 posts are deleted.
  • A test using the WordPress Performance Tester Plugin
  • A test using the WordPress Benchmark Plugin.

OpenLiteSpeed vs Nginx: Time to First Byte (equal)

LiteSpeed vs Nginx: Sucuri Results
The results for Nginx

These are the results for the Time to First Byte (TTFB):

NginxOpenLiteSpeed
Fastest TTFB32 ms34 ms
Fastest Total38 ms68 ms
Average TTFB372 ms317ms
Average Total668 ms550 ms

Nginx is loading faster in the closest location, while OpenLiteSpeed is performing better for all locations averaged.

OpenLiteSpeed vs Nginx: 1000 Clients per Seconds (cached) (Nginx)

Using loader.io, which simulates clients constantly firing requests, we can get a good view of the cached performance. In this case, 1000 clients per second equals 1000 requests a second.

Metrics (1000 cached clients)NginxOpenLiteSpeed
Average Response744 ms1615 ms
Minimum Response101 ms102 ms
Maximum Response10296 ms11381 ms
Successful Requests5996453791
Timeout Errors016
Network Errors0346

Nginx performs much better here, with more requests and a lower average response time. Nginx also has a much more equal response time, with fewer spikes in its graph and managed to get 99.9% of all requests successfully.

OpenLiteSpeed also had a couple of network errors and timeouts (> 10 second response time), and only got 90% of the maximum possible requests.

OpenLiteSpeed vs Nginx: From 0 to 10.000 Clients (cached) (OpenLiteSpeed)

But how do both platforms compare if we slowly increase the visitors from 0 to 10.000 in one minute?

Interestingly enough, with Nginx, we see that the response time roughly correlates with the rising number of visitors. With OpenLiteSpeed though, the number stays further down the line, with a step increase after 9000+ clients resulting in a large number of Timeouts.

In essence, OpenLiteSpeed was performing better under roughly 9000 clients, also resulting in more successful requests. Here’s an overview of all figures:

Metrics (0-10000 clients)NginxOpenLiteSpeed
Average Response3069 ms2041 ms
Minimum Response110 ms103 ms
Maximum Response12028 ms16661 ms
Successful Requests85489111784
Timeout Errors03822
Network Errors00

Let’s see what happens if we turn the cache off!

OpenLiteSpeed vs Nginx: 50 Clients per Second (uncached) (Nginx)

When caching is turned off, we get a totally different image.

Nginx performs much better than LiteSpeed, with many more successful requests and lower response times.

Metrics (50 uncached clients)NginxOpenLiteSpeed
Average Response1918 ms3560 ms
Minimum Response498 ms1137 ms
Maximum Response3069 ms11077 ms
Successful Requests21711313
Timeout Errors00
Network Errors00

Another popular load-testing tool is h2load. You’ll see it a lot in blogs. The following results talk about this.

OpenLiteSpeed vs Nginx: h2load (cached) (OpenLiteSpeed)

I performed the following benchmark:

h2load -n10000 -c100 -m10 --h1 "https://host.makeitwork.press"

This basically says to perform 10.000 requests, with 100 clients that can have as many as 10 concurrent streams. And these are the results:

Metrics (1000 cached clients)NginxOpenLiteSpeed
Completion5.59 seconds4.87 sec
Requests1790,45 req/s2052,24 req/s
Throughput93,86 MB/s107,79 MB/s

OpenLiteSpeed is doing better here, serving. In a second test, which you will also find in the video, results from Nginx and OpenLiteSpeed are actually closer to each other.

OpenLiteSpeed vs Nginx: h2load (uncached) (Nginx)

But will we see a similar difference when caching is turned off? Let’s see! I executed the following command, which loads uncached versions of the website.

h2load -n1000 -c10 -m10 --h1 "https://host.makeitwork.press?nocache"

By now, you should know what the above syntax means :). And these are the results:

Metrics (10 uncached clients)NginxOpenLiteSpeed
Completion24.95 seconds43.54 seconds
Requests40.09 req/s22.97 req/s
Throughput1.92 MB/s1001 KB/s

Like the test with Loader.io, Nginx performs much better here.

Let’s now dive into some WordPress specific benchmarks and see how both giants compare.

OpenLiteSpeed vs Nginx: WordPress Post Insert & Delete (OpenLiteSpeed)

The Post Insert & Delete Test is a simple test that I wrote, where I perform 10.000 post insertions, a query of 10.000 posts and a deletion of 10.000 posts. For each of these actions, I register what time it took.

NginxOpenLiteSpeed
Insert 10.000 posts46,939 seconds41,041 seconds
Delete 10.000 posts44,538 seconds43,170 seconds
Query 10.000 posts0,318 seconds0,376 seconds

In this case, OpenLiteSpeed is slightly faster.

OpenLiteSpeed vs Nginx: WordPress Performance Tester (Equal)

The WordPress Performance Tester Plugin does two benchmarks that benchmark the server and the queries per second in WordPress. It’s a nice indication of (web)-server performance.

NginxOpenLiteSpeed
Server Score8.2748.109
Queries per Second13261304

In this benchmark, Nginx and OpenLiteSpeed are doing equal For the server score, lower is better.

OpenLiteSpeed vs Nginx: WordPress Benchmark Tools (OpenLiteSpeed)

The WordPress Hosting Benchmark tool is a great tool that tests your CPU & Memory, MySQL, Disk and network performance. It gives a lot of insight into how great your hosting provider is, but also a bit of how well a web server stack performs.

In this benchmark, OpenLiteSpeed is doing slightly better for most of the benchmarks, except for small files I/O.

NginxOpenLiteSpeed
Operations with large text data8.3 seconds7.8 seconds
Random binary data operations7.5 seconds7.3 seconds
Filesystem write ability1179 MB/s1174 MB/s
Local file copy and access speed1047 MB/s1143 MB/s
Small file IO test990 MB/s698 MB/s
Importing a large amount of data to database3.5 sec3.3 sec
Simple queries on a single table1.2 sec1 sec
Complex database queries on multiple tables5 sec4.7 sec
Overall Score7.97.9

Phew! We did a lot of benchmarks. It’s time to get to the conclusion.

OpenLiteSpeed vs Nginx: A WooCommerce Case Study

While the previous benchmarks were done on a basic install of WordPress, this does not really reflect the average WordPress website.

Therefore, I did another round of benchmarking with a simple webshop set-up, based upon a bloated WordPress theme and the WooCommerce plugin. I also scaled the server to three levels to see what the effect would be (From 1 core and 2GB of ram to 4 cores and 8GB of ram, using the amazing servers from Upcloud). So, what did I test?

  • The loading performance for three levels using h2load.
  • The time it took to insert/delete/read 10.000 posts.
  • How long it takes to generate 1000 and 10.000 random WooCommerce products.
  • The loading times and MySQL queries as indicated by Query Monitor with various set-ups.
  • The time it takes to import 1000 posts with WP All Import.

Loadtest (caching enabled): Equal

In this load test, I basically fired 10000 requests caused by 100 concurrent users upon a cached page of the set-up website. These are the results:

ServerRequests per Second
NGINX on 1 Core / 2GB2605
OLS on 1 Core / 2GB1055
NGINX on 2 Core / 4GB1094
OLS on 2 Core / 4GB1105
NGINX on 4 Core / 8GB1086
OLS on 4 Core / 8GB1103

Except for the odd exception for the smallest server for NGINX, the results are pretty equal. However, OpenLiteSpeed did have a smaller time to the first byte. I also didn’t see much effect for scaling the server up.

Loadtest (caching disabled): NGINX

In this load test, I basically fired 1000 requests caused by 10 concurrent users upon an uncached page of the set-up website. These are the results:

ServerRequests per Second
NGINX on 1 Core / 2GB8.3
OLS on 1 Core / 2GB4.01
NGINX on 2 Core / 4GB14.97
OLS on 2 Core / 4GB8.28
NGINX on 4 Core / 8GB29.25
OLS on 4 Core / 8GB16.83

Similar to the base installation, NGINX can handle way more uncached users and there was a clear performance improvement for servers that are scaled. Again, we see the power of caching because an uncached setup is way slower.

Post Insertion / Deletion / Read Test: Nginx

In this test, I inserted, queried and deleted 10.000 posts subsequently. These are the results:

ServerInsertion (s)Querying (s)Deletion (s)
NGINX on 1 Core / 2GB39.8650.37838.742
OLS on 1 Core / 2GB59.0840.50558.640
NGINX on 2 Core / 4GB56.6550.37048.120
OLS on 2 Core / 4GB52.6990.41359.617
NGINX on 4 Core / 8GB36.8530.36433.128
OLS on 4 Core / 8GB50.9060.46341.256

NGINX clearly wins here

In this setup, NGINX is much faster than OpenLiteSpeed, especially when deleting or inserting posts.

WordPress is Single-Threaded

Except for some variance with Nginx, we don’t see some change when we scale up but not as much as expected. That’s because WordPress (and PHP) is single-threaded; one process is assigned to one thread. That means that no matter how many cores your server does have, one process (in this case, inserting, deleting, reading posts) is executed by one core. However, with more cores you can run more processes simultaneously, usually resulting in better performance.

Product Generation Benchmark: Equal

With help of the WC Smooth Generator, I generated 1000, and subsequently 10.000 products and reported the generating time. OpenLiteSpeed handled 1000 products faster, while NGINX finished 10.000 products sooner.

Server1000 products10.000 products
NGINX on 4 Core / 8GB00:03:5400:54:19
OLS on 4 Core / 8GB00:03:1500:56:42

In the background, I also did a test with a scaled-down server but there was no significant impact on product generation time.

Because this is a test that takes a lot longer, it is also a good test for longevity, in other words: how long performance is endured.

Query Monitor Results: NGINX

For various amounts of products, I visited the products page and edited a product, and watched the metrics in Query Monitor. Query Monitor is a plugin that helps to improve performance and see what code in WordPress has a lot of influence on that.

The plugin monitors the time is takes to process PHP execution, the time it takes to query the database and how much ram and queries are used in that process.

Default Setup (17 products)

PagePHP Load (s)Query Load (s)
NGINX – Products Page0.370.04
OLS – Products Page0.820.05
NGINX – Edit Product Page0.370.08
OLS – Edit Product Page1.541.17
Loading a page with 17 products

Nginx performed much better here and OLS has some odd values for editing products. But how did they do with 1000 products?

1000 Products Setup

PagePHP Load (s)Query Load (s)
NGINX – Products Page0.270.06
OLS – Products Page0.650.08
NGINX – Edit Product Page0.470.04
OLS – Edit Product Page0.420.09
Loading a page with 1000 products

Again, NGINX was faster in querying and loading the pages, except for the Edit product page in which OpenLiteSpeed loaded slightly faster (though had slower querying)

11000 Products Setup

With this setup, we are slowly seeing the results of having a large number of products in our database, resulting in larger query times.

PagePHP Load (s)Query Load (s)
NGINX – Products Page0.480.11
OLS – Products Page1.010.25
NGINX – Edit Product Page0.550.34
OLS – Edit Product Page1.790.46
Loading a page with 11000 products

Again, NGINX is doing better here, even after repeated page loads and averaged out numbers to make sure a number was not a one-time incident.

By the way, I did this on the largest server set-up, as scaling down did not have significant effects.

Importing Benchmark Results: NGINX

At last, I imported 1000 products into WordPress using WP All import and recorded the time it took. These are the results:

StackImport Duration
NGINX00:01:15
OLS00:01:26
Importing 1000 products

Again, NGINX seems to be slightly faster here. This is especially the case if the import already contains existing products.

LiteSpeed vs Nginx: It’s close, but Nginx seems the winner

In my tests, Nginx and LiteSpeed actually performed really close, although Nginx seems to be doing better in the Webshop case study.

  • In most of the benchmarks, the difference is very small, with OpenLiteSpeed being marginally faster for server operations and in cached situations (except for handling 1000 simultaneous clients).
  • Nginx seemed to perform much better with load tests when caching was turned off, handling the same amount of requests and clients much faster.

Unfortunately, I can not give a definitive conclusion of whether you should use LiteSpeed or Nginx. But what if you would have to make a decision?

  • Use OpenLiteSpeed if you want to have an easy to use caching plugin for WordPress that covers all your performance optimalizations, and need compatibility with .htaccess. This also includes ESI (edge side includes) caching, which you can use the cache parts of dynamic pages such as shopping pages. Cyberpanel, GridPane and Runcloud work greatly with OpenLiteSpeed.
  • Use Nginx if you want great uncached performance, and like the way Nginx configurations file work. Both GridPane and Runcloud work greatly with Nginx.
  • The earlier mentioned platforms are aimed at developers. Hostinger is a great hosting provider that supports LiteSpeed, and is aimed at beginners. Rocket.net or Kinsta are great if you favor Nginx.

Next to his, there are a couple of other things to consider when opting for LiteSpeed or Nginx.

The Bigest Perk of Using LiteSpeed in WordPress

The biggest advantage of using Litespeed for WordPress is its caching plugin. This plugin is a one-in-all toolkit for all your performance requirements. It does provide options for caching, minification, object caching, ESI (partial) caching, image optimization, improved content delivery, database optimization and more. It also provides support for integration with QUIC.cloud, which can make your WordPress website load fast from anywhere.

Unfortunately, Nginx does not have such a great plugin.

Great Hosting Providers that Use LiteSpeed

Are you convinced of using LiteSpeed? Or do you think Nginx is more capable? If you want to use LiteSpeed, I tested a couple of providers that make use of it. Here’s a link to their reviews:

Great Hosting Providers that Use Nginx

There are many great providers that use NGINX, and with good reason. The following WordPress hosting providers use stacks that consist solely of NGINX:

If we compare OpenLiteSpeed vs NGINX, I think Nginx is the clear winner in terms of performance. It’s only a (big) pity that they don’t have a plugin as good as the LiteSpeed cache plugin.

So, what do you think? Let me know in the comments below!