It seems like only yesterday, WordPress was but an oddball little blogging script. The question I would have asked myself in 2005 was “Where should I host my Drupal site?”. Not that Drupal isn’t still a force to be reckoned with, but WP is the 800lb gorilla.
WP has become an app unto itself. Not just for blogging, it’s an entire CMS, and with the thousands upon thousands of plugins and themes that extend it in ever more interesting ways, it can take on almost any form imaginable. A blog is just the beginning, want a complete LMS solution? How about a job board or classified ad directory? With a few clicks, you can have a Craigslist or AirBNB competitor up and running in minutes.
I’m not going to cover wordpress.com and I’m going to assume you have a domain name for your site. We’re assuming this is an install that expects to see some traffic and not just a quickie blog for kicks. Here’s the thing, if you can afford $29/mo, there’s pretty much only one option I would recommend a this point, and you can skip to the end if you just want the best option.
I’ve outlined some of the other popular choices here, because in some circumstances, you may have technical or cost limitations that will make them a better fit for the short term, but seriously, if you just want the best pick, go with WPengine.
Ah, the good old shared hosting plan – the cheapest, simplest, and often easiest option. The real question is whether or not it’s any good and worth the headaches. Shared hosting means that you’re sharing server space with lots of other people – lots of website accounts on a single machine, all sharing the same processor, ram, and storage space. The upside is that it’s really cheap, you almost always get cPanel access, and support of the hardware is taken care of for you (no worrying about software or security updates).
The downside is that because the resources are shared, a particularly hungry account can suck away processing time and RAM from your site, and if it brings the server down temporarily, your site goes down with it. If yours is the offending site, most providers will give you a warning, either by shutting off your site to keep others up, or by billing you more once you exceed a soft cap.
Several years back, the family law practice site I help manage was being hosted on a custom CMS built in Active Server Pages. I worked on getting the entire thing migrated to WordPress (although, as mentioned earlier, I was leaning toward Drupal back then. Glad I didn’t do that). We had a few blogs for other projects on a run of the mill BlueHost account and we decided “what the hell, we’ll just put the site on there”.
And you know what? It actually worked… for a while. This was back in early 2009, so our traffic was much lower – we were averaging about 35k sessions and 200k page views per month, and this was before most people were hugely concerned with page speed, server response, caching, etc.
To be honest, I really didn’t know much about hosting at all. I figured that if it worked, we were golden. After a few months, however, the cracks started to show. The site would go down fairly often – never for huge amounts of time, but the load our account was putting on the shared server was causing problems. The support staff never seemed that great about letting us know what the particular issue was, and never told us we needed to find a better solution. I feel sorry for the other folks whose sites were on our machine.
By the time we had cracked the 40k session/month mark a few months later, the situation was dire. The site was going down several times per day.
It’s tempting to poo-poo the use of of shared hosting if you know how to administrate a server or have a more robust solution that you’re paying for anyway, but if you need something easy that can handle a little traffic at $5/mo – it’s hard to beat.
Virtual Private Server (VPS)
A VPS is usually the next step after graduating from the training wheels of a shared hosting plan. Looking at it simply, a VPS is basically a virtual machine on a bigger server. If you’ve ever used something like Parallels or VirtualBox to run a different operating system on your desktop without actually “installing” it, you have an idea of how this works. A big server with lots of resources has several of these virtual machines running, similar to how shared hosting works, except that you have a dedicated portion of RAM, storage, and processing power available to you. Other accounts can’t take your resources and if something crashes, it’s limited to the virtual machine where it lives, it won’t bring anything else down.
The way to go on these is “managed”, which means you pay a little extra, but things like software and security updates and support are included. You can usually buy licenses for cPanel and WHM for these as well. WHM is essentially the big brother of cPanel – you can create cPanel accounts like a reseller and have more fine-grain control over the server operations. You will have SSH access as well, which basically means you have command line control of the virtual machine as if it was your own computer. You can do and install whatever you want (which can be a good or a bad thing).
This opens up options for special server software, caching software, and other advanced options. It’s also a benefit if you need to run things other than WordPress on your server. Frankly, I would advise against this unless absolutely necessary because of legacy issues. From experience, installing other software like forums, helpdesks, etc. is better left to dedicated machines or hosted solutions that you can just point a subdomain to.
When we outgrew the shared hosting we were on, we moved to a VPS from a very well know hosting company. Things went fine for 8-10 months or so, but again, as traffic grew, we started to encounter performance issues and downtime. It didn’t help that we were larding up our install with all kinds of extra junk built into our theme (calculators for things like alimony, child support, etc).
We were able to solve this for a while by just purchasing more and more resources. We would go to the dashboard, bump up our RAM and processor power and things would be better for a little while, but the upgrades became more and more frequent with even small jumps in traffic, and support was unable to give us any clear answers on what parts of the site were causing problems. Keep in mind, we were running a few things on this server – the main site, now in the neighborhood of 60k+ sessions per month, the forum, which was popular in its own right, and a few stand alone apps we had developed – a calendar and a property divider.
It all came to a head one weekend when I was in Mexico City. The site went down late Friday night as part of some expected server upgrades. Not a good thing, but the weekends were usually slow, so if it was back by Monday, things wouldn’t be catastrophic. We had no word from the host by Saturday afternoon and I started to panic. I reached out to support several times and was told everything would be ok shortly.
They acknowledged that there was a problem with the upgrades, but had no timeframe for when the site would be back online.
This continued for a day, and by Sunday afternoon, I was sweating. They acknowledged that there was a problem with the upgrades, but had no timeframe for when the site would be back online. And worst of all, they were doing nothing to accommodate for this down time. It wouldn’t have been hard for them to simply duplicate our account to another machine and let us update the IP address in our DNS records, but they made no such effort.
Realizing that if the site was down on Monday, our biggest traffic day, would quite literally cost us tens of thousands of dollars in lost revenue, I stayed up all night migrating to a different VPS provider. Again, this one was fine for nearly a year, but we slowly crept back into the game of having to bump up the RAM and processing power at a rate exponential to the traffic growth.
Managed is definitely what I recommend, but it isn’t the only option. Places like DigitalOcean will let you spin up a VPS and put whatever the hell you want on it for a little as $5/mo. They have a great API as well if you need to do server creation and operations procedurally. Keep in mind that you get no support for what you’re putting on there – you need to manage it yourself, and there’s no fancy cPanel or WHM interface to help you – you’re going to be logging in via SSH and installing packages on the command line. If that’s scary, it’s probably not the option for you. They do offer pre-built virtual machines with popular software packages though, here’s their tutorial on getting started with a turnkey WordPress server.
Don’t bother. At this point, there’s not much reason to host your WordPress install on a dedicated server. Given the cost, the maintenance, the headaches, it’s just not worth it. If you’re going to spend that kind of money, you should just skip down to the final section and my number 1 recommendation.
Dedicated and Managed WP service
WPengine is what we finally moved the site to, and it’s been trouble free since then. We don’t have huge chunks of random and unexplained downtime, we don’t have to worry about the cache configuration and CDN setup, we can create a development copy of the site on the fly, security is taken care of, turning on SSL is trivial, automatic backups are managed, and the support (the few times you need it) is great. There are a few players in this space, the biggest two being WPengine and Synthesis. We went with WP engine because at the time of our move, Synthesis was not supporting non-genesis themes. They do now, but they’re also more expensive.
This is kind of a hybrid setup where the host manages the details of where and how your site is hosted based on the size and requirements. The nice thing is, you don’t have to worry about it – you just pick the plan that works for your traffic and go. The details are handled for you so that you get the same great speed and convenience at whatever price point you choose. And because they do nothing but host WordPress, the support is a lot more focused and your hands are tied (in a good way) from installing a bunch of other crap on the same server as your WordPress setup.
Do you get cPanel? No. Can you install phpBB, or a weird outdated helpdesk script you found on SourceForge, or OwnCloud, or any other crazy stuff? No. And as much as I love to tinker, this restriction is really a good thing. You have the flexibility to modify your theme and plugins as you would normally, but there isn’t any other junk on the system to cause issues that are tough to track down. Finally, peace and quiet.
And it’s not just for small sites – they scale like a mofo. I have some small client sites on the personal plan, and the main law firm site is under their clustered option managed by a reseller. This is why I say that a dedicated server isn’t worth it anymore – no matter how big or small your site, you get the same ease of use and care-free operation.