<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Shuki Vaknin (‫אחסון לינוקס‬‎)</title>
    <description>The latest articles on DEV Community by Shuki Vaknin (‫אחסון לינוקס‬‎) (@shuki_vaknin).</description>
    <link>https://dev.to/shuki_vaknin</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2606472%2F2f28aa6b-86ba-41d2-8533-6f7453f36e5e.png</url>
      <title>DEV Community: Shuki Vaknin (‫אחסון לינוקס‬‎)</title>
      <link>https://dev.to/shuki_vaknin</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shuki_vaknin"/>
    <language>en</language>
    <item>
      <title>LiteSpeed vs Nginx for WordPress: 3 months of production benchmarks</title>
      <dc:creator>Shuki Vaknin (‫אחסון לינוקס‬‎)</dc:creator>
      <pubDate>Sun, 26 Jul 2026 01:42:28 +0000</pubDate>
      <link>https://dev.to/shuki_vaknin/litespeed-vs-nginx-for-wordpress-3-months-of-production-benchmarks-46ab</link>
      <guid>https://dev.to/shuki_vaknin/litespeed-vs-nginx-for-wordpress-3-months-of-production-benchmarks-46ab</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;Ran LiteSpeed Enterprise (LSWS) and Nginx side-by-side on identical VPS instances for 3 months, hosting the same 12 WordPress sites on each. LiteSpeed came out 33–45% faster on TTFB and moved 10/12 sites to a 90+ mobile PageSpeed score vs. 3/12 on Nginx. But ~80% of that advantage doesn't come from LSWS itself — it comes from the LSCache plugin, which also works with OpenLiteSpeed (free).&lt;/p&gt;

&lt;p&gt;If you're deciding today: &lt;strong&gt;OpenLiteSpeed + LSCache&lt;/strong&gt; is the pragmatic answer for most WordPress workloads.&lt;/p&gt;




&lt;h2&gt;
  
  
  The setup
&lt;/h2&gt;

&lt;p&gt;Two identical VPS instances at the same Israeli data center:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Server A&lt;/strong&gt;: LiteSpeed Enterprise 6.2 + LSCache 5.7 + PHP 8.2 (LSAPI) + CloudLinux&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Server B&lt;/strong&gt;: Nginx 1.24 + PHP 8.2 FPM + FastCGI cache + Redis object cache&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Spec on each: 4 vCPU, 8 GB RAM, 100 GB NVMe, Ubuntu 22.04.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;12 WordPress sites migrated to each&lt;/strong&gt; (same versions, same plugin stack):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;4 brochure sites (~50 pages, empty WooCommerce)&lt;/li&gt;
&lt;li&gt;4 WooCommerce stores (500–2000 products)&lt;/li&gt;
&lt;li&gt;4 Elementor blogs (500+ posts)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Load simulated with k6, 100 concurrent users, 30-min runs, realistic paths: home → category → product → cart → checkout.&lt;/p&gt;

&lt;h2&gt;
  
  
  Results — TTFB
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Site type&lt;/th&gt;
&lt;th&gt;Nginx&lt;/th&gt;
&lt;th&gt;LiteSpeed&lt;/th&gt;
&lt;th&gt;Δ&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Brochure&lt;/td&gt;
&lt;td&gt;142 ms&lt;/td&gt;
&lt;td&gt;89 ms&lt;/td&gt;
&lt;td&gt;−37%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WooCommerce empty&lt;/td&gt;
&lt;td&gt;168 ms&lt;/td&gt;
&lt;td&gt;112 ms&lt;/td&gt;
&lt;td&gt;−33%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WooCommerce full&lt;/td&gt;
&lt;td&gt;384 ms&lt;/td&gt;
&lt;td&gt;210 ms&lt;/td&gt;
&lt;td&gt;−45%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Blog&lt;/td&gt;
&lt;td&gt;156 ms&lt;/td&gt;
&lt;td&gt;98 ms&lt;/td&gt;
&lt;td&gt;−37%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Results — RPS under load
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Site type&lt;/th&gt;
&lt;th&gt;Nginx&lt;/th&gt;
&lt;th&gt;LiteSpeed&lt;/th&gt;
&lt;th&gt;Δ&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Brochure&lt;/td&gt;
&lt;td&gt;340&lt;/td&gt;
&lt;td&gt;520&lt;/td&gt;
&lt;td&gt;+53%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WooCommerce empty&lt;/td&gt;
&lt;td&gt;210&lt;/td&gt;
&lt;td&gt;340&lt;/td&gt;
&lt;td&gt;+62%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WooCommerce full&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;118&lt;/td&gt;
&lt;td&gt;+90%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Blog&lt;/td&gt;
&lt;td&gt;280&lt;/td&gt;
&lt;td&gt;470&lt;/td&gt;
&lt;td&gt;+68%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The gap widens with deeper PHP call trees. WooCommerce with a big catalog is nearly 2× faster on LSWS. Reason: &lt;strong&gt;LSAPI keeps a persistent worker pool&lt;/strong&gt; that avoids PHP-FPM's cold-start overhead on complex requests.&lt;/p&gt;

&lt;h2&gt;
  
  
  Results — PageSpeed Insights (mobile)
&lt;/h2&gt;

&lt;p&gt;Averages across all 12 sites, both stacks with the same image + Critical-CSS pipeline:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Nginx&lt;/th&gt;
&lt;th&gt;LiteSpeed&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;LCP&lt;/td&gt;
&lt;td&gt;2.4 s&lt;/td&gt;
&lt;td&gt;1.6 s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FCP&lt;/td&gt;
&lt;td&gt;1.7 s&lt;/td&gt;
&lt;td&gt;1.1 s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CLS&lt;/td&gt;
&lt;td&gt;0.03&lt;/td&gt;
&lt;td&gt;0.03&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TBT&lt;/td&gt;
&lt;td&gt;240 ms&lt;/td&gt;
&lt;td&gt;190 ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Score&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;84&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;94&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;LiteSpeed moved &lt;strong&gt;10/12 sites&lt;/strong&gt; to 90+. Nginx got &lt;strong&gt;3/12&lt;/strong&gt; there.&lt;/p&gt;

&lt;h2&gt;
  
  
  The plot twist
&lt;/h2&gt;

&lt;p&gt;Three months in, I did one more test: installed &lt;strong&gt;OpenLiteSpeed&lt;/strong&gt; (free, MIT license) + LSCache on Server B, in place of Nginx. Same 12 sites.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Nginx + FastCGI + Redis&lt;/th&gt;
&lt;th&gt;OpenLiteSpeed + LSCache&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;TTFB (WooCommerce full)&lt;/td&gt;
&lt;td&gt;384 ms&lt;/td&gt;
&lt;td&gt;245 ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PageSpeed (mobile)&lt;/td&gt;
&lt;td&gt;84&lt;/td&gt;
&lt;td&gt;92&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;License cost&lt;/td&gt;
&lt;td&gt;$0&lt;/td&gt;
&lt;td&gt;$0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;~80% of LiteSpeed Enterprise's advantage came from the cache plugin, not the server.&lt;/strong&gt; LSCache does four things no other WordPress cache plugin does at the same level:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;QUIC.cloud CDN, free tier&lt;/strong&gt; (built into the plugin)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Image optimization + WebP conversion&lt;/strong&gt; in-process&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automatic Critical CSS&lt;/strong&gt; generation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ESI edge-side includes&lt;/strong&gt; — cache the shell of a page while keeping dynamic bits fresh (mini-carts, logged-in nav)&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Recommended config
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;wp-config.php&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nb"&gt;define&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'WP_CACHE'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nb"&gt;define&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'WP_DEBUG'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nb"&gt;define&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'WP_REDIS_HOST'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'127.0.0.1'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nb"&gt;define&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'WP_REDIS_PORT'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;6379&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nb"&gt;define&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'WP_REDIS_DATABASE'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nb"&gt;define&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'WP_POST_REVISIONS'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nb"&gt;define&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'AUTOSAVE_INTERVAL'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;300&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Critical LSCache settings (Dashboard → LiteSpeed Cache):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cache → General → Enable Cache: &lt;strong&gt;On&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Cache → General → Cache Logged-in Users: &lt;strong&gt;Off&lt;/strong&gt; (important)&lt;/li&gt;
&lt;li&gt;Cache → Object → Object Cache: &lt;strong&gt;Redis&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Cache → ESI → Enable ESI: &lt;strong&gt;On&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;CDN → QUIC.cloud CDN: &lt;strong&gt;On&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Page Optimization → CSS: Combine + Minify + UCSS&lt;/li&gt;
&lt;li&gt;Page Optimization → JS: Combine + Defer&lt;/li&gt;
&lt;li&gt;Page Optimization → Images: Guest Optimization + Lazy Load&lt;/li&gt;
&lt;li&gt;Page Optimization → HTML: Minify + DNS Prefetch&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  When Nginx still wins
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;API-only WordPress backends&lt;/strong&gt; (headless) — Nginx + FPM has a tighter footprint for pure JSON responses.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Truly static traffic&lt;/strong&gt; — landing pages, marketing sites with no dynamic content. Nginx + static file cache is unbeatable there.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Team that only knows Nginx&lt;/strong&gt; — LSWS/OLS learning curve isn't worth it for a single box.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Eight-point WordPress performance checklist
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;curl -o /dev/null -s -w "%{time_starttransfer}\n" https://yoursite.com/&lt;/code&gt; → TTFB under 200 ms&lt;/li&gt;
&lt;li&gt;PageSpeed Insights on home + 3 product pages → LCP under 2.5 s&lt;/li&gt;
&lt;li&gt;GTmetrix waterfall → cache HIT on every static asset&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;X-LiteSpeed-Cache: hit&lt;/code&gt; header on repeat requests (or equivalent for your cache)&lt;/li&gt;
&lt;li&gt;Search Console → Core Web Vitals → 90%+ URLs "Good"&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;wp cli plugin list --status=active&lt;/code&gt; → under 25 active plugins&lt;/li&gt;
&lt;li&gt;wp-admin → Site Health → no "Critical" issues&lt;/li&gt;
&lt;li&gt;Redis object cache active — check "Cache Statistics" in your cache plugin&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Bottom line
&lt;/h2&gt;

&lt;p&gt;For WordPress in 2026:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;On a shared host&lt;/strong&gt;: LiteSpeed Enterprise + LSCache is the strongest option. Pay the license, forget about tuning.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;On your own VPS&lt;/strong&gt;: OpenLiteSpeed + LSCache gets you 90% of the way there for free.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nginx&lt;/strong&gt;: still the right call for API-only or ultra-static workloads, or if your team lives and breathes it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Two days of proper LSCache config usually beats switching hosts.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;I run &lt;a href="https://www.linux-hosting.co.il/en/" rel="noopener noreferrer"&gt;Linux Hosting&lt;/a&gt;, an Israeli hosting provider running LiteSpeed Enterprise + LSCache across every plan. Comments and pushback welcome — this was measured on a real customer fleet, but every setup is different and I'd love to see other benchmarks.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>wordpress</category>
      <category>performance</category>
      <category>devops</category>
      <category>benchmarking</category>
    </item>
  </channel>
</rss>
