The is the same on-page SEO checklist I use to write every post on my blog.
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.
On-Page SEO Checklist
- Find A Long-Tail Keyword
- Learn The Keyword’s Competition
- Find Keyword Variations
- Create A Post
- Write A Keyword-Rich Headline
- Shorten The Permalink
- Write The SEO Title + Meta Description
- Create An HTML Table Of Contents
- Optimize The TOC For Featured Snippets
- Add FAQ Rich Snippets
- Drop Internal/External Links
- Get Content From Facebook Groups
- Design Images With 1 : 1.904 Ratios
- Optimize Images
- Write A Solid Introduction
- End With A Call To Action
- Spell Check Using Grammarly
- Assign A Category And Give It Some Tags
- Optimize For Social Sharing
- Add Rich Snippets To Reviews
- Add Multimedia
- Ignore Yoast Feedback
- Prefetch DNS Requests
- Test Load Times In GTmetrix
- Publish The Post
- Disable Unused Scripts + Plugins
- Test Table Of Contents Links
- Submit URL To Google
- Make Sure Google Doesn’t Cut Off Snippets
- Build Internal Links To The Post
- Keep The Article And Publish Date Current
- Send A Newsletter
- Take It To Social Media
- Respond To Comments
- Monitor The Post’s Performance
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.
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.
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 #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:
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
6. Shorten The Permalink
This emphasizes your keyword to search engines.
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.”
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
9. Optimize The TOC For Featured Snippets
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
10. Add FAQ Rich Snippets
FAQ rich snippets are great for standing out in search results:
- 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.
Step 2: Search Facebook for specific topics while only searching within your Groups.
Step 3: Find polls and conversations related to the topic, then share them with your readers:
13. Design Images With 1 : 1.904 Ratios
1 : 1.904 is the perfect ratio to create your main images.
Because it’s the same ratio as Facebook’s og:image dimensions (1200x630px). Which means when I’m designing featured images and top post images, I can use this same ratio to create my top post images (754x396px) and featured image (400x210px) without worrying about cropping or adjusting the image to fit a new ratio. My featured images are smaller because they’re shown in my category pages and I want them loading as fast as possible. The only exception is Twitter’s og:image which has a different ratio (I use 1200x630px) in which case you would need to crop some of the height off. I know, it’s a weird trick, but when you have to redesign images for 200+ and each post has 4 images (featured, top post, Facebook, Twitter)… this saved me a lot of time.
I use a combination of GIMP (for creating featured/og: images), and GIMP for editing.
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.
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
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
Just sayin’ but at least I’m transparent.
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.
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.
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.
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.
- 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
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.
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=”/assets/vendor/googleapis”>
24. Test Load Times In GTmetrix
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.
25. Publish The Post
Go ahead, do it.
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.
27. Test Table Of Contents Links
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.
28. Submit URL To Google
Next, submit the URL to Google using their URL Inspector in Search Console.
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.
30. Build Internal Links To The Post
Anytime you mention the topic, include a link to the article.
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…
Keep the article updated to refresh the publish date:
32. Send A Newsletter
Anytime you publish a great article, tell your subscribers about it (and what’s in it).
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.
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.