The scenario: A new client with a tiny budget
Last spring, a friend asked me to take over her cooking blog. She had solid content, but the site kept crashing. Her budget? Tight. She was paying $2.99/month for a “cheap VPS” from a lesser-known provider.
She thought VPS meant “no shared hosting headaches.” She was half right.
The problem: The cheap VPS fell apart under real traffic
The blog had about 2,000 visitors a day. Not huge. But the server choked every time she posted a new recipe. Images took 20 seconds to load. The WooCommerce cart (she sold e-books) timed out regularly.
She blamed WordPress. I blamed the server.
After one crash, I logged in to investigate.
What went wrong: Three specific failures
1. Not all cheap VPS are equal
Her plan gave her 1 vCPU, 512 MB RAM, and 20 GB SSD. For a single low-traffic site? Should be fine. But the provider oversold their nodes. The “dedicated” vCPU was throttled the moment another customer on the same node ran a cron job.
2. MySQL ran out of memory
WordPress + WooCommerce + a few plugins = easy 300 MB RAM usage at idle. Add a visitor spike, and MySQL got killed by the OOM (out of memory) killer. This caused the white screen of death.
3. No swap, no caching
The server had no swap partition. When RAM filled up, the system just froze. Also, no object cache (like Redis or Memcached) to reduce database queries.
The fix: How we stabilized the server in 45 minutes
She couldn’t afford a $20/month VPS. So I optimized what she had.
Step 1: Enabled swap space
Created a 1 GB swap file. Not ideal, but it prevented immediate crashes.
sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
Step 2: Installed a lightweight object cache
Used Redis with the Redis Object Cache plugin for WordPress. This cut database queries by 80%.
Step 3: Switched PHP-FPM to ondemand mode
Default was “dynamic,” which kept too many PHP workers alive. Ondemand mode reduced memory usage by 40%.
Step 4: Added a simple CDN
Cloudflare’s free plan. Cached static assets (images, CSS, JS). This cut server load by half.
Step 5: Turned off unused services
Postfix, MySQL slow query log, and a monitoring agent were eating RAM. Disabled them.
Result: The site handled 5,000 visitors the next day without a crash. Page load time went from 18 seconds to 2.2 seconds.
Lessons learned: What to look for in a low-cost VPS
- RAM matters more than CPU for WordPress. 1 GB minimum. 512 MB is a gamble.
- Check the provider’s overselling ratio. Read reviews about “noisy neighbors.”
- Swap is not optional. If the provider doesn’t allow swap, walk away.
- A cheap VPS can work, but only if you tune it. Out-of-box performance is usually terrible.
- Free CDN is a cheat code. It fixes slow TTFB and reduces server load instantly.
Practical checklist for choosing a cheap VPS
- [ ] Minimum 1 GB RAM (or 2 GB if using WooCommerce)
- [ ] Full root access (you need it for swap and caching)
- [ ] SSD storage (no HDD)
- [ ] Provider with good reviews for uptime (search “provider name + overselling”)
- [ ] Ability to install Redis or Memcached
- [ ] Option to add swap space
- [ ] At least one backup snapshot per week
- [ ] Control panel? Not needed if you’re comfortable with CLI. But for non-technical users, get one with a panel or use a managed cheap VPS.
FAQ
Q: Is a cheap VPS good for a beginner?
A: Only if you are comfortable with the command line. Unmanaged VPS requires manual setup of security, backups, and caching. Beginners often do better with a managed WordPress host.
Q: What is the minimum RAM for WordPress on a cheap VPS?
A: 1 GB is the realistic minimum for a basic blog with caching. 512 MB will work only if you aggressively optimize and use a lightweight theme.
Q: Can I run WooCommerce on a cheap VPS?
A: Yes, but expect to install Redis and use a CDN. Also, limit the number of active plugins. A cheap VPS with WooCommerce can handle 500–1,000 daily visitors without issues.
Q: What is the biggest risk of a cheap VPS?
A: Overselling. The provider assigns more customers per node than the hardware can handle. This leads to slow performance and random downtime.





