There are many options for web hosting and price ranges that takes you to this simple question: how to choose a web hosting that is good for you?
What are YOUR criteria?
It is not "one size fits all" response. Some people need simple solutions, easy to use, no technical skills, some others need large installments to support heavy traffic, so you need to start by defining what your requirements are.
Some things are no longer a concern or option, they are must-haves:
high availability, security, no tight contracts and competitive price. These are basic requirements to level the ground - that is - if a company cannot provide this basic things it should not even enter you selection list.
Think of what is important to you. I usually think of:
Service: what is included? The provider offer backup/restore? Who is going to monitor security and performance? System updates? Database performance? What is the type of support questions the provider can handle? Do they respond quickly? Think of all services necessary to keep your site running and decide what you are willing to do yourself and what you prefer to pay to be done.
Skills: what skills do you have? Can you apply patches do operating system? Can you manage the database? Do you know how to execute all the services? Are you going to develop your skills, or do you prefer to pay for someone that knows?
The mix of services and skills desired are the keys to define your requirements and then evaluate if the service provider matches to your needs.
What defines price?
Occupancy: dedicated or shared. Dedicated costs more.
Dedicated host means the server and the database are reserved for your use only, that means you will always be paying for resources you do not use. Shared is lower price because all resources are shared among many clients, meaning you pay for what you use: no dead-weight.
In the past, shared hosting was considered lower performance, but that is no longer a reality because virtualization tools have improved and now allow you to adjust the level of performance without stopping the servers or hurting other users.
I mean that you do not need dedicated servers! Except in case that your system requirements are so special that no virtual machine can simulate. If you think that is the case, that you need dedicated resources, ask me by email, I'd like to know your case to update this article.
Space: the memory required and disk space. More space, more price. Check if your provider allows you to grow space at reasonable cost and start small, grow as necessary.
Speed: CPU speed, the higher the better. Bandwidth is usually a measure of size, not speed, but the lack of bandwidth turns your site slow.
Dedicated servers on premise: that is when you buy the servers and install in your building. Regardless of how good your installation is, forget it, you cannot match the security and availability of the large hosting companies. Dedicated on premise is the highest price for not as good services, except if you are as large or bigger than the provider you are comparing to. Even if not on-premise, as I said before: there is no need for dedicated servers.
Cloud services: services like AWS and Azure are the top two choices, although there are many other good cloud services (i.e.: Google) but the first two are larger which gives them better resources and price overall. Remember that running on these large clouds means you need the skills to "do it yourself" from opening the account to learning how to use their services and tools.
Hosting companies: similar to cloud services but more specific services, usually includes automated backups and management tools, being Cpanel the most popular one.
My suggestion, my experience
This site runs on Rochen, a hosting company specialized in Wordpress, Drupal and Joomla! It is shared hosting with high performance where you can grow resources as needed.
I have run other sites in AWS, undisputable high performance and availability, but a bit more complex to manage than Rochen. I still use AWS S3 services to keep copies and backups at very low cost. I have tested Azure, but found the administration tools a bit limited when compared to AWS, but works fine too. The move from AWS to Rochen was smooth and safe, without stopping my servers and reduced my monthly cost in half.
Google a bit and you will find lots of competitors to Rochen, I did that, but the specialization in Joomla was a key criterion for me. Build your criteria. Let me help if I can.