By Edy, Tech Expert & Blogger

Foreword
What happens when you move a WordPress website from a reliable shared hosting provider to a lean 2-core VPS (virtual private server) — and the server load instantly jumps to over 500%?
In this article, I’ll describe my personal experience migrating my website to a VPS. I’ll explain the technical issues I encountered, how I diagnosed them, and the optimizations I made to reduce the load to just 10%.
This isn’t a guide for everyone. If you want to run a site and avoid server headaches, managed hosting is still a great choice.
Moving to VPS hosting for WordPress was just the beginning — what followed was a real-world tuning adventure to make my site fast, stable, and reliable.
2. Why I Chose VPS Hosting for My WordPress Site
I’ve been with SiteGround for years, and I have no complaints. The performance was solid, support was responsive, and their Site Tools panel is well-designed. In fact, I wasn’t looking to fix a problem — I was looking for more control.

I enjoy solving technical challenges. For me, hosting a WordPress site on a VPS isn’t just about performance; it’s about freedom. I wanted to see exactly what was happening on the server, configure things my way, and fine-tune performance at a deeper level — from cron jobs and PHP-FPM to firewall rules and caching.
Another factor was timing. My SiteGround plan is up for renewal later this year, so this felt like a good opportunity to explore an alternative setup — not because I had to, but because I wanted to.
That said, I understand VPS hosting isn’t for everyone. Some site owners — including experienced sysadmins — choose managed hosting simply because it lets them focus on their business or content without worrying about attacks, patches, or server tweaks. And that’s a perfectly valid choice.
For me, though, running WordPress on a VPS was about learning and taking full ownership of how my site runs. It’s a different kind of satisfaction — and one that fits my mindset.
3. What’s VPS Hosting for WordPress?
VPS stands for Virtual Private Server, and it’s a hosting model that gives you your own virtual environment with dedicated resources — a step up from shared hosting, but more affordable than a dedicated server.
Behind the scenes, the hosting provider partitions one physical server into multiple virtual machines using virtualization technology. Each VPS acts like an isolated server, giving you more control, flexibility, and performance.
But there’s more than one way to run a VPS. When it comes to WordPress, there are two main types of VPS hosting:
Managed Hosting
Managed VPS hosting is ideal for users who want the benefits of a VPS but without the technical overhead.
- Comes with an intuitive dashboard (e.g., cPanel, custom panels)
- 24/7 technical support to assist with server and website issues
- Free site migrations are often included
- Automatic backups, software updates, and security patches
- Includes automatic installation of security patches and updates
- DDos protection
- Help with configuring SSL certificates, caching, or even WordPress themes
- Ideal for site owners who don’t want to deal with command-line tools or server configs
In short, managed VPS hosting offers performance and control — without requiring you to be a sysadmin.
Self-Managed VPS Hosting
Self-managed VPS (like the setup I use) gives you full control of the server. You decide what to install, how to configure it, and how to handle updates, security, and performance tuning.
- Requires technical knowledge or a willingness to learn
- No hand-holding — you’re responsible for everything from LEMP/LAMP setup to SSL and cron jobs
- More flexibility for advanced use cases or custom stacks
- Usually cheaper than managed VPS, but more time-intensive
This is the path I chose, using ServerAvatar to simplify some tasks without giving up control. Of course there are other panels available for web hosting solutions. Well known are RunCloud, Xcloud
ServerAvatar also offers some services available in managed hosting like security updates, backup, firewall protection, or SSL certificates to encrypt data and web traffic.
4. My VPS Hosting Setup
For this setup, I chose a virtual server (VPS) from HostHatch, a provider known for offering high-performance KVM-based virtual machines with NVMe storage. My current plan includes:
- 2 vCPU cores
- 4 GB RAM
- 80 GB NVMe SSD disk space
- dedicated ip address (IPv4 an IPv6)
- Ubuntu 24.04 LTS

The VPS is hosted in New York City, even though I’m based in Switzerland. I made that choice intentionally — most of my traffic comes from the U.S., so I prioritized fast response times for my audience over minimal latency for myself.
Here’s a snapshot of the HostHatch hosting plans available when I signed up. I chose a 2-core, 4GB RAM plan hosted in New York City to prioritize my U.S. audience. I appreciate that HostHatch offers sign up on a monthly basis. This is perfect to test their virtual private server in different regions. I find HostHatch has affordable prices compared to other hosting provider. They also offer storage capacity for more backups storing in a different location.

While some Trustpilot reviews mention slow or difficult support experiences with HostHatch, my personal experience has been very positive. I received fast responses and helpful support every time I needed assistance, both during setup and when I had tuning questions. As always with hosting providers, experiences can vary, but I can genuinely say I’m happy with their service so far
For server management, I use ServerAvatar, a lightweight and developer-friendly control panel. First, one installs the tech stack, with choices for Apache, Nginx, or Litespeed servers, and databases MySql or MariaDB, along with PHP multiple versions are available. Once installed, you can deploy applications, such as installing WordPress. It makes it easy to host multiple WordPress sites on the same server.

My software stack includes:
- Nginx as the web server
- PHP 8.2 with PHP-FPM (ondemand mode)
- Redis for object caching
- MySQL as the database
Thanks to ServerAvatar, the setup process was smooth. But once the site went live, things got interesting—my server load quickly spiked to over 500%, and I had to investigate to find out why.
5. How I Optimized My WordPress VPS Stack with Advanced Features
Right after launching the site on my new VPS, I noticed something unexpected: the server load shot up to over 500%. That’s not a typo. For a 2-core VPS, that kind of load meant the CPU was constantly maxed out, with processes queued up waiting for resources. The frontend worked — barely — but the WordPress admin panel was sluggish and at times unusable.
It didn’t take long to trace the problem. Here’s what I discovered and how I fixed it.
Blocking Brute Force Attacks with Cloudflare WAF
A major part of the load was caused by automated bots hammering the WordPress login page and xmlrpc.php. Even though I had Solid Security Pro active, those requests still reached the server and triggered PHP processes.
I added Cloudflare WAF rules using Managed Challenge for:
- /wp-login.php
- /xmlrpc.php
- My custom login slug /”your custom slug here”
This alone dropped the load significantly by filtering out malicious traffic before it reached the server.
As a next step, I also plan to restrict HTTP and HTTPS traffic at the server firewall level, allowing only Cloudflare IP ranges. This approach helps prevent attackers from bypassing Cloudflare by targeting the origin server directly — a best practice for anyone relying on Cloudflare proxying.
Switching to Real Cron Jobs
Like many WordPress sites, mine had a backlog of scheduled cron tasks. These were being processed by WP-Cron on every page load, which isn’t efficient — especially with low traffic and caching.
I disabled WP-Cron (DISABLE_WP_CRON) and set up a real cron job on the server to run every 5 minutes:
/5 * * * * curl -s https://mydomain.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1
That helped prevent stacked PHP processes from running simultaneously.
Throttling Lasso Plugin Resource Usage
The Lasso plugin was firing off frequent cron jobs for syncing affiliate links, scanning content, and pulling data. I installed WP Crontrol and quickly saw over a dozen Lasso-scheduled tasks running every minute.
Fortunately, Lasso has a built-in CPU limiter in its settings. I reduced the CPU usage cap from 80% to 50%, and that made a noticeable difference in server load without losing functionality.
Tuning PHP-FPM for My Server Size
By default, PHP-FPM was configured to allow up to 20 child processes, which was too much for a 2-core server. I adjusted the www.conf file to use the ondemand process manager and limited it to 12 children:
pm = ondemand pm.max_children = 12 pm.process_idle_timeout = 30s pm.max_requests = 500
This kept memory usage in check and ensured PHP processes weren’t fighting for CPU time.
Cleaning Up Legacy Config from SiteGround
One leftover from the SiteGround setup was a line in wp-config.php that tried to include a missing security file:
@include_once('/var/lib/sec/wp-settings-pre.php');
Since that file didn’t exist on the VPS, it was generating a PHP warning on every request. I removed the line completely.
Each of these steps helped reduce server load bit by bit. Combined, they brought it down from an unsustainable 515% to under 150%. Eventually, it settled at around 10% average load, even during cron-heavy periods.
6. Results: Performance Before and After
Once all the optimizations were in place, the improvement was dramatic. When I first launched the site on the VPS, the 15-minute load average was hovering above 500%. For a 2-core server, that meant the CPU was completely overwhelmed.
After putting the changes into effect — including Cloudflare WAF rules, real cron jobs, PHP-FPM tuning, and plugin throttling — the load began to drop steadily.
Within a few hours, it had fallen below 200%. Then below 100%. Eventually, it stabilized at around 10% average load, even with all scheduled cron jobs active and plugins like Lasso and Solid Security Pro running normally.
The backend of WordPress also became noticeably faster. Previously sluggish or timing out, the dashboard now loads smoothly. PageSpeed scores improved as well, thanks to reduced server response times.
Here’s what that looked like on the 24-hour load chart:

This was more than a win in numbers — it proved that a properly tuned VPS, even with just 2 cores, can handle a dynamic WordPress site without needing to jump straight into higher plans or managed hosting.
7. Ongoing Monitoring and Stability Over Time
After the initial optimization, the immediate performance gains were very encouraging. However, a VPS setup isn’t a “set it and forget it” solution. Ongoing monitoring became crucial to ensure long-term stability.
Over the following days, I kept a close eye on my server metrics using ServerAvatar and my website monitoring service. Server load, memory usage, and query performance all showed noticeable improvements compared to the very first day. Most of the time, server load stayed well below 100%, and the average response time of my website dropped significantly.
Still, some minor issues popped up, especially during backup times or maintenance windows. Occasionally, I received alert emails from ServerAvatar indicating a temporary spike in load, but importantly, my website monitoring rarely reported actual downtime. This showed me that while the server was sometimes busy, it remained operational and responsive to users.

One point worth mentioning: I noticed that Lasso, one of my core WordPress plugins, seemed to contribute to some CPU spikes. To mitigate that, I reduced Lasso’s CPU limit from 50% first to 40%, and later to 25% as an experiment. It’s too early to draw final conclusions, but so far, limiting its CPU usage appears to help stabilize the server even further without sacrificing backend speed or functionality.
This process reminded me that VPS hosting is a living environment. Small adjustments based on real-world behavior are part of managing your own server. It’s not about achieving perfection instantly — it’s about learning, tuning, and improving over time.
If you’re considering VPS hosting yourself, it’s important to know what you’re signing up for. Let’s take a closer look at whether VPS hosting is the right fit for you.
8. VPS Hosting vs Managed Hosting: Which One Fits Your WordPress Website?
VPS hosting isn’t a magic solution — it’s a shift in responsibility.
If you enjoy technical problem-solving, and you like knowing exactly how your server behaves, then running WordPress on a VPS can be both rewarding and cost-effective. You get control over everything: the stack, the optimal performance tuning, the firewall rules, and how resources are used. And you can tailor it all to your specific needs.
But that also means you’re responsible when things go wrong. There’s no support team watching for failed cron jobs, blocked ports, or brute-force attacks — it’s up to you. For many people, that’s not worth the stress. In fact, some experienced users on Reddit told me they went back to shared or managed hosting simply because they wanted peace of mind. And that’s completely valid.
Shared hosting providers like SiteGround offer a lot behind the scenes: automatic patching, proactive security rules, smart caching, and support that responds when something breaks. These are things you might not see, but they make a real difference — especially if your time is better spent on content or design.
Personally, I took on this VPS project for the challenge and the opportunity to learn. But I also know I have the option to return to shared hosting if I want to. There’s no single “correct” path — it really comes down to your goals, your skills, and how hands-on you want to be.
9. Final Thoughts on VPS Hosting for WordPress Sites
This VPS journey has been both challenging and rewarding. I moved from a reliable shared hosting environment to a lean 2-core VPS, where I had to troubleshoot server load, optimize processes, and fine-tune the setup for WordPress.
Today, my website runs smoothly, with low load and fast response times. However, tuning a VPS isn’t a one-time task — it’s a living process. I’m still monitoring performance closely, and if needed, I won’t hesitate to upgrade to 4 cores and 8GB RAM to future-proof the setup.
For anyone considering VPS hosting for WordPress, it’s important to know that control comes with responsibility. It’s not necessarily “better” than managed hosting — it’s simply a different path. The best choice is the one that matches your goals, your time, and how hands-on you want to be.
You can also read some of the discussion on Reddit where I shared parts of this journey and connected with others who made similar choices.
10. Ongoing Observations and Future Actions
(Last updated: April 27, 2025)
While the server is running much smoother now, I’m continuing to monitor its performance closely. A few patterns have emerged during the first weeks:
Max Children Warnings:
Despite PHP-FPM tuning, I still occasionally see warnings about reaching the max_children limit in the logs. It’s less frequent, but it indicates that the server sometimes gets saturated during traffic spikes.

Short Server Load Peaks:
There are still brief moments where the server load rises above 100%, but it usually settles down quickly without noticeable website downtime.
Successful Website Stability:
Website uptime is now consistently above 99.8%, and average response times have dropped significantly compared to the early days after migration.
Because of these observations, I’m keeping a few actions in mind:
- I might further adjust the PHP-FPM settings if max_children warnings continue.
- If server load peaks become more frequent, I would consider upgrading the VPS to 4 CPU cores and 8GB RAM.
- I’m also thinking about introducing additional caching layers if necessary.
I plan to continue monitoring the VPS and will update this section if significant changes occur.
I would love to get some feedback from you. Was this article helpful? Please share your opinion with me in the comment section below. Or, if you prefer a more personal touch, feel free to email me directly at info@edywerder.ch. Your thoughts and insights are always appreciated. Additionally, you can connect with me on Reddit at Navigatetech.
Before you go …
Before you go, since you’ve just explored the essentials of VPS hosting for WordPress, I highly recommend checking out how to keep your site safe and resilient.
Hosting is just the first step—security is just as critical for maintaining your WordPress site’s performance and credibility. Take a moment to read about WordPress security concerns to ensure you’re fully prepared to protect your investment. It’s a practical next step to strengthen your hosting decisions.
Related Articles
Tech Expert & Blogger
Hi, I’m Edy. With over 30 years of experience in the IT industry, I’ve tackled numerous tech challenges.
As a solopreneur, I write articles to fill the gaps I notice in my work and online.
My mission? To provide clear, step-by-step tech guidance and improve the information you find on the web
Enjoying the content?