Determine what type of hosting you need to help narrow the list of hosting providers. Types include: Free (not recommended for anything but hobby sites), Shared, Virtual Private Server (VPS), Dedicated (Managed and Unmanaged), Co-located, Reseller, Cloud.
Once you have narrowed this list, what is your budget? This will further narrow the list based on cost.
Next consideration is what operating system: Windows, UNIX/Linux or Mac OS?
What amount of bandwidth do you need?
How much disk space do you need?
What type of databases do you need to be supported?
Any control panel preference?
Then, what features do you need:
Scripting support for CGI, Perl, PHP, etc.
Email options?
Server Side Includes?
Front Page Server Extensions
FTP Support
Web Analytics
SSL
Shopping cart?
What type of technical services do you need?
Do you need daily or weekly backups?
Check out the hosting company information:
Reputation – search forums to see how others rate them
Phone support (a must)
Money Back Guarantee
How long have they been in operation?
Do they list an address on their website?
Do they have their own datacenter?
Do they have redundant power and internet backbones in their datacenter?
Do they have backup power generators for their datacenter?
What is their uptime? For many web hosting companies, you can check their uptime if they are being monitored by Netcraft. Go to
www.netcraft.com and run an uptime check on the main URL of the hosting company.
Do they have any blacklisted IP addresses?
Will their servers be located in your country and/or the country of your visitors for fast access?