On-Page SEO Checklist: My 35-Step Process For Writing Search Engine Optimized Content In WordPress (2020 Complete Guide)


The is the same on-page SEO checklist I use to write every post on my blog.

Most of it has nothing to do with Yoast, in fact I ignore most of Yoast’s recommendations since they put too much emphasis on keyword density and not enough on real on-page SEO factors.

Instead, I focus on finding a long-tail keyword which has low competition in Google’s search results, then creating in-depth content that is organized with a table of contents and nice graphics. I also talk about lesser-known strategies like targeting variations of a keyword, optimizing your table of contents to get in Google’s featured snippets, and making content format properly on Facebook/Twitter (using Yoast). I don’t have an infographic like Backlinko, but these are all actionable tips that will improve your on-page SEO, especially for WordPress.

I have gotten many requests to write this, so I hope it’s useful. Comment if you need help.


1. Find A Long-Tail Keyword

Use Google Autocomplete to find a long-tail keyword with  3+ words.

If you start Googling the keyword and it has lots of Autocomplete results below it, that keyword is probably too competitive and in most cases, you should choose one of the more specific (long-tail) phrases. The only time you should consider choosing a broad, competitive keyword is if you plan on creating in-depth content, and if your site has high domain authority.

Long-Tail Keywords


2. Learn The Keyword’s Competition

Google the keyword and review the content in the top results.

A keyword is more competitive if:

  • It’s broad
  • Top results have strong content
  • Top results have high DA/PA in MozBar
  • It has high competition in Keywords Everywhere
  • Top results are populated with authority websites
  • You see lots of advertisements from Google AdWords
  • Top results have strong signals (links, comments, shares)
  • There are lots of search results (11.6 million is a lot, but I’m giving it a shot)

Tools I Use:
Keywords Everywhere – Google any keyword and see it’s monthly search volume, CPC (cost per click), and estimated competition. Manually researching the top results is better though.

MozBar – Google any keyword and see each search result’s DA (domain authority) and PA (page authority). Choose keywords with lower PA, and compete within your own DA range.

Keyword Competition


3. Find Keyword Variations

These are synonyms (or very closely related) keywords.

Try looking at the different Autocomplete results or searching for a similar keyword. You can use the underline character _ to have Google fill-in-the-blank (a neat little trick I like to use). You can target multiple keyword variations in the post title, SEO title, and meta description.

Keyword Variation(2)

Keyword Variation

Keyword Variations


  • Keyword #1: on-page SEO checklist (primary)
  • Keyword #2: on-page SEO guide
  • Keyword #3: on-page SEO 2019
  • Keyword #4: on-page SEO process
  • Keyword #5: content SEO checklist

So I wrote the title:

On-Page SEO Checklist: My 33-Step Process For Writing Search Engine Optimized Content (2019 Complete Guide)


4. Create A Post

In case you didn’t know how:

Add A New Post


5. Write A Keyword-Rich Headline

Qualities of a good headline:

  • Makes people want to read (duh)
  • Primary keyword is ideally in front
  • Keyword variations sprinkled throughout title

Post Title

Other Examples:

Headline 6

Headline 3

Headline 4

Headline 5

Headline 2


This emphasizes your keyword to search engines.

Shortened Permalink

Should I Remove Stop Words?
Yoast recommends removing stop words, but this can make URLs ready funny and is NOT always good. Take a look at the examples below. If you can shorten the permalink to include your keyword and read nicely, do it. But if it butchers the URL and doesn’t make sense, don’t.




7. Write The SEO Title + Meta Description

These are the forefront of your SEO and determine the post’s click-through rate. You should include your keyword (ideally in the front), target multiple keyword variations, and follow the character limits. It’s also a good idea to include a number or modifier like “2019” or “checklist.”

Yoast Snippet

Tips For Writing SEO Titles + Meta Descriptions

  • SEO title length: 600 pixels (about 58 characters)
  • Meta description length: 920 pixels (about 158 characters)
  • Do not use Yoast’s snippet variables (write them yourself!)
  • Primary keyword is in front, secondary keywords are sprinkled


8. Create An HTML Table Of Contents

I can’t stress how important this is.

A table of contents organizes the post, lets people jump (and link to) specific sections, and increases your chance of being awarded jump-to links and featured snippets by Google. It also encourages longer content (Brian Dean and most SEOs recommend at least 3,000+ words).

Why You Should Do It

  • Helps users navigate the post
  • People can link to specific sections
  • Encourages in-depth content (3,000+ words)
  • Chance of getting jump-to links in Google by using named anchors



Featured snippets can be in the form of lists, paragraphs, or tables.

Since your table of contents is a list, make each item concise and actionable. Do not ask questions or give long answers – people want direct solutions to the problem for their query.

How In Google’s Featured Snippets

  • Find a keyword where people want concise information (eg. a list)
  • Moz Keyword Explorer has a filter that helps find question keywords
  • Target existing keywords/featured snippets that don’t do a good job
  • Create a concise, logical table of contents to target ‘list’ featured snippets
  • Create fact-based content with quality references (links, graphics, etc)
  • Make sure you’re on the 1st page for the keyword, if not, improve the content
  • Design an image exactly describing the keyword and label the image file name + alt text as the exact keyword (this can get that image showing in your featured snippet as well)
  • Google ultimately determines whether they will show your result, or any result at all

Featured Snippet List



10. Add FAQ Rich Snippets

FAQ rich snippets are great for standing out in search results:

FAQ Google Snippets


  • Install the Structured Content plugin.
  • Edit a page/post you want to FAQs on.
  • Click the “FAQ” icon in the WYSIWYG editor.
  • Add your questions and answers (I recommend 3-8).
  • Click the OK button and the plugin will add the code to your post.
  • Once the post is published, submit the URL to Google’s URL Inspector.
  • Your FAQs should appear in Google’s search results within a matter of minutes.


11. Drop Internal/External Links

These should provide helpful resources for specific topics not completely covered in the post, don’t just insert them for SEO or link to Wikipedia. If your visitors click it, it should be helpful.

Internal Links – natural ways to build links to your site while mentioning articles where visitors can more information on specific topics, while improving bounce rate and time on site.

External Links – similar to citing sources to Google. I always use internal links if I have content about the topic, otherwise I link to external sources where people can find more information.


12. Get Content From Facebook Groups

I love taking screenshots of Facebook conversations, especially polls.

It’s an easy way to show upvoted answers, common solutions to problems, and comparison polls. There are plenty of polls on the best hosting, cache plugins, SEO plugins, and others.

Step 1: Join Facebook Groups related to your topic/industry.

Facebook Groups

Step 2: Search Facebook for specific topics while only searching within your Groups.

Facebook Keyword Search

Step 3: Find polls and conversations related to the topic, then share them with your readers:

SEO Plugin Facebook Poll


13. Design Images

I use GIMP.

Be sure to crop/resize images to the correct dimensions (see next section).

GIMP Editor


14. Optimize Images

Alt Text – the Auto Image Alt Attribute plugin will automatically add alt text to images based on their file name. Just remember to write a descriptive file names before uploading images.


Resize Images To Correct Dimensions – my blog is 680px width so I crop/resize full width images to those dimensions. Otherwise I would see serve scaled images errors in GTmetrix.

680 Pixel Width Rectangle

Lossless Compression – ShortPixel, Smush, Imagify, and Kraken all do the same thing (lossless compression + EXIF data removal). I use ShortPixel which shows an unnoticeable quality loss.



15. Write A Solid Introduction

How to write a great introduction:

  • Use your keyword in the first couple sentences
  • Add links (from the TOC) to entice people to jump to a specific section
  • Tell them why they should read your post (eg. I don’t focus much on Yoast)
  • Be personal, lead with a story, or talk about topics that are currently going on

Post Introduction


16. End With A Call To Action

What do you want people to do?

  • Read another post
  • Make an affiliate sale
  • Follow you on social media
  • Subscribe to your newsletter
  • Get in touch as a potential client

Call To Action

I rely on affiliate marketing to make a living, so I usually link to my WordPress speed guide which is super helpful, but also promotes SiteGround where I get a commission from each sale.

Just sayin’ but at least I’m transparent.


Get hosting from SiteGround Get managed cloud hosting from Cloudways


17. Spell Check Using Grammarly

Grammarly is great, but you should have someone else read it with fresh eyes.

I like to reread it first thing in the morning, or hand it off to a coworker. You can also hire a writer. If you do not speak native English, you should 100% hire someone to edit your copy.

Grammary Recommendations


18. Assign A Category And Give It Some Tags

Assign the post to 1 category, and give it a few tags. Don’t overdo the tags.

WordPress Categories
WordPress Tags


19. Optimize For Social Sharing

This makes your content format properly when shared on Facebook/Twitter, specifically your image since both networks use custom dimensions to display it, otherwise it will look funny.

Facebook Post

If using Yoast, go to the “Social” settings and enable Open Graph for both Facebook/Twitter:


Now edit a page/post, then click the “share” link in Yoast and you will see options to upload custom images for Facebook (1200 width x 628 height) and Twitter (1024 width x 512 height).



20. Add Rich Snippets To Reviews

If you’re writing reviews, you need rich snippets.

I use the premium WP Review plugin which looks great (here’s an example post I use it on), does the job, and is lightweight so it doesn’t affect my load times or my GTmetrix reports.



  • Write reviews, recipes, or other content types where rich snippets can be used
  • Choose a rich snippets plugin (eg. All In One Schema or WP Review)
  • All In One Schema is free but has minimal customization options and looks boring
  • WP Review looks much better, has multiple pre-styled templates, is maintained and updated frequently by the MyThemeShop, supports 14 data types, and is what I use
  • Use the plugin to markup content and test it using Google’s Structured Data Tool
  • Use my tutorial on adding rich snippets to WordPress for full instructions


21. Add Multimedia

Videos keep people on the post longer. Ideally it’s your own since embedding videos on your blog gives them more views, likes, comments, and engagement, a key factor for YouTube SEO.

That’s why I like creating YouTube videos in conjunction with my blog content. I haven’t created a video for on-page SEO yet (I probably will soon), so for now, here’s Brian Dean:


22. Ignore Yoast Feedback

Yoast green lights don’t matter.

Yoast doesn’t tell you anything about keyword competition, content depth, or how to improve engagement. It focuses too much on keyword density and not enough on what actually makes great content. Instead of focusing on green lights, beef up your articles with a table of contents and cover the topics in more depth. That is what I did to grow my blog to 3,000 visitors/day.

Importance Of Yoast Green Lights


23. Prefetch DNS Requests

This helps browsers anticipate external resources so they can load them faster.

If you embedded YouTube videos, Tweets, Facebook posts, or even use social sharing plugins or comment plugins, these can slow down your website and also show in your GTmetrix report.

Here is a great list of common domains to prefetch:


You can add them to WP Rocket (the cache plugin I recommend):


Otherwise, add them to your header:

<link rel=”dns-prefetch” href=”//youtube.com”>
<link rel=”dns-prefetch” href=”//maps.googleapis.com”>
<link rel=”dns-prefetch” href=”//fonts.googleapis.com”>


24. Test Load Times In GTmetrix

Thank you Cloudways for the crazy load times. Even posts with tons of images load in <1s when they’re 2.70MB and have 61 requests.

If I didn’t embed the YouTube video or GitHub code it would be 100%. Make sure images are optimized, use fast hosting, a good cache plugin, PHP 7+, and see my WordPress speed guide.


SiteGround vs Cloudways Cloud Hosting


25. Publish The Post

Go ahead, do it.

Publish Post


26. Disable Unused Scripts + Plugins

You might be familiar with Plugin Organizer, which lets you selectively disable plugins you don’t use on certain pages/posts. This is the same idea, only I use Kinsta’s perfmatters plugin. Since I’m not using rich snippets in this post, I disabled my rich snippets plugin in the settings.

You can also use the free WP Asset Clean Up plugin.

Script Manager


Each link in your table of contents should jump to it’s subheading. Hold ctrl (PC) or control (Mac) and click each link to make sure it works. The tags in your subheadings and table of contents tags should match. Otherwise if it’s another problem, recheck the GitHub code.

Table Of Contents Links


28. Submit URL To Google

Next, submit the URL to Google using their URL Inspector in Search Console.

FAQ Request Indexing


29. Make Sure Google Doesn’t Cut Off Snippets

If your SEO title + meta description are too long, Google will cut it off. Make sure they don’t.

Google Snippet


Anytime you mention the topic, include a link to the article.

Internal Link


31. Keep The Article And Publish Date Current

Adding a post modified date makes  your content look fresh and increases click-through rates.

First, enable ‘date in snippet preview’ in Yoast (SEO → Search Appearance → Content Types).


Now add this code to your theme (or use the Post Updated Date plugin) which does the same thing. If you’re using the Genesis Framework you can use Genesis Simple Edits plugin to add the post modified date shortcode to the ‘Entry Meta’ section under Genesis → Simple Edits.

<p>Last modified: <?php the_modified_date(); ?></p>

Mine looks like this…


Which results in…

Post Modified Date

Keep the article updated to refresh the publish date:

Publish Date


32. Send A Newsletter

Anytime you publish a great article, tell your subscribers about it (and what’s in it).

Mailchimp Newsletter


33. Take It To Social Media

Without being spammy, share it in Facebook Groups and other places.


34. Respond To Comments

HubSpot did a study on comments and found this:

“There is no correlation between the number of comments on a post and the number of views that post got. There’s also no correlation between comments and the number of links that post got.


  • They’re where I get my most valuable feedback
  • People who receive feedback are more likely to sign up for my newsletter
  • Creates a two-way conversation (eg. you’re trying to get clients to contact you)


  • Spam, lots of it
  • Too many people trying to get a link
  • It’s basically free consulting (if you don’t have guidelines)


35. Monitor The Post’s Performance

After a couple weeks, check the performance report in Google Search Console which helps you see the post’s performance. It tells you it’s ranking position, clicks, and click-through rate.

If the post ranks high with lots of impressions, but has a low click-through rate, consider rewriting the SEO title + meta description. If it doesn’t rank well at all, improve the content.

Use Google Analytics to check the post’s average session duration and bounce rate.

If the post has bad bounce rates and average session duration, it could be anything from slow load times to poor web design, no internal links, or lack of well-designed, original graphics. Try listing your most popular tutorials in your sidebar (see mine).


Backlinko’s On-Page SEO Infographic

This post wouldn’t be complete without Backlinko’s on-page SEO infographic:


You May Also Like: How I Got 100% Scores In GTMetrix (WordPress Speed Guide)


Frequently Asked Questions

✅ How did I get these FAQs in Google?

Install the Structured Content plugin and use it to add FAQs to pages/posts. The plugin will markup the content for you, then test the page in Google's Structured Data Testing Tool.

✅ How important are Yoast's green lights?

Not very important. Yoast emphasizes keyword usage but doesn't pay much attention to keyword research, quality content, rich snippets, or adding an HTML table of contents. The most important places to use your keyword are in the page title, URL, SEO title, meta description, and a couple times in the content. The rest is quality content + on-page SEO.

✅ What are on-page SEO factors outside of Yoast?

Rich snippets, FAQ rich snippets, adding a table of contents, quality content, using multimedia like infographics and videos, speed optimization, and getting your content showing in Google's featured snippets to name a few.

✅ How do you add a table of contents to long posts?

I recommend using HTML instead of a plugin to make sure the TOC includes linked anchors so people can jump to (and link) to specific sections of your post. I listed the code in this tutorial.

✅ How do you get in Google's featured snippets?

Google can show featured snippets for paragraphs, lists, and tables. Find a question keyword where it makes sense that Google would show featured snippets, or ones that already exists with content that does a poor job answering the question. Next, create a section on your post that answers the question concisely. If optimizing for lists, create a table of contents. Keep the maximum character counts in mind.

Subscribe To My Newsletter: Subscribe to my newsletter if you liked this post! I continuously write new tutorials on WordPress SEO + speed optimization over 3,000 people read each day.


25 Ways to Promote A Blog Post (Without Overkilling It)

Ways To Promote a Blog Post

You’ve created an awesome blog post and now everyone’s going to find it on their own without you having to do anything.

Wouldn’t it be great if that was true. Unfortunately the mentality of “If I write it, they will come” does not work if you’re looking to get more links, shares, and content exposure.

Sure if you target a reachable long-tail keyword in your blog post and write awesome content that targets that keyword, you will have a better chance of ranking high and get traffic through search engines. But promoting that content is a huge part of getting those links, shares, rankings and overall exposure.

So without going on overkill, here are my top 25 tips for promoting your next blog post…



You Know Content Comes First

1. Write Awesome, Keyword-Targeted Content – it’s so much easier to get social shares, links, and all that good SEO stuff if you have awesome content that targets a reachable keyword. A combination of researching 1 good focus keyword (tutorial for Yoast’s SEO plugin specifically), optimizing your content (for that keyword), and optimizing your content (for shares/links) is the most fundamental part of content marketing. If you do that the rest of your job will be much easier. I will write a full tutorial on this soon.



The Basics

2. Share With People You Mention In Your Post – did you quote or mention any people, organizations or websites in your blog post? Be sure to notify them by sending them a tweet, email, or whatever medium works best for you (and them).

3. Email Newsletter – if your content is newsletter worthy, considering adding it in your next newsletter announcement.

4. Internal Links – linking to your own relevant pages/posts is a natural way to build links and improve on-page SEO. If you have previously written content that mentions the topic of the article you just wrote, find those pages/posts and add a link. When you write new articles in the future, you can also add internal links to those.

5. Marketing Materials – for any other marketing materials you have, see if you can find a clever way to promote your blog post, even if it just means adding a link.



Social Networks

6. Facebook Page – content marketing 101, at least share your blog posts/news on your company Facebook page. Make sure your website is using Facebook Open Graph (for WordPress users, there’s an option for this in Yoast)

7. Twitter – send out a tweet with a link. For Twitter, you will want to use Twitter Cards (also an option for this in Yoast)

8. Google+ Personal Page – get more +1’s (a major ranking factor) and build your Google+ authority by sharing your content on your personal Google+ page.

9. Google My Business Page – building your company’s authority (and still get +1’s) by sharing content on your Google My Business page (formerly Google Places).

10. LinkedIn Personal Profile – if your blog post is company news, jobs, or information your LinkedIn company followers would be interested in, post it here.

11. LinkedIn Company Profile – I found my LinkedIn personal profile to be very effectively in getting exposure for my blog posts especially if you have a lot of connections.

12. Personal Pinterest Page – post your blog post on your pin boards. While you’re at it, find other relevant pin board you can leave a comment/link on.

13. Pinterest Business Page – add your blog post in one of your business page’s pin boards.




14. Facebook Groups – there are actually some quality Facebook Groups groups out there for tons of different industries. The number of shares, likes and comments on a particular links has can increase it’s rankings too.

15. LinkedIn Groups – you can join up to 50 groups on LinkedIn. Many LinkedIn group moderators/members are sensitive to people promoting stuff so just be careful.

16. Google+ Communities – a hidden gem. Sharing your content with relevant Google+ communities can get you more +1’s which is a main ranking factor in Google.

17. Reddit Discussions – I found a lot of people were asking about Yoast’s WordPress SEO Plugin, WordPress themes and other topics I can help people with. I wrote some tutorials about these topics so it was easy to direct them to my site for an (appropriate) reference.

18. Tribber – honestly I had not had much success with Tribber but I keep hearing all the bloggers say how great it is to join in conversions and add value (content) to discussions.



Q&A Websites

19. Quora – one my favorite places to leave input to topics I know about and often leave a link in the process.

20. Yahoo Answers – one thing I like about Yahoo Answers is the ability to used “saved searches” to get notified when a is posted under certain criteria.



Social Bookmarking

21. Delicious – add your blog post’s web page to delicious. Just sign in, click “Add Link” on the left, give it a few tags and you’re good to go.

22. Digg – submit your link (using the link I provided) and you’re done.

23. StumbleUpon – pretty much the same thing as Delicious. Just add your web page with some tags and details and you’re done.




24. Related Blog Posts – commening on relevant blogs is a not a direct form of link building since most blog comments used nofollow for outbound links. The key is to build relationships with bloggers and their audience through meaningful comments that add value. You can leave a link if your piece of content is indeed relevant.

25. Related YouTube Videos – I like to look for YouTube videos that get a lot of views, but the publisher isn’t responding to their commenters who are asking questions. Why wouldn’t I take over the conversation and take advantage of the opportunity?




IFTTT – the most valuable tool I can reference is IFTTT whose slogan is “put the internet to work for you.” It can automate many of your tasks, for example, by autoposting each blog post on twitter, Facebook, Digg, and other networks. Just create your triggers, connect your channels and start saving a lot of time.

IFTTT Recipes


Hope you find this post helpful! As always, feel free to leave me a comment with any questions you have.


Tom Signature