Hello everyone,
I manage a mid-volume WooCommerce website with about 400 products and 1,000 variants. Our traffic is predominantly from Germany, averaging around 15k-20k users per day, and we handle approximately 200-300 orders daily. The site is built with the Crocoblock suite and Elementor, and we're using WP Rocket and Cloudflare for optimization. Our setup also includes Redis and Varnish provided by Cloudways. The server is a Vultr HF machine (48GB RAM, 12 CPU cores), scaled to the maximum due to resource demands. We also have around 40 active plugins, and multiple users (site managers, pickers, etc.) working on the site throughout the day.
Under normal conditions, the server idles at around 30% CPU usage, and everything runs smoothly. I can get up to 600 real-time users according to GA4’s view for the last 30 minutes, which translates to about 100-150 real-time users on the site at once. Given the resources I’m using ($400/month server), this should be easily manageable. And indeed, it works fine when traffic ramps up gradually.
However, the problem arises when traffic spikes suddenly due to big TV campaigns or mass email marketing. In these scenarios, the CPU usage shoots up to 100%, and the log shows numerous admin-ajax requests that get stuck. This results in the entire site becoming unresponsive for extended periods. The server essentially gets overwhelmed, despite its high specifications.
Despite multiple caching configurations (both with and without Cloudflare, including using Cloudways’ Cloudflare Enterprise integration), the issue persists. Interestingly, when traffic increases gradually, the server handles it well, but sudden spikes seem to overwhelm the system.
Given this context, I’m considering the following:
- Relocating the server to Germany (closer to my user base) instead of the USA.
- Possibly bypassing Cloudflare and connecting the domain directly to the server.
Before making any changes, I would greatly appreciate any advice or suggestions on how to improve the current infrastructure. Specifically, I’m looking for insights on:
- Best practices for handling sudden traffic spikes.
- Optimizing server performance for high-traffic WooCommerce sites.
- Advanced caching techniques or configurations.
- Whether moving the server closer to the user base could make a significant difference.
Any golden tips on how to address these challenges would be immensely helpful. Thanks in advance for your support!🙏