Man, this week has been difficult. We’ve had a few server issues with work clients, and I’ve been playing around with my own servers, and it’s just been a mess that I’m hoping will be in the past come next week. But I’ve learned some lessons, and I figure I might as well pass them on because people are apparently still buying hosting from really bad places.

What do I need? This is the most basic question you need to start asking yourself before you even hunt for hosts. Having some idea of your demands, both from a technical perspective and a logistical perspective can save you some pain in the future. Here are some really basic considerations:

Shared/VPS/Dedicated – What level of hosting you choose will depend on the types of service you intend to run and the affordability of storage space. Shared hosting is for small, single, low-traffic installations, like a single blog or a low-traffic forum. VPS hosting allows you to interact with the server configuration directly, to host more complex applications and more of them. Dedicated hosting gives you full control over what runs on your system, plus often includes dedicated storage that is many times what you’d get from the other options. But there are more things to consider.

Backup – Even if you don’t get this from the same company as your host, you should consider how you’re going to manage it. If you buy a dedicated box to get the 80GB drive, consider where you’re going to keep backups of those 80GB. If your host offers backup, all the better, but in many cases you’ll need to investigate whether that backup is on a separate box/location (useful) or on the same machine in a different drive (more often than not, useless). Don’t rely on assurances that RAID will save you - in my experience RAID is more the cause of problems than the solution.

Transfer – Be sure that the host meets your needs in terms of data transfer. One of the easiest ways to get charged extra every month is to order a plan that doesn’t cover the total amount of data you’re going to transfer. The best way to gauge your transfer is to look at your existing transfer usage. The next best way is to guess, but consider that if you’re primarily handling photos, videos, or podcast audio, transfer is going to be more of a concern than if you’re hosting only text. Also keep in mind that those transfer amounts can be reduced by using a content delivery system like Amazon S3 to store your heavy files, while keeping your site light.

Storage – Right along with transfer, get a general estimate of how much space you’re going to need for storage.

CPU – Some CMS engines need more juice, especially when they get bigger. If you’re using a shared host, there could be hundreds of other sites vying for the CPU’s attention. At best, you’ll get a fair slice of that CPU time and things will run at a moderate speed. At worst, your host will tell you you’re using an unfair amount of CPU time and shut you down. Be aware that CMS packages like Drupal can often be ill-configured to suck down tons more CPU time than your host would like to allot you.

Support – The oft-forgotten element. For work sites, we need phone support 24x7x365, because when one of our client’s site’s goes down as a result of a server problem, the only way to get it back online is via the host. If you’re doing more than running your own stuff, you’re going to want high availability of support staff, at least through a real-time ticket interaction system, but probably via some kind of contractual uptime and support guarantee.

What do I look for? This question is best answered by telling you what to look out for.

Overselling! – This is the biggest thing to look out for when selecting a host. If the host you’re shopping at offers 300GB of storage and a crazy multiple of that of transfer, it’s more than likely that they’re overselling. Basically what this means is that they take a server with 500GB of storage space on it, and fraction that out to 100 people on the assumption that you’ll never use more than 5GB. And those that use a little more just eat into the share that the others on that server aren’t using. If everyone on the server used their full allotment of space, the hosting company would go under trying to buy adequate storage to keep up. More likely, they’d just shut your site down citing an ambiguous violation of their terms of service. Happens all the time. Beware!

Live Chat Boxes – Your only recourse for support should not be via a web-based chat system. In most cases, the person at the other end is fielding incoming requests from 100 other disgruntled customers, and they have their terminal set to respond to all requests with the same pat response.

Software – Make sure that the server you get has the software you need and that the host both keeps it up to date and knows what they’re talking about. For example, if your host doesn’t offer PHP5, then they’re probably unaware that support for PHP4 has been discontinued (as of mid February). If they do offer PHP5, make sure that then know how to configure its options. Make sure that they have configured the correct drivers for PDO. Make sure that they’re running MySQL 5, not 3.x. Simple stuff to check, just call and ask. If they don’t know the answer immediately, run away.

Extraneous Junk – I see a lot of hosting advertised that offers free software or free AdWord ad units if you buy with them. Shouldn’t your host be concentrating on giving its clients the best experience and not on how to beef up its affiliate numbers? It’s ok if it’s offered as an added value after the sale, but avoid hosts that reel you in by offering those special deals up front.

Resellers – When I’m considering a host, I always to a tracert on their IP address to see what network they’re on. You’d be surprised how many “hosting companies” are really some guy renting a dedicated server from someone else and reselling the space. There’s nothing wrong with this per se, because they can offer added value if the server is otherwise unmanaged, but if something happens to the physical server, you might be waiting a while for his upstream support to respond.

Control Panels – Beware when choosing a control panel. Some panels lock you in to certain configurations of software. For example, updating PHP on a server that runs Plesk can be tricky and often ends in violence. CPanel servers often run old versions of Apache, and can’t support subversion hosting. Be aware that using a control panel may limit your ability to configure your server manually later, especially if you’re using a shared host, where your hosting company will be even less inclined to upgrade things when it affects all clients on the server.

Managed vs unmanaged – This really only comes into play when you are shopping for a VPS or dedicated box, but essentially if your server is managed - that is, if you’re paying for managed service - then you should have a hotline to someone who will do things like install upgrades, hard power reboot, and swap out bad memory. If you pay for managed hosting and they won’t install software for you, then you’re paying 10 times over what you’re actually receiving.

I can tell I’m missing things from this list, but hopefully I’ll come back and update it as I think of them. There are so many little questions you can ask that might be important.

It might be helpful to you to tell you what hosts I use. As far as shared hosting, I’ve come to the conclusion that the big guys are the love/hate of the hosting world. They work great up until they don’t. When they stop working great, it’s time to move up to a VPS. That said, I have hosting at both Site 5 and Dreamhost. I like Site 5 a little better because their admin is cleaner and their database servers don’t feel like their across town from the web server.

In terms of VPS hosting, I lean toward low-support unmanaged hosting, meaning I can’t really call anyone when something goes wrong. Nonetheless, I’ve had interactions with the support folks at both of my primary VPS sites via email and ticket systems, and they’re very responsive. Plus, there’s been very few reasons to even contact them for tech support, which is much better than other hosts I’ve been on who go down for no reason and then become mysteriously unavailable to contact. I use Slicehost and VPSLink for VPS hosting, and am very happy with both.

For dedicated hosting, when I was on it, I was very happy with ev1, who have now become part of The Planet. I can’t really vouch for them now since they’ve moved and it’s been a while, but I was really happy with both the service I received and the hardware in use. My server was unmanaged, so I was doing all of the software and OS configuration, while they took care of the infrastructure.

Have any good hosts or suggestions for finding them? Tell me why you like your host best. I’m always looking for the best place to host my sites. Hosting these days is such a commodity that there’s no reason to stick with a host if they’re not providing the service and features that you need.