WordPress on a VPS, for when shared hosting stops keeping up.
First month $1, then the normal monthly price. One per customer.
WordPress on a VPS gets its own CPU, its own RAM and its own NVMe RAID10 disk, rather than a slice of some crowded shared box. Full root on Ubuntu 24.04 or Debian 13, in Amsterdam or New York, and from there the PHP version, the caching and the backups are your call. One thing to be clear about. This is unmanaged hosting. We run the hardware and the network, and you run the stack.
Transparent pricing
Plans and prices
| Plan | vCPU | Memory | NVMe | Traffic | Monthly | 1 year | |
|---|---|---|---|---|---|---|---|
| Standard | |||||||
| S-2Standard | 1vCPU | 2 GBMemory | 30 GBNVMe RAID10 | UnlimitedTraffic | $7.99/moFirst month $1 | $7.19/mo on 1 year | Start for $1 |
| S-4Standard | 2vCPU | 4 GBMemory | 60 GBNVMe RAID10 | UnlimitedTraffic | $13.99/moFirst month $1 | $12.59/mo on 1 year | Start for $1 |
| S-8Standard | 3vCPU | 8 GBMemory | 120 GBNVMe RAID10 | UnlimitedTraffic | $24.99/moFirst month $1 | $22.49/mo on 1 year | Start for $1 |
| S-16Standard | 4vCPU | 16 GBMemory | 240 GBNVMe RAID10 | UnlimitedTraffic | $44.99/moFirst month $1 | $40.49/mo on 1 year | Start for $1 |
| S-32Standard | 8vCPU | 32 GBMemory | 480 GBNVMe RAID10 | UnlimitedTraffic | $84.99/moFirst month $1 | $76.49/mo on 1 year | Start for $1 |
| S-64Standard | 16vCPU | 64 GBMemory | 720 GBNVMe RAID10 | UnlimitedTraffic | $159.99/moFirst month $1 | $143.99/mo on 1 year | Start for $1 |
| Dedicated CPU | |||||||
| D-4Dedicated | 1vCPU | 4 GBMemory | 45 GBNVMe RAID10 | UnlimitedTraffic | $37.00/moFirst month $1 | $31.45/mo on 1 year | Start for $1 |
| D-8Dedicated | 4vCPU | 8 GBMemory | 90 GBNVMe RAID10 | UnlimitedTraffic | $69.00/moFirst month $1 | $58.65/mo on 1 year | Start for $1 |
| D-16Dedicated | 4vCPU | 16 GBMemory | 160 GBNVMe RAID10 | UnlimitedTraffic | $118.00/moFirst month $1 | $100.30/mo on 1 year | Start for $1 |
| D-32Dedicated | 6vCPU | 32 GBMemory | 220 GBNVMe RAID10 | UnlimitedTraffic | $215.00/mo | $182.75/mo on 1 year | Deploy D-32 |
| D-64Dedicated | 10vCPU | 64 GBMemory | 400 GBNVMe RAID10 | UnlimitedTraffic | $377.00/mo | $320.45/mo on 1 year | Deploy D-64 |
| High Memory | |||||||
| H-64High Memory | 8vCPU | 64 GBMemory | 480 GBNVMe RAID10 | UnlimitedTraffic | $249.00/mo | $211.65/mo on 1 year | Deploy H-64 |
| H-128High Memory | 16vCPU | 128 GBMemory | 960 GBNVMe RAID10 | UnlimitedTraffic | $459.00/mo | $390.15/mo on 1 year | Deploy H-128 |
| H-192High Memory | 24vCPU | 192 GBMemory | 1.4 TBNVMe RAID10 | UnlimitedTraffic | $669.00/mo | $568.65/mo on 1 year | Deploy H-192 |
What changes when WordPress moves to its own server.
Shared hosting is fine, right up until the shop gets busy. Here are the four things a VPS fixes for you, and the one thing it doesn't.
The database stops being the bottleneck
WooCommerce beats on the database all day. Carts, sessions, order lookups, product filters, every one of them a small scattered read against wp_postmeta. On a VPS MariaDB gets its own RAM and its own NVMe, with no other customer's shop queued in front. Our published fio result is 122,959 random-read IOPS. Precisely the read those queries make.
You pick the PHP version and the limits
PHP 8.3 with OPcache turned on. Then memory_limit, the upload size and the PHP-FPM worker count are yours to set, as high as the plan allows. A product import needs a longer max_execution_time? Edit the file. On shared hosting that would have been a support ticket.
Caching becomes real
Redis as the persistent object cache. Nginx FastCGI page caching layered over it, and a CDN out front if you want one. Shared hosting typically hands you one of those three and calls it done. On a VPS you run all three, and you tune each one to your own site rather than to somebody's average.
What does not change: you maintain it
Unmanaged hosting, so let's be plain about where the line sits. We keep the host, the network and the hypervisor healthy. Ubuntu updates, PHP updates, WordPress and plugin updates, backups and security hardening, all of that lands on your side. Would you rather not script the backups? They're an add-on at 20-60% of the plan price.
Which plan for this WordPress site.
Start with RAM. PHP-FPM workers, MariaDB and Redis each want their slice of it, and none of them negotiate. Only after that do you check if the media library actually fits on the disk.
| Site | Plan | Why |
|---|---|---|
| A blog or brochure site with a few hundred visitors a day | S-2 | Nginx, PHP-FPM and MariaDB fit in 1 vCPU and 2 GB. Keep an eye on the 30 GB disk. |
| WooCommerce doing a few thousand visitors a day | S-4 | With 2 vCPU and 4 GB, MariaDB gets a proper buffer pool and Redis still has room. |
| WooCommerce plus Redis, heavier traffic, a big catalog | S-8 | 3 vCPU and 8 GB, with 120 GB for media, search indexes and cache. |
| Several sites sharing one server, or one large multisite | S-16 | 16 GB and 240 GB NVMe. And give every site its own PHP-FPM pool. |
A blog with a modest media library sits comfortably on S-2 (1 vCPU, 2 GB, 30 GB NVMe) at €6.99 a month ($7.99). WooCommerce with a few thousand visitors a day is a different animal, and we put it on S-4 (2 vCPU, 4 GB, 60 GB) at €11.99 a month ($13.99). Then Redis arrives, and a search plugin, and a campaign peak, and all three want memory at the same moment. That is the S-8 (3 vCPU, 8 GB, 120 GB) at €21.99 a month ($24.99). Agencies running several sites on one box go to S-16 (4 vCPU, 16 GB, 240 GB) at €39.99 a month ($44.99). Not because the sites are big. Because there are many of them.
Disk is the limit people hit first. A photography site, or a shop with thousands of product images, eats 30 GB fast, and 60 GB doesn't last much longer once backups and logs are counted in. Two ways out. Push media off to a CDN or an object store, or bolt on +100 GB NVMe for €11.00 a month. Guessed wrong on RAM or CPU instead? Resize in place, data and IP stay where they are, one short reboot and done.
Setting it up on Ubuntu 24.04.
Step 1: Order, log in, install the stack
Pick Ubuntu 24.04 when you order. Payment goes through and the server is online 30-60 seconds later. Everything WordPress needs is already in the distribution repositories.
Step 2: Create the database and fetch WordPress with WP-CLI
WP-CLI spares you an enormous amount of clicking around in wp-admin. You'll need it for the migration anyway, so put it on now rather than later. And swap in your own password before you paste this.
Step 3: Nginx server block and TLS
One server block is enough. Save it as /etc/nginx/sites-available/example.com, symlink it into sites-enabled, then let certbot add the HTTPS part.
Point the domain's A and AAAA records at the VPS first, then run certbot, not the other way round. The server comes with an IPv4 and a /64 IPv6 block, so both records have a target. Not a fan of certbot? Caddy does the same job from a two-line Caddyfile and renews on its own.
Step 4: Finish the install and switch on Redis
In the PHP-FPM pool set pm to dynamic and pm.max_children to 12. Twelve children at roughly 40 MB each stays inside 4 GB with MariaDB and Redis next to it. In php.ini raise memory_limit to 256M and upload_max_filesize to 64M, and leave the rest alone.
And take wp-cron off the page views. A real cron entry runs the due events every five minutes, whether anyone visits or not.
Then cap pm.max_children in the PHP-FPM pool to what the RAM can hold. Check the per-worker size with ps -o rss,cmd -C php-fpm8.3 under load, and leave room for MariaDB and Redis.
Step 5: Migrate from shared hosting
There are two routes. The plugin route comes first. Install All-in-One WP Migration on the old site, export, install the same plugin on the new site, import. Works fine, right up to the free upload limit. Past that limit you go manual, which means exporting the database and copying wp-content across yourself. Nobody enjoys it. There is nothing glamorous about rsync at midnight. But it works, every time.
Lower the DNS TTL the day before you switch. Then test the new server through a hosts-file entry, click your way through the shop, place a test order, and only once all of that works do you touch the records. Keep the old shared account alive for another week. Just in case.
Step 6: Or run the whole stack in Docker
Would you rather run containers? The official WordPress image sitting behind Caddy is the shortest path we know. Which also leaves you with a reproducible stack, something you can rebuild on any VPS in minutes.
The Caddyfile is one block: example.com { reverse_proxy wordpress:80 }. Then docker compose up -d. Downloads and documentation are at wordpress.org.
Pitfalls we see, and how to avoid them.
Nobody is patching the server
Unmanaged means unmanaged. Enable unattended-upgrades for the OS, keep WordPress core and plugins current, and remove plugins you do not use. Most compromised WordPress installs run an old plugin, not an old kernel.
No backups until the day you need them
A nightly mysqldump plus a copy of wp-content to somewhere that is not this server. Restic to any SFTP host works. Or take our backup add-on at 20-60% of the plan price. Test a restore once.
Sending order mail from the VPS
Mail sent straight off a VPS ends up in spam. Or it bounces, which is worse, because spam at least lands somewhere. The IP has no reputation behind it and no warm-up, and reverse DNS fixes half the story at best. This is a ticket we see a lot, usually a week after launch when the first customer asks where their order confirmation went. So put a transactional mail service in front through an SMTP plugin, set SPF, DKIM and DMARC, and keep the VPS out of the mail path completely.
Too many PHP workers for the RAM
When memory runs out, MariaDB is usually the first thing the kernel kills, and the site goes down at peak. Cap pm.max_children, watch free -m under load, and move to S-8 when Redis and MariaDB fight for memory.
Questions about running WordPress on a VPS.
Is this managed WordPress hosting?
No. It's an unmanaged VPS with full root. Our side covers the hardware, the network and the hypervisor. Everything sitting above that, meaning the operating system, PHP, the database and WordPress itself, you install and you maintain. Backups and monitoring can be added on if you want them. But nobody from our side logs in to sort out a broken plugin. That part is yours.
Which plan do I need for WooCommerce?
S-4, which means 2 vCPU and 4 GB, carries a shop doing a few thousand visitors a day without complaining. Bolt on Redis, or a search plugin, or a campaign that triples the traffic, and it's time for S-8 with 8 GB, because RAM is where all of that goes. Can't decide? Start on S-4. Resizing in place later is a reboot, not a migration.
Can I install a control panel?
Yes. You have root, so any Linux control panel with support for Ubuntu 24.04 or Debian 13 installs like it would anywhere else. One caveat, though. A panel eats RAM and disk of its own, so plan on S-4 at least.
How do I move my site from shared hosting?
Two ways. The All-in-One WP Migration plugin handles the whole thing, export on the old site, import on the new one. Or by hand. Dump the database, rsync wp-content across, import, then run wp search-replace for the domain so no old URLs are left hiding in the content. Either way, lower the DNS TTL a day ahead. And keep the old account for a week, because something always turns up a few days in.
Why is mail from my VPS ending up in spam?
A fresh IP has no sending reputation at all. And receiving mail servers already look sideways at anything from hosting ranges before your first message has even left the box, so you start from behind. Route it through a transactional mail service with an SMTP plugin instead, and set SPF, DKIM and DMARC on the domain. Yes, that costs a little each month. A lost order costs more, and you never find out about most of them.
Is Windows or IIS available for WordPress?
No. Linux only on our side. Ubuntu, Debian, AlmaLinux, Rocky Linux, CentOS Stream, Oracle Linux, Fedora, openSUSE, or bring your own ISO. And WordPress runs best on Linux with Nginx or Caddy and PHP-FPM anyway, so you're not missing much.
Deploy a measured VPS
From $6.79/mo on a 2-year term. KVM on AMD EPYC, NVMe RAID10, ECC memory. No setup fee, cancel monthly.
30-day performance guarantee. Not satisfied? Full refund, no admin fee. How it works