A Guide to Writing SEO-friendly Articles that Rank on Google


Table of Contents

What is SEO writing?

SEO content writing is the act of writing in a way that search engines can understand what your content is about. Writing for SEO helps you appear in Google, so you can get organic clicks to your website and blog posts.

There are clear ranking factors that Google’s robots use in their algorithm to rank pieces of content accordingly.

Ranking factors for blog posts

Here are the top-ranking factors, listed in order of importance:

  1. Getting the search intent right
  2. Having a strong domain authority
  3. Having topical authority in what you’re writing about
  4. Competition level: How many other pages are talking about the same topic
  5. Backlinks: Links from other websites linking to your blog post
  6. Interlinking: How you link to other pages on your website in your blog post
  7. On-page SEO: How you organize and write your blog post
  8. User experience, both in terms of high-quality content and reading experience
  9. We are going to talk about all of these in the sections below. I’ll even give you an example of how I would find a keyword and write an article on it that ranks.

5 steps to writing an SEO-friendly blog post

Here’s how to write SEO-optimized blog posts (step-by-step):

1. Doing proper keyword research

The first step to writing any SEO-optimized blog post is to do proper keyword research. There are tons of guides on how to do keyword research out there.

You’ll need a keyword research tool to do this part. Tools like Ahrefs or SEMRush. If you want something cheaper you can also use Keysearch, which doesn’t give you as much flexibility as Ahrefs does but it’s a fraction of the price.

What you need to know about keyword research is that Google likes to rank authoritative websites. An authoritative website can be described by what its domain authority/rating is (a score from 0-100), if the website talks about variations of the topic you’re trying to rank for, how informative the article is (no high bounce rates (or high engagement rate)), and how many backlinks are pointing to the article.

If we want to be an authority in the coffee/coffee table niche, we can’t just have a bunch of “best” type list posts. We also need some informational blog posts as well. This is where the other modifiers like “how,” “what,” “why,” and “is” come into play.

Ideally, you want to have something like 70% informational posts and 30% commercial posts on your blog. But for the sake of this tutorial, we’ll keep it 50/50 and select two keywords to begin making content for. The two keywords I’m going to choose are:

  • How tall are coffee tables
  • Best coffee tables for small spaces

And just like that, we’ve found some good low-competition keywords we have a shot at ranking for on the first page.

But, this keyword research strategy may not work for every industry. The main keyword I chose, “coffee tables,” is lower in competition than say a blog that wants to talk about tech and software.

There’s no right way to do keyword research, you can get super creative with it and that’s why I like using Ahrefs (because they give you a lot of options).

2. Understanding search intent

Search intent is a crucial part you need to get right. Get this wrong, and your blog post will never see the first page of Google.

If you search for guides about search intent, like this one on Yoast SEO, they will tell you a bunch of information about transactional, commercial, information, etc. types of blog posts.

Similar to our keyword research tactics, all we are doing is being observant about what Google likes to rank. That’s all SEO really is — observing what Google shows on the first page for a given keyword and trying to emulate that while writing a better piece of content in the process.

Let’s say we decide to write an SEO blog post going after the keyword “best coffee tables for small spaces.”

The first step is to open a private, or incognito, window in our browser and simply Google the keyword. We want to do this in a private/incognito window so Google doesn’t show us tailored results based on our previous search history and behavior — we want the cleanest results there are.

Notice how all of the top results are blog posts showing a list of the best coffee tables for small spaces. This means, if we want to compete, we have to create a list post.

Google has deemed that when people search for “best coffee tables for small spaces” what they really want is a list of coffee tables.

They don’t want information on how to create the best coffee table for small spaces.

If we create a blog post going after the keyword “best coffee tables for small spaces,” but write an article titled “How to create the best coffee table for a small spaces,” it will have a hard time ranking on the first page for this keyword. No matter how strong our domain authority is, how many backlinks we have pointing to the article, or how thorough and amazing the content is inside of the blog post, it will never rank strongly for the keyword we are going after.

This is why search intent is so important.

I would come up with at least 10 different titles and use a headline analyzer tool to help pick the best title or ask around coworkers and friends which title they are more likely to click on.

Also, notice that each title I recommended for this blog post is under 60 characters. Any blog post titles over 60 characters will get cut off in Google’s search results. Keep this in mind.

Okay, we’re getting somewhere.

We found a good, low-competition keyword. We figured out that the intent should be a list-style post (not a how-to guide). And, we came up with a title.

3. Outlining your blog post for SEO success

A proper outline will help you make SEO writing a breeze. The more thorough an outline, the easier it will be to write. On the same token, the more thorough an outline, the more likely you are to get a good piece of content if you’re outsourcing your writing to freelance writers or an SEO content writing service.

Let’s look at how we are going to write our blog post.

Open up a word document, or an editor inside a content optimization platform.

For list posts, I found that this general template does well:

  • [H1] Main title tag
  • [H2] Something/question about the topic
  • [H2] Variation of the main title
  • [H3] List item
  • [H3] List item
  • [H3] List item
  • etc.
  • [H2] Conclusion

How I came up with this SEO blog writing template for list posts came from observing how top-ranking articles were formatted and through trial-and-error trying to rank list posts myself.

The same thinking applies to “how to” guides — observe how top-ranking articles structure their headlines and follow a similar pattern.

Structuring list posts like this can also help you show up in featured snippets.

The initial H2 heading opens up your list (of H3 subheadings) and the concluding H2 heading after that closes the list.

To get some H2 ideas, you can look at the “People also ask” section in Google when searching your keyword, or you can just look at what other top-ranking blog posts have.

In Growthbar, I can type in any keyword and it will generate a content report for me. 

Now we have our outline, let’s fill it out to get a completed blog post.

4. Getting the tech specs right

To improve user experience, you want to make sure that your blog page template is clean and easy to read and navigate. The main thing to get right is responsiveness. Your blog should look great on desktop, tablet, and mobile devices.

Next, when you add images to blog posts, you want to make sure that the file sizes are ideally JPG files under 100kb. You can search for image compression tools in Google and find a tool that does this for you.

Before you upload an image to your CMS, you also want to make sure that the file name is relevant. If I upload a picture of a rectangular coffee table, I want the image file name to be:

  • rectangular-table.jpg

You want to avoid uploading image files with weird names or strings of numbers and letters. This will help your images show up in Google image results.

Finally, for images, you want to make sure each image has ALT text. ALT text basically tells people who are using page reading devices (mostly used by those who are visually impaired) what an image is about — this improves user experience. So for an image of a rectangular table, I would set the ALT text to “an image of a rectangular coffee table.”

Next, before you publish your blog post, you want to make sure that the URL is clean.

When we publish our article on the 10 best tables for small spaces (2022 buyers guide), we want the


We don’t want the URL to include the exact title of our blog post, we just want the main keyword we are going after to be in the URL.

Next, we’ll want to make sure we have article schema on our blog pages. Schema is a JSON markup that helps Google crawlers better understand what your content is about (and who wrote it).

Adding this to your website will depend on what platform (or SEO plugin) you used to create your website. But we basically want to paste in this article schema code snippet into the code of our blog post pages.

Lastly, we want to set canonical tags for our blog posts. Canonical tags essentially tell Google that our blog post is the original version on the web.

This way, if someone completely rips your blog post-word-for-word, and publishes it on their website, Google will know that the original post is located on our website — helping Google prioritize our article to rank.

It’s literally just the URL of our blog post with a rel=”canonical” tag.

That’s it for the tech specs. If you’re using a good website platform like WordPress, any other tech specs should be covered.

5. Interlinking

Before you publish your article for the world to see, make sure you have internal links. Internal links, or interlinking, is when you link out to other pages on your website.

This means that when you publish a new blog post, you want to go back to some of your other blog posts and link out to your new article (with relevant anchor text) where it makes sense.

You always want a page on your website to be linked out to from other pages on your website. In the SEO world, we call pages with no links pointing to them “orphan pages.” But that word seems kind of harsh. I like to call them “lonely pages.” We just want to make sure all of our blog posts are being linked out to from other places on our website, so they’re not lonely.

So even when writing a new blog post, get in the habit of linking out to other blog posts you’ve already written — this can help Google understand how you have topical authority.

Okay, now we are ready to publish.


Learning how to write SEO blog posts is both a science and an art.

There’s an art to identifying the right keywords to go after and writing a blog post that is engaging, entertaining, and informative.

But there’s an element of science when it comes to ranking factors and structuring blog posts in a way that makes it easy for Google to understand and rank.

Of course, not every blog post you write will rank in the number one spot of Google. But, it’s always good to aim for number one.

If every blog post published on the web ranked high in the SERP (search engine results pages), Google’s search results would be too volatile.

Hopefully, this article gives you some SEO tips and a framework for ranking blog posts on the first page, and ideally in the number one spot.

Do you need help with making your website SEO-Friendly?

We offer SEO consulting services where we can teach you how to write better SEO blogs or pages.


CreateWP is a web studio based in Adelaide. We build custom website solutions for your business. If you don't need a new website and only need someone to look after your current website, we can do that too.

Click to rate this post!
[Total: 1 Average: 5]

Did you like this article? Please share.

Did you like this article? Subscribe to our newsletter.

Newsletter Signup

Related Resources

Website Speed: The Key to a Successful Online Business

Website Speed: The Key to a Successful Online Business

Website speed is an important aspect of any online business. It affects user experience, search engine rankings, and ultimately, your…
The Importance of Mobile Optimization for Your Website

The Importance of Mobile Optimization for Your Website

In today’s digital age, having a website is no longer a luxury but a necessity. More and more people are…

Like what you see

Get In Touch

Get a Quote

Contact CreateWP

Get a Quote Popup

Terms and Conditions

*The monthly amount will be automatically deducted from your account you have provided us on the day that you have started your subscription. This amount will be fixed for 24 months and you will have the option to auto-renew your subscription. Should you decide to stop the subscription the following services will be canceled:

  • Hosting (either you could continue with hosting only at a lower rate per month or we will have to migrate your site to a new provider which can cost you up to $350 for the migration only. )
  • Plugin licences won’t get renewed, but you will be able to use it still. 
  • Backup support will be cancelled 
  • Security support will be cancelled

**This amount will be deducted from your account together with your first subscription amount, once-off. 

*** We will give you a domain for free for the first year. The domain renewals cost $50 per year.

**** We will be using Elementor pro and Crocoblocks to build your website templates. You will be able to use these plugins while you are a subscriber. Once you cancel your subscription we will remove the licences of these plugins. Should you migrate your website to a different server you will still be able to use the plugins but you won’t be getting any updates. You will be able to purchase your own licences. 

***** CreateWP will help you get started, setting up your website, adding your logo and applying brand colours. If you have your own content, photos, copy, we will help you add the content to your pages. We can help you write content for your site at an additional cost. Your subscription allows for up to 6 hours of support. 

****** The subscription plans have a minimum term of 24 months. This subscription includes monthly plugin updates on your website.

Read our detailed terms and conditions here.