Best VPS specs for WordPress: how much CPU, RAM and disk you need
The best VPS specs for WordPress for 1, 10 or 100 sites: how to size CPU, RAM and disk from your traffic, with real measurements and the mistakes to avoid.

Key takeaways
- A small WordPress site runs well on 1 vCPU, 2 GB RAM and NVMe storage; 2 GB is a sensible production minimum.
- Without page cache, CPU runs out first; with page cache, RAM becomes the limit.
- In our measurements, a 4 GB, 4 vCPU VPS hosted 100 WordPress sites without page cache and 250 with it.
- WooCommerce and membership sites need more CPU and RAM because most of their pages bypass the page cache.
The best VPS specs for WordPress depend on three things: how many sites you host, how much traffic cannot be served from cache, and what kind of sites they are (blog, brochure site or WooCommerce shop). As a starting point: one small site needs 1 vCPU, 2 GB RAM and 20 GB of NVMe; an agency with a few dozen sites needs 2 to 4 vCPU and 4 GB RAM; a busy WooCommerce shop needs about twice that. Turning on page cache is the cheapest way to fit more sites on any VPS.
This article explains where those numbers come from, how to estimate your own, what we measured on real servers, the factors beyond CPU and RAM (disk, location, kernel), and the mistakes that make a well-specced VPS slow anyway.
What does WordPress need to run?
The official WordPress requirements recommend PHP 8.3 or newer, MySQL 8.0+ or MariaDB 10.11+, and HTTPS support. The software itself is light; the cost is in how each page view is produced:
- nginx receives the request.
- PHP loads WordPress, the theme and every plugin.
- Dozens to hundreds of queries go to the database.
- The HTML is built from scratch and returned.
Steps 2 and 3 cost CPU. Every running PHP process holds tens of megabytes of RAM. The database needs RAM for its buffer so it is not reading the disk all the time. Those are the three things you are really choosing when you pick a VPS plan.
Page cache changes the whole calculation
With page cache, the web server keeps the finished HTML and hands it straight to the next visitor; PHP and the database do not run. A cached page costs a tiny fraction of a generated one.
In practice:
- Without page cache: CPU runs out first. Your vCPU count decides how many page views per second you can serve.
- With page cache: CPU has room to spare and RAM becomes the limit, because each site still needs its own PHP pool and database for uncacheable requests.
Not every visit can be cached. Logged-in users, carts, checkout, admin pages, search pages and URLs with query strings always go to PHP. So when you size a server, count uncacheable traffic, not total traffic.
Real measurements: how many sites fit on a 4 GB VPS?
We loaded real WordPress installations onto ordinary VPS servers until they broke, with 30 other applications (Node.js, Python, PHP) running at every step. The full method is in How many WordPress sites can a 4 GB VPS host?
| Server | Without page cache | With page cache |
|---|---|---|
| Ubuntu 24.04, 4 GB RAM, 4 vCPU | 100 WordPress sites | 250 WordPress sites |
| Debian 12, 3 GB RAM | 50 WordPress sites | 200 WordPress sites |
The test traffic mimicked real hosting: 10% busy sites, 30% light sites and 60% nearly idle ones. If many of your customers run campaigns at the same time, or use heavy plugins, your number will be lower. Treat it as a well-documented reference point, not a promise.
Recommended VPS specs for WordPress
These are starting points for sites with mainstream themes and plugins and page cache turned on. Measure, then adjust.
| Use case | vCPU | RAM | NVMe disk | Notes |
|---|---|---|---|---|
| One blog or brochure site | 1 | 2 GB | 20–40 GB | 1 GB works but is tight once mail and backups run |
| 2–10 business sites | 2 | 2–4 GB | 40–80 GB | Page cache on every site |
| Agency, 10–50 sites | 2–4 | 4 GB | 80–160 GB | Watch RAM as the site count grows |
| Multi-customer hosting, 50–200 sites | 4 | 4–8 GB | 160 GB or more | Needs per-account isolation and limits |
| One mid-size WooCommerce shop | 2–4 | 4 GB | 40–80 GB | Add Redis object cache |
| Large WooCommerce or membership site | 4–8 | 8 GB or more | Depends on data | Give it its own server |
Rules that go with the table:
- 2 GB of RAM is a sensible production minimum. 1 GB is fine for testing, but a mail server, one backup run or a bot wave and you are short.
- Size disk for backups too. Backups kept on the same server take space; if you keep 7 copies, plan for several times your site data. Better still, send backups to off-site S3 storage.
- Always choose NVMe or SSD. WordPress databases do a lot of random reads and writes; spinning disks slow everything down even when the CPU is idle.
How to estimate your own RAM and CPU
Estimating RAM
Add up three parts:
- System and services: the OS, nginx, MariaDB's buffer, a mail server if you run one, the control panel. On a small VPS this is already about 1 GB.
- PHP: concurrent PHP processes × memory per process (typically tens of MB for WordPress, more with heavy page builders or WooCommerce).
- Headroom: 20 to 30% for traffic spikes, backups and updates.
Example: a shop that needs 10 PHP processes in parallel at about 80 MB each needs roughly 800 MB for PHP, plus 1 GB for the system and headroom. 4 GB is comfortable; 2 GB is tight.
Estimating CPU
Measure how long an uncached page takes to build (say 300 ms of CPU), then do the arithmetic: one vCPU builds about 3 such pages per second. With 2 vCPUs at 300 ms per page, you can serve around 6 uncached page views a second before visitors start queuing. Cached views barely count.
Measure a page's response time:
curl -s -o /dev/null -w "TTFB: %{time_starttransfer}s\n" https://example.com/
Run it a few times and compare a cached page (usually very fast) with an uncached one, for example by adding ?nocache=1 to the URL.
Check what your VPS is using
nproc # vCPU count
free -h # RAM and swap
df -h / # disk space
uptime # 1, 5 and 15 minute load averages
If the load average is regularly above your vCPU count, you are short of CPU. If swap keeps growing and sites slow down over time, you are short of RAM.
Factors beyond CPU and RAM
- Data centre location. Put the server close to your visitors. Latency from another continent adds to every request that is not served by a CDN.
- vCPU quality. "4 vCPU" from one provider is not the same as from another; some plans share CPU aggressively. Read the terms and benchmark.
- Kernel. Linux 6.8 or newer can compress idle memory in RAM (zswap), fitting more sites in the same memory. Ubuntu 24.04 and Debian 13 ship with one.
- ARM64. Many providers offer well-priced ARM servers; WordPress runs normally on ARM64.
- Bandwidth. Image- and video-heavy sites need generous bandwidth or a CDN.
How to fit more WordPress sites on one VPS
In ZoPanel, these mechanisms are built in and sized to the machine:
- nginx page cache, turned on in the site's PHP & config tab. Logged-in users, carts and checkout are never cached, and the cache is purged when content changes.
- PHP that sleeps when idle. A site's PHP pool stops after the idle time (30 minutes by default) and starts again in a few hundred milliseconds on the next visit. Compiled code stays on disk, so the first page is still fast.
- A memory plan. The panel keeps a reserve for MariaDB, mail, nginx and itself, so a customer traffic spike cannot take down shared services. MariaDB's buffer pool is set to 20% of RAM.
- Memory compression (zswap) on kernel 6.8+, with customer memory never written to disk.
- Redis object cache for WooCommerce and wp-admin, on the same tab.
- Scheduled tasks run by a server timer instead of visitor-driven wp-cron.
The Tuning page lists WordPress sites without page cache, warns when the total PHP workers you allow do not fit in RAM, and suggests swap or a newer kernel. See PHP performance and System requirements.
Common mistakes when choosing a WordPress VPS
- Buying RAM instead of turning on cache. Going from 4 GB to 8 GB costs money every month; page cache is free and usually far more effective for sites with few logged-in users.
- Benchmarking a cached home page. A fast home page tells you nothing about search or cart pages.
- Selling right up to the limit. Do not fill a server to the exact number it just survived. Backups, updates and bots all need room.
- Putting a big shop next to dozens of small sites. One busy WooCommerce store can use the whole server; without per-account limits, every other site slows down with it.
- Ignoring wp-cron. On quiet sites scheduled tasks run late; on busy sites each page view can trigger an extra PHP request.
Conclusion
There is no single correct spec for every WordPress site. Start with 2 GB of RAM and NVMe for one site and 4 GB for a few dozen, turn on page cache from day one, measure your uncacheable traffic, and upgrade when the numbers say so, not when it feels slow.
To measure on your own VPS, ZoPanel's Free plan runs 3 hosting accounts, 10 websites and 10 databases, with page cache and the WordPress tools included, enough to load-test before you settle on a plan. See pricing and our guide to installing WordPress on a VPS.
Frequently asked questions
Can a 1 GB VPS run WordPress?
Yes, one small site, especially with page cache. But 1 GB is tight once you add a mail server, backups or a bot scan, so choose 2 GB or more for production. If you must use 1 GB, add swap and skip services you do not need.
How many WordPress sites can a 2 GB VPS host?
It depends on traffic and plugins. For low-traffic brochure sites with page cache, a few dozen is realistic; for WooCommerce or membership sites it may be only a handful. For reference, in our tests a 3 GB VPS hosted 50 sites without cache and 200 with cache, alongside 30 other apps.
Is CPU or RAM more important for WordPress?
If most visitors are anonymous and page cache is on, prioritise RAM, since each site needs its own PHP pool and database. If much of your traffic is uncacheable (WooCommerce, forums, membership sites), CPU matters more, because every one of those views is built by PHP.
What VPS specs does WooCommerce need?
A mid-size shop should start at 2 to 4 vCPU and 4 GB RAM with Redis object cache, because carts and checkout always bypass page cache. Large shops, or shops running big sales, should have their own server so they do not affect other sites.
When should I upgrade my VPS?
When the load average regularly exceeds your vCPU count, when swap keeps growing and sites slow down, or when uncached response times rise noticeably. Check page cache and heavy plugins first, because they are usually the cheapest thing to fix.
Install ZoPanel free
One command on a fresh Ubuntu or Debian server. Up and running in minutes.
Install in 5 minutesKeep reading

How to replace WP-Cron with a real cron job (and why you should)
Replace WP-Cron with real cron to stop missed scheduled posts and late WooCommerce emails. Step-by-step crontab, WP-CLI and systemd timer setups that work.

How to speed up WordPress: 10 steps in order of impact
Speed up WordPress in the order that matters - measure, page cache, PHP 8.3, Redis, database, images, plugins and cron - with test commands and the ZoPanel way.

WooCommerce hosting requirements: specs, setup and tuning
WooCommerce hosting requirements from the official docs, why a store is heavier than a blog, how to size a server, and how to set up cache, cron and backups.