This is a "catch-all" question designed to serve as an answer for all questions about choosing web hosting. Pro Webmasters no longer accepts new questions about how to choose hosting. All future questions pertaining to finding web hosting should be closed as a duplicate of this question. For more information about this policy please see this meta question.

How to find web hosting that meets my requirements?

What we're looking for in answers to this question are the basics about web hosting:

What is web hosting?

What is the difference between shared, VPS, and dedicated hosting?

How does a content delivery network relate to web hosting?

Anything else you feel is helpful in finding a web host.

What we do not want is:

Endorsements or recommendations for specific web hosts

We do not want your experience or other subjective information (just the facts please)

7 Answers
7

---- 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.

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.

pro

It doesn't cost anything.

It's mostly very easy to set up and start.

contra

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.

Shared web hosting

pro

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.

contra

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.

pro

Availability. Your data is almost instantly available to any person on that planet.

There are also some offers which are free of charge.

contra

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.

pro

You have much more control than shared hosting.

contra

If you don't have a managed VPS, you have to manage it yourself - applying operating system patches.

Dedicated web hosting

pro

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).

contra

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.

pro

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

contra

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

"Managed" hosting

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 your budget is about $10/month

Shared

If your budget is about $50/month

Shared

VPS

Cloud

If your budget is about $100/month

VPS

Cloud

Dedicated

If your budget is about $1000/month

Cloud

Dedicated

Colocated

Managed

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

great theories, so now according to your theories what's a reliable and fast web hoster in the webhosters' ocean? One I could trust.
–
Marco DemaioDec 22 '11 at 19:39

@MarcoDemaio It makes more sense to tell askers how to form their own opinions - a hosting company that has been reliable and inexpensive up to now might be under new ownership tomorrow (and that is the kind of topic you'll see discussed regularly in forums like Web Hosting Talk)
–
danlefreeDec 22 '11 at 22:01

"Nobody (not even the hoster) knows where your data is at (especially in which jurisdiction)" is not true for all cloud hosts. For example, with S3, "You specify a Region when you create your Amazon S3 bucket." The region is a physical area of a country, so you'll also know the jurisdiction.
–
Matthew FlaschenFeb 15 '12 at 23:20

Digitalocean will give you a VPS for $5 a month
–
Daniel FJun 7 at 18:52

Make sure you server has enough resources to comfortably run those. The main bottleneck you're going to run into is MySQL queries. If you have a lot of vistors, try to limit the number of times those visitors will trigger a database query. There are many approaches to doing that. Just search around for WordPress performance or optimization. For example:
http://elliottback.com/wp/why-my-wordpress-site-is-so-much-faster-than-yours/

The amount of RAM required is contingent on how many applications and services are going to be running at once. A good place to start might be 512MB, but you might want 1GB. Thankfully RAM is cheap and even hosting companies are beginning to pass on the savings. You may want even more, but again, this all depends on what you'll be running. Here's a good discussion about server RAM: http://webmasterformat.com/blog/how-much-ram

If your site only averages a few hundred or few thousand visitors per day, RAM isn't going to be much of a factor, but as soon as your daily visitors gets into the tens of thousands or more, then the amount of RAM you have installed becomes an issue. Try to find a host that can easily increase the installed RAM on your VPS when it comes time to upgrade.

It's optimistic to think you'll have a lot of visitors right away, however it takes time to build up an audience. With that in mind, try to get a hosting company that doesn't care about bandwidth that much. A lot of hosts advertise unlimited or un-metered bandwidth (within reason). During the first few months of a site, you'll learn how much bandwidth your site requires to serve up and when your site finally breaks through to the big time and the ISP comes a knockin' to renegotiate your monthly bandwidth, now you'll know how much to buy.

It's also important to learn how to save bandwidth whenever possible. This has two advantages: one, you'll save money, and two, you'll increase performance. There are tons of articles out there on how to fine-tune your web site's performance. Check out Yahoo's "Best Practices for Speeding Up Your Web Site"

Also, seriously consider using a content delivery network (CDN) such as Amazon S3/CloudFront for serving up your static resources (stuff that isn't going to change that often) like logo graphics, style sheets, image sprites, javascript files. This also increases your site's load times considerable, effectively doubling (or more) the number of visitors your server can handle in a day.

As far as disk space goes, you need enough to run the OS, the installed programs, log files (depending on your server/OS, try to make sure these are automatically compressed, otherwise in no time you'll run out of hard drive space), and finally how big is your blog going to be? How many entries will there be in the database? How many and how big are the images going to be? For a VPS, a good place to start would be 40GB of hard drive space.

If you've already designed the blog, you should know how big the base site is already. But how much stuff are you going to upload each month? Make sure you have enough room for all of it. Also as already stated, consider offloading many of the site's static resources off to a CDN. Finally, consider using other web services for hosting large multimedia content like YouTube or Vimeo for video or SoundCloud for audio. They are often free and the content can easily be embedded on your site.

Is your business Web site down again? Does it seem to have more
downtime than uptime? You may want to consider changing your Web
hosting service. One of the most important decisions you will make for
your business Web site is selecting which Web hosting service will
display your Web pages to the Internet. Choosing the right Internet
Service Provider (ISP) to host your business's Web site may feel like
finding the right day-care center for your kids these days: Are they
reliable? Will they be there next month? Do they know what they are
doing? What services do they provide?

Finding a provider to host and maintain your Web presence can be a
walk in the park, if you gather the right information. Or, it can be a
disaster waiting to happen. The Better Business Bureau suggests you
consider the following when shopping for a Web host:

Know what type of service you need and only pay for that service. Large companies and high volume Web sites can expect to pay higher> rates for the services they need.

Shop around. Going with a big-name company may not be the best option for a small business. With larger companies you may find
yourself competing for attention when it comes to getting service and
performance issues addressed.

Ask questions. Find out how much space the hosting company will allow you on their server for mail, log files, system programs and
graphics. How many email addresses are you allowed? Inquire about the
availability of mailing list management programs, such as Majordomo
for newsletters and autoresponders for automatic responses to e-mail
messages sent to certain addresses. Also, ask if they provide some
sort of statistical data on visitors to your web pages.

Read your service contract carefully. If there were verbal negotiations between you and the web hosting company, be sure they are included in the contract. For instance, if the web hosting company
says it will respond to complaints or glitches with your account
within 12 hours, rather than their usual 24 hours, be sure that
promise is included in your contract.

Make certain that the data on your web site remains secure and within your control. If you want "state of the art" security, add those words to your contract. That way you know your web hosting company has agreed to provide it.

Check the Web hosting company out with the Better Business Bureau before doing business.

Can't say they are useless suggestions. They suppose you deal the contract with the hoster which is not usually the case because you pay for a service out of the box with an already written contract. It's funny when they suggest to read carefully the contract, actually we should always read carefully any contract, but personally I have never read carefully a webhosting contract as I've never read carefully a Gas or Electric contract.
–
Marco DemaioDec 22 '11 at 19:45

Some hosting providers will provide a rudimentary service (once a week?) and you might not have direct access to do a restore yourself. So be mindful of the restore process as well a the backup process.

There are quite a few commercial products in the marketplace that differ according to your needs (data size, speed of restore etc)

A solution that works for me as a hosting reseller with 200Gb+ to backup is Amazon AWS S3 which if used with the AWS CLI is fast, efficient, can be automated and is reasonably priced.

It has been said thousands of times by as many people that backups are important. Ask yourself the question; "if the server hard drive died, what would be the result?".

If you have any tips for researching/selecting a PHP web host, please edit this answer accordingly

PHP web hosting is very common and easy to find. When selecting a web host that offers PHP, you should keep the following in mind:

Because PHP is so common prices tend to be very low. That tends to mean margins are very low. As a result many low cost web hosts tend to "oversell" web space which means they put more websites on a server then would be considered ideal for those webmasters. This results in websites hosted on these servers to respond slowly and even occasionally have errors due to resources not being sufficient to complete their request. When researching a PHP web host, check to see if they have a reputation for overselling.

Many web hosts are slow in adopting new versions of PHP (the migration from PHP4 to PHP5 was extremely slow). If you want to have the latest PHP features available for your website make sure the web host you select either migrates to new versions of PHP or offers customers an opportunity to move to a new server using the newer version of PHP.

PEAR extends PHP offering a lot of functionality out of the box. Make sure your web host offers at least the most popular PEAR packages (MDB2, PHPUnit)

Content Delivery Networking hosting is possible if the site is static but depends on the company hosting the CDN as not all allow simple hosting such as just a static html site. Also Hosting a website can also be done using a Content Delivery Network but has many pros and cons,

Pro's

Ultra fast, possibility the fastest way to serve a website to a global audience.

Scalable, never worry about resources.

Cons

Unable to use PHP content so things like contact forms need to be JavaScript with Cross Domain AJAX which is rather complicated for most webmasters.

Unable to use most Content Management Systems, however some static content can be used.

Can be abused, for example a bot can be set to repeat down the same website over and over and cost the webmaster a forture, most CDN's are limited and can't stop this abuse while a proper host can block IP's on X views per a second/min.

Hosting larger files can be expensive.

Most CDN's do not support 'non-www' so your content will be unaccessible if anyone links to the site without the www this is because most CDN's work of cnames (Not all, just most).

CDN Static Support

Rackspace

Cloudflare

Please feel free to add to the list but for prevention of spam please do not link.

I recommend asking any providers you are interested in for your web hosting needs to produce a demonstration page that you can test the TTFB (time to first byte) value. Webpagetest.org can test such values from various computers for you. Additionally, Google factors this in when you use its page-speed insights tool to scan web pages, and they may rank your site lower if the loading speed is mediocre.

Web hosting for first-timers

If it's your first time in the web development field, start by looking for a free web host that has an SQL and scripting processing engine enabled.

Make sure the host offers you FTP (or SFTP for secure FTP) access to your web space, or at least a web disk (where you login to a secure area on the server to upload files).

Also, make sure the host includes PHP and MySQL in the plan you choose if you want to run any content management system such as Wordpress or you want to run any kind of dynamic page that doesn't utilize javascript.

Regardless of the type of hosting you choose, It must have web server software installed such as apache in order for web pages to be delivered, and there is often a document root (base folder for your website files) as well as an index file defined in the server configuration file. Often the index file is index.htm or index.html or even index.php.

Consider Bandwidth

Many hosting providers impose a monthly bandwidth limit and going over will either result in suspension of content delivery for the remainder of the month and/or additional overage fees. Because of this, some math needs to be done. To be safe, estimate the average size of the files you expect many users to access and divide that into your bandwidth limit and that's about how many users that provider will allow you to serve in a month.

For example, If your bandwidth limit is 10 GB a month and each page you serve without caching enabled consists of:

So in the above scenario, you could only serve 100,000 fresh copies of the page out to the world.

If you need to serve more copies of the page, then either seek a provider that offers a higher bandwidth limit, and/or optimize your code and/or employ HTTP caching and pray every browser connected to your server obeys it.