Fastest WordPress Hosting Providers Tested: 2024 Benchmarks
TTFB is the number that exposes a host before any caching trick can hide it. Across six managed WordPress providers tested between October and November 2024, median cold-cache TTFB ranged from 98ms to 741ms — a 7.5x spread for services that often sit within $30/month of each other.
This piece documents exactly how those numbers were produced, what changed when page caching was enabled, and which providers held their performance under simulated traffic spikes.
How the Tests Were Run
Each host received an identical WordPress 6.6.2 install: Twenty Twenty-Four theme, WooCommerce 9.2.3 inactive (installed only to add realistic database weight), and no page caching active for the cold-cache round. PHP was set to 8.3 on every host that offered it; one host was capped at 8.2 and is noted in the table.
Measurement stack:
- TTFB and LCP: WebPageTest (Dulles, VA node; Cable profile; median of five runs)
- Load test: k6 cloud, 50 virtual users over 3 minutes, hitting the homepage
- Uptime baseline: Better Uptime polling every 60 seconds for 30 days prior to benchmark day
All tests ran against the root URL with no CDN in front unless the host injects one automatically (noted per provider). WordPress debug mode was off. Object caching was off for round one, then enabled via the host's native Redis or Memcached integration for round two.
Prices reflect the entry-level plan that allows custom plugins, billed annually, as of November 2024.
Cold-Cache TTFB Results
The table below is the raw baseline — no page cache, no object cache. This is what a logged-in admin or an uncached request sees.
| Provider | Plan Tested | PHP | Cold TTFB (ms) | 95th-pct TTFB (ms) | Monthly Price |
|---|---|---|---|---|---|
| Kinsta | Starter | 8.3 | 98 | 142 | $35 |
| WP Engine | Startup | 8.2 | 187 | 264 | $30 |
| Cloudways (DO Premium) | 2 GB | 8.3 | 203 | 301 | $28 |
| Pressable | Personal | 8.3 | 318 | 447 | $25 |
| SiteGround | GrowBig | 8.3 | 412 | 589 | $22 |
| Bluehost (shared WP) | Basic | 8.2 | 741 | 1,104 | $14 |
Kinsta's 98ms median stands out. The 95th-percentile figure of 142ms suggests consistent server response rather than a lucky median. WP Engine and Cloudways cluster in the 187–203ms range — meaningfully slower but still within acceptable territory for a dynamic request. Pressable and SiteGround drift into ranges where even modest traffic can push LCP past Google's 2.5-second threshold. Bluehost shared hosting, at 741ms cold, is in a different category entirely.
Cached Performance and LCP
Page caching collapses TTFB toward the host's raw static-file delivery speed. Each provider's recommended caching layer was enabled — Kinsta's built-in full-page cache, WP Engine's EverCache, Cloudways Breeze plugin (1.2.1), Pressable's Varnish layer, SiteGround's SG Optimizer (7.5.2), and W3 Total Cache on Bluehost.
| Provider | Cached TTFB (ms) | LCP (ms) | CLS | FID / INP (ms) |
|---|---|---|---|---|
| Kinsta | 31 | 890 | 0.02 | 48 |
| WP Engine | 44 | 1,040 | 0.04 | 61 |
| Cloudways (DO Premium) | 38 | 970 | 0.03 | 55 |
| Pressable | 67 | 1,210 | 0.05 | 74 |
| SiteGround | 82 | 1,380 | 0.06 | 89 |
| Bluehost (shared WP) | 201 | 2,610 | 0.11 | 143 |
Caching narrows the gap considerably. Kinsta's 31ms cached TTFB is the floor, but Cloudways at 38ms is close enough that the $7/month difference buys you infrastructure flexibility rather than raw speed. WP Engine at 44ms is competitive. LCP tells a more nuanced story: Kinsta's 890ms LCP suggests their edge network is serving assets efficiently; Bluehost's 2,610ms LCP crosses into the "needs improvement" band even with caching active.
CLS scores were low across the board except Bluehost, where the shared environment's inconsistent resource allocation contributed to layout instability during the load test.
Load Test: 50 Concurrent Users
A single-user benchmark doesn't reflect real traffic. The k6 load test ramped from 1 to 50 virtual users over 60 seconds, held for 90 seconds, then ramped down. Each VU requested the homepage in a loop with a 1-second think time.
| Provider | Median Response (ms) | 95th-pct (ms) | Error Rate | Requests/sec |
|---|---|---|---|---|
| Kinsta | 34 | 89 | 0.0% | 41.2 |
| WP Engine | 51 | 134 | 0.0% | 38.7 |
| Cloudways (DO Premium) | 46 | 118 | 0.0% | 39.4 |
| Pressable | 78 | 203 | 0.2% | 34.1 |
| SiteGround | 97 | 287 | 0.4% | 31.8 |
| Bluehost (shared WP) | 388 | 1,840 | 3.1% | 14.6 |
The error rate column is where shared hosting reveals its ceiling. Bluehost's 3.1% error rate under 50 concurrent users means roughly 1 in 32 requests failed outright — a real problem for a WooCommerce checkout flow. SiteGround's 0.4% is better but still non-zero. Kinsta, WP Engine, and Cloudways all returned 0.0% errors across the full test window.
Requests per second is a proxy for raw throughput. Kinsta handled 41.2 req/s; Bluehost managed 14.6 req/s. For a content site with occasional traffic spikes, that difference can mean the gap between a smooth experience and a cascade of 504s.
What the Numbers Mean for Core Web Vitals
Google's Core Web Vitals thresholds for a "good" score:
- LCP: under 2,500ms
- CLS: under 0.1
- INP: under 200ms
With default caching enabled and no image optimization plugins active, every host except Bluehost cleared the LCP threshold. Bluehost's 2,610ms cached LCP is 4.4% over the limit — marginal, but it means any additional render-blocking resource (a Google Font, a third-party script) pushes it into "needs improvement" territory with no headroom.
CLS scores below 0.1 across the managed hosts suggest that server-side instability isn't the primary source of layout shift on a clean install. That shifts the CLS conversation to theme and plugin territory, which is outside host control.
INP under 200ms was achieved by all managed hosts. Bluehost's 143ms INP is surprisingly reasonable given its other metrics — INP is more sensitive to JavaScript execution on the client than to server response time, so the shared environment's TTFB problems don't directly inflate it.
Recommended Settings by Provider
These are the configuration changes that produced the cached numbers in the table above. Starting from a default install, apply these before running your own benchmarks.
Kinsta
- Enable full-page cache in MyKinsta dashboard (Cache tab, set expiry to 1 hour minimum)
- Add Redis object cache via the Add-ons panel ($100/month add-on; skip for low-traffic sites)
- Enable Cloudflare integration (free tier, proxied DNS)
WP Engine
- EverCache is on by default; verify exclusion rules aren't stripping cache for non-logged-in users
- Enable Global Edge Security (Cloudflare Enterprise, included on Growth plan and above)
- Set PHP to 8.2 (8.3 not yet available as of November 2024)
Cloudways
- Install Breeze plugin (1.2.1), enable Varnish cache under Application Settings
- Enable Cloudflare Enterprise add-on ($4.99/month) for edge caching
- Set PHP-FPM workers to match vCPU count (2 workers on a 2-core droplet)
Pressable
- Varnish is enabled by default; confirm via response headers (
X-Pressable-Cache: HIT) - Add Jetpack Boost (free) for Critical CSS generation — reduced LCP by ~140ms in testing
- Enable Cloudflare free plan manually; Pressable doesn't inject one automatically
SiteGround
- Enable SG Optimizer Dynamic Cache and Memcached under Speed > Caching
- Turn on Combine CSS and Combine JavaScript only after verifying no visual regressions
- Use SiteGround's Cloudflare integration (free, available in Site Tools)
Bluehost
- Install W3 Total Cache, enable Page Cache (disk: enhanced), Object Cache (Memcached if available on plan)
- Upgrade to Bluehost Cloud if budget allows — their VPS-backed product behaves substantially differently from shared
- Consider Cloudflare free plan as a TTFB band-aid, though it won't fix the underlying server response
Do This First
Before choosing a host or migrating an existing site, run a cold-cache WebPageTest from the Dulles node against your current host. Record the median TTFB across five runs. That single number tells you whether a migration is worth the operational cost.
If your cold TTFB is above 400ms, page caching alone won't rescue your Core Web Vitals on days when the cache is cold — after a deploy, after a plugin update, or for any logged-in user. Those are exactly the moments that matter for WooCommerce conversion rates and editorial credibility.
For sites already on a managed host in the 187–318ms cold TTFB range, the highest-leverage change is usually object caching, not a host migration. Enabling Redis on Kinsta or Memcached on SiteGround reduced dynamic TTFB by 35–60ms in these tests — measurable without any infrastructure change.
For sites on shared hosting with cold TTFB above 600ms and any meaningful traffic goal, the comparison on tinjauhost.biz.id and the data here suggest a managed host is the correct next step. The $10–20/month difference between shared and entry-level managed buys a 3–7x improvement in cold response time and eliminates the error rate problem under concurrent load.
Conclusion
Across the fastest WordPress hosting providers tested in this benchmark, Kinsta led on every raw metric: 98ms cold TTFB, 31ms cached TTFB, 890ms LCP, and 0.0% error rate under 50 concurrent users. Cloudways on a DigitalOcean Premium Droplet came within single-digit milliseconds of WP Engine's cached performance at a lower price point, making it the strongest value for developers comfortable with a cloud-managed interface.
Shared hosting's ceiling is real and measurable. Bluehost's 741ms cold TTFB and 3.1% load-test error rate aren't edge cases — they're the product of resource contention that no caching plugin fully resolves.
The right host depends on your traffic pattern, your team's operational comfort, and your budget. But the performance gap between tiers is not a matter of opinion. The numbers above are reproducible with a free WebPageTest account and 20 minutes of your time.