Blogging has seen exponential growth over the past decade. Almost everyone is creating a blog. However, some are fortunate enough to know where to start and what to do. Others are left struggling in an ocean they have never braved before.
This guide on how to host a website is for those people who are rookies and first-timers. So, if you are already experienced with hosting a website, reading this guide will be a wastage of your invaluable time.
You need to know that hosting a website can be a tad technical but not rocket science. In fact, if you want, you can simply skip the technical part, which is so insignificant that you can look at the whole process as something as simple as opening a social media account.
Website builder software applications like WordPress, Joomla, ClassicPress (a spin-off fork of WordPress), Drupal, etc. will empower you and allow you to create a website in less than 10 minutes.
And yes, I know what I am saying. To summarize, I am saying that hosting a website is not complicated at all!
You will need a few things to work with, and you will be good to go!
So, without further ado, let’s begin with the guide. I know you are excited.
This entire guide will revolve around shared hosting and WordPress. I will brush through cloud hosting but not in great detail. I do understand that you may want to host a website powered by something else instead of WordPress.
Since 33% of the web is powered by WordPress alone, I will keep my focus on addressing the needs of the majority. If you need something else, you can find details guides with a quick Google search.
What Does Hosting a Website Mean?
Hosting a website simply means that you place the files of your website on a computer. It is not just any computer. It is a special computer that we named as a server.
This computer, aka the server, is designed to make your website available to the general public over the Internet. Anyone who wants to visit your website can request the server to serve the website files.
Such requests are made using web browsers such as Google Chrome, Mozilla Firefox, Microsoft Edge, Apple’s Safari, Opera, etc.
Just like your computer has an operating system (Windows, or Linux, or macOS), the server also needs software to operate. That software is known as the “web server.”
In turn, this “web server” needs an operating system to run. So, the special computer, that is, the server, uses an operating system. The operating system can be Linux or Windows. The “web server” runs on that operating system.
This is where the concept of Linux hosting and Windows hosting comes. Linux hosting refers to a server that uses the open-source Linux operating system. The “web server” runs on the Linux operating system.
On the other hand, a Windows server refers to a server that runs the Windows operating system. The “web server” runs on the Windows operating system.
The “web server” can be of different types like Apache, Ngnix, LiteSpeed, IIS, OpenResty, Payara Server, IBM WebSphere Application Server, Oracle WebLogic, etc. While Apache and Nginx are cross-platform (that is, they can run on both Windows and Linux operating system), LiteSpeed can run only on Linux operating system.
Apache, Nginx, and LiteSpeed servers are the most popular ones used for WordPress sites.
The job of a “web server” is to receive incoming requests from users and respond to those requests by sending the requested webpages to the browser.
Is it getting too technical? Of course, it all sounds complex, and indeed it is! But you don’t have to worry about all these things.
You don’t have to install these web servers anywhere and deal with all those complex tasks. There are many companies that will give you access to servers with a web server already installed. However, you don’t get to use that for free. You have to pay for it.
Honestly, you should not think of creating the platform for hosting your website. Creating such a platform requires a lot of money. Only a few companies in this world can host all their services on their own platforms. Those companies are Microsoft, Google, and Amazon. Do you have such insane amounts of money?
Did you know that a company like PayPal hosts its services on Google’s platform? Netflix uses Amazon’s platform. Quora uses Amazon’s hosting platform.
So, it makes complete sense that you use the services of a web hosting company and use their server to host your website.
What Do You Need to Host a Website?
You will need a few basic things to start with. Here is the list:
- A domain name (you need to buy that too).
- A hosting server (you can buy a shared hosting plan or a cloud hosting plan).
- The web server of your choice (different hosting companies will have different options).
- The website builder application like WordPress (it is free, and you don’t have to pay for it).
You will definitely need some money to start because you have to make some purchases. Typically you should be able to start with as little as $20.
Here is a quick breakup of the pricing:
- $5 for a cloud hosting server (lowest configuration).
- $10 to $15 for purchasing the domain name.
If you are going for a shared hosting plan, your startup cost can increase up to $200 depending on the host of your choice. That will happen because, in the case of shared hosting plans, you can get the lowest monthly price only if you go for a long-term plan. You may have to purchase a plan for 3 years or more to get the lowest price.
Start with the Domain Name
You must have already thought about your website niche. That’s great. Now, you will need a domain name that reflects the niche or vertical in which your website will operate. For instance, if you want to start a website about dogs and cats, you may want a domain name that will be something like barksnmeows.com.
Now, what really is a domain name?
A domain name is your website’s address. It is this name that people will use to reach the website files that you host on a server. People will type this name in the browser’s URL bar. For example, https://cloudzat.com is the domain for this website. It is the name of this website.
How domain names work is a completely different thing. Discussing that here in this article is not an ideal thing to do.
All you need to understand is that the domain name is only a human-friendly name for your website. The web server or the server is least interested in it. People reading your website will use this name. The server and the web server will have a completely different language for understanding the needs of the users.
I will discuss domain names some other day. For now, what you need to know is that the computers (server) do not understand human language. They use numbers! In the case of websites, they will use IP address and DNS for fetching a requested website.
The regular user requesting a website will never see what is happening behind. The only thing user will do is type the name in the URL bar and then wait for the website to show up.
Think of the domain name and the server in this way:
The web server is the house where your website sits. The domain name is the address for that house. So, if a visitor wants to visit the house of your website, they will need the address to reach the house. They will use the domain name to reach the house.
The visitor need not worry about the route that the cab takes to reach the house with that address. What matters is reaching the house! That’s all!
Buy the Hosting Server
Once you buy the domain name, you need to buy the hosting server where your website files will live. This is where things can become a bit complicated.
There are many types of hosting. Some of the common ones are:
- Shared hosting
- VPS hosting
- Dedicated hosting
- Cloud hosting
- WordPress hosting
- WooCommerce hosting
- CMS hosting
- E-Commerce hosting
As I said earlier, I will be focusing mainly on shared hosting and WordPress, so I will suggest that you go for a shared hosting plan and install WordPress on that server.
Here are some of the reasons why I am suggesting shared hosting:
- Usually, when you purchase a shared hosting plan, the hosting company will bundle the domain name with the hosting package (that is, you need to register the domain through the hosting provider or provide an existing domain name).
- Shared hosting is not so powerful, but it is a perfect choice for new websites that will not have a lot of traffic.
- Shared hosting providers will give you multiple tools like one-click installations, backups, free SSL certificates, free emails, and more.
Getting started with shared hosting is less intimidating as compared to VPS and Dedicated hosting plans, and they are cheap, too!
Now, talking about bundling the domain name with the hosting package, I mean that when you purchase a shared hosting plan and register a domain name with the hosting provider, they will connect your domain name and your hosting plan.
As I said earlier, computers don’t understand the human language. So, connect your human-readable domain name to a hosting server; a few technical things need to be done, including adding nameservers and pointing the name to the hosting server IP address.
This connection process is slightly technical, but it can quickly escalate to be a nightmare for rookies. When you purchase a shared hosting plan and register a domain with the hosting provider, the hosting company will do the heavy lifting and connect your domain to the hosting server. You don’t have to do anything!
After you make a purchase, you can quickly install WordPress using the one-click installation process!
Now that you know why I recommend a shared hosting plan, let me quickly walk you through the different hosting options you can select from.
Shared hosting is a type in which a single server hosts thousands of websites. A server can always have a finite amount of resources that include storage space, RAM, CPU, etc. All the websites that sit on a shared server need to share those resources.
Because many websites are sharing the same resources, shared hosting plans are cheap. But since many websites share the same resources, there is always a limited amount of resources available for your site.
Since the resources at disposal for your site will be very limited, the server will not allow too much traffic. If a shared hosting provider is offering unmetered traffic, there will be conditions! For instance, your site cannot use more than 25% of RAM for more than 90 seconds, or your database site cannot be bigger than 1 GB, and so on! Thus, shared hosting plans are good for new websites that are starting a new journey. It takes time to build traffic. To reach a point where your site gets too much traffic than what is allowed by the shared hosting plan, it can take years!
So, a low-cost shared hosting server is always a great choice for new websites.
These are very expensive! In dedicated hosting, a hosting company will assign an entire server for your website. No other website will sit on that server. All the resources will be available for your website alone.
Dedicated servers are great for large enterprises with huge traffic and need a lot of processing power to deal with such traffic.
The problem with dedicated hosting is that it is very expensive. On top of that, you need to know how to handle a server. You have to have extreme technical knowledge of handling a server. The reason why dedicated servers suit the needs of large enterprises is that they have an in-house server management team that takes care of all technical things.
You definitely don’t want to go for a dedicated server, do you?
This sits between a shared hosting plan and a dedicated hosting plan. A VPS hosting is also shared hosting, but with fewer websites on a single server. The resources available on the entire server are distributed among those websites. However, the big difference with a shared server is that in the case of a VPS server, virtualization is used to create a completely isolated environment for each website.
There are dedicated resources in each virtual environment. The sum total of these dedicated resources in each virtual environment is the total resource available on the server.
Because a fewer number of websites stay on a single server in isolated environments, more resources are available for individual sites.
An isolated environment means that one website’s activities cannot impact another website’s activities on the same server. In the case of shared hosting, if one website runs a resource-intensive script, other websites will get fewer resources.
In the case of a VPS server, if one website decides to run a resource-intensive script, it will, at the max, eat up all its allocated resources without impacting the other websites. The other websites will continue operating as usual.
A VPS server is more expensive than a shared server but cheaper than a dedicated server. VPS is the acronym for Virtual Private Server.
Cloud hosting is a new breed of hosting solutions in which the collective resources of multiple physical servers are used to create a cluster of virtual servers. A website or any web application is installed on a virtual server with its own operating system and other features available on a physical server.
Because the resources of multiple physical servers are available as backup, a virtual cloud server allows quick scaling of resources whenever needed. Some cloud hosting providers will allow scaling up and then scaling down as needed.
One of the world’s most popular websites, Quora is hosted on Amazon’s cloud servers. What’s interesting about cloud servers is that they ensure maximum uptime and load balancing because of how they operate.
Since they have resources available from multiple physical servers, even if one physical server goes down, the resources from other physical servers kick in to keep the cloud server online so that the website remains online.
Unlike shared hosting plans where you need to pay upfront for 1 year or more to get the cheapest price, cloud hosting will allow you to get a hosting plan on a month-by-month basis. There are no yearly, half-yearly, quarterly plans.
Some providers will charge a flat rate per month while others charge on a pay-as-you-go basis. For those who charge a flat rate, the minimum price you pay is $5 a month. Some of the famous cloud hosting providers are DigitalOcean, UpCloud, Vultr, LiquidWeb, Google Cloud Platform, Amazon AWS, Microsoft Azure, etc.
Cloud hosting once used to be a horror for rookies. It was intended primarily for developers who were comfortable with the command-line interface. Things have changed now. Most of the cloud hosting providers offer one-click deployment solutions for WordPress and a variety of web applications.
If you are not comfortable paying upfront for a complete year, it is better that you go for a cloud hosting solution and pay monthly.
Cloud hosting is not as easy as shared hosting, but it is not extremely difficult. Feel free to go through my UpCloud review to learn how to deploy a server and install WordPress on it.
It is shared hosting, but with servers optimized for running WordPress. No other types of web applications are allowed on those servers. These are pretty expensive than shared hosting plans, but you don’t have to worry about any technical thing. Hosting companies manage everything technical.
Many web hosting companies that offer WordPress hosting depend heavily on Jetpack for optimizing WordPress sites (something that I don’t like and don’t recommend at all). However, there are providers like Rocket managed WordPress hosting that does not rely on Jetpack.
The interface provided by managed WordPress hosting providers is completely different from what you normally see in shared hosting solutions. The overall process of installing WordPress and launching a website powered by WordPress is simple and takes a few minutes barely.
It is also a managed hosting solution that focuses on WordPress-powered WooCommerce sites. These hostings are also expensive and allow hosting only e-commerce sites powered by WordPress and WooCommerce.
Yet another form of shared hosting solution that offers to install only CMS apps apart from WordPress.
CMS stands for Content Management System. WordPress is a type of CMS, but it is not the only one. There are other CMS apps as well, such as Joomla, Drupal, etc. CMS hosting focuses on those alternative CMS.
Finally, there are specialized hosting solutions for e-commerce applications like Magento, OpenCart, etc. Of course, using such specialized e-commerce applications make sense for growing and large businesses. That’s something that you will possibly not need now.
Okay, now that you know the different hosting solutions, you need to decide which one you want to select. Your choice will depend on your needs. For instance, if you really don’t want to take any technical burden, going for a managed WordPress hosting makes the most sense. In case you don’t want to invest big and are okay with a slight learning curve, cloud hosting might be the best option.
In case you want to keep it simple and try out things with baby steps, a shared hosting solution is by far the best option. If you are settling for a shared hosting solution, Bluehost or Namecheap might be a good starting point.
Selecting the right hosting solution is a must. You don’t want to spend big unnecessarily or settle for a hosting provider that gives terrible services.
Some of the most reliable shared hosting companies are:
Choosing the Hosting Provider
Choosing the hosting provider can be a complicated thing. There are many factors that you need to consider before you make a purchase. The first thing you need to keep in mind is that Google wants your website to be fast. So, the host that you select should provide fast servers.
Here is a quick checklist of factors that you should keep in mind when you are shopping for a hosting solution:
- SSD storage
- Free SSL
- Free email (preferably)
- cPanel or something proprietary
- One-click installation
- Easy server-side backup
- Apache, Nginx, or LiteSpeed web server (with LiteSpeed being the most preferred and Apache being the least preferred)
- Bandwidth (minimum 25,000 visitors for the lowest plan, but preferably unmetered or unlimited)
- Storage space (at least 20 GB, preferably unlimited)
- File manager (necessary for accessing your website’s files located on the server)
- Possibly a free domain (you will not get that with cloud hosting, but most shared hostings providers offer that)
You will not find all features in a single host so easily. Most shared hosting providers will give massive discounts when you register for the first time, but the renewal prices will be pretty high. It is this heavy discount during first-time registration that makes them the cheapest option. However, their high renewal prices make them much more expensive than the far superior cloud hosting solutions.
Did you know that most of the website owners who start off with shared hosting eventually move out to better cloud hosting or VPS hosting? Shared hosting providers know that very well, and that’s the reason why they give enormous discounts only when you purchase a long-term plan.
Once you have selected the hosting provider and purchased a plan and a domain, you need to install WordPress to get your site up and running.
If you purchase a shared hosting and purchase a domain from the hosting provider, all you have to do is log into your cPanel account and install WordPress using the one-click installation process.
There is nothing more to do! Your domain and your hosting are already tied together. The moment you install WordPress, it becomes accessible to the entire world. You can go ahead and customize your site and add content.
If, somehow, you selected a cloud hosting provider or if you purchased a domain name from a different registrar and a hosting plan from someone else, you have to point your domain to the IP address of the hosting server.
It usually goes by the name A record. Instead of adding A record, you can also add the nameservers provided by your hosting company. You should not add both, as it will lead to a conflict.
To add A record or NS record (nameserver), you need to go to the DNS management interface of the domain registrar. Once you do that, you need to wait for around 48 hours for DNS to propagate (usually DNS propagation doesn’t take any more than 2-3 hours). After DNS propagation finishes, you can go back to your hosting provider and install WordPress.
That’s it! You have successfully hosted a website!
What if you don’t want to host a website on a third-party hosting company’s server? What options do you have?
You can do that on your computer!
How to Host a Website on Your Computer?
First thing first, I don’t recommend doing that! There are many problems with it, and you might end up regretting your decision. Still, if you are feeling adventurous, I will give you the guide, but don’t forget to read the final part where I will discuss the problems of hosting a website on your computer.
To host a website on your computer, the first thing you will need is a local server. You can get that by installing WAMP on your Windows desktop or MAMP on your macOS. For Linux users, it is LAMP server.
These are local servers that you can install on your computer. Linux users are geeks anyway. So, I will skip LAMP. I am pretty sure they can handle all those things.
For rookies like us, WAMP and MAMP are the best!
These local servers are used for testing a website. The websites that you test on these servers are visible only to you. In case you want to make the websites public without moving them from the local server, you need to make a few changes to the local server’s configuration files.
The name of the configuration file is httpd.conf.
If you are working with Windows and WAMP, you will find the configuration file in this location:
If you are using macOS and MAMP, you can find the configuration file in this location:
Once you have located the httpd.conf file, open it using notepad or any other text editor that you use.
In the configuration file, use the search function of the text editor to find the line that starts with:
Once you find that, replace 80 with your IP address.
There are two ways of finding your IP address. You can run a Google search with the search text, ‘what’s my IP?’
It will immediately show you the public IPv4. That’s the one that you will need. It will be a string of numbers separated by dots.
It looks something like this: 195.287.102.86.
The public IP address you see using the Google search is a part of the WAN or Wide Area Network
So, the line in your httpd.conf file should now look like this:
Once again, use the search function of the text editor to find this line:
Change it to this:
Again, search for this line:
For WAMP users: <Directory “c:/wamp/www/”>
For MAMP users: <Directory “/Applications/MAMP/htdocs”>
Just underneath this line, you will see access permissions. Replace the access permissions with the following:
Allow from all
You are done! Save the configuration file. Restart your local server. The new permissions will take effect, and you can now type in your IP address in the URL bar of the browser to access the website.
The problem is that anyone who wants to access your website will have to type in the IP address. It is difficult to remember IP addresses and hence, not a good idea. That’s the reason why a domain name is needed.
To make your domain name work with your website hosted on the local server on your computer, you have to point your domain to your computer’s IP address.
To point your domain name to your computer’s IP address, you need to log into your domain management account. You should have an account with the domain registrar from where you purchased the domain.
Go to the DNS management area after you log in and add A records. Since different domain registrars have different interfaces, it is not possible to show all of them. I will show you the interface for Namecheap.
Note carefully that the type of record you need to add is A record. For the Host, add the symbol @. In the Value field, add your IP address. Change the TTL value to 1 hour or 60 minutes. Finally, save it.
Now, wait for the DNS propagation to complete.
Once the DNS propagation is complete, and your computer is hooked directly to the Internet using a cable, you are done! Your website hosted on your computer will now be accessible with the domain name.
What if you are using a router?
If you are using a router, you have to make a few more changes. Since I am using a D-Link router, I can show you what to do for that. However, depending on your router manufacture, the interface may look different.
Login to your router interface using the default router IP. For D-Link, the default IP is 192.168.0.1.
Enter the IP address in your browser URL bar and hit the enter button. Log in to the interface. There is no password. So, just click the login button.
Once you enter the interface, go to the Advanced tab and then on ‘virtual server.’
On the virtual server page, change the WAN port and the LAN Open Port to 80.
This is what it should look like:
In the LAN IP Address field, you should add the IP address of your computer on the local network. This IP address will identify your computer on the Local Area Network. This IP address is different from the IP address you find from Google search.
You can find your computer’s LAN IP address by using the command prompt on Windows. Just type ipconfig and hit the enter button. From the results you see, grab the IPv4 value that you see. It is also a string of numbers separated by dots. You will need that value. Enter that value in the LAN IP field in your router’s configuration window.
Now, apply the changes and exit! That’s all! You should now be able to access your website hosted locally using the domain name. Everyone else in this world can also access your website.
Why Shouldn’t You Host a Website on Your Computer?
Hosting a website on your computer may sound fascinating. It will eliminate the cost of purchasing a hosting plan, and you will have full control.
But there are problems!
Here is a quick list of all the problems that you will face:
- Fast Internet: To host a website on your computer, you should have a very high-speed Internet connection. A few Mbps will not work. For instance, my Internet plan gives me 85 Mbps. That’s perfect for personal use. For hosting a website, your computer should be connected to an Internet connection that gives you speed in Gbps.
- 24/7 Operations: Your computer needs to operate 24/7 to ensure the continued availability of the website. This will increase your utility bills.
- Updates and Backups: You need to update the web server software by yourself, take backups, create a separate backup server, and more.
- Up-to-Date Hardware: You need to keep your computer hardware up-to-date with high RAM capacity and SSD storage to ensure speed.
- Attacks: Your computer will be subject to malware injection, DDoS attacks, hacking attempts, etc. You need to safeguard your machine from those things by creating a firewall, which is quite technical. You need to have the appropriate knowledge. If your computer is infected, all computers on your local network will be infected.
- Static IP: You will need a static IP address that you have to purchase separately from your ISP. That will cost extra.
If you can deal with these problems, you can always host your website on your computer. However, isn’t that too much of a hassle? Not only is the process complicated, but also expensive, so much so that most of the largest companies in the world do not maintain their own servers. They use third-party servers and focus on their core business. You should do the same.
Don’t get tangled in this terribly bad idea, PLEASE!
Website Hosting FAQ
Here are the answers to some important questions that people usually ask, and you should know them too:
No one is forcing you to do that! You can host your website on your computer. However, the financial resources and the technical skills you will need to maintain the local server are exceptionally high. Buying a hosting plan from a hosting provider will dramatically reduce your cost of operation. The hosting provider will be responsible for security, updates, and everything technical about their servers. You can focus on your website.
Yes, you can always do that! By doing so, the domain will not be pointed towards your hosting server. You have to manually do that. But if you buy both of them from the same company, you can manage them from a single interface. Also, some hosting companies like Bluehost, HostGator, NameCheap, etc. offer a free domain for the first year if you buy a hosting plan from them.
Yes! You can buy the domain now and lock it so that no one else can buy it. You can buy the hosting plan whenever you are ready to do so.
Why not? People test their websites on the localhost and then export the ready website to a hosting server. You can always do that. No one is stopping you from doing that. In fact, that is a good practice to develop your website locally before putting it online.
Yes, you can, and the process is called migration! Many web hosting companies offer free migration of WordPress sites. If you are not happy with your current hosting company, you can switch to a better hosting company anytime you want.