On-Page SEO

A Comprehensive On-Page SEO Checklist for 2024

Joshua Hardwick
Head of Content @ Ahrefs (or, in plain English, I'm the guy responsible for ensuring that every blog post we publish is EPIC).
Article Performance
Data from Ahrefs
  • Organic traffic
  • Linking websites

The number of websites linking to this post.

This post's estimated monthly organic search traffic.

If you’ve invested time and effort writing an epic piece of content, don’t forget about on-page SEO. It helps google to understand what your page is about and show it to as many people as possible in the search results.

Even better, many on-page improvements are super quick and easy to do.

Follow this checklist for perfect on-page SEO every time:

On-page SEO checklist

If you’re looking for a reusable interactive checklist to use time and time again, here are a few other formats

Let’s run through everything real quick.

Google says it’s best to use words that are relevant to your content in page URLs, so you don’t want random gobbledygook urls like domain.com/734/834753956756 if you can avoid it. It’s better to use something short and descriptive like domain.com/mens/shirts.

Short, descriptive URLs are best for SEO

It only takes a few seconds to change this in most content management systems:

You can change URL structures in most CMS's in seconds

If you’re not sure what words or phrases to use, the main keyword you’re targeting is usually a good bet. That’s what we do on the Ahrefs blog 90% of the time.

For example, our target keyword for this post is “on page SEO checklist,” so that’s what the post’s URL is:

Using the target keyword is never a bad idea for a URL slug

Few best practices to keep in mind:

  • Avoid repeating words. If your page is about mens shirts and it’s nested in the /mens/ subfolder, you don’t need to repeat the word “mens.” domain.com/mens/shirts/ is better than domain.com/mens/mens-shirts/
  • Avoid dates. If a searcher comes across domain.com/blog/2020/fashion-tips/ in 2024, they’re going to assume it’s out-of-date even if you updated the content yesterday. So domain.com/blog/fashion-tips/ would be better.
  • Avoid being too specific. If your URL is domain.com/blog/20-best-fashion-tips/, it’s going to look weird if you add more tips to your post later on. Using the less specific domain.com/blog/best-fashion-tips/ gives you more future freedom.

Google says that title tags are often the main piece of information searchers use to decide which result to click on. If yours is boring and dull, you’re probably not going to get as many clicks as you could—even if you rank.

It’s the same story for meta descriptions, which Google often uses for the descriptive snippet.

Pages with compelling title tags and meta descriptions get more clicks

There’s no one-size-fits-all approach for title tags, but the ABC formula is a decent starting point for blog posts:

Use the ABC formula to craft more compelling title tags

For your meta description, my best advice is to try to expand on your title tag to give searchers more detail and context.

If you’re struggling or just want a fast solution, give our free AI title tag generator and meta description generator a shot. Tell the tools what your page is about and your desired writing tone and they’ll generate a few options.

Use Ahrefs' free AI and meta description generators to craft compelling copy in seconds

Remember to keep them both short and swee, too. If they’re too long, they’ll get cut-off in search. This looks odd and makes them less compelling. You can use a free tool like this one to check for truncation before publishing, or Ahrefs’ Site Audit to find all the issues on your site.

Google recommends using one H1 tag per page. It makes sense to use this for your page title as H1 is the highest level heading there is.

Most content management systems do this automatically, but you can double-check your title is indeed a H1 for free using Ahrefs SEO toolbar. Just click the Content tab:

Use the Ahrefs SEO Toolbar to check the structure of your content

If the copy you’d expect to be wrapped in a H1 tag isn’t, hit up your developer!

People want what you promised them in your title and meta description, so don’t kick things off with a load of fluff. Get straight to the point and give the reader what they came for in the first sentence.

There’s no one-size-fits-all way to do this. It all depends on what searchers are looking for.

For example, when people search for “toxic backlinks,” they’re overwhelmingly looking for a definition above all else. That’s why I made the very first paragraph of my article the definition:

People have short attention spans; get to the point fast

But when people search for “best snow blower,” they just want a recommendation—so that’s what Wirecutter gives them in the first paragraph:

Wirecutter is great at getting to the point in their intros
I think Wirecutter’s opening paragraph could be even better because there’s no point in that first sentence. If you’re searching for “best snow blower,” you already know the benefits of the product. You just want to know which one is best!

Google’s John Mueller said that the search giant uses headings to help better understand the content on a page. This is why you need to make sure they’re clear and descriptive.

It’s easy to miss the mark here. We’ve even been guilty of it ourselves.

For example, look at these two subheadings from our list of blogging tips:

Some of our rather cryptic subheadings from our list of blogging tips

Do you have any idea what those mean at first glance?

Me neither. And many of the other subheadings in our post were also unclear.

If you suspect the same might be true for your subheadings, try this: ask ChatGPT to rewrite them for clarity.

Asking ChatGPT to rewrite subheadings for clarity

This is exactly what Sam did for our post, and it made them much clearer in seconds.

For example, “Create a ‘Do 100’ project” became “Start a ‘write 100 blog posts’ project”:

Example of a subheading rewritten by ChatGPT

Make sure your subheadings have proper hierarchy, too. It helps Google to understand the structure and makes it easier to skim for readers.

Headings improve user experience by creating hierarchy

Search intent is the reason behind the search. Unless your page aligns with intent and gives searchers what they’re looking for, your chances of ranking high are slim to none.

To show just how important this is, look at this graph:

Our rankings for "backlink checker" shot up after we matched search intent

This shows our ranking position for the keyword “backlink checker” over time. You can see that in late 2018, we suddenly went from struggling to rank higher than position #5 to consistently ranking #1.

How? By optimizing our page for search intent.

Here’s what the page looked like before:

Our original "backlink checker" landing page

Here’s what it looks like now:

Our current "backlink checker" landing page

Minor design tweaks aside, there’s one important difference: there’s now a free backlink checker embedded. Before it just asked visitors to start a trial of our SEO software.

By catering to what searchers actually wanted, we improved the page’s rankings and its estimated search traffic from ~18K to ~215K monthly visits. That’s a 12X improvement!

Traffic increased by 12X when we improved search intent. That's huge!

But how did we know what searchers wanted?

Back then, we had to do a manual analysis of the top search results. While you can still do that, it’s much easier just to click the “Identify intents” button in Keywords Explorer:

Use the "Identify intents" button in Keywords Explorer to quickly understand what searchers are looking for

This uses the power of AI to analyze the top search results and tell you what searchers are looking for.

Broadly aligning your content with search intent isn’t enough. It should also cover the topic in full to tell searchers everything they want to know. This can help it rank for more keywords and bring more traffic as a result, too.

To find what searchers are looking for, look for common subtopics among top-ranking pages.

There are a few ways you can do this.

Manually check the top-ranking pages

Search for your target keyword in Google, open a few top-ranking pages, and eyeball them for commonalities.

For example, many top results for “best running shoes for flat feet” give a budget option:

Many first-page results for "best running shoes for flat feet" talk about the best budget option

Check the keyword rankings of top-ranking pages

Pages often rank for keywords related to the subtopics they cover. If you see many top pages ranking for these keywords, it’s probably an important subtopic to cover.

Here’s how to find these keywords:

  1. Go to the Competitive Analysis tool in Ahrefs
  2. Enter your page’s URL in the “This target doesn’t rank for” field. (If you haven’t published your page yet, enter the URL you plan to use.)
  3. Enter the URLs of a few similar top-ranking pages in the “But these competitors do” fields
  4. Look for keywords that represent subtopics

For example, the top three results for “best running shoes for flat feet” also rank in the top 10 for many keywords related to men and women’s shoes:

Keyword rankings for top-ranking pages often reveal important subtopics

This tells you that the best picks for men and women is an important subtopic to include.

Find subtopics with the help of AI

It’s currently in beta, but the new AI Content Grader in Ahrefs finds “missing” subtopics. It does this by comparing the content of the three top-ranking pages for your target keyword to your content.

To use it, just enter your target keyword and your page’s URL. (If you haven’t published your page yet, enter the URL you plan to use).

For example, here’s one of its suggestions for the keyword “best running shoes for flat feet”:

AI suggestions for subtopics to include, via Ahrefs' Content Grader

Information gain is a measure of how unique your content is. Google describes a mechanism for scoring this in a patent granted in June 2022.

Two months later, in August 2022, Google launched the helpful content update, which they described as “part of a broader effort to ensure people see more original, helpful content written by people, for people, in search results.”

Are these two things related? Nobody knows. But what we do know is that Google cares about the originality of your content, and almost certainly has mechanisms in place for identifying it. 

This means that covering what other top-ranking pages cover isn’t enough for a well-optimized page. It also needs to bring something new and valuable to the table.

For example, my colleague Chris collected data on how folks deal with low-quality backlinks for his post on removing backlinks:

Research Chris did for his post on removing backlinks

Ryan interviewed three B2B marketers for unique insights for his post on B2B content marketing:

Research Ryan did for his post on B2B content marketing

And I worked with Patrick Stox to create an interactive workflow and template for my content audit guide:

Template I made for my post on how to do a content audit

None of these posts are completely unique. They contain plenty of information that you can probably find elsewhere—and that’s fine. What matters is that we’re bringing at least something new to the table.

Google’s algorithms are designed to surface content that demonstrates E-E-A-T: Experience, Expertise, Authority, and Trust.

If you’re an expert in your field or crafted your content from personal experience, your page already has E-E-A-T. But searchers aren’t going to know that without reading it, so you should try to showcase it as obviously as you can on the page. Let’s look at two ways to do this.

Flash your credentials

Healthline does this extremely well. The very first thing you see on their page about rheumatoid arthritis is that the content was reviewed by a rheumatologist:

Healthline flashes author's credentials right in the intro

Put your uniqueness front and center

If you’ve put time and effort into adding “information gain” to your content, don’t bury it. Make sure searchers see it right away so they know they can trust you.

For example, to curate our list of the best Facebook groups for SEOs, we asked the 12K+ members of our customer-only group to vote for their favorites. Instead of burying this fact deep in the post, we highlighted it in the very first paragraph.

Always put your uniqueness front and center

For a page to earn backlinks (which are a strong ranking factor) and shares, people have to actually consume the content. This isn’t going to happen if the copy is hard to read.

You can use free tools like Hemingway and Grammarly to fix this.

For example, Hemingway gives my recent guide to toxic backlinks a reading grade level of 7:

Use tools like Hemingway and Grammarly to improve readability

Given that 54% of Americans lack literary proficiency (essentially reading below the equivalent of a sixth-grade level), this means we’re alienating at least 46% of readers. If we could bring the reading grade level down, more people would be able to read it.

This isn’t absolutely necessary for every topic. It depends on who your audience is. If they’re technical folks, don’t worry about it. But if you’re publishing content for the masses, accessibility matters.

Here are a few more tips to improve readability:

  • Use short sentences and paragraphs
  • Use bulleted lists
  • Use images

Featured snippets give searchers a short answer right in the search results.

Featured snippets in search results

But here’s the cool thing: Google pulls the snippet from one of the top-ranking pages. This means that if your page already ranks in the top 10 for keywords where Google shows a featured snippet, there might be an opportunity to steal it without much effort.

This is exactly what I managed to do a couple of months ago, which led to a ~38.9% jump in estimated search traffic to our page:

Traffic improvement of 38.9% by optimizing for featured snippets

Here’s what happened:

In Ahrefs’ Site Explorer, I used the Organic Keywords report to find the page’s top 10 keyword rankings with featured snippets we didn’t own.

How to find featured snippet opportunities

Right away, I noticed a trend: many of the keywords were people searching for the most searched thing in Google (singular) rather than a list of top searches (plural):

Example of an obvious opportunity to optimize for featured snippets

After searching for a few of these keywords in Google, I saw that the snippet was pretty much always pulled from this very short paragraph in a competing post:

Example of copy Google was using for a featured snippet

So… I added a similar paragraph to our post (using our data instead):

The copy I added to our page to optimize for featured snippets

This quick big of on-page SEO won our page 163 more featured snippets:

Results of optimizing - 163 more featured snippets

Images on your page can rank in Google Images and send you more traffic. There are three things you need to do to optimize them.

Filenames are descriptive

Google says that these give clues about the subject matter, so avoid random file names like IMG_5497.jpg in favor of something short and descriptive like brown-dog.jpg.

How to name image files for SEO

Alt text is present and descriptive

Google also says that image alt text helps them understand subject matter, so the same rules apply as filenames: keep them short and descriptive.

How to write alt text for SEO

Most content management systems have a place to add alt text in the UI, so there’s no need to mess around with HTML:

Most CMS's make it easy to add alt text

Images are compressed

Compressed images are smaller and faster to load. Some platforms like Shopify claim to do this automatically, but the results aren’t always great. It’s generally better to employ the help of a plugin like TinyIMG or Shortpixel.

Internal links are links from one page on your site to another. They help Google understand what a page is about and boost its authority, which can lead to higher rankings.

For this reason, when you publish a new page, it pays to internally link from there to other relevant pages. This won’t help the new page’s rankings, but it might help the rankings of the pages you internally link to.

To find relevant opportuntities, use Ahrefs’ Site Audit:

  1. Go to the Internal Link Opportunities tool
  2. Enter the URL of your newly-published page in the search box
  3. Choose “Source page” from the dropdown
How to find internal linking opportunities
Site Audit needs to have crawled your site since you published the new page, otherwise this won’t work.

Pay attention to these columns:

  • Source page → your newly-published page, where you will add the link
  • Keyword context → where on the page to add the link
  • Target page → where to link to

For example, here the report is suggesting that I link from my post on toxic backlinks to our bad links guide:

Example of an internal linking opportunity

Citing valuable resources is helpful for readers. Even Google says so.

Does that mean it’s a “ranking factor?” No. But it does improve your content’s credibility with readers, and that can impact things that do matter like links and shares.

This is something we regularly do on the Ahrefs blog:

Example of us linking to sources on the Ahrefs blog

If you’re trying to boost the rankings of the page you’re optimizing, you’ll want to add internal links to it from other pages on your site.

To find relevant opportunities, use Ahrefs’ Site Audit:

  1. Go to the Page Explorer tool
  2. Enter your target keyword (or part of it) in the search box
  3. Choose “Page text” from the dropdown
How to find internal linking opportunities on other pages

This will find pages on your site that mention your target keyword, which may be good places to add internal links.

For example, it tells us that our guide to removing backlinks mentions the word “toxic”:

Example internal linking opportunity

If we search that page, this is the mention:

Perfect place to add an internal link

That looks like the perfect place to internally link to our guide to toxic backlinks.

Schema markup is code that helps search engines understand the information on a page. It also powers many rich snippets you see in Google, which can lead to more clicks.

What rich results look like

If you’re not sure whether schema markup is worth prioritizing for your page, search for your main target keyword in Google and look at the top results. If all or many are rich results, it’s probably worth adding it.

Most of the results for this term show rich snippets, so it's probably worth optimizing for them

If you use WordPress, you can easily add schema with a plugin like Yoast or RankMath. Alternatively, use a tool like Merkle’s Schema Markup Generator to generate the JSON-LD code yourself and add it manually.

Keep learning

Check out even more of our on-page SEO resources:

Article Performance
Data from Ahrefs
  • Organic traffic
  • Linking websites

The number of websites linking to this post.

This post's estimated monthly organic search traffic.