Quick answer: WooCommerce needs more than a brochure site: 4 GB+ RAM and NVMe storage, a Redis object cache, page caching with cart/checkout/account pages excluded, real system cron instead of WP-cron, and HTTPS everywhere. Get those five right and a modest VPS runs a serious store.

Overview

A store is a logged-in, write-heavy application: carts mutate sessions, checkouts write orders, stock updates invalidate caches. That’s why generic “make WordPress fast” advice (cache everything) breaks WooCommerce when applied blindly — dynamic pages must stay dynamic while everything else stays cached.

Before you start

  • A plan sized for commerce: see choosing a VPS — NVMe VPS or Power VPS recommended.
  • The stack tuned: PHP-FPM and MariaDB guides applied.
  • SSL working (guide) — non-negotiable for checkout.

Step-by-step guide

  1. Cache with exclusions: enable page caching but exclude /cart, /checkout, /my-account and anything with the woocommerce_cart_hash/session cookies — LiteSpeed Cache and major plugins ship WooCommerce presets; verify by adding a product to the cart from two browsers.
  2. Object cache: Redis — product lookups, sessions and options hammer the DB on every dynamic request.
  3. Real cron: WP-cron fires on page views — terrible for stores (missed scheduled sales, stuck webhooks at night). Disable and schedule:
    # wp-config.php
    define('DISABLE_WP_CRON', true);
    # system crontab (every minute)
    * * * * * sudo -u www-data wp cron event run --due-now --path=/var/www/shop.example.com >/dev/null 2>&1
  4. Sessions & scaling note: WooCommerce stores sessions in the database by default — fine on one VPS; just keep MariaDB healthy and watch the wp_woocommerce_sessions table size.
  5. Transactional email: order mail must arrive — use SMTP to a mail service rather than PHP mail() from the VPS.
  6. Load-test before campaigns: simulate checkout bursts on staging; watch FPM saturation and slow queries, then size up if needed.

Common issues

  • Customers see each other’s carts: cart pages got cached — fix exclusions immediately.
  • Checkout slow while browsing is fast: uncached by design — that’s where Redis + PHP/DB tuning show up.
  • Stock/emails lag overnight: WP-cron with no visitors — the system-cron setup above fixes it.

When to contact support

Planning a launch or migration of an existing store? Open a ticket — the team can advise on sizing, and free migration covers WooCommerce sites including order data (see also migrating multiple sites).

Frequently asked questions

How big a VPS does a WooCommerce store need?

Start at 4 vCPU / 8 GB RAM on NVMe for a store with steady traffic; carts and checkout bypass page caching, so CPU, RAM and disk latency matter far more than for a content site.

Why must cart and checkout pages be excluded from caching?

They are personal and change per visitor — serving a cached copy shows one customer another's cart or breaks checkout. Cache plugins with WooCommerce presets exclude them automatically.

Why replace WP-cron with system cron on a store?

WP-cron only runs when someone visits; at quiet hours scheduled sales, stock syncs and follow-up emails silently wait. A real cron entry runs them every minute regardless of traffic.

Related articles

Ready to get started? Order a WordPress VPS at Cloud2Y →

Was this answer helpful? 0 Users Found This Useful (0 Votes)