WordPress VPS Load Test 2026 — 15 Providers, 500 Concurrent Users

Same WordPress install. Same theme. Same 12 plugins. Deployed on 15 different VPS providers, then hammered with 500 simultaneous visitors. The numbers below are what actually happened.

15 Providers 500 Concurrent Users March 2026 Data

The Short Version

Three providers handled 500 concurrent WordPress users with zero errors: Hostinger (138ms median TTFB, 0% errors, broke at 850 users), Hetzner (152ms, 0% errors, broke at 780), and Vultr (168ms, 0% errors, broke at 720). Four providers started throwing 502 errors before we even reached 500 users. If you are picking a VPS for a WordPress site that might actually get traffic, those top three are the only ones I would trust without reservations.

Why This Test Exists

Every VPS provider claims they are fast. Their landing pages show graphs going up and to the right. Their testimonials say "blazing performance." None of that tells you what happens when 500 people hit your WooCommerce shop page at the same time.

I got tired of benchmark articles that test with 10 concurrent users and declare a winner. Ten users is a Sunday morning for a personal blog. It tells you nothing about Black Friday, a Hacker News front page, or a bot farm crawling your product catalog at 3 AM.

So I rented the cheapest plan from 15 providers, installed an identical WordPress + WooCommerce site on each one, and hit every server with 500 concurrent users for 60 seconds. Then I kept going — ramping to 1,000 users in steps of 50 — to find each provider's breaking point. This is a test of what happens to real visitors when traffic spikes.

How I Tested (And What I Controlled For)

The entire point of this test is controlling variables so the only thing that differs is the server hardware. Here is every detail, because methodology matters more than results if you want data you can actually trust.

The WordPress Installation

  • WordPress 6.5 with WooCommerce 9.x — deployed from the same Duplicator Pro backup file on every server
  • Theme: Storefront (WooCommerce default) with no customization
  • Content: 150 posts, 80 pages, 300 WooCommerce products with variable attributes, full theme unit test data
  • Plugins (12): Yoast SEO, WooCommerce, WPForms Lite, Wordfence Security, Redis Object Cache, Rank Math (disabled, installed for weight), MonsterInsights, UpdraftPlus, WP Mail SMTP, Classic Editor, Regenerate Thumbnails, Query Monitor (disabled during tests)

The Server Stack

  • OS: Ubuntu 24.04 LTS — deployed via the provider's marketplace image or installed manually where needed
  • Web server: Nginx 1.24 with worker_processes auto; and worker_connections 1024;
  • PHP: PHP 8.3 FPM, pm = dynamic, pm.max_children = 20, pm.start_servers = 5, pm.min_spare_servers = 3, pm.max_spare_servers = 10
  • Database: MariaDB 11.4, innodb_buffer_pool_size = 256M (fits in 1GB RAM plans)
  • Caching: OPcache enabled (128MB), Redis 7.x for object cache. No page caching. Every request runs through PHP and hits the database.

The Load Test

  • Tool: k6 (Grafana's open-source load tester) running on a dedicated 8-core bare metal server in the same datacenter region as each target
  • Target page: /shop/ — WooCommerce product listing page, which generates 35-55 database queries per request
  • Primary test: 500 virtual users (VUs), 60-second sustained load, measuring TTFB (Time to First Byte), error rate, and requests per second
  • Breaking point test: Ramp from 50 to 1,000 VUs in steps of 50, holding each level for 30 seconds. Record the VU count where error rate first exceeds 1% or median TTFB exceeds 5 seconds.

What I Did NOT Do

No page caching (makes every server look identical). No CDN. No per-provider PHP-FPM tuning (same max_children = 20 everywhere). No cherry-picking — every provider tested three times, median run reported.

Full Results — 15 Providers at 500 Concurrent Users

Sorted by median TTFB. Error rate is the percentage of HTTP 5xx responses during the 60-second sustained test at 500 VUs. Breaking point is where things fell apart during the ramp test.

# Provider Plan Median TTFB P95 TTFB Req/s Error % Breaking Point
1 Hostinger VPS KVM 1 — $6.49/mo 138 ms 312 ms 291 0% 850 VUs
2 Hetzner CX22 — $4.59/mo 152 ms 340 ms 274 0% 780 VUs
3 Vultr Cloud Compute — $6.00/mo 168 ms 385 ms 258 0% 720 VUs
4 DigitalOcean Basic — $6.00/mo 175 ms 410 ms 248 0% 680 VUs
5 Kamatera 1 vCPU — $4.00/mo 182 ms 435 ms 241 0.2% 650 VUs
6 Linode Nanode — $5.00/mo 190 ms 460 ms 232 0.4% 620 VUs
7 ScalaHosting Cloud VPS — $29.95/mo 195 ms 475 ms 228 0.3% 640 VUs
8 AWS Lightsail $5.00/mo 210 ms 520 ms 215 0.8% 580 VUs
9 Hostwinds Unmanaged — $4.99/mo 235 ms 580 ms 198 1.2% 520 VUs
10 IONOS VPS Linux S — $4.00/mo 248 ms 620 ms 188 1.5% 480 VUs
11 InterServer Standard — $6.00/mo 265 ms 680 ms 179 2.1% 440 VUs
12 BuyVM Slice 1024 — $3.50/mo 290 ms 750 ms 165 2.8% 400 VUs
13 RackNerd KVM — $3.49/mo 340 ms 920 ms 142 4.5% 350 VUs
14 Contabo Cloud VPS S — $6.99/mo 380 ms 1,050 ms 128 6.2% 300 VUs
15 GreenCloudVPS Budget KVM — $5.00/mo 420 ms 1,280 ms 112 8.1% 250 VUs

All tests conducted March 2026. Each provider tested three times; median run reported. k6 running on dedicated bare metal in the same region as the target server. Full raw data available in our benchmarks archive.

Breaking Point Test — Where Each Provider Gave Up

The 500-user sustained test tells you about steady-state performance. The breaking point test tells you about survivability. I ramped concurrent users from 50 to 1,000, holding each level for 30 seconds, and recorded where each provider first hit more than 1% error rate or median TTFB above 5 seconds.

The spread here is enormous. Hostinger survived to 850 concurrent uncached users on a $6.49/mo plan. GreenCloudVPS crumbled at 250. That is a 3.4x difference in capacity from servers that cost roughly the same per month.

The bottom four providers — BuyVM, RackNerd, Contabo, and GreenCloudVPS — all broke before reaching 500 users. That means during the sustained 500-user test, they were already in failure mode. The error percentages in the table above are not occasional hiccups. They represent real visitors who would see an error page instead of your WordPress site.

The Results That Surprised Me

Contabo's 8GB of RAM Did Nothing

Contabo gives you 8GB RAM on their entry Cloud VPS S plan. That is 4x what Hetzner offers at a lower price. On paper, it should crush. In practice, it broke at 300 concurrent users with a 6.2% error rate at 500. The bottleneck was never RAM. It was CPU speed and disk I/O. Every WordPress request needs the CPU to execute PHP and the disk to serve database queries. If those are slow, extra RAM just means you have a larger waiting room for requests that are taking forever to process. I have written about this in the CPU benchmark and disk I/O comparison — Contabo consistently underperforms on both metrics despite generous RAM allocations.

Hetzner at $4.59 Nearly Matched Hostinger at $6.49

Hetzner's CX22 plan includes 2 shared vCPUs where most competitors at this price offer 1 vCPU. That second core matters enormously for PHP-FPM. WordPress requests are not CPU-bound for one core — they are CPU-bound across all the PHP-FPM workers trying to run simultaneously. Two cores means two workers can execute PHP at full speed in parallel instead of time-slicing on one core. The 14ms TTFB gap (152ms vs 138ms) is imperceptible to visitors. The $1.90/mo price gap is real money over a year.

AWS Lightsail Was Mediocre

Lightsail's $5 plan placed 8th, behind Kamatera at $4 and Linode at $5. Lightsail uses burstable CPU credits — performance degrades under sustained load. TTFB climbed from 180ms to 260ms during our 60-second test as credits depleted. For WordPress sites with consistent traffic, burstable instances are a trap.

ScalaHosting Costs 6x More For Worse Results

ScalaHosting placed 7th but costs $29.95/mo — over 6x Hetzner's price. You are paying for SPanel and managed support, not faster hardware. The results speak for themselves.

Top 3 Deep Dive

#1. Hostinger VPS — 138ms TTFB, Broke at 850 Users

Median TTFB
138 ms
P95 TTFB
312 ms
Req/sec
291
Error Rate
0%
Breaking Point
850 VUs
Price
$6.49/mo

Hostinger won for the same reason it won the CPU benchmark: the hardware is fast. AMD EPYC processors, NVMe storage, 65,000+ IOPS in our disk test. Each of those 35-55 database queries per WooCommerce page benefits from sub-millisecond disk access. That compounds into a real TTFB advantage under heavy concurrent load.

The breaking point of 850 is what separates Hostinger from the pack — 70% more headroom than DigitalOcean in 4th place. For flash sales or viral traffic, that buffer is the difference between staying online and showing error pages.

#2. Hetzner — 152ms TTFB, Broke at 780 Users

Median TTFB
152 ms
P95 TTFB
340 ms
Req/sec
274
Error Rate
0%
Breaking Point
780 VUs
Price
$4.59/mo

Hetzner is the rational choice. The TTFB difference versus Hostinger (14ms) is invisible to every human being on earth. The price difference ($1.90/mo, $22.80/year) is not. The 2 vCPU allocation gives PHP-FPM breathing room that single-core plans do not have, and the 20TB bandwidth means you will never pay overage fees regardless of how much traffic your WordPress site receives.

If someone asked me "what VPS should I use for WordPress" and did not want a 15-minute explanation, I would say Hetzner. It is the best combination of performance, price, and capacity headroom in this test. The only caveat: Hetzner does not have US-based datacenters, so if your audience is US-based and latency-sensitive, Vultr or Hostinger may be a better geographic fit. (Though for WordPress with a CDN in front, origin server location matters less than people think.)

#3. Vultr — 168ms TTFB, Broke at 720 Users

Median TTFB
168 ms
P95 TTFB
385 ms
Req/sec
258
Error Rate
0%
Breaking Point
720 VUs
Price
$6.00/mo

Vultr is the choice for US-based WordPress sites that need datacenter proximity. Nine US locations means you can put the origin server in Atlanta, Dallas, Los Angeles, or wherever your visitors are concentrated. That geographic proximity shaves 20-40ms off TTFB before the server even starts processing the request. Combined with Vultr's one-click WordPress marketplace image that deploys a reasonably tuned stack in under 90 seconds, it is the lowest-friction path to a fast WordPress site.

The 0% error rate at 500 VUs matters. During the breaking point ramp, Vultr's TTFB degraded linearly rather than suddenly — no cliff edge, just a steady increase until errors appeared at 720. That predictable degradation makes capacity planning straightforward.

Cost Efficiency — Requests Per Dollar

Raw performance matters, but so does what you pay for it. This table divides each provider's req/sec by their monthly price. Higher is better.

# Provider Req/s Price/mo Req/s per $ Error Rate
1Kamatera241$4.0060.30.2%
2Hetzner274$4.5959.70%
3BuyVM165$3.5047.12.8%
4IONOS188$4.0047.01.5%
5Linode232$5.0046.40.4%
6Hostinger VPS291$6.4944.80%
7Vultr258$6.0043.00%
8AWS Lightsail215$5.0043.00.8%
9DigitalOcean248$6.0041.30%
10RackNerd142$3.4940.74.5%
11Hostwinds198$4.9939.71.2%
12InterServer179$6.0029.82.1%
13GreenCloudVPS112$5.0022.48.1%
14Contabo128$6.9918.36.2%
15ScalaHosting228$29.957.60.3%

I included the error rate column because raw req/s per dollar is misleading if the server is dropping requests. BuyVM looks good on paper at 47.1 req/s per dollar, but 2.8% of those requests are errors. Kamatera leads with 60.3 req/s per dollar with only 0.2% errors, though its $4/mo plan ships with 1GB RAM — tight for WordPress + WooCommerce in production. To get 4GB on Kamatera, you are looking at $9-12/mo, which drops the value ratio below Hetzner.

Hetzner at 59.7 req/s per dollar with 0% errors, 4GB RAM, and 2 vCPUs is the practical value winner. No asterisks needed. Contabo at 18.3 req/s per dollar is painful — $6.99/mo for 53% fewer requests than Hetzner with a 6.2% error rate.

What This Means For Your WordPress Site

Numbers in a table are only useful if you can translate them into decisions. Here is what these results mean for specific WordPress use cases:

WooCommerce Stores

Checkout, cart, and account pages cannot be cached. Every add-to-cart click, every checkout step, every order status check is an uncached dynamic request that goes through the full PHP + database stack. The req/s and TTFB numbers in this test directly predict your checkout page speed. On Hostinger at 138ms TTFB, your checkout loads in under 200ms (add ~50ms for network). On Contabo at 380ms, checkout takes half a second before the browser even starts rendering. That 200ms difference affects conversion rates. Baymard Institute data shows that each 100ms of additional load time reduces conversion by 1.11%.

Content Sites and Blogs

If you run a content site with page caching enabled (and you should), the breaking point metric matters more than TTFB. Your cached pages will load fast on any provider. But when Google's crawler hits 50 URLs simultaneously, or when your cache expires and 200 visitors all trigger cache rebuilds at once, the server's uncached performance determines whether your site stays up or shows 502 errors. Hostinger surviving to 850 VUs means it can handle aggressive cache stampedes without flinching.

WordPress Admin Experience

Every admin action — saving a post, updating a plugin, loading the media library, running a WooCommerce report — is an uncached request. The TTFB from this test approximates how snappy your admin dashboard feels. At 138ms (Hostinger), the admin is instant. At 380ms (Contabo), there is a perceptible delay on every click. It sounds minor until you spend four hours editing products in WooCommerce and every single save takes a beat longer than it should.

Frequently Asked Questions

Why 500 concurrent users instead of a lower number?

Most benchmark articles test with 10 or 50 concurrent users. At that load, every provider looks fine. The differences only show up when the server is under actual pressure. 500 concurrent users hitting uncached WordPress pages is where cheap hardware starts throwing 502s and premium hardware keeps serving pages in under 200ms. If you only expect 10 concurrent visitors, any VPS works. If you want to know what happens during a traffic spike, product launch, or viral moment, you need to test at 500+.

What does "breaking point" mean in this test?

The breaking point is the concurrency level where the server starts returning HTTP 502/503 errors at a rate above 1%, or where the median TTFB exceeds 5 seconds. I ramped each provider from 50 to 1,000 concurrent users in increments of 50, holding each level for 30 seconds. The breaking point is where things fell apart. Some providers hit it at 250, others survived past 800. This metric matters more than peak performance because it tells you how much headroom you have before your site goes down during a traffic spike.

Why did you disable page caching for this test?

Page caching turns every VPS into a static file server. With caching on, a $3.50 VPS and a $30 VPS deliver nearly identical response times because Nginx is serving pre-built HTML without touching PHP or the database. That tells you nothing about the server itself. I disabled page caching to force every request through the full stack: PHP-FPM, MariaDB, Redis object cache, PHP assembly, Nginx delivery. This is the performance you get on WooCommerce checkout, admin pages, logged-in sessions, AJAX calls, and cache misses. It is the performance that actually matters for choosing between providers.

How do these results translate to real daily visitors?

A provider handling 291 req/s on uncached pages (Hostinger) can serve roughly 291 simultaneous visitors on dynamic pages. In production with page caching (which you should always use), multiply by 30-50x: approximately 8,700-14,550 concurrent cached visitors, translating to millions of page views per day. The uncached number directly applies to WooCommerce checkout, admin sessions, logged-in users, and any AJAX request. Most WordPress sites get fewer than 20 concurrent uncached requests, so even mid-tier providers handle the load — until they don't.

Is TTFB or error rate more important?

Error rate, without question. A slow page eventually loads. A 502 error means the visitor sees nothing — no content, no products, no checkout. Google also treats 5xx errors more severely than slow TTFB in crawl quality assessments. When evaluating these results, look at the error rate column first. Any provider at 0% errors under 500 concurrent users has real headroom. Then compare TTFB among the zero-error providers to find the fastest. The top four providers all achieved 0% errors. Among them, Hostinger had the best TTFB.

Would a higher-tier plan change these rankings?

It would improve absolute numbers, but the relative rankings stay mostly the same. I tested entry-level plans because that is what most people buy. Doubling vCPU count roughly doubles req/s and pushes the breaking point higher. But the underlying storage hardware is the same across tiers within a provider — Contabo's disk I/O does not get faster on the $13 plan. Hetzner at $9/mo would still outperform Contabo at $13/mo. The hardware quality gap does not close just because you spend more within the same provider.

Why did some providers have high error rates while others had zero?

The errors happen when PHP-FPM runs out of workers and the connection queue fills up. Each WordPress request occupies a PHP-FPM worker while the CPU processes PHP and MariaDB handles queries. Faster hardware means each worker finishes sooner and becomes available for the next request. Slower hardware keeps workers occupied longer, the queue backs up, and eventually Nginx has no worker to hand the request to — so it returns 502. More RAM helps only if the bottleneck is buffer pool size. In most cases at this price tier, CPU speed and disk I/O determine whether workers finish fast enough to prevent queuing.

How does managed WordPress hosting compare to these VPS results?

Managed hosts like Kinsta ($35/mo) and WP Engine ($25/mo) deliver good performance because they run pre-optimized stacks with server-level caching, CDN, and tuned PHP-FPM configs. But our top three VPS providers at $4.59-$6.49/mo match or exceed managed hosting TTFB on uncached pages. The trade-off: managed hosts handle updates, security patching, and backups. If you can set up Nginx + PHP-FPM yourself or use a panel like RunCloud or Ploi, VPS gives you 3-5x more performance per dollar with full root access.

Can I reproduce this test on my own VPS?

Yes. Install k6 on a separate machine (not the server you are testing). Set up the same stack: Ubuntu 24.04, Nginx 1.24, PHP 8.3 FPM with pm.max_children = 20, MariaDB 11.x with innodb_buffer_pool_size = 256M, Redis object cache, OPcache enabled, no page cache. Import a WordPress + WooCommerce site with at least 100 products. Run: k6 run --vus 500 --duration 60s targeting /shop/. Your absolute numbers will vary based on network distance between the test machine and the server, but relative performance between providers should match our findings closely.

Pick a WordPress VPS That Won't Buckle

Based on 15-provider testing at 500 concurrent users — these three delivered 0% errors with the fastest TTFB:

Hostinger — 138ms TTFB → Hetzner — Best Value → Vultr — Best US Coverage →

Related tests: CPU Benchmark · Disk I/O Comparison · Network Speed Test · Best VPS for WordPress · Best VPS for eCommerce

AC
Alex Chen — Senior Systems Engineer

Alex deployed identical WordPress sites on 15 VPS providers and ran load tests from dedicated bare metal. Total spend: $340 across 15 providers. 7+ years testing VPS performance across 50+ providers. Learn more about our testing methodology →