When it comes to hosting a website, determining the right amount of resources can be a challenging task, especially for new website owners. In this comprehensive guide, we will walk you through the necessary settings and steps to successfully accommodate 250 concurrent users on your WordPress website without breaking the bank. We hope this will give you an idea of how to make a rough estimate what resources your website will need given its traffic.
Why We Chose WordPress?
In this article, we used WordPress to create our test website. WordPress stands out as a powerful content management system (CMS) and is globally recognized as the most popular choice for building websites. Many individuals and businesses start their online journeys with WordPress due to its user-friendly interface and extensive plugin ecosystem. However, selecting the appropriate hosting plan can initially seem daunting.
To address this concern, we conducted a practical test to identify the best hosting plan for a WordPress blog anticipating a peak traffic of 250 concurrent users. Our aim was to determine the resources required to handle such a level of concurrency effectively.
For affordability and accessibility, we opted for a simple single-server setup. We installed WordPress and utilized the Astra theme, along with the Starter Template plugin, which offers a range of free templates for swift website creation. While we intentionally excluded more complex concepts like load balancing and high availability, we were still able to measure the necessary resources for this level of concurrency.
Our software stack consisted of the following components, which can be further improved upon:
1. Nginx Web Server: Nginx is renowned for its resilience and efficiency, making it an ideal choice for hosting our WordPress website.
2. PHP 8.1: We utilized the latest version of PHP, which powers the dynamic functionality of WordPress, ensuring optimal performance.
Analyzing the Results
To obtain accurate data, we employed the Apache Benchmark (AB)tool to run tests on our website from an external server. Testing from the same VPS could introduce bias and inaccuracies since users typically access the site from various locations, hence the external server usage.
Below is a summary of the data we obtained from AB.
Concurrency Level: 250 Time taken for tests: 91.989 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 186305000 bytes HTML transferred: 185957000 bytes Requests per second: 10.87 [#/sec] (mean) Time per request: 22997.278 [ms] (mean) Time per request: 91.989 [ms] (mean, across all concurrent requests) Transfer rate: 1977.83 [Kbytes/sec] received
With the set up we had, the average time per request (Time per request) was 91ms, which is fast enough. Remember, our aim is to ensure the website visitors get a good experience trying to load our website, so the load time is crucial. However, you should also note the median time is around 23seconds. Meaning, at peak, most users will be able to load the website after 23 seconds. Typically, most users need a website to load in under 3 seconds before their patience runs out!
The full results from AB are as below
So, what server specs did we use? We used a VPS with the following specs 4core and 8GB RAM. Therefore, this is the minimum requirements for a website that needs to serve 250 concurrent users.
What can be done to reduce the median response time? Of course with a website loading at 23 seconds, your visitors will soon be looking for alternatives. By implementing the suggestions below, you can further optimize your setup and improve performance:
1. Install a caching plugin such as W3 Total Cache: This plugin enhances your website’s speed and performance by caching content and optimizing delivery to users.
2. Use Cloudflare: Integrating Cloudflare’s CDN (Content Delivery Network) and security features can significantly improve page load times and protect your site against various threats.
3. Location: Host the website as close as possible to your audience. This improves latency and hence reduces the total time it will required to service a client’s request.
In conclusion, armed with the knowledge and insights gained from this article, you now have the tools to confidently host your WordPress website for 250 concurrent users. You can also estimate how much is needed for higher or lower needs. As your website grows, adapt your server requirements to ensure a seamless user experience.