Ahosting Logo

Ahosting Technical Operations test

Apache vs LiteSpeed for WordPress

LiteSpeed was roughly twice as fast for dynamic WordPress execution in our lab environments. Once both platforms served a correctly cached page, the result was effectively tied at about 11 ms.

Tested 23 August 2026. Re-run when a material stack change requires it.

24 Years Trusted Since 2002
99.9% Uptime Guaranteed SLA
30-Day Money-Back Guarantee
24/7 Expert Helpdesk
Ahosting, Inc. BBB Accredited Business, A+ rating

Executive summary

Three findings, one caveat

We ran the same WordPress fixture on an Ahosting Apache lab and an Ahosting LiteSpeed lab. The result splits cleanly by whether the page had to be generated or could be served from cache.

51–54%

Dynamic pages

Lower median time to first byte on LiteSpeed across the home page, a post and search, when every request was a genuine cache miss.

~11 ms

Cached pages

Effectively tied. Once a correct full-page cache answered the request, the web server stopped being the variable worth arguing about.

2.2x

Under concurrency

Throughput advantage on dynamic requests at 1 to 20 concurrent users, with p95 latency roughly half at every step.

Test environment

What the two labs actually were

Identical WordPress fixture on both: WordPress 7.1, PHP 8.2, Twenty Twenty-Five 1.5, 50 posts, 8 pages, 60 comments and 10 local images. Cloudflare was DNS-only, so no edge cache sat in front of either site.

Apache lab
Web server
Apache 2.4.67
PHP path
PHP-FPM
Page cache
WP Super Cache 3.1.1
Database
Local MariaDB 10.11
LiteSpeed lab
Web server
LiteSpeed Ent 6.3.6
PHP path
LSAPI with OPcache
Page cache
LiteSpeed Cache 7.9
Database
Remote MySQL 8.0.41
Apache hardware
CPU threads
48
Memory
31.5 GB
Protocol
HTTP/1.1
LiteSpeed hardware
CPU threads
40
Memory
64.0 GB
Protocol
HTTP/2

The hardware was not identical. Memory, database placement and protocol differ between the two nodes, so these numbers describe our environments rather than the two web servers in isolation. We say so here rather than in a footnote.

Dynamic results

When WordPress has to build the page

Every request used a unique URL to force a cache miss. 30 observations per route and platform, from three independent rounds. Lower is better.

Median dynamic TTFB Lower is better
Home page 361.5 ms 165.2 ms Post 376.5 ms 175.7 ms Search 385.2 ms 189.2 ms
Apache LiteSpeed
Medians and 95th percentiles, three rounds of 30 observations per route and platform.
RouteApache medianLiteSpeed medianReductionApache p95LiteSpeed p95
Home page361.5 ms165.2 ms54.3%2,972.9 ms207.2 ms
Post376.5 ms175.7 ms53.3%2,583.4 ms217.0 ms
Search385.2 ms189.2 ms50.9%2,996.7 ms197.8 ms

The p95 column is the more interesting one. Apache’s worst-case dynamic responses ran into seconds; LiteSpeed’s stayed close to its median. Consistency, not the headline average, is what a visitor actually feels.

Cached results

When the cache answers, the argument ends

Apache served from WP Super Cache in Expert mode via mod_rewrite. LiteSpeed served from server-integrated LSCache. Cache hits were verified rather than assumed.

Median TTFB on a cache hit Lower is better
Home page 11.1 ms 10.9 ms Post 10.9 ms 10.8 ms
Apache LiteSpeed
A 0.2 ms gap is not a difference anyone can sell you, and we are not going to try.
Cacheable routeApache medianLiteSpeed medianApache p95LiteSpeed p95
Home page11.1 ms10.9 ms14.4 ms11.7 ms
Post10.9 ms10.8 ms12.0 ms11.8 ms

Concurrency

What happens when several people arrive at once

Both page caches were disabled for this run, so every request was dynamic. HTTPS with HTTP/1.1 keep-alive, from the same Michigan host.

Dynamic throughput Higher is better
1 user 2.97 req/s 6.62 req/s 5 users 2.84 req/s 6.83 req/s 10 users 3.08 req/s 6.59 req/s 20 users 3.08 req/s 6.04 req/s
Apache LiteSpeed
Throughput and 95th-percentile latency with page caching disabled on both stacks.
ConcurrencyApache req/sLiteSpeed req/sApache p95LiteSpeed p95
12.976.62361 ms184 ms
52.846.831,794 ms782 ms
103.086.593,402 ms1,598 ms
203.086.046,501 ms3,598 ms

What it means

How to read this before you buy anything

The honest summary is narrower than the headline, and more useful.

Caching is the first decision

If your pages are cacheable and the cache is configured correctly, both stacks answer in about 11 ms. Get the cache right before you shop for a web server.

The gap is on cache misses

Logged-in sessions, search, personalised pages and anything a cache must skip. That is where the 51 to 54 percent showed up, and where a busy site actually lives.

Consistency beats the average

Apache p95 ran to seconds under load while LiteSpeed stayed near its median. The slowest requests are the ones a visitor remembers.

Limitations

What this study does not prove

Published so you can decide how much weight the numbers deserve.

  • The two hosts did not use identical CPU counts, memory or database placement, so hardware is part of the result.
  • Testing ran from a single Michigan location and does not represent global end-user latency.
  • One WordPress fixture, one theme, no third-party plugin load. Real sites carry more.
  • Results describe these Ahosting environments on the tested date, not a universal property of either web server.

Looking for store performance instead? The WooCommerce study measures cart, checkout and add-to-cart separately, and reaches a different conclusion.

Measured, then sold

The stack in this study is the one you get

Every WordPress plan runs on the LiteSpeed configuration measured above, not a different tier of it. WP Bronze starts at $2.79 a month and renews at $2.79, with a free dedicated IP, daily offsite backups, staging and a migration our team runs for you.

  • LiteSpeed with LSCache on every plan
  • Free dedicated IP included
  • Free expert migration
  • 30-day money-back period
WP Bronze starts from
$2.79 /month

36-month term. Renews at $2.79/mo, no increase and no setup fee.