First you would need to answer what type of hosting you need? Are you a large business with website having huge traffic? Then you would need a Dedicated or Cloud hosting? Do you have small website with low amount of traffic? Then shared hosting might be enough for you if security and speed is not really a concern.
I'd recommend you a cloud hosting, like AWS or GCE. If you need a more affordable one then try out DigitalOcean or Vultr. AWS and GCE are best because of their performance and services you get. With EC2 you can host your website on efficient servers with S3 storage for backup. You don't have to worry about hardware and basic software maintenance. However, hosting website on cloud providers like AWS or GCE is too complicated and requires CLI. If you cannot use command line or do not have sysadmin experience, then you can try out Cloudways platform. They are really good because everything is managed. With their platform, you can install your application on cloud in just 1-click and you get Varnish, Memcached, Apache and Nginx stack which significantly boost the performance of your website.