WooCommerce runs on the same software as any WordPress site, but its resource needs are driven by uncached traffic: shoppers browsing with items in their carts, checking out, and logging in to accounts. Those requests run PHP and hit the database every time. This guide helps you size a VPS for your store.
What actually uses resources
| Factor | Why it matters |
|---|---|
| Concurrent shoppers with carts | Each cart, checkout and account page is uncached PHP |
| PHP memory per worker | WooCommerce plus plugins often uses 80–150 MB per PHP-FPM worker |
| Catalogue size | More products → bigger database, heavier search and filters |
| Orders per day | Order writes, emails, stock updates, webhooks, background jobs |
| Plugins | Subscriptions, bookings, multi-currency and page builders add overhead |
| Admin activity | Reports and bulk edits are heavy requests |
Anonymous visitors on cached product pages are cheap. Shoppers in the funnel aren’t.
Sizing guide
| Store | Typical profile | Suggested VPS |
|---|---|---|
| New / small | < 500 products, a few orders a day | 2 vCPU, 4 GB RAM |
| Growing | 500–5,000 products, dozens of orders a day | 4 vCPU, 8 GB RAM |
| Busy | 5,000+ products, hundreds of orders a day, campaigns | 6–8 vCPU, 16 GB RAM |
| Large / peak sales | Big catalogue, heavy plugins, many concurrent buyers | 8+ vCPU, 16–32 GB RAM, or separate DB server |
These are starting points. Measure, and adjust. See how much RAM a VPS needs and vCPU explained.
PHP workers: the key calculation
Each simultaneous uncached request needs one PHP-FPM worker. Rough maths:
RAM available for PHP ≈ total RAM − MySQL − Redis − OS (≈1 GB)
pm.max_children ≈ RAM available for PHP ÷ average PHP process size
Example: 8 GB VPS, 2 GB for MySQL, 256 MB for Redis, 1 GB for the OS → about 4.7 GB for PHP. At 120 MB per worker, that’s about 38 workers. Check real process sizes:
ps -ylC php-fpm8.3 --sort:rss | awk '{sum+=$8; n++} END {print sum/n/1024 " MB avg"}'
CPU limits how fast those workers finish. With few cores, more workers just wait for CPU time. See PHP-FPM tuning.
Storage
- SSD storage matters for database performance. All VPS.DO plans use SSD storage.
- Plan for product images (often the largest part), backups kept locally before off-site copies, and log files.
- 40–80 GB covers most small and medium stores. Large image libraries may need more, or offloading to object storage. See storage VPS.
Recommended software stack
- Nginx + PHP-FPM (PHP 8.2/8.3), with OPcache. See WordPress on Ubuntu with Nginx.
- MariaDB or MySQL 8, with a tuned
innodb_buffer_pool_size. See MySQL performance tuning. - Redis object cache. See Redis object cache.
- Page cache with correct cart and checkout exclusions.
- HTTPS (required for payments), and a real cron job for scheduled tasks.
Performance tuning details: speed up WooCommerce.
Location and network
- Host close to most of your customers. Checkout latency directly affects conversion. See choosing a VPS location.
- For customers spread across regions, add a CDN for static assets. See WordPress CDN setup.
- Transactional emails (order confirmations) need reliable delivery. Use an SMTP service, or a properly configured mail setup. See WordPress email and SMTP.
Security and compliance basics
- Keep WordPress, WooCommerce and plugins updated, and test on staging. See WordPress staging site.
- Use hosted payment fields or redirects from your payment gateway, so card data never touches your server. That keeps PCI DSS scope small.
- Daily off-site backups, including the database (orders change constantly). See WordPress backup without a plugin.
When to upgrade
- PHP-FPM log:
server reached pm.max_childrenduring normal traffic. - Checkout or cart TTFB climbing above about 1 second.
- Load average consistently above your vCPU count. See uptime and load average.
- Swap in active use, or out-of-memory kills.
Upgrade before big campaigns (Black Friday, product launches). On VPS.DO, plan upgrades are handled through a support ticket. See WordPress VPS hosting.
Quick reference
| Store size | Starting VPS |
|---|---|
| Small | 2 vCPU / 4 GB |
| Growing | 4 vCPU / 8 GB |
| Busy | 6–8 vCPU / 16 GB |
| Key metric | PHP workers × memory per worker |
Related: WooCommerce performance and WordPress VPS performance tuning.