Tuesday, June 11, 2013

Web Host Shootout: Finding the Best (and Cheapest) Web Host

I just spent about $1,000 testing 7 different host providers. Thankfully, (almost) all of it is getting refunded. I'm in the process of completely redoing this website and decided I needed more power to make it how I really want it. Blogger doesn't provide the features I want, so I started looking for a proper hosting service so I could host my own website. I tested several hosts in an effort to find the best "bang for the buck."

How I tested

First impressions are everything. I didn't do any kind of extended testing. I looked for something that was awesome from the start. I didn't want to learn to love my host after several months of use. I wanted to love them today.

With this in mind, I focused on server ping time, server response time, download bitrate, max file upload size in a WordPress blog, and how well things "just worked." I didn't want to spend more than $10/month (trying to stick close to $5/month), which makes things tricky because in this world, you typically get what you pay for (if you pay very little, you get very little).

I analyzed things from different homes/offices (and different ISP companies) across a period of two days. I tested using curl from the command line to check raw download speeds (redirected to /dev/null) and Chrome's developer tools (for network response times and other network protocol information), as well as Google's Page Speed Insights. I tried to optimize all pages for the highest Page Speed index score (enabling compression and caching on files), as well as overall server response time and download bitrate (from a clean cache). I tested each host repeatedly, averaging results (after discarding outliers). All tests were run with a WordPress blog serving a single post entry (same theme, same blog entry, same settings). In reality, this test was dead simple and doesn't give an in-depth analysis, but it works for showing what kind of basic features your host provides. After all, all the other features are built on top of these basic features.

Without any more words, I'll show the results!


  • Price: $3.45/mo for 2 years
  • Max WordPress upload size (default): 32MB
  • Down: ~4765kBps
  • Ping: ~53ms
  • Server response time: 475-675ms (averaged about 600ms)
  • Other thoughts: Overall, decent. Response times could be better, but download speeds were great. I use them for my domain purchases, so I figured I'd try them for web hosting too.


  • Price: $3.95/mo for 3 years
  • Max WordPress upload size (default): 24MB
  • Down: ~800kBps
  • Ping: ~50ms
  • Server response time: 275-600ms (averaged about 300ms)
  • Other thoughts: Pretty good response times... very slow download speeds. Awesome customer service (who also tried to talk me out of canceling, but that wasn't too bad).


  • Price: $5.95/mo for 2 years
  • Max WordPress upload size (default): 32MB
  • Down: ~4469kBps
  • Ping: unpingable
  • Server response time: 400-800ms (averaged about 600ms)
  • Other thoughts: From the start I was hesitant. The checkout process was buggy and kept restarting things and making me re-enter things. The install scripts sucked. When the install script asked if I wanted to host the WordPress site on example.com or www.example.com (i.e. with or without the "www" subdomain), I selected without the "www" subdomain. After the install script ran, I found it appended "empty" to my domain name because I had left the subdomain empty (literally, it had set up all my hosting options and now thought my domain was emptyexample.com instead of example.com). I had to redo it with the "www" subdomain set. Canceling the service went fine, but I was still charged $9.95 for the domain (which I expected) and $11.88 for WHOIS privacy (which I think is overpriced for such a simple service). Overall, I wasn't impressed.


  • Price: $4.95/mo for 3 years
  • Max WordPress upload size (default): 10MB
  • Down: ~1637kBps
  • Ping: ~38ms
  • Server response time: 550ms-850ms (averaged about 700ms)
  • Other thoughts: Refunding went very well. Full refund for everything! I was expecting to have to pay for the domain name and not be able to refund it.


  • Price: $8.95/mo for 3 years
  • Max WordPress upload size (default): 7MB
  • Down: ~2051kBps
  • Ping: ~85ms
  • Server response time: 660-880ms (average: 700ms)
  • Other thoughts: No cPanel (uses their own panel). Incredibly disappointing max file size (was able to increase it to 20MB following these instructions (could not get it higher than 20MB without doing more fiddling that I didn't care to do)). I'm not in love with cPanel, but having a custom panel means now I have to relearn everything (unlike other webhosts, where you can get up and running in no time since the panel is familiar). Confirmation emails were flagged as spam and I never got a receipt email. No webchat for support. I was disappointed after having higher expectations (from all the good things I've heard about them).


  • Price: $3.96/mo for 3 years
  • Max WordPress upload size (default): N/A
  • Down: N/A
  • Ping: N/A
  • Server response time: N/A
  • Other thoughts: 12 hours after registering, I got an email saying I needed to call them to verify the account. At this point, I was done with them. The "just works" factor is very important to me. Also, I hate using my phone.


  • Price: $5/mo (no long term commitment) (also can be less, as it's really billed hourly and you can control the hours)
  • Max WordPress upload size (default): 2MB
  • Down: ~3893kBps
  • Ping: ~47ms
  • Server response time: 150-200ms (averaged 160ms)
  • Other thoughts: I was easily able to increase the WordPress file size limit to 50MB. Root access! VPS! They don't have "unlimited" disk space or bandwidth like the other hosts do (20GB disk space (on an SSD!) and 1TB bandwidth), but then again, my website is so small that these "limitations" are, realistically, as good as unlimited to me. I'll never use all 20GB of disk space or a full terabyte of bandwidth.


I almost never found DigitalOcean. I wasn't looking at VPS hosting because it's usually a lot more than shared hosting. But wow, am I glad I googled "vps hosting." I almost tried Virpus and DirectSpace, but they don't offer SSDs and I highly doubt they can beat an average 160ms server response time. If you want something for less than $5/month, I'd look at them.

DigitalOcean completely annihilates the competition, in my book. They absolutely nail the "just works" factor (their UI is the most gorgeous of the other hosts, and it conveys a professional "just works" attitude). Spinning up a new VPS with my selected Linux flavor took less than a minute (and was incredibly easy). Rebooting Ubuntu took less than 5 seconds. Server response times are amazing (only about 60ms longer than Google's home page response time, in my testing, and Google has an army of servers). Download speeds are great (usually hits >5MBps after ramping up). The OS took about 1GB, leaving 19GB of free space to use. Root access is awesome to have, and now I'm not sure I can ever have a server without it (not that I need truly need it; the geek in me loves it and the ability to tweak with things exactly how I want them). No long term commitment means I can always switch to another host if I decide (without having years left on a prepaid service). I do wish they had HDD mass storage available in combination with the SSD, but I'm perfectly happy with them. Seriously, after refreshing the page with a clean cache, my page loaded instantly. I thought it loaded everything from cache it loaded so fast (and had to double check that it didn't).

As of this moment, I have canceled all of my other hosting accounts and am now moving everything to DigitalOcean. They have totally won my heart.


  1. Nice! There are many crummy hosts out there. I get to see a lot of their servers. Stay away from Network Solutions, for example...even their custom control panel times out half the time.

    I will say that for Bluehost, they do give you SSH access, which is nice, and you can set the php.ini to much higher (100-200 MB) for upload, at which point it's usually the browser that times out. With others that give you access to the php.ini, generally a similar story. If they don't give you easy access to your files, huge red flag, and I'd say SSH is nearly essential, with root being an added bonus. Very neat about DigitalOcean...hadn't heard of it before.

    Oh, and if you use WP, you may be interested in a tool I have, though it's more helpful for broken WP installs.

    1. Yeah, several of them give you SSH access, but it's not root (using the shared hosting, which is what I tested on all of these). It's nice to hear editing php.ini was easy with Bluehost. I almost tried but their server response time was so long that I knew I likely wasn't going to go with them.

      Also, I've set up server on DigitalOcean from scratch and have customized it (I did a LEMP stack and I'm testing/tweaking APC), so now my server response times are down to 100ms, which is on par with Google's home page. I'm really loving it.

      What's the WP tool you have? I've already got mine installed, but I may tweak it more in a little bit.

    2. I wrote this between work lulls, so it's not the cleanest code, but it does the job. It's more useful when you're dealing with broken/moved WP, though, not so much for a stable active blog. If nothing else, an exercise in bash:


  2. Personally I find the criteria you choose for judging a hoster quite strange, thus the results you got are not really representative overall.

    Ping and response time are heavily bound to the location of the server and the client. Without really defining from where your target audience is and running a traceroute against the server, those two values don't matter that much, unless you just want a good connection for yourself, but not for the readers.
    And in the end the question still stands, why would you need a responds time of 100ms?

    Finding a hoster "that just works" isn't really the best strategy. Every interface has their limitations and one will have to dig a bit deeper. So for me it would be more important to judge by how much access you get. Also separating hosts in different categories (Shared, VPS, Dedicated) would be required imho, especially for hosters (e.g. DreamHost), that offer all three versions.

    Judging for max upload size really doesn't say anything about a hoster, since this is never really a limitation of the hoster itself, but of the software running on it. Thus if you get access to the configuration files, you can change it, to fit your needs. And by not spending any time investigating how much the hoster can really handle makes the given number invaluable. Being Dreamhost user I can tell you for sure, that you can simple use your own php.ini file and change the values to what you need them to be - this should work for every hoster that lets you change the php.ini file.

    Overall I like that you've tested some and I'll definitely look at a few, since I'm not that satisfied anymore with Dreamhost. :)

    1. I agree that some of my criteria and testing methods weren't exactly orthodox, and I didn't do testing over a long period of time, but I was ultimately optimizing for three categories: server response time, download bit rate, and service quality/user experience.

      I wasn't optimizing for ping time (like you say, it's pretty variable), but I didn't want anything with a horrible ping time. None of these hosts were in the "horrible" range. And I figure my target audience (who lives along the west coast and mid-west in the US (that's where most software companies are based, it seems)) is close enough to my geographic location that they'd experience similar ping times.

      Anyway, the reason for measuring ping times was to also look into server response times, as a server's response time tells you how long, after you make a request, it takes for it to receive, process, and respond. A long response time (especially on a simple PHP page, where it does have to do some running of PHP code to generate the content, but it's simple enough PHP that it shouldn't take a lot of processing) basically tells you that your server is operating with few resources and is a slow machine. I don't *need* a response time of 100ms, but I love the fact that I can have it.

      I could have separated this by shared, VPS, and dedicated, but I wasn't too interested in doing a comparison based on that. I was really looking for the best host under $5/mo (or very close to $5), and whether that was a shared, VPS, or dedicated instance, I didn't care. If I could get a dedicated instance for $5/mo you can sure bet I would've tested it, but that's just a dream. Most VPS hosts are $15/mo or more, which is why I wasn't looking at them initially until I came across DigitalOcean, which offered a VPS in my price range. I didn't test the two other VPS hosts I found that were also in my price range because I was already sold on DigitalOcean (the other ones don't run on SSDs, and since getting an SSD in my laptop, I'm heavily biased in favor of machines running on SSDs).

      The max upload size isn't a very good judgement criteria, you're right. That's changable with many hosts (I'll edit to make a good note about that). However, the less mucking around and tweaking I have to do, the more time I can spend focusing on other things (although to be honest, I've enjoyed customizing my new server waaaay more than I thought I would). This was, in essence, part of the "just works" factor. I personally think "just works" is a really important factor to include because it's ultimately a show of overall quality and customer care. When a company says they offer a service, I don't ask whether or not they can deliver that service, but how well they can. The "just works" factor helps show a well thought-out execution of a smart plan. If your product/service doesn't "just work," then it shows (to me, at least) that you either didn't think it out very well, or aren't very good at executing it.

    2. Heck, once you hit a VPS that has comparable speed and works well enough, you may as well throw any shared host out the window, since at that point you have full flexibility/configuration. I'm glad there are reasonable prices for VPS out there, and if I ever grow beyond self-hosted, I'll probably follow up on this with you...

    3. Thanks for the explanation, it makes more sense now. ;)


Note: Only a member of this blog may post a comment.