Most web hosting these days comes with a control panel like cPanel. These control panels generally let you administer your hosting account in an easy manner and will work for basic websites. However, there is a limit on their capabilities and once you start getting as little as a dozen visitors using your site at once, you could run into performance issues.
Of course, some web hosting companies are better than others, and there is also different levels of plan that they can probably offer you. But sometimes simply upgrading to a more powerful plan will not fix the issues you are seeing - your hosting company might be overselling their servers, other people sharing your server might be taking up all the resources, or dozens of other situations could mean that you aren't getting access to the server resources (like CPU and RAM) that your website needs to show its content to visitors.
There is a solution to all this however. You need a small VPS (Virtual Private Server) somewhere like Linode, or a cloud server from UpCloud (both of which I use personally), and also a server admin toolset called WordOps.
Why is what I'm suggesting better than shared hosting from HostGator, Bluehost or any of the hundreds of other operators out there? Read on...
Table of Contents
1. Dedicated Resources
When you sign up with hosting companies like HostGator, you are most likely being put onto a shared hosting plan. A shared hosting plan is one where the host company has a server and then creates multiple hosting accounts it, sometimes hundreds (you get one of those accounts when you sign up with them).
While your database and files are protected thanks to your login details on the server (none of the other accounts hosted on the server can see or access them), you are competing for server resources with those other accounts.
For example, there might be 100 different accounts on the server and the maximum CPU and RAM that you can utilize at any one time is 5%. So what if 50 account are using all their available CPU? 50 x 5% = 250% - this means that more than the available amount of CPU is going to be required by all the accounts to function, and everything will start to slow down.
The hosting companies bank on this scenario not occurring and everything going relatively smoothly as a result, but that's often not the case and you will inevitably suffer slow downs.
With a VPS, on the other hand, while a server is generally split into several different hosting accounts, you are guaranteed the resources that you pay for. This is where the virtual and the private part comes in. Using special software (generally, KVM, for those of you that are interested) the server can be split into a number of different virtual servers - each one having its own dedicated resources and able to be turned on and off independently of the others. It's really like splitting the physical server into a number of smaller ones, only virtually thanks to the software.
You have probably also heard of cloud hosting, this is considered by some on a level above VPS as instead of a single physical server being split into multiple virtual servers, multiple physical servers are aggregated together and then they are split into virtual servers. This way, if one of the physical machines had some sort of hardware malfunction, your resources don't necessarily be affected, whereas if you were on a VPS on the same server, everyone's hosting would fail.
Cloud hosting also means that, if you site gets extremely big, you can scale upwards too, so you might have a virtual server/account that has the effective resources of a dozen servers.
Nginx (pronounced "Engine X") is web server software that is basically a whole faster than Apache (another web server) out of the gate. The technical reasons why are beyond the scope of this article, but trust me, it's faster.
The issue, however, is that shared hosting is generally run on Apache only. This is because cPanel, the makers of the software that powers most shared hosting accounts (and makes it easy to administer for both customers and the web hosting company) only runs on Apache.
While they are working on making cPanel run on Nginx, it's not clear how long it will take, nor what specific features of Nginx will be available for you to use and take advantage of.
So essentially, if you use shared hosting, then you're stuck with Apache, which is slower and inferior to Nginx.
3. No Paid Control Panel
As I briefly mentioned above, shared hosting generally runs using cPanel software, which is paid software. This means that part of that cost is passed down to you and included in your hosting plan. If you use a VPS with Wordops to run your WordPress site, like I am going to show you, you won't need any sort of paid software.
In the web hosting world, caching basically means storing a copy something in a place that can be accessed very quickly and without much work, so that it can be retrieved and shown to your website visitors over and over again with little effort, instead of having to locate and access it each time. Instead of searching through 10 fields, for example, for the piece of content that your website needs to show to your user, with caching, your server will know exactly where it is, and be able to show it in an instant.
Caching is very simple with Nginx and is actually built in (it's called FastCGI caching). Plus there's many more options for caching in Nginx that you can utilise easily thanks to Wordops.
Apache has its own caching option too, called mod_cache, however it's known to be glitchy and also isn't always compatible with other Apache components (in short, it's inferior to FastCGI, or other Nginx caching options) for our purposes.
So, caching is good, Nginx has some excellent caching options, and Wordops let's us implement them very easily. Boxes ticked!
Another reason why I like to run VPS or cloud hosting over shared hosting with cPanel is control. When the hundreds of shared hosting accounts are created on the one server under a shared hosting scenario, the hosting company needs to put in place lots of restrictions to try and ensure that your website is not affected by what all the other accounts on the server might be doing (i.e. if they are consuming a lot of resources, or interfering with your own files).
While oftentimes you will still experience slowdowns on shared hosting, thanks to other accounts, this also means that you might be limited as to what other software can be installed on your server, subject to overly restrictive security policies, or not be able to install the particular WordPress plugins that you want.
With your own VPS or cloud hosting none of this is an issue. You get your own "virtual server" and are free to do with it what you want. You will be given "root access" which is basically the highest tier administration account on any Linux operating system (Linux is the most common operating systems for hosting servers, like Windows is the most common operating system for home desktops and laptops). You have free reign to do whatever you want with your server and there is no pre-existing restrictions put in place. You won't get root access with a shared hosting account.
I hope this guide explains why you should only use shared hosting for very small websites and why, ideally, you should get a VPN or cloud hosting account and use Wordops to manage it... and why it only need cost you as little at $5 per month. Hopefully you're excited to now get your own VPS or cloud account and setup your server so if you want, follow this link covering exactly how to do that - along with securing it, installing Wordops and other software, and then actually making your WordPress website.
It's all very easy I promise, and totally worth it!