Blog SEO: The Complete Guide

Since 2015, we’ve grown the Ahrefs Blog from zero to over 600,000 monthly search visits.

What’s our secret? Consistency.

We’ve been using the same SEO strategy for the past six years, and it works well.

In this guide, you’ll learn:

But first, let’s make sure we’re on the same page.

Blog SEO is the process of writing and optimizing blog content to rank in search engines like Google. Common tasks associated with blog SEO include keyword research, content writing, on-page SEO, and link building.

Why is blog SEO important?

Although there are many ways to drive traffic to a blog, search engine traffic tends to be the most stable and consistent. If you can rank for the keywords that people are searching for and maintain those rankings, your posts will attract consistent targeted traffic from Google.

Many other traffic sources tend to result in an initial spike in traffic, but it’s quickly followed by a sharp decline.

How to write blog posts for SEO

It’s important to understand that you can’t just create any old blog post and expect your post to attract thousands of visits from Google. It doesn’t work like that. To stand the best chance of ranking, you need to do your research and craft your blog posts for SEO.

Here’s how to do that in five steps

  1. Find a keyword
  2. Check search intent
  3. Choose a winning format and angle
  4. Craft a data-driven outline
  5. Write the post

1. Find a keyword

Each blog post you write should be optimized for one main keyword, and that keyword should be something that people are actually searching for month after month. After all, it’s impossible to get search traffic to a blog post about a topic that nobody is searching for.

How do you find keywords? Use a keyword research tool like Ahrefs’ Keywords Explorer.

Enter a few broad ‘seed’ words or phrases related to your blog’s topic, then check the Phrase Match keyword ideas report.

For example, if you have a food blog, you might use ‘seed’ keywords like:

  • Chicken
  • Pasta
  • Recipe
  • Recipes
  • Ribs
  • steak

Keywords Explorer finds over 14 million keywords containing one or more of these phrases, but it won’t make sense to write blog posts about them all. You need to skim the list for topics that make sense for you.

For example, it would make complete sense for a food blogger to write a post about “chicken tikka masala” but not “chicken pox.”

If your blog is quite new, you might want to set the Keyword Difficulty (KD) filter to something low to focus on low-difficulty ideas.

Recommended reading: How to Find Low-Competition Keywords for SEO

2. Check search intent

Ranking high in Google is the secret to getting consistent search traffic to your blog posts, but unless people are actually looking for blog posts when they search for your keyword, your chances of ranking are slim to none.

That’s why it’s important to understand whether most searchers are looking for a blog post or something else. This is known as assessing search intent.

To do this, type your keyword into Google and look at the search results. Because the entire point of Google is to deliver relevant results to searchers, its search results are a great way to identify search intent.

For example, take a keyword like “pasta maker.”

You might assume that it wouldn’t make sense to write a blog post about this because people are undoubtedly looking to buy pasta makers. Yet if you look at the search results, most of them are blog posts reviewing the best pasta makers.

Recommended reading: Beginner’s Guide to Search Intent

3. Choose a winning format and angle

Even if searchers are looking for blog posts, you can’t just write any old post and rank in pole position because searchers are often looking for something specific. You need to figure out what this is to develop a winning format and angle for your post.

Choosing a winning format

Most blog posts are written in one of these formats:

  • How-to guide
  • Step-by-step tutorial
  • Listicle
  • Opinion piece
  • Review
  • Comparison

How do you know what format searchers are looking for? Look for the dominant format in the search results.

For example, most of the results for “dinner ideas” are listicles:

Yet most results for “ribs on the grill” are how-to guides:

Are things always this straightforward and obvious? Of course not. Sometimes there will be an even mix of multiple content formats in the results, as is the case for “beef ribs.”

In these cases, you have a few options:

  1. Go with what the top-ranking page is doing
  2. Look for a commonality among the top 2–3
  3. Make your best guess

Choosing a winning angle

It’s harder to quantify angle than format, but it’s effectively the main selling point of your content.

How do you figure out a winning angle?

You guessed it: look at the SERPs.

For example, people searching for “flank steak” clearly want a recipe that includes a marinade. If you want to rank, it’s probably worth giving people what they want instead of just telling them to season with salt and pepper and throw it in a pan.

Here are a few common content angles to look for in the search results:

Personal experience → 21 Best Online Marketing Tools That We Use At Ahrefs
Best → 6 Best Marketing Podcasts
Expert commentary → 33 Expert-Backed Decluttering Tips
For beginners → 17 Blogging Tips For Beginners
Specific outcome → 12 Quick SEO Tips to Increase Organic Traffic
Tried and tested → 26 Best Free Chrome Extensions for SEOs (Tried & Tested)
Freshness→ Content Marketing: A Comprehensive Guide For 2021

Of course, there are plenty of SERPs where you won’t see a dominant content angle. In that case, make your best guess.

4. Craft a data-driven outline

Having some idea of what to include in your blog posts will make them much easier to write. But while you could come up with an outline based on gut feeling, it’s always better to take a data-driven approach to understand what search engine users are actually looking for.

Let’s look at a few ways to do this.

Look for common subheadings

Subheadings often align with subtopics. If you see common subheadings across multiple top-ranking posts for your keyword, it’s probably something that searchers want to know.

For example, three of the top-ranking pages for “flank steak” have a “what is flank steak?” subheading.

It would probably be worth including a similar section in any post targeting this keyword.

If you want to speed up the process of looking at subheadings, you can use the free on-page SEO report in Ahrefs SEO toolbar to see all subheadings in a post.

Look for common keywords

Most of the pages that rank on the first page of Google for one keyword also rank in the top 10 for hundreds of other keywords. And some of these keywords will represent subtopics that you might want to include in your blog post.

How do you find these keywords?

Just plug a few top-ranking pages into Ahrefs’ Content Gap Tool, set the mode to URL, and leave the bottom field blank.

Hit “Show keywords” to see all the keywords that one or more of these pages ranks for.

Because there will often be a lot of keywords and noise here, it’s worth using the intersections filter to find keywords that two or more of the pages rank for.

In this case, many of the keywords are just different ways of searching for our main keyword. But there are a few that map to subtopics like “what is flank steak,” “flank steak marinade,” and “how long to grill flank steak.”

Check the “also talk about” report

Plug your main keyword into Ahrefs’ Keywords Explorer, then check the Also talk about report to see frequently-mentioned keywords on the top-ranking pages.

If we do this for “flank steak,” we see keywords like:

  • carne asada
  • brown sugar
  • red wine
  • soy sauce
  • olive oil

This pretty much tells us exactly what searchers are likely looking for and even gives us some ideas for the kind of marinade they’re after.

5. Write the post

It’s finally time to start tapping away on your keyboard to write your first draft. The good news is that because you’ve already created a data-driven outline, there’s no need to concern yourself with “sprinkling in keywords” or anything like that. Just write and fill the gaps.

How to optimize your blog posts for SEO

Most of the hard optimization work is already done by aligning your blog post with search intent and taking a data-driven approach to the content itself. But it’s worth making a few more optimizations to give your post the best shot at ranking in Google.

Here’s a quick SEO checklist you can follow for each post you publish to put the icing on the cake:

Include your keyword in the title

Most blogging platforms like WordPress will wrap your page title in an H1 header, which is probably why including your keyword in your title is SEO 101.

If you’ve read any of our posts before, you’ve probably noticed that we include the keyword in most titles.

Is this going to make or break your rankings?

Definitely not. But every little helps.

Just be aware that it doesn’t always make sense to include your keyword exactly as it’s written in your title. Sometimes it’s better to use a variation for improved readability.

For example, our keyword for this post is “how to get more youtube subscribers,” but we didn’t use that exact phrase in our title because it’s a listicle.

Keep your title tag short

Title tags are important because they show up in the search results:

Most blogging platforms like WordPress will set your post title as your title tag. That’s usually fine, but if your title is particularly long, it might get truncated in the search results.

Is this always a bad thing? Not really, but it’s often wise to nip it in the bud.

You can do that by creating a shorter version of your post title to use for the title tag.

That’s what we did with this post:

Recommended reading: How to Craft the Perfect SEO Title Tag

Use an evergreen URL

Have you ever seen a search result like this?

The title says the post was published in 2021, but the URL says 2017. So which is it?

If we plug that URL into Ahrefs’ Content Explorer, we get our answer: the post was originally published in 2017 but updated in 2021.

Because the author failed to use an evergreen URL when they originally published the post, the updated version looks old because “2017” remains in the URL.

That’s why it’s important to use evergreen URLs that don’t go out of date, and the easiest way to do this is to set your post URL slug to your target keyword. This also has the added benefit of keeping your URLs short and sweet to reduce truncation in the SERPs.

Recommended reading: How to Create SEO-Friendly URLs (Step-by-Step)

Craft a compelling meta description

Meta descriptions often show up as the descriptive snippet in the SERP.

By crafting a compelling meta description, you can entice more searchers to click on your blog post in the search results. That leads to more organic traffic.

How do you craft a compelling meta description?

Look for commonalities among the descriptive snippets of top-ranking posts.

For example, all of the results for “steak tacos” talk about the best cuts of steak for the job, with Google even bolding terms like “flank steak” and “beef.” So these are things you would also probably want to mention in your meta description.

For “flank steak,” all of the snippets are definitions—so that’s what you’d want to write here.

Recommended reading: How to Write the Perfect Meta Description

Optimize images

You should optimize your blog post images for accessibility and to help them rank in Google Images—which can send more traffic your way.

For example, here’s our blog traffic from Google Images for the past 3 months:

Here’s how to optimize your images:

  • Use descriptive filenames. Think cute-puppy.jpg, not IMG_95742.jpg.
  • Add descriptive alt text. Describe your images in a few words to help visually impaired users that use screen readers.
  • Compress them. Use a plugin like ShortPixel or EWWW Image Optimizer for this.

Recommended reading: Image SEO: 12 Actionable Tips

Add a table of contents

A table of contents links to important subsections of your post and helps visitors find the information they’re looking for.

Here’s an example from this very post:

Ours is custom coded, but free plugins like Easy Table of Contents make it easy to add a table of contents to pretty much any post.

Besides the UX benefits, a table of contents can also help trigger sitelinks on posts in the SERPs—which can potentially help you win even more organic clicks.

Here’s an example from our guide to 301 redirects:

These are sections listed in our table of contents:

Recommended reading: What Are Sitelinks? How to Influence Them

Include ‘linkable snippets’

Linkable snippets are pieces of information that entice people to link to your blog posts.

Getting more links is important because they’re a known ranking factor. Google has told us this on many occasions, and we also found a clear correlation between backlinks and organic traffic in our study of over one billion pages.

But how do you know what constitutes a ‘linkable snippet’ for your topic?

Here’s a simple method:

  1. Plug the top-ranking page for your keyword into Ahrefs’ Site Explorer
  2. Go to the Anchors report
  3. Look for common reasons in the anchors

If we do this for one of the top-ranking posts for “SEO techniques,” we see many people linking due to statistics.

We can probably entice more people to link to our post on the topic by including similar statistics.

If we do this for one of the top posts about SEO copywriting, we see many people linking because of two unique concepts:

If we wanted to get more backlinks to our post about SEO copywriting, we should probably include a couple of our own unique ideas in the post.

Add schema markup

Schema markup is code that helps search engines to better understand and showcase your content in the search results.

For blog posts, the main use of schema markup is to win rich snippets like this:

Rich snippets can increase clicks and lead to more organic traffic to your blog posts.

So how do you know if you should add schema markup to your post?

Here’s a quick cheat sheet:

Recommended reading: Rich Snippets: What Are They and How Do You Get Them?

Internal links are links from one page or post on the same domain to another. They’re important because they boost the ‘authority’ of pages and help Google to understand what a page is about.

This is why it makes sense to add relevant internal links to every blog post you publish.

You can find relevant opportunities with Google. Just search for:

site:yourwebsite.com "main keyword for your post"

For example, if your blog post is about flank steak, then you would search for:

site:yourwebsite.com "flank steak"

This will return the pages on your site mentioning your post’s target keyword:

It’s then simply a case of linking these words and phrases to your new blog post where relevant.

You can also find internal linking opportunities for free using Site Audit in Ahrefs Webmaster Tools. Just go to the Link Opportunities report and add your target page:

https://www.youtube.com/watch?v=eWJtcPzGQWY

Recommended reading: Internal Links for SEO: An Actionable Guide

How to improve and maintain blog post rankings

Blog SEO isn’t a one-time thing. You can’t just write and optimize a post and call it a day. Getting your blog posts to rank high in Google and maintaining those rankings over time is an ongoing process.

Let’s look at a few tactics you can use to improve and maintain blog post rankings.

Update your posts regularly

If you’ve been following the Ahrefs Blog for a while, you’ll know that we update and republish our blog posts almost as often as we write new ones. 

In fact, according to Content Explorer, we’ve republished around ¼ of our posts.

The reason we do this is that rankings rarely last forever. Our posts often grow stale and outdated over time, which leads to a drop in rankings and organic traffic.

That’s precisely what happened to our post about the top Google searches:

How did we solve this problem?

By updating and republishing the post.

You can tell when we did this as there’s a big traffic spike on the graph:

We also often rewrite and republish posts where we misjudged search intent.

For example, we published an on-page SEO study in 2016 but it never ranked particularly high or got much organic traffic because searchers didn’t want a study. So, in 2018, we rewrote the post as a guide and republished it under the same URL.

This resulted in a huge and consistent spike in organic traffic.

Recommended reading: Republishing Content: How to Update Old Blog Posts for SEO

Featured snippets are short pieces of information that appear at the top of some search results. They’re usually pulled from one of the pages in the top 10 and aim to provide a succinct answer to the searcher’s question.

By optimizing your blog post for the featured snippet, you can sometimes shortcut your way to the top position.

Here’s the simplest way to find featured snippet opportunities for your posts:

  1. Plug your blog into Ahrefs’ Site Explorer
  2. Go to the Organic Keywords report
  3. Filter for keywords with featured snippets that you don’t rank for

Then it’s just a case of adding or reformatting the information needed to be eligible for the snippet to your blog post.

https://www.youtube.com/watch?v=TuTMLbbnlg0

Recommended reading: How to Optimize for Google’s Featured Snippets

Create content hubs

Content hubs are interlinked collections of blog posts about a particular topic.

They consist of these three parts:

  1. A ‘hub’ post about a broad topic.
  2. Sub posts about parts of the broad topic.
  3. Internal links to and from the hub page to sub posts.

Many SEO professionals believe that creating a content hub from blog posts will improve rankings for all posts in the hub. There are a few reasons for this, but the main theory is that it helps Google see your site as an authoritative source of information about a topic.

In terms of creating a content hub, you can either create one from scratch or create them from blog posts you’ve already written around a similar topic.

Recommended reading: Content Hubs for SEO: How to Get More Traffic and Links

Because there’s a clear correlation between backlinks and rankings, you’ll probably struggle to outrank posts with significantly more high-quality links than yours.

How do you know how many links competing pages have?

Check the SERP overview for your target keyword in Ahrefs’ Keywords Explorer:

You can then dig deeper into their link profiles to check the quality of their links and get a better sense of true ranking difficulty.

Recommended reading: Keyword Difficulty: How to Determine Your Chances of Ranking in Google

Final thoughts

Blog SEO is all about consistency. You need to write, optimize and update search-focused blog posts consistently. It takes time and rankings won’t appear overnight, but it’s pretty much the only way to drive consistent search traffic to your blog

If your blog is new and you lack ‘authority,’ it may also be worth starting with low-competition keywords that are easier to rank for.

Learn more about how to start and grow your blog to 100K monthly visitors and beyond in our free blogging for business course.

Got questions? Ping me on Twitter.