What is shared hosting?
Shared hosting is a type of web hosting that is a budget and beginner-friendly option offered by most "traditional web hosts." Shared hosting allows you to share a single piece of hardware (a server) with other web hosting customers, a method that keeps costs down for those that run small low-traffic websites, or are just getting started online. The server is managed by the hosting provider, so you won't need to do any sort of server administration tasks. Instead of managing the server, the provider will give you a small piece of the server to work with, within the freedoms that they allow.
For example, many hosting providers will give you access to your account via cPanel, a web app that you can log in to, to manage your little piece of the server. Within cPanel you'll have the power to upload files, manage databases, install site builders (ie WordPress), configure PHP versions, and more.* Not all hosting providers use cPanel, some will use their own custom management software, while others will use more widespread cPanel alternatives such as Plesk. The hosting provider has the ultimate say in what goes on, on their server, they'll choose what you can and cannot do on your account. This means that when you're shopping for shared hosting, they're not all built the same, it's important that you check that you have the ability to configure and install all you need to for your website to work properly.
* Available features are dictated and controlled by the hosting provider
What is a traditional web host?
Traditional web hosts are hosting provider businesses that offer hosting services on a single server within a single datacenter. They typically offer three hosting types including shared hosting, VPS hosting, and dedicated hosting. This is unlike hosting providers like AWS (sometimes called cloud hosting), that provide services capable of scaling up and down across multiple datacenters and servers as needed and as purchased.
In my experience, traditional web hosts are commonly associated with selling a "complete package" - using Linux as their OS (pre-installed), running WHM and/or cPanel for management (pre-installed), MySQL for databases (configurable from cPanel), with Apache as their web server. Although they're not limited to these options of course.
How does shared hosting work?
Shared hosting works by taking a single server (computer) and dividing its resources up amongst several of a hosting provider's customers. Each customer is given a pool of resources that they're allowed to use (ie 2GB of memory, 5GB of storage space), most modern shared hosting will treat this pool of resources as a hard limit. This means that if a customer is limited to 2GB of memory, the provider's management software won't allow them to go over this limit - this ensures that a single customer won't hog all the available server resources. Each customer is typically given access to their piece of the server via a control panel web app where they can configure and install their website. Since the hosting provider manages the server, they have the ultimate say on what their customers are allowed to configure and install in their control panels.
Is shared hosting good?
Shared hosting is good, as long as you use it for what it's designed for. It is designed for small websites with low-to-medium traffic and minimal required computing power. The traffic amount is usually easy enough to figure out, but the required computing power is not. For example, having images on your website is easy for shared hosting to handle...but having videos that need to be transcoded (changing the quality between say 1080p through 720p) will most likely max out the amount of CPU power that you're allotted - even if your traffic is low. It is important to research and test your project's needs before deploying it to production as the amount of computing power you have at your disposal on shared hosting is usually very limited.
Advantages of shared hosting
- Budget Friendly: Only one server is being used for several customers and therefore the provider's costs are lower than other hosting types. Those savings get passed down to you in the form of budget-friendly pricing.
- Minimal Administrative Overhead: The hosting provider deals with all the server's OS updates, networking, and app installations. You don't need to do all that management yourself - a time consuming task with a steep learning curve.
- Low Technical Ability Friendly: The hosting provider manages the server and almost always provides comprehensive support for anything that goes wrong (with some exceptions that vary provider-to-provider). This makes shared hosting one of the easiest hosting types for people that don't have much technical knowhow.
- Scalability: Commonly, websites will overrun their storage requirements before generating enough traffic to justify upgrading to a more powerful hosting type. There are usually several tiers of shared hosting available at most hosting providers and upgrading through them is commonly as easy as paying for a new plan to raise your resource allotment.
Disadvantages of shared hosting
- Limited Freedoms: The hosting provider dictates what you can and cannot install, configure, and use.
- Low computing power: If your web app needs to use anything that is computationally heavy (ie transcode a video on the fly) then you'll be susceptible to poor performance and crashes.
- Lack of technical insight: Shared hosting is often sold with minimal technical details short of the amount of storage space and management software they'll be selling you. For example, it's common you won't know how fast the NIC (Network Interface Card) is, or what processor is being used.
- Security Risks: You're sharing a server/computer with strangers and while it's very rare that you'll ever see their data, a bug or bad actor could cause trouble on your server. If you're using webmail, you could find yourself temporarily blocked from sending email to popular services (ie Outlook/Hotmail, Gmail) if someone else on the server (with the same IP address) sent out a lot of spam.
What type of projects is shared hosting good for?
Shared hosting is good for projects with low-to-medium traffic, and minimal computational power requirements.
Shared hosting is good for these types of projects:
- Blogs (including ones with a database-driven CMS like WordPress)
- Landing pages
- Small business websites
- Static sites (no CMS, no databases)
Remember to check with the hosting provider to ensure your project's needs are met by your selected hosting plan and be sure to test your project extensively before launching. Even if you're launching "just a blog" you may not realize that a feature of your site could overrun the capabilities of a shared hosting.
How to select a shared hosting plan
In order to select the shared hosting plan that is right for you, you'll need to know what your website's requirements are. One key requirement is how much storage space your project needs now and in the immediate future. Most hosting providers offer multiple tiers of shared hosting plans that come with various perks and capabilities. Commonly, the biggest difference between the tiers will be how much storage space will be made available to you, but there are some other things you should be aware of.
Whenever I select a shared hosting plan I review:
- Storage Type: Some shared hosting plans still come with an HDD for storage. HDD is an older storage method that is significantly slower than SSD technology.
- Storage Amount: Ensure that you're purchasing enough space for your project to run today and at a minimum into the immediate future. You don't want to hit your storage limits too quickly - ideally never (if possible).Filling up your storage allotment can cause your website to perform poorly, or become inaccessible.
- Compatibility: You need to ensure that your website will run on the OS installed by the hosting provider and that you have access to the configuration options you need. For example, if your website requires node.js and the shared hosting you've selected doesn't support it, then your project won't work.
- Unlisted Specs & Limitations: Some hosting plans don't clearly state everything that you need to know. For example, I've been hit by a mailbox size limitation that wasn't listed in the original purchase order - it was instead buried in the hosting provider's blog. Maybe your project needs a particular amount of memory to run, or you're worried that it may need more CPU power than shared hosting can provide. To alleviate these concerns, I contact the hosting provider's support and/or sales team to discuss my project and its requirements. Sometimes they'll notice that your project can't run on their shared hosting plan, or maybe that you should upgrade to a higher tier to get access to more memory, etc.
Using node.js with shared hosting
Node.js is a popular tool for building websites and web apps, but it is typically barred from using shared hosting because in order to install and configure Node.js, you typically need more access than what is provided with most shared hosting plans. Many traditional web hosts will recommend using their VPS or dedicated hosting plans in order to install Node.js, but unfortunately, these hosting types are considerably more expensive than shared.
Luckily as Node.js matures, traditional web hosts are taking notice and some are starting to offer the ability to install and configure Node.js apps on their shared hosting services. Two such hosting providers are A2 Hosting and InMotion Hosting, both provide a GUI tool within the cPanel that they give their customers access to.
Related Podcast Episode
If you're interested in learning more about different types of hosting including shared, VPS, dedicated, and WordPress then you might be interested our podcast episode entitled "What Type of Hosting Should You Use? (Shared, VPS, Dedicated, Reseller, WordPress, NodeJS)"
You can give it a listen right here.