How To Make Money From Blogging (A Complete Guide For All Beginners)

Ever thought about launching your own blog? Ever wondered what it takes, not only to start up that blog but also to successfully build it over time to make money from blogging or generate a passive income online?
Clearly, you’re not alone.

Millions of people try their hand at blogging, but so few actually ever generate a substantial income from all efforts made.

However, if you’re starting a blog for the purposes of making money, and you’re not actually passionate about writing in the first place, then you’re largely wasting your time.
The art of blogging isn’t simply scientific or rocket science.

Without a deep-seated passion for your craft, you’ll face a tide of frustration and upset.


While it’s relatively easy to set up a blog, it is important to generate substantial traffic and profit from your arduous efforts.

You need focus, persistence, and perseverance to build that massive audience you need to make money blogging. It takes time and it takes hard work earning real cash online.

Take it from me. As an online marketer who understands the rudiments of online business, I can bask in the warm glow of success.

However, I can’t sit around for too long enjoying the freedom and passive income that my business has created. Without constantly adding insatiable content, any website can die off.

So, what does it take to start a successful blog and actually make money online?

I suppose that depends on what you consider successful and what you consider making money. If like millions of other potential bloggers out there, you’re looking to rake it in, you’ll have a long road ahead.
But if you’re willing to put in the time and the effort, and you can stay persistent over the years (and yes, I said years), then you can most certainly generate a substantial income online.

In fact, your blog is quite possibly one of the best hubs of passive income generation, and if done the right way, it can attract the right clients and customers no matter what industry or niche you might be in.
In today’s guide, I want to show you what it takes to start making money blogging in Nigeria or anywhere 
you might be in the world.

How to Make Money from Blogging (Step by Step)

Okay, if I haven’t dissuaded you just yet, and you’re serious about launching the next Linda Ikeji Blog or TechCrunch or whatever other blogs you might think is wildly successful in your eyes, then here’s what you need to do in a step-by-step guide.

The more you prepare and plan, the more likely you’ll be to succeed in the long term.



1. Pick a Topic

Get clear on what you’ll write about. Define a topic or niche, and design all your content around those things.

This will help you to not only laser-focus your writing but also to build digital products and services that compliment your content.

This allows you to attract customers in, enticing them with your highly-informative posts, then tempting them with a lead magnet before dropping them into your sales funnel (more on that shortly).

2. Select a Platform

While WordPress is the most popular platform for blogging by far, there are others out there that can be leveraged such as a micro-blogging platform like Tumblr, and even Medium.

However, if you’re serious about your blogging efforts, you’ll likely want to go with a self-hosted WordPress installation on a custom domain.

While you could set up a blog at with a subdomain such as, you’ll get more traction with a self-hosted solution, and then be able to use subdomains on popular platforms for your content marketing efforts.

3. Pick a Domain Name

Custom domain names are important if you’re serious about making money from the blog you start.
Rather than relying on a third-party-hosted subdomain, find a short but relevant keyword-rich (if possible) domain name that’s descriptive of your intended topic, industry or niche.

Use Namecheap, BlueHost, HostGator or any other number of domain name providers to source your domain.

If you’re at all concerned about things like SEO, when selecting your domain name, you should adhere to the following suggestions:
  • Use a known top-level domain (TLD) such as .com or .net
  • Keep the domain short, no more than 15 characters or so
  • Try not to purchase a domain name with hyphens, since they’re more often associated with spammers

4. Find a Good Web Hosting Company

There are loads of good hosting companies out there. If you’re starting a WordPress, self-hosted blog, there are a near-endless amount of options.

The important thing is to do your due diligence and pick the right one that’s suitable to your budget and to ensure that the service-level and uptime guarantee is there.

At the beginning, you’ll likely want to start out with Shared Hosting Server and scale from there. Eventually, you’ll probably need a dedicated-hosting solution with a CDN (below) once you break through a few thousand visitors per day.

Name cheap offers cheap hosting package (as low as $9.88/yr) if you are looking for an affordable one.


5. Caching and Content-Delivery Networks (CDNs)

Use a system like W3 Total Cache or WP Super Cache and turn on browser caching to ensure that you speed up the delivery of your webpages.

In the beginning, this might not seem as important. But as you grow and your traffic increases to thousands of visitors per day, this will be critical. Use Google’s Page Speed Insights to test things before and after the installation.

It’s also important that you set up a CDN, which will speed up the global delivery of your content.
For example, your page might load relatively quickly in the South Africa, but what happens when someone in Nigeria tries to load your content?

CDNs replicate data across multiple repositories around the world and make content delivery ultra-fast.
This is important for the user’s experience because 53% of mobile site visits leave a page that takes longer than three seconds to load.

W3 Total Cache integrates with Amazon’s AWS and MaxCDN, two very good options when it comes to CDNs.

6. Install the AMP plugin

The Accelerated Mobile Pages (AMP) Project is an initiative by Google to speed up mobile accessibility to a large degree of their content. The AMP specification, which you can read more about here, helps to thin down a webpage to its basic structural components with scaled-back JS and minified CSS code, makes for lightning-fast page speeds.

7. Install Google Analytics

Install Google Analytics so that you can keep track of your efforts while building out your blog. This is a great way to keep track of your results while using the URL campaign builder when dropping links in social media and other places so that you can effectively determine where your traffic is coming from.


8. Enable Permalinks

In WordPress, you should enable permalinks before getting things off the ground, which will give you nice canonical URLs that are SEO-friendly. Permalinks are located within the settings > permalinks section of your WordPress admin and select the post name option.

9. Setup Google’s Webmaster Tools

Anyone who’s serious about building a blog and making money, needs to leverage Google’s webmaster tools to see what keywords they’re ranking for and any messages that would impact their ability to rank.

This will also allow you to submit an XML sitemap and track keyword impressions along with click-through rates. This is one of the most useful tools for growing your site or blog through constant analysis of your efforts.

10. Learn SEO the Right Way

Although you shouldn’t start a blog with the intention of optimizing it to oblivion, you most certainly should understand the fundamental principles of search engine optimization so that you pay attention to the key aspects that will impact your ability to rank on search engines like Google.

Begin with Google’s Webmaster Guidelines mentioned above, and digest and implement that information. Learning SEO is a long and drawn out journey. You should always be increasing your knowledge and expanding your skill set.

11. Regularly Build Useful Content

If you’re serious about succeeding with your blog, you need to build useful anchor content. It needs to be engaging, keyword-centric, insightful, unique and well written.

Don’t write your content for search engines. Rather, write your content for humans while also paying homage to search engines and what they want. Simply put, it’s a skill that develops over time with practice. It’s also important to regularly publish your content on a weekly basis.




12. Sign Up for an Email Marketing Platform

The best avenue for making money from your blog is through email marketing, plain and simple. Hands down, this offers one of the quickest and surest strategies for earning an income through your blog.

But before you get there, you need to sign up for an email marketing platform like MailerLite, Aweber, ConvertKit, MailChimp, Constant Contact, InfusionSoft or any other number of platforms that exist out there.

13. Build a Lead Magnet

If you’re serious about marketing anything online, rather than opting for running ads on your blog (which won’t make you real money unless you have at least hundreds of thousands of visitors per day) or engaging in affiliate marketing, you should build a topical lead magnet that will sell a digital product or offer that you create in the back-end.

The lead magnet will entice people to sign up to your list and provide you with their email address.

14. Build a Digital Product and Position Your Offers

Email marketing and lead magnets are all designed to help you build out an automated sales machine. However, you need a digital product, service or other kinds of products in the back-end to do that. 

You can create multiple offers or products, that can lead people up a value chain towards your high-ticket sales.

15. Create a Sales Funnel

Take the time to build your automated sales funnel. There is so much involved with sales funnels, but the basic premise is that your visitors will show up to your site by discovering your content, drop into your sales funnel through an offer via your lead magnet or some other tripwire, and they’ll then be led through a journey with drip-fed messages at some periodic schedule that will allow you to sell your products and services on autopilot.


16. Get Social

Building a blog isn’t easy by any measure. To help you along the road towards success, you have to get social. Not only by linking up with other like-minded bloggers interested in online marketing, but also by sharing and engaging with others on social networks like Facebook, Instagram and other social media platforms.

17. Market Your Content

The single most important strategy you’ll find for building up a blog and boosting your visibility on search engines like Google, and my all-time go-to strategy for rocketing up the search rankings on Google’s SERPs, is content marketing. Marketing your content is an intricate process that involves long, seemingly-never-ending hours of building more useful off-site content that links to your primary anchor content, but it’s well worth it.

You can use this single strategy to rank number one on Google’s searches for nearly any keyword if it’s done the right way. There’s most certainly an art to this as well as a technical outline and to doing it the right way. Don’t try to spam or overstuff keywords in an effort to market your content by any means.

Content marketing can be done with articles on sites like or, it can be done by answering questions on Reddit or Quora, and it can be done with videos on YouTube or Vimeo, along with a variety of other means.

The point is that all of the content has to be useful, period. Don’t try to do the least amount of work for the greatest return. You need to do the exact opposite if you want to succeed.



18. Make Money With Affiliate Marketing

Affiliate marketing is when you recommend a product or service to your audience using special tracking links, and then get a referral commission for every time someone buys after clicking your link.

19. Display Google AdSense on WordPress

Google Adsense is an easy way to make money from your blog. All you need to do is add a script from Google to your website and start displaying ads. You will get paid for every time a user clicks on the ad. These are called CPC ads.

20. Use a WordPress Advertising Plugin to Sell Ads Directly

Directly selling banner ad space on your website can be more lucrative. Instead of having to rely on an intermediary who takes a cut of the money, you negotiate the price and terms on your own.

21. Sell Sponsored Blog Posts

Some bloggers aren’t interested in displaying ads to their audience and wonder how to monetize a blog without ads.

With ad networks, you lose some control over the content displayed on your site. Some readers will get annoyed or offended by ads, and more and more people are using ad blockers.

An alternative way to monetize a blog is through sponsorships.

A sponsorship works just like it does in sports, TV shows, or other industries. Basically, a company pays you to represent their product, talk about it, and promote it to your readers.

To get started, it’s a good idea to put together a one-page media kit that details your traffic stats, social media following, audience demographics, and any other data that will make your site more appealing to advertisers. Then, you can approach companies to negotiate a sponsorship deal.

22. Get Paid to Write Reviews

Similar to sponsored posts, you can also make money by writing paid reviews on your site.

This is a slightly different monetization method than a review site with affiliate links, as mentioned above. Instead, you get to try out products related to your niche for free, and even get paid for writing a review.

In conclusion:

Let’s face it, starting and running a blog can get costly. Don’t expect to get rich overnight. However, you can take certain measures to monetize some of your content along the way.

Be sure that you remain topical with your content and that your lead magnets help to drop people into a sales funnel that will eventually sell your high-ticket items.

However, aside from that, you can always opt to generate small amounts of cash flow by doing other things such as creating articles that will lead people to courses or audiobooks that you’ve developed, or building out video tutorials that will ultimately sell some big package or system that will help to teach people whatever it is that you’re really good it.

There are numerous ways to monetize your content and make money blogging, but don’t try to take shortcuts along the way. Don’t look for the fast-buck if you’re serious about your long-term results. Take action and stay persistent if you want to succeed and achieve your goals.

HTML Elements

HTML Elements

An HTML element usually consists of a start tag and end tag, with the content inserted in between:
<tagname>Content goes here...</tagname>
The HTML element is everything from the start tag to the end tag:
<p>My first paragraph.</p>
Start tagElement contentEnd tag
<h1>My First Heading</h1>
<p>My first paragraph.</p>
HTML elements with no content are called empty elements. Empty elements do not have an end tag, such as the <br> element (which indicates a line break).

Nested HTML Elements

HTML elements can be nested (elements can contain elements).
All HTML documents consist of nested HTML elements.
This example contains four HTML elements:


<!DOCTYPE html>

<h1>My First Heading</h1>
<p>My first paragraph.</p>


Example Explained

The <html> element defines the whole document.
It has a start tag <html> and an end tag </html>.
The element content is another HTML element (the <body> element).

<h1>My First Heading</h1>
<p>My first paragraph.</p>

The <body> element defines the document body.
It has a start tag <body> and an end tag </body>.
The element content is two other HTML elements (<h1> and <p>).

<h1>My First Heading</h1>
<p>My first paragraph.</p>

The <h1> element defines a heading.
It has a start tag <h1> and an end tag </h1>.
The element content is: My First Heading.
<h1>My First Heading</h1>
The <p> element defines a paragraph.
It has a start tag <p> and an end tag </p>.
The element content is: My first paragraph.
<p>My first paragraph.</p>

Do Not Forget the End Tag

Some HTML elements will display correctly, even if you forget the end tag:



<p>This is a paragraph
<p>This is a paragraph

The example above works in all browsers, because the closing tag is considered optional.
Never rely on this. It might produce unexpected results and/or errors if you forget the end tag.

Empty HTML Elements

HTML elements with no content are called empty elements.
<br> is an empty element without a closing tag (the <br> tag defines a line break).
Empty elements can be "closed" in the opening tag like this: <br />.
HTML5 does not require empty elements to be closed. But if you want stricter validation, or if you need to make your document readable by XML parsers, you must close all HTML elements properly.

Use Lowercase Tags

HTML tags are not case sensitive: <P> means the same as <p>.
The HTML5 standard does not require lowercase tags, but W3C recommendslowercase in HTML, and demands lowercase for stricter document types like XHTML.
At W3Schools we always use lowercase tags.

CSS Syntax and Selectors

CSS Syntax

A CSS rule-set consists of a selector and a declaration block:
CSS selector
The selector points to the HTML element you want to style.
The declaration block contains one or more declarations separated by semicolons.
Each declaration includes a CSS property name and a value, separated by a colon.
A CSS declaration always ends with a semicolon, and declaration blocks are surrounded by curly braces.
In the following example all <p> elements will be center-aligned, with a red text color:


    color: red;
    text-align: center;

CSS Selectors

CSS selectors are used to "find" (or select) HTML elements based on their element name, id, class, attribute, and more.

The element Selector

The element selector selects elements based on the element name.
You can select all <p> elements on a page like this (in this case, all <p> elements will be center-aligned, with a red text color):


    text-align: center;
    color: red;

The id Selector

The id selector uses the id attribute of an HTML element to select a specific element.
The id of an element should be unique within a page, so the id selector is used to select one unique element!
To select an element with a specific id, write a hash (#) character, followed by the id of the element.
The style rule below will be applied to the HTML element with id="para1":


#para1 {
    text-align: center;
    color: red;
Note: An id name cannot start with a number!

The class Selector

The class selector selects elements with a specific class attribute.
To select elements with a specific class, write a period (.) character, followed by the name of the class.
In the example below, all HTML elements with class="center" will be red and center-aligned:


.center {
    text-align: center;
    color: red;
You can also specify that only specific HTML elements should be affected by a class.
In the example below, only <p> elements with class="center" will be center-aligned:

Example {
    text-align: center;
    color: red;
HTML elements can also refer to more than one class.
In the example below, the <p> element will be styled according to class="center" and to class="large":


<p class="center large">This paragraph refers to two classes.</p>
Try it Yourself »
Note: A class name cannot start with a number!

Grouping Selectors

If you have elements with the same style definitions, like this:
h1 {
    text-align: center;
    color: red;

h2 {
    text-align: center;
    color: red;

    text-align: center;
    color: red;
It will be better to group the selectors, to minimize the code.
To group selectors, separate each selector with a comma.
In the example below we have grouped the selectors from the code above:


h1, h2, p {
    text-align: center;
    color: red;

CSS Comments

Comments are used to explain the code, and may help when you edit the source code at a later date.
Comments are ignored by browsers.
A CSS comment starts with /* and ends with */. Comments can also span multiple lines:


    color: red;
    /* This is a single-line comment */
    text-align: center;

/* This is
a multi-line
comment */

CSS Introduction

What is CSS?

  • CSS stands for Cascading Style Sheets
  • CSS describes how HTML elements are to be displayed on screen, paper, or in other media
  • CSS saves a lot of work. It can control the layout of multiple web pages all at once
  • External stylesheets are stored in CSS files

Why Use CSS?

CSS is used to define styles for your web pages, including the design, layout and variations in display for different devices and screen sizes. 

CSS Solved a Big Problem

HTML was NEVER intended to contain tags for formatting a web page!
HTML was created to describe the content of a web page, like:
<h1>This is a heading</h1>
<p>This is a paragraph.</p>
When tags like <font>, and color attributes were added to the HTML 3.2 specification, it started a nightmare for web developers. Development of large websites, where fonts and color information were added to every single page, became a long and expensive process.
To solve this problem, the World Wide Web Consortium (W3C) created CSS.
CSS removed the style formatting from the HTML page!

CSS Saves a Lot of Work!

The style definitions are normally saved in external .css files.
With an external stylesheet file, you can change the look of an entire website by changing just one file!

HTML Basic Examples

Don't worry if these examples use tags you have not learned.
You will learn about them in the next chapters.

HTML Documents

All HTML documents must start with a document type declaration: <!DOCTYPE html>.
The HTML document itself begins with <html> and ends with </html>.
The visible part of the HTML document is between <body> and </body>.


<!DOCTYPE html>

<h1>My First Heading</h1>
<p>My first paragraph.</p>

Try it Yourself »

HTML Headings

HTML headings are defined with the <h1> to <h6> tags.
<h1> defines the most important heading. <h6> defines the least important heading: 


<h1>This is heading 1</h1>
<h2>This is heading 2</h2>
<h3>This is heading 3</h3>
Try it Yourself »

HTML Paragraphs

HTML paragraphs are defined with the <p> tag:


<p>This is a paragraph.</p>
<p>This is another paragraph.</p>
Try it Yourself »

HTML Links

HTML links are defined with the <a> tag:


<a href="">This is a link</a>
Try it Yourself »
The link's destination is specified in the href attribute. 
Attributes are used to provide additional information about HTML elements.
You will learn more about attributes in a later chapter.

HTML Images

HTML images are defined with the <img> tag.
The source file (src), alternative text (alt), width, and height are provided as attributes:


<img src="w3schools.jpg" alt="" width="104" height="142">
Try it Yourself »

HTML Buttons

HTML buttons are defined with the <button> tag:


<button>Click me</button>
Try it Yourself »

HTML Lists

HTML lists are defined with the <ul> (unordered/bullet list) or the <ol> (ordered/numbered list) tag, followed by <li> tags (list items):


Try it Yourself »