---- Thought I'd start this off with some structure and stubs. Feel free to edit and add to this. ----
A web host allows you to make a website available over the Web by storing it on a computer that's always on and always connected to the Internet. There are thousands of companies who offer web hosting. This guide aims to teach you how to understand, research, and evaluate the products on offer for yourself.
To find a suitable web host you need to:
- Know your requirements.
- Understand the web hosting products available.
- Pick the right product for you.
- Build a shortlist of companies who offer that product, and whittle them down to one.
We'll talk you through these steps now.
1. What are your requirements?
To start your search, it helps to have a rough idea of your:
- Monthly budget (e.g. "I can't afford anything more than $20 a month.")
- Monthly unique traffic (e.g. "I get about 5,000 visitors a month.")
- Technology requirements (e.g. "I'll be using PHP and MySQL.")
- Technical ability (e.g. "I've never bought web hosting before.")
- Location (e.g. "I want my hosting to be in a particular country for speed, support, or SEO reasons")
If you've got these pieces of information, great! If you haven't, try to work them out and write them down before reading on; it will make finding a web host much easier.
2. What types of web hosting are there?
The hosting market is awash with different products. This section describes them.
Free web hosting
It's possible to find free web hosting, but very few professional webmasters will recommend that you use it.
- It doesn't cost anything.
- It's mostly very easy to set up and start.
- Free hosts have no obligation to offer you support.
- Free hosts have no obligation to keep your site running.
- Free hosts have little obligation to upgrade, maintain, and secure their servers.
- Probably advertising on your site.
In short, it's worth paying for hosting instead of using a free service. A cheap shared hosting package will give you a basic level of support, more reliable uptime, and it won't break the bank.
Good services (as of 2018) include Github Pages.
Shared web hosting
- It's cheap – prices start at $3/month.
- But it's reliable. You sign a contract with a company, which consolidates all services you're guaranteed.
- Normally, you share one (virtual) server with many other customers. So if have a lot of traffic, you might need a dedicated server.
- Other customers may have busy websites that slow everyone on the same server down.
- Sometimes difficult to have the configuration changed for your specific needs (especially on Windows hosting)
"Cloud" web hosting
This covers a variety of services which can be split into three groups - Infrastructure as a Service, Platform as a Service, Software as a Service. This Wikipedia article describes the differences.
- Availability. Your data is almost instantly available to any person on that planet.
- There are also some offers which are free of charge.
- With some cloud services, nobody (not even the hoster) knows where your data is at (especially in which jurisdiction). This is a very big issue if you deal with sensitive data, like data from a doctor or banking accounts (regarding data privacy). Others, such as Amazon S3, let you choose a region.
- It is hard to compare like with like. Some, like Amazon, offer you virtual servers. Others like Microsoft Azure or Google App Engine are offering a layer of middleware for you to use.
VPS web hosting
This is where it looks like you have a server all to yourself although you are physically sharing it with other people.
- You have much more control than shared hosting.
- If you don't have a managed VPS, you have to manage it yourself - applying operating system patches.
Dedicated web hosting
- You can do what you want, when you want and the way you like. You own a (virtual) server and install any software (compare to managed hosting). You can use that server for whatever you like (with the exception of illegal contents).
- You really need to know what you are doing. You are the one who is responsible for the security of that system. You'll need to install security updates and in general "keep an eye" on what's going on (which ports are sniffed, who tries to break in an where did they come from, …).
Colocated web hosting
Colocation is much like dedicated web hosting. The difference is that you need to buy, bring in, manage and service the Hardware itself too.
- you have the most control over how reliable and fast the hardware of your server is
- you might be able to bring in a very small, very inexpensive server, which you have total control of in a high-end environment to let you service your customers
- you can set up and configure your hardware individually and in advance from home or office before you bring it to the hoster
- buying a single server grade machine is not cheap
- you are now even responsible for the hardware and need to monitor and repair it (though some hosters will offer you to do that for you (for a price))
- you might not even be able to restart the system if it breaks down, if you did not prepare for that (or buy hands-on service from the hoster to do that for you)
- dependant on the service level at the hoster, you might need to wait for business hours to physically access your server in case of a breakdown
This is similar to dedicated hosting, but reducing security issues because a professional team would maintain your server. On the other hand you mostly can't act as freely as on a dedicated machine.
3. What product is best for you?
You can use the five criteria we listed at the start (budget, traffic, technology, ability and location) to determine what product would suit you.
Flowchart attempting to steer people towards the right product?
Shopping for hosting by budget
If you are unwilling to pay anything at all
If your budget is about $10/month
If your budget is about $50/month
If your budget is about $100/month
If your budget is about $1000/month
Shopping for hosting by monthly traffic
If your monthly unique visitors is about 1,000
If your monthly unique visitors is about 10,000
If your monthly unique visitors is about X
If your monthly unique visitors is about X
Shopping for hosting by technology requirements
If you need a particular programming language
If you need a particular server architecture
If you have very specific custom requirements
Shopping for hosting by technical ability
If you're new to web hosting
If the idea of using hosting without a control panel scares you
If you're comfortable using a command line
Now that you know the product you need, let's discover how to find companies that offer that product.
4. How do you build a shortlist?
Where to find web hosts?
Searching by budget, technology, and other requirements – suggested strategies:
- Searching using specific keywords.
- Find out where a site similar to yours is hosted.
What makes a good web host?
- Support should be free of charge – that would indicate a reliable hoster. They don't try to earn money by selling telephone support, but by selling good, quality hosting products.
- Evaluating overselling. Here is a link to better understand the concept.
- Evaluating support time. Actually file a ticket with a few hosts on your shortlist and see what their response time's like.
- Look at the Status board to see the recent outages/problems the provider has been having
- The access to the hosting, particularly the Control Panel, should be appropriate to your needs and your requirements, letting you do everyday tasks without the need to always go to the Support team
What technical features should a good web host provide?
These are some features that even a good basic shared hosting package ought to include, in rough order from the most basic to more advanced.
- Dynamic content using PHP, CGI, etc.
- In addition, PEAR extends PHP, and is used by a lot of PHP scripts. Make sure that your host has the more popular PEAR scripts installed.
- Access to server logs for your site.
- Support for
.htaccess files or equivalent.
- Database access (MySQL or equivalent).
- Shell access via SSH.
- HTTPS support.
- E-mail hosting (with IMAP) or forwarding.
- Support for sendmail or something similar (so you can send emails using PHP).
- Timed process scheduling via
cron or equivalent.
- The latest version of each software this host supports. You don't want to be running an outdated version of PHP.
5. Bonus tips
How do I know when I need to upgrade?
- Evaluating hosting performance
- Optimizing software before upgrading! In most cases the software you run is too slow. Try to make use of different caching solutions.
Is expensive hosting better?
Does it matter where my site is hosted geographically?
Yes it does, if you deal with sensitive data. If you are a businessman providing a service for your local registration office or a doctor, you can't store the data where lax laws may allow the sale of that data. (For example as a German provider you must not store your data in the USA, because of the local Data Protection Acts. Recently, there was even a debate, where German data protection officers announced, they will sue website-provider who include a Facebook Like Button on their website, because the end-users will get tracked by an US-company, which in turn may sell the usage data of German customers to advertisers.)
6. Hosting forums and review sites
Often times, websites that claim to offer hosting reviews are really out to make money from affiliate links or through other channels, and as such they will not offer an honest review. Never trust just one site, and always check multiple sites before buying.
7. Further reading and resources