Want to build your website but don’t know where to start? Some people may think that creating a website can be difficult and require deep technical knowledge. This belief is wrong – in this detailed tutorial, you’ll learn how to start a blog from start to finish, and it doesn’t matter who you are – you can be a total beginner without any technical knowledge and experience. At the end of this tutorial, you’ll have a fully configured, performant, and scalable website deployed on cloud hosting.
I use only those servers and WordPress plugins that I use myself or have experience with. This guide is recommended for those users who want to configure a fast, reliable, and scalable server from an early start and who are serious about their upcoming project.
Here is what we’ll use to make a website:
- Namecheap to buy a domain
- Cloudflare for DNS and CDN
- Cloudways server to host your website
- Astra and Elementor plugins to build an actual website
- WP Rocket plugin to optimize the loading speed of your pages
- Rank Math plugin to optimize your website for SEO (Search Engine Optimization) rankings
And that’s it! If you don’t know some of the terms mentioned in the list above, don’t worry – I will explain everything gradually as we move forward.
Choose a Niche
The first thing you need to do is choose a niche for your blog: choosing a niche is one of the most critical steps you need to take, as it can determine the success of your website. Try to avoid general topics. Instead, choose a single topic you want to write about: when you write on a single topic, you can expect higher rankings on search engines such as Google, and it also increases the chance that your website visitors will return in the future. Another reason – people like to subscribe to a newsletter when you write blog posts on a single topic.
Here are some tips for choosing a niche:
- Find a topic you are constantly interested in and you can speak comfortably
- You can choose a topic based on your favorite activity: you can share your impressions and insights
- Think whether you will be able to write content on the chosen topic in the future as well
- It’s better to choose a topic that is popular enough – you probably don’t want to write a blog that won’t have readers
- Try to choose a topic that has less competition – it’s difficult to compete in saturated niches
Buy a Domain
After choosing a niche, the next important step is to select a domain (it’s an address of your blog).
Here are some tips for choosing a domain:
- Your domain should represent your brand
- A domain should be easy to pronounce and to type
- A domain should be memorable – avoid confusing words
- Prefer a domain ending in .com – this way your website will be ranked better on search engines like Google
- Your domain should be as short as possible – prefer a domain name with less than 12 characters (for example, my domain www.techesium.com is 9 characters long)
Most people choose a generic domain name for their website. However, you can choose a domain name under your full name, especially if you’re sure other people won’t contribute to content creation.
Sign Up on Namecheap Website
I recommend buying a domain from the Namecheap registrar – it’s a well-known and reliable domain registrar with arguably the lowest prices.
On the Namecheap homepage, enter the desired domain name you want to buy and click Search – on the results page, you will see which domains are available for purchase. As I mentioned before, I suggest purchasing a domain ending in .com – if such domain is not available, try adjusting its name and repeat the search.
If you can’t find your desired domain ending in .com and need a particular name, consider choosing another TLD (Top Level Domain) – I recommend a domain ending in .net or .org.
When you’re satisfied with your domain, click Add to cart.
You only have to buy a domain without hosting – don’t buy anything else.
On the checkout page under Domain Registration, select your domain’s registration period (usually, if you choose a more extended period, you may be eligible for a discount at the time of purchase) and toggle on the Auto-renew button. Next, make sure Domain Privacy is turned on and toggle on the Auto-renew button. Finally, click Confirm Order to complete your purchase process.
After the purchase, you’ll see Namecheap’s dashboard.
Create a Cloudflare Account
We’ll use Cloudflare service for DNS and CDN. DNS (Domain Name System) translates domain names to IP addresses and is used to load your website with its resources. CDN (Content Delivery Network) is a group of geographically distributed servers that speeds up your website’s content delivery to your current location. By using Cloudflare, you will also get protection against possible DDoS attacks.
Sign up on Cloudflare and choose the Cloudflare for infrastructure option.
Enter the domain you have bought on Namecheap and click Add site.
Cloudflare has free and paid plans, and in most cases, it’s enough to use a free one (if you want, you can upgrade your plan at any time later). Select the Free plan and click Continue.
Leave all pre-configured DNS records untouched (we’ll configure these DNS records later) and click Continue.
On the next page, copy shown Cloudflare nameservers to your clipboard, but don’t click the Done, check nameservers button yet, and don’t close this page.
Point Your DNS to Cloudflare
Open your browser’s new tab, go to your Namecheap account dashboard, and click Manage next to your domain.
Find the Nameservers section under the selected Domain tab, choose the Custom DNS option, paste Cloudflare nameservers into input fields, and click the green tick to apply changes.
Go back to Cloudflare and click the Done, check nameservers button. You’ll be taken to the next page and asked to configure some of your domain settings – click Finish later (it’s better to configure all the settings manually later).
After completing all the steps above, Cloudflare’s dashboard will load. If you see the Complete your nameserver setup note as shown in the example below, your changes have not yet been updated, and it can take up to 24 hours to see the results. However, this process usually only takes a few minutes.
Buy a Hosting Service
After buying a domain, we need to buy a hosting service – it’s where your website with all its content will be hosted and accessible to visitors.
I chose to use Cloudways hosting, and I can confidently say that this is the best managed cloud hosting you can currently buy. I host my website Techesium on Cloudways, and you can see for yourself how fast this hosting is when you browse the pages.
Cloudways is a managed cloud hosting platform with multiple providers you can choose from to host your website: DigitalOcean, Linode, Vultr, Google Cloud, and Amazon Web Services (AWS). This platform simplifies all the necessary technical hosting processes, and you can get your blog online in no time. You can find many recommendations to choose other hostings such as Bluehost, SiteGround, etc., but the thing is, you can’t achieve the same performance that Cloudways can provide.
Here are the main reasons why I chose Cloudways:
- Pay as you go billing system – you only need to pay for the resources you consume and nothing else
- No long-term contracts (a monthly payment system)
- You get a free SSL certificate (Let’s Encrypt) and many other options: multiple caching layers (Varnish, Redis, Memcached), automated backups, staging environment, latest software (PHP, MariaDB …), regular server updates, etc.
- Server and app monitoring system
- 1-Click server scaling – if you need to add more resources like RAM capacity, CPU cores or more storage, you can do that easily within your dashboard
- Cloudways has many positive reviews – you can view them on Trustpilot which is a well-known digital platform for its transparent independent reviews
Sign Up on Cloudways Website
Before we start: if you use this link to sign up on Cloudways, you’ll get a free $15 credit to your account.
Sign up on Cloudways, select the Servers tab, and click Launch to start creating your new server.
Under Application & server details, select a WordPress version you want to install and fill out other required input fields.
I recommend choosing the Vultr High Frequency server – it’s arguably faster than other available servers on Cloudways.
It’s better to allocate at least 2GB or more of RAM to the production server if you’re expecting moderate traffic to your website. However, less than 2GB of RAM can be suitable in staging environments. In this tutorial, I’ll allocate only 1GB of RAM because the server I’m creating here is not intended for production purposes.
Please note that a server with 2GB of RAM and more includes the paid WordPress Redis Object Cache Pro plugin that you get for free (it has more advanced features than the free version and can be more performant depending on your website’s traffic load). If you choose a server with 1GB of RAM, you’ll only be able to install the free version – I’ll show you how to do it later.
Keep in mind that the more WordPress plugins you install, the more additional server resources you may need.
It’s essential to choose the right server location to host your website – the closer a server is to your audience, the quicker your website will load. Therefore, you should choose the server location closer to your primary audience. For example, if most of your visitors are from the USA, you should consider selecting a server located in or closer to the USA for better performance.
When you’re ready, click Launch now to create your server.
Set Up Your Server
After creating a server, you’ll be redirected to the servers list – click on your server.
We’ll need to set up your server and change some of its default settings for optimal performance. To do that, go to Settings & Packages, and under the selected Basic tab, modify the following PHP settings to our recommended ones:
- Execution limit: 800 sec
- Upload size: 256 MB
- Memory limit: 500 MB
Click on the Packages tab, select the latest PHP and MariaDB versions, and install the Redis package.
PHP is a programming language required to run WordPress, MariaDB is a database that stores user data, posts, etc. Redis is an in-memory data structure store that we’ll use as a cache for the MariaDB database.
Click on the Advanced tab, and under WAF module, select Cloudflare. It will allow your webserver to see the visiting user’s actual IP address instead of the IP address of the WAF (Web Application Firewall) you have enabled.
Set Up Your Domain
Go to Applications → Domain Management to point your domain to your website.
Under Primary domain, enter your domain with or without the www prefix, for example, www.yourdomain.com or yourdomain.com. I recommend choosing a URL with the www prefix, and here’s why: the www prefix is a subdomain, and this way, you’ll set your cookies for this particular www subdomain – your cookies will never clash with your other subdomains, e.g., sub.yourdomain.com, sub.yourdomain.com, etc. Therefore, if you plan to create subdomains in the future, you should choose a URL with the www prefix.
After you submit your website’s URL, DO NOT change it in the future as it will impact SEO, and there may be other unintended consequences.
In this tutorial, I’ll show you how to set up a website with the www prefix, and I’ll use www.techesiumlab.com as an example URL.
Click Save changes to create a URL.
Go to Applications → Access Details and copy Public IP to your clipboard.
Go back to your Cloudflare account and click on the DNS option – here, we’ll set up all necessary DNS records to get your website online.
Click Add record and set these DNS records as shown in the example below:
- Type – A, Name – yourdomain.com, Content – your server’s Public IP (paste it from your clipboard)
- Type – CNAME, Name – www, Content – yourdomain.com
Leave TTL setting on Auto and set Proxy status to Proxied in all records (the cloud icon must be orange).
Now we can create an SSL certificate, making your website accessible via the HTTPS protocol (secure connection).
Go back to Cloudways → Applications → SSL Certificate, and fill out all input fields as shown in the example below.
I recommend creating a wildcard SSL certificate that applies to a domain and all its future subdomains: enter *.yourdomain.com into the Domain Name input field and select the Apply WildCard option. Then, on the same page, you’ll find an additional DNS record that you’ll need to add to Cloudflare.
Now go back to your Cloudflare account → DNS and add a new CNAME record. This time set Proxy status to DNS only (the cloud icon must be grey).
Go back to Cloudways and click Verify DNS to check if your new record is active.
Keep in mind that it can take up to 24 hours for this record to become active, so you may need to wait to verify your new record successfully. However, usually, it only takes a few minutes.
After successful DNS verification, click Install certificate.
Go back to Cloudflare → SSL/TLS → Overview and select the Full (strict) SSL/TLS encryption mode (this is the best encryption mode you can choose).
Go to SSL/TLS → Edge Certificates and click Enable HSTS.
HSTS (HTTP Strict Transport Security) is a header that allows a website to specify and enforce security policy in client web browsers: protects secure websites from downgrade attacks, SSL stripping, and cookie hijacking. Remember that by enabling HSTS, your website always needs to be reachable only using HTTPS connections (HTTP connections will not work).
There’s no need to enable the Always Use HTTPS option in Cloudflare as Cloudways already redirects all incoming HTTP requests to HTTPS by default in the settings.
Once you’re on the Configure tab, set the following options:
- Enable HSTS (Strict-Transport-Security): On
- Max Age Header (max-age): 6 months (Recommended)
- Apply HSTS policy to subdomains (includeSubDomains): On
- Preload: On
- No-Sniff Header: On
When you’re done, click Save.
Go to Speed → Optimization, and next to Auto Minify, check JavaScript, CSS, and HTML – this setting will reduce the size of your selected file types to increase the loading speed of your website.
Here we’ve configured only a few recommended Cloudflare settings. To fully optimize and secure your site with Cloudflare, check this article.
Set Up Your Website
After doing all the technical steps, now we only need to set up the website itself.
Go back to your Cloudways account → Applications → Access Details, and under Admin panel, you’ll find a URL to your website’s admin page and credentials to log in.
Open your website’s admin page and enter your credentials to log in.
Go to Settings → Permalinks and under Common Settings select Post name – this setting will determine what URLs of your posts will look like, and it’s better for SEO. Click Save Changes.
If you chose a server with 2GB of RAM and more, skip the next step, which describes how to install and activate the free Redis Object Cache plugin, as Cloudways has already installed and configured the Redis Object Cache Pro plugin on your server for free. However, If you chose a server with 1GB of RAM, install the free Redis Object Cache plugin as described below.
Go to Plugins → Add New, search for the Redis Object Cache plugin, then click Install Now and Activate. This plugin will allow you to store some of your MariaDB database data in your server’s memory for faster data access.
Go to Settings → Redis → Overview and click Enable Object Cache.
Design Your Blog
Properly designing a blog is a very important step you need to do – a good design will impress your visitors, and it can make your website look professional. With that being said, a good-looking website can increase your returning visitors rate. Below I’ll show you how you can build and design your blog using a WordPress theme and the website builder plugin.
It’s optional to install third-party themes and website builders – you can still create good-looking pages using the default theme and block editor Gutenberg, which is part of the WordPress platform. However, remember that these third-party tools are usually more advanced and have more possibilities.
Install Astra Theme
To design your blog, let’s first install a WordPress theme: it’s a pre-made design that we can apply to all types of blogs, and usually, we can customize it further.
I recommend using the Astra theme – currently, it’s one of the most popular and arguably the lightest WordPress theme you can get for your blog. While getting a free version is enough, you can buy a paid version too, which is more customizable. In this guide, I’ll be using the free version.
Go to Appearance → Themes and click Add New.
Then search for the Astra theme, click Install and Activate.
Install Elementor Plugin
To make your blog even more customizable and advanced, let’s install the website builder plugin. I recommend using Elementor, the most popular and arguably the most advanced WordPress website builder. Elementor has both free and paid versions, and in most cases, people find it enough to use the free version. However, I highly recommend upgrading Elementor to the paid version as it has more valuable features.
Go to Plugins → Add New and search for Elementor Website Builder, then click Install Now and Activate.
Install Astra Starter Templates
Now, to make our life easier, let’s install the Astra Starter Templates plugin – it imports an already pre-made website including its design into our WordPress platform, so we don’t need to start building a blog from scratch.
Go to Appearance → Astra Options and click Install Importer Plugin – this plugin will let you install a pre-made website from its provided library.
The next step is to select a page builder – choose Elementor.
After choosing your page builder, you’ll need to select a starter template you wish to install. There are both free and paid (premium) versions – choose any free template.
On the following page, click Import Complete Site – it will import all the pages presented in this template.
Then under Advanced Options, select Import Customizer Settings and Import Widgets.
When the import is complete, click View Site to load your website’s homepage. Next, you can use two places to build and customize your website, as shown in the example below.
The Customize button loads your theme’s customization options.
The Edit with Elementor button loads your website builder, where you can add and remove various elements and customize them.
Go ahead and examine all available customization options – from there, you can start building your actual website.
Install Essential WordPress Plugins
You can find many WordPress plugins online, but it’s essential to choose only those you need.
Here is the list of plugins I think are essential, and I highly recommend installing them on your blog:
- WP Rocket – a cache plugin to optimize your website for speed
- Rank Math – a SEO plugin to rank your website better on search engines like Google
- Wordfence – a security plugin to protect you website from external threats
If you want to enable comments on your blog posts, I strongly recommend activating the Akismet Anti-Spam plugin, which should already be preinstalled on your website by default.
How to Create Pages
Before writing your blog posts, I strongly suggest creating some essential pages.
Here is the list of pages you should consider to create and publish:
- Blog page
- Blog Categories page
- About Us page
- Contact Us page
- Privacy Policy page
- Disclosure page
- Disclaimer page
- Terms and Conditions page
It’s not mandatory to include all of the pages mentioned above – it all depends on what type of blog you want to create.
How to Drive Traffic to Your Blog
To measure your site’s traffic and perform other SEO-related tasks, you should add your site to Google Search Console and Google Analytics. These tools are free and invaluable for all webmasters looking to optimize their websites for SEO. Optimizing your blog for SEO is the only way to increase organic traffic from Google Search.
To start promoting your blog, you should first add it to social media, which can help you get your first traffic: head over to Facebook, Twitter, and other well-known social networks to create pages for your blog. Also, if you can afford it, you can even try paid social advertising, Google Ads, etc.
Wrapping Up
And that’s it! I tried to cover all the essential and some advanced steps to get you started. So, if you’ve followed all the steps in this tutorial, now you have your running blog. Have fun!
If you have any questions, simply leave a comment below!
Frequently Asked Questions
Why should I choose cloud hosting?
When you use cloud hosting, you get easy scalability – you can increase or decrease various resources at any time, such as memory size (RAM), CPU cores, storage, etc. Other benefits include speed, cost efficiency, less downtime, more reliable automatic backups, etc.
Why do you recommend Cloudways hosting?
Cloudways uses the most popular cloud providers (DigitalOcean, Linode, Vultr, Google Cloud, and Amazon Web Services (AWS)) and takes away cloud server-related hassles. Therefore, you can deploy and manage your website in no time, even if you have little or no experience in cloud hosting.
Can I start a website without coding knowledge?
Yes, indeed. WordPress is considered the best and easiest Content Management System (CMS) you can get to start building your website even if you have zero coding skills. However, learning some of the basics never hurts, as it can help you overcome some of the possible specific customization and functionality limitations you may encounter in the future.
How much does it cost to build a blog?
It depends on many factors. This tutorial cost me around $25 (domain – $10, and hosting – $13) to build a complete website. Many WordPress plugins and themes have free and premium versions, and if you want more customization options and expanded capabilities, you have to pay money to get that. Still, for starters, I think it’s enough to use free tools – you can upgrade at any time later if necessary.
How long does it take to build a blog?
Usually, you can start a blog in less than an hour using today’s modern tools and services. However, creating pages and a website’s design can take up to a day.