General SEO

The Only SEO Checklist You Need [Incl. Template]

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
  • Organic traffic
    4.64K
  • Linking websites
    312

The number of websites linking to this post.

This post's estimated monthly organic search traffic.

    Remembering every SEO task you need to do for your website is a nightmare. This is why you need an SEO checklist.

    But the usual one-size-fits-all checklists aren’t much use. They don’t take into account what your site is like or your SEO priorities.

    This is why we built a fully customizable one in Google Sheets:

    Preview of our free SEO checklist template

    Let’s take a closer look at how to set up and use it (no Google Analytics account needed).

    Download the SEO checklist template

    To start, make a copy of the checklist template in your Google Drive and configure the “Setup” sheet. This takes about 30 seconds and involves answering two questions.

    1. What platform or CMS does it run on?
    2. Which facets of SEO do you want to see tasks for? (Just uncheck any you’re not interested in.) 
    How to set up the SEO checklist template

    And… that’s it. Your custom SEO checklist is ready in the “Checklist” tab.

    Here, you’ll see checklist items divided into three buckets:

    • Do it once
    • Do it periodically
    • Do it each time you publish a new page

    This structure means you don’t need to complete everything on this SEO checklist today. You can start with the one-time tasks, then the periodic ones, and so on. 

    Let’s get started.

    Sidenote.
    The tasks on this checklist cover a lot of ground. It’s basically a technical SEO, content, off page SEO checklist, and on page SEO checklist all in one. Its aim is to improve your SEO strategy and help you rank higher in Google search engine results pages.

    Here are the SEO tasks you need to complete one time only.

    Install an SEO-friendly theme

    Your website theme changes how it looks. These days, pretty much all themes in Shopify, Wix, and WordPress are reasonably SEO-friendly. But if you want to use a third-party theme, it’s best to run a few quick checks:

    • Is it mobile-friendly? Load up the theme demo on your phone and see how it looks.
    • Is it fast? Plug the demo homepage into Google’s PageSpeed Insights tool. The higher the score, the better. 
    • Does it work cross-browser? Try the demo in Chrome, Firefox, and Safari.
    • Does it have good reviews? Most theme marketplaces show these. 
    • Is it regularly updated? There could be security issues if not. Again, most theme marketplaces will show when it was last updated.

    Plan your website structure

    Having a logical website structure helps visitors to navigate your site. It also ensures Google can find all the pages on your website. This is important, as Google can’t rank pages it doesn’t know about.

    Doing this is easy enough. Just sketch out a mind map: 

    How to plan your website structure

    Each branch on the map should be an internal link to allow search engines and visitors to navigate between pages. 

    People often skip this when setting up a website, so it’s worth doing this even if you’re already up and running. 

    Use a descriptive URL structure

    For new sites, it makes sense to use a clear and descriptive URL structure from the start. This is because URLs help searchers understand what a page is about when it appears in search results. 

    Most website platforms do this out of the box, except for WordPress. Don’t ask me why, but it defaults to using unique IDs like this: website.com/?p=123.

    Luckily, this is easy enough to change. Just go to Settings > Permalinks > Post name.

    Changing the URL structure in WordPress

    Don’t change this for existing sites. It can do way more harm than good. It’s best to stick with it even if you’re using a less-than-ideal structure. 

    Install an all-in-one SEO plugin

    If you’re using WordPress, you’ll need an SEO plugin to help you optimize things like sitemaps and meta tags (more on those later).

    Here are a few good options (you only need one):

    Changing meta tags with the Yoast WordPress plugin

    You probably don’t need to do this if you’re using a different website platform like Shopify. Most of them give you ways to handle SEO basics out of the box.

    Set up Google Search Console

    Google Search Console, much like Google Analytics, is a free tool for tracking your site’s organic search performance. 

    Here are a few things you can do with it:

    • See the keywords you rank for
    • Check ranking positions
    • Find website errors
    • Submit sitemaps
    Google Search Console

    Follow these instructions from Google to set up a Google Search Console account.

    Set up Bing Webmaster Tools

    Bing Webmaster Tools is Bing’s equivalent of Google Search Console. 

    Bing Webmaster Tools

    Is it something you’re going to use all the time? Probably not, as Bing search is not something most SEOs are focused on. But it still doesn’t hurt to set it up, as you may need the data at some point. 

    Learn how to set it up here.

    Create and submit a sitemap

    Sitemaps tell search engines where to find important pages on your site. This is important, as they can only crawl or index pages if they know those exist.

    Here’s what the sitemap looks like for our blog:

    Sitemap example

    You can usually find your sitemap at one of these URLs:

    /sitemap.xml
    /sitemap_index.xml
    /sitemap

    If you can’t find it, check your robots.txt file (domain.com/robots.txt), as its location is often listed there:

    Robots.txt file location

    If you still can’t find it, you probably don’t have one and need to create one. Otherwise, you need to submit it to Google. My guide below teaches you how to do both of these things.

    Make sure your site is indexable

    People aren’t searching the entire web when they search Google. They’re searching Google’s index of pages on the web. If your page isn’t indexable, Google can’t index it, and it won’t appear in the search results. 

    Fortunately, Google can index all webpages unless you tell it that it isn’t allowed. Unfortunately, it’s quite a common mistake to disallow Google from indexing everything—especially with new sites or following site migrations.

    Here’s how to find pages Google can’t index for free with Ahrefs Webmaster Tools (AWT):

    1. Crawl your site with Site Audit
    2. Go to the All issues report
    3. Check for the “Noindex page in sitemap” error
    Finding noindex pages in sitemap using Ahrefs' Site Audit

    Sitemaps list the pages you want search engines to index. If these pages have a “noindex” robots meta tag or x-robots-tag, there’s a problem. You should either remove these pages from the sitemap or delete the noindex tag from the page.

    Add schema markup to your homepage

    Schema markup is structured code that helps search engines to better understand and represent your website in search results. We recommend that all sites add Organization or Person markup to their homepage. 

    Luckily, most website platforms and all-in-one SEO plugins make this easy. You don’t have to actually write any code.

    For example, if you use Yoast in WordPress, you can do this under the “Site representation” settings:

    Schema in Yoast

    All you have to do is choose whether you’re an organization or person, then fill in details like your organization name and links to social profiles. The plugin will write and add the schema markup for you.

    To check that it’s all working correctly, plug your homepage into the schema markup validator. You should see the code:

    Schema example

    Make sure your site is mobile-friendly

    Mobile-friendliness has been a ranking factor for years because most searches happen on mobile devices. You can check how mobile-friendly your site is with the Mobile Usability report in Google Search Console. 

    Mobile Usability report in Google Search Console

    Make sure you’re using HTTPS

    HTTPS is a confirmed lightweight ranking factor.

    https://twitter.com/JohnMu/status/1090196646200307712

    If your website uses HTTPS, it’ll show the “lock” icon in your browser:

    "Lock" icon representing a secure site

    If you don’t see this, you’ll need to install a TLS certificate. 

    Many web platforms and hosts give you one of these for free these days. If they don’t, you can get a free one from Let’s Encrypt. (You just need to make sure your host supports this.)

    Make sure your website is accessible at one domain

    Visitors shouldn’t be able to access your website at multiple locations. It can cause issues for search engine crawlers, as well as indexing, and security issues.

    To check that everything’s in order, plug these four versions of your site into httpstatus.io

    • http://yourdomain.com
    • http://www.yourdomain.com
    • https://yourdomain.com
    • https://www.yourdomain.com

    If everything’s good, three of them should redirect to one of the HTTPS versions:

    How homepage redirects should look for a website

    If that doesn’t happen, you need to set up permanent 301 redirects.

    Make sure your site loads fast

    Page speed has been a ranking factor on desktop since 2010 and on mobile since 2018

    Google has used various signals to measure page speed in the past, but these days it only uses Core Web Vitals. John Mueller confirmed this in 2022:

    https://twitter.com/JohnMu/status/1585865608935067648

    You can check your site’s Core Web Vitals performance for free in Ahrefs Webmaster Tools (AWT)

    1. Crawl your website with Site Audit
    2. Go to the Performance report
    3. Check the “Core Web Vitals” section
    Core Web Vitals report in Ahrefs' Site Audit

    If you see a lot of red here, your site probably needs work. 

    Sidenote.
    To see Core Web Vitals in AWT, you’ll need to connect to Google’s PageSpeed Insights API. This only takes a minute or two. We have step-by-step instructions in Site Audit.

    Install an image compression plugin

    Compressing images makes image files smaller and improves page speed. 

    If you’re using a website platform like Wix or Shopify, there’s not much need to worry about this, as they compress images automatically. But if you’re using WordPress, you’ll need to install an image compression plugin like ShortPixel. 

    Sidenote.
    ShortPixel lets you compress up to 100 images per month for free.

    Get a free Google Business Profile

    Google Business Profiles show up for local Google searches and in Google Maps.

    Example of Google Business Profiles in the local pack

    If your business has a storefront or serves a local area, setting up a Google Business Profile is about the best thing you can do for your SEO. You can sign up for one here. It’s completely free. Just fill out as much information as possible to boost your chances of showing up.

    Backlinks are links to your site from other websites and are one of Google’s top ranking factors. There are many ways to get more of them (link building), but the best starting point is to replicate your competitors’ links.

    There are many ways to do this, but looking for competitors’ directory links is a good starting point. 

    Here’s how to do that:

    1. Go to Ahrefs’ Site Explorer
    2. Enter your homepage URL
    3. Switch the mode to “Exact URL”
    4. Go to the Link Intersect report
    5. Enter a few competitors’ homepages in blank fields
    6. Set the search mode for all pages to “URL”
    7. Hit “Show link opportunities”
    Finding links that multiple competitors have with the Link Intersect report in Ahrefs' Site Explorer

    It’s usually pretty easy to spot local and industry directories on the list:

    Examples of directories

    If you feel like it’d be useful to have your business listed in any of these directories, sign up for an account and make a profile. You’ll get a link too.

    Here are the SEO tasks you should complete when setting up your website and every few months after that.

    Fix broken pages

    Broken links can negatively impact user experience and break the flow of ‘authority’ into and around your website.

    To find broken links on your site for free, use Ahrefs Webmaster Tools.

    1. Crawl your website with Site Audit
    2. Go to the Internal pages report
    3. Click the “Issues” tab
    4. Look for “404 page” errors
    Finding broken pages in Ahrefs' Site Audit

    Here’s how to deal with every broken link you find:

    How to deal with broken links

    Refresh declining content

    Search engine rankings tend to drop over time if you don’t keep pages up to date. This is especially true for topics where searchers are looking for fresh information. 

    Here’s how to find pages that could use a refresh in Google Search Console:

    1. Go to the Search results report
    2. Click the “Date” filter and select “Compare” mode
    3. Choose “Compare last 6 months to previous period”
    4. Hit Apply
    5. Click the “Pages” tab in the table
    6. Sort the results by “Clicks Difference” from low to high
    Finding pages that could use a refresh in Google Search Console

    For example, our list of top Google searches received 75K+ fewer organic visits in the last six months than in the previous six months. This is probably because searchers want an up-to-date list of queries, but we last refreshed the page a few months ago. 

    Do a content gap analysis

    A content gap analysis finds the keywords your competitors rank for but you don’t. These often point to topics that it would also make sense for you to create content about.

    Here’s how to do one in Ahrefs:

    1. Go to the Competitive Analysis tool
    2. Enter your domain as the target
    3. Enter a few competitors 
    4. Click “Compare”
    Doing a competitive analysis in Ahrefs' Competitive Analysis tool

    You will then see keywords that at least one competitor ranks for in the top 10, but you don’t rank at all. 

    For example, three of our competitors rank in the top 10 for “rankbrain”:

    Examples of content gaps

    This is probably a topic we should consider covering. 

    Update your Google Business Profile

    If you’ve ever arrived at a restaurant to find it closed despite Google saying it’s open, you already understand the importance of keeping your Google Business Profile up to date. Given that it only takes a few minutes every couple of months, it’s not worth risking bad reviews over.

    Here are a few things to double-check each time:

    • Opening hours
    • Holiday opening hours (e.g., Christmas)
    • Phone number
    • Products and services

    I’d also recommend using the “posts” feature to keep followers of your business up to date. 

    For example, this bar has a post about its upcoming Christmas Market: 

    Example of posts on Google Business Profiles

    (Pretty impressive planning, given that I’m writing this in July.)

    Check for other technical issues

    Hundreds of technical issues can hurt your site, and they can pop up at any moment. That’s why it’s super important to check for them periodically and fix any major issues that come up.

    You can do this for free with Site Audit in Ahrefs Webmaster Tools. Just choose the option to run scheduled crawls when setting up your project (weekly or monthly is fine for most sites).

    How to schedule crawls in Ahrefs' Site Audit

     

    Site Audit will then crawl your site for 140+ potential SEO issues. It’ll do this periodically according to the schedule you set and send you email alerts about new issues:

    Email alert from Ahrefs' Site Audit

    If you click “View” on any issue, it’ll take you to Site Audit and show the URLs affected:

    Showing 404 pages in Ahrefs' Site Audit

     

    You can then click the “Why and how to fix” button to learn how to deal with each issue.

    Instructions on how to fix issues in Ahrefs' Site Audit

    Here are the SEO tasks you should complete when adding new pages to your website that you want to perform well in organic search.

    Find a primary keyword to target

    Each page on your website should target one main keyword. You should do keyword research periodically to find topics to target, but it’s also important to make sure you’re targeting the best keyword each time you publish a new page.

    For example, let’s say you were writing a post about the best protein powders. There are lots of ways people could search for this, such as:

    • what is the best protein powder
    • best protein supplements
    • best protein shakes

    Which one of these keywords should be your primary target, if any?

    Luckily, there’s an easy way to figure this out. Just search for your topic in Ahrefs’ Keywords Explorer and look at the Parent Topic. This is usually a more popular way of searching for the same thing.

    Parent Topic in Ahrefs' Keywords Explorer
    Sidenote.
    Parent Topic isn’t 100% foolproof. It simply shows the keyword sending the most search engine traffic to the top-ranking page for your keyword. This is usually the best keyword to target but not always, so don’t let this trump common sense.

    Assess search intent

    People tend to want to see one of these types of content when they search Google (or another search engine):

    • Blog post
    • Interactive tool
    • Video
    • Category page
    • Product page

    Figuring out which one that people searching for your keyword want to see is known as assessing search intent. This is a crucial step if you want to stand the best chance at ranking, as Google wants to rank content that searchers are looking for.

    How do you do it? 

    Look for the most common type of content among the top-ranking results. 

    For example, interactive tools dominate the first page for “days between dates.” But videos dominate the first page for “excel for beginners”:

    Example of how search intent varies

    From here, we recommend digging deeper into intent to understand the best content format and angle for the job. Learn more about that in the linked guide below.

    Assess your chances of ranking in Google

    Understanding the ease or difficulty of ranking for a keyword helps you to prioritize the opportunity and set realistic expectations.

    For a very rough estimate, you can use the Keyword Difficulty score in Keywords Explorer.

    Keyword Difficulty (KD) score in Ahrefs' Keywords Explorer

    Just don’t rely on this entirely, as it only takes backlinks into account. Other factors may indicate a hard keyword to rank for, like: 

    • High-quality backlinks to the top-ranking pages.
    • High topical relevance of the top-ranking sites.
    • Mainly big brands in the top 10.
    • A dominant content type that you don’t have the resources to create.

    Research what people want to know

    Let’s say that you want to rank for “affiliate marketing.” It’s clear from analyzing intent that searchers are looking for a blog post. But what specifically do they want to know? This is the question you need to answer if you want to produce the best content in Google’s eyes.

    One way to answer this question is to look for commonalities between the top-ranking pages.

    For example, all top-ranking pages for “affiliate marketing” have a definition:

    Example of a common subtopic among top-ranking pages

    This works, but it can be quite time-consuming. 

    It’s often quicker to run a page-level content gap analysis on the top-ranking pages to find keywords they rank for. Some of these often point to subtopics the pages cover.

    Here’s how to do it in Ahrefs: 

    1. Go to the Competitive Analysis tool
    2. Enter the URL of your page as the target (add the URL you plan to use if you haven’t created your page yet)
    3. Enter the URLs of a few top-ranking pages as targets
    4. Click “Compare”
    Running a competitive analysis at the page level to find important subtopics

    From there, go to the Content Gap report and look for keywords that represent subtopics:

    Examples of subtopics in the Content Gap report

    Optimize your headings and subheadings

    Google looks at headings and subheadings to better understand a page’s content. This makes them logical places to include target keywords related to your content. 

    For example, this would be a logical way to structure a page about fruits and vegetables:

    • H1: Fruits & Vegetables 
      • H2: Fruits
        • H3: Apple
        • H3: Orange
      • H2: Vegetables
        • H3: Carrot

    Not only does this naturally lead you to include keywords in headings and subheadings, but it also makes your content easier to read and skim. 

    How headings and subheadings improve readability

    Hook readers with your intro (blog posts only)

    If you can’t convince readers that your page offers what they want within a few seconds, they’ll hit the “back” button. This is bad because if they never read your content, they won’t convert, share, or link to it. 

    The PAS formula is a good place to start for a compelling intro.

    The PAS formula

    For example, let’s say we were writing a post about how to cook the perfect steak. 

    We’d start by describing the problem

    The PAS formula — problem

    Then we’d agitate the problem:

    The PAS formula — agitate

    Before finally revealing the solution

    The PAS formula — solution

    Edit your copy for simplicity

    In all, 50% of the U.S. population read below an eighth-grade reading level.

    How well U.S. adults read

    For that reason, you should keep things simple unless you want to alienate 1 in 2 visitors. That means:

    • Using short sentences and paragraphs.
    • Using simple words and phrases.
    • Avoiding jargon.

    Hemingway is a free, browser-based tool that can help with this. It tells you the current grade level of your copy and suggests improvements. 

    Hemingway's readability grade

    People often think that linking to other websites is somehow bad for SEO. This isn’t true. It probably won’t massively help your SEO, but it won’t hurt it either (unless you’re linking to shady stuff).

    Here’s what Google’s John Mueller had to say about linking out to other sites:

    Linking to other websites is a great way to provide value to your users. Oftentimes, links help users to find out more, to check out your sources and to better understand how your content is relevant to the questions that they have.

    Does this mean you should force links to other sites into your content? Definitely not. It just means you should add them if and when it makes sense, like if you need to reference a source.

    Make content easier to consume with images

    Nobody wants to read a big wall of text. It’s overwhelming and can lead people to bounce. Images help solve this by breaking up your copy and aiding visual comprehension. 

    Even better, images can rank in Google Images and send even more traffic your way. 

    For example, according to Search Console, Google Images has sent our blog almost 20K organic visits in the last three months:

    Google Images traffic in Search Console

    This would undoubtedly be even higher if you were in a visual niche like food or design.

    That said, don’t just shoehorn random images into your content for the sake of it. Make an effort to use images that actually serve a purpose and help readers visualize things. 

    Optimize your images

    If you’ve already done the “do it once” items on this SEO checklist, you should have already installed an image compression plugin. But there are a couple of other image optimizations you should do on a page-by-page basis:

    1. Name images descriptively – Don’t use generic image filenames like IMG_875939.png or Screenshot-2021-06-01. Use descriptive filenames like black-puppy.png or eiffel-tower.jpg. 
    2. Add descriptive alt text – Alt text replaces an image on the page when it fails to load. It’s also helpful for those using screen readers. Learn more here.

    Set a compelling title tag and meta description

    Title tags and meta descriptions show up in Google’s search results to help searchers understand what the page is about. 

    Example of title tag and meta description in Google's search results
    Sidenote.
    Google only uses meta descriptions for the descriptive snippet in search results 62.78% of the time. The rest of the time, it uses something else from the page. This makes the title tag more important than the meta description by far.

    It’s best practice to include your target keyword (or a close variation) in the title tag where it makes sense. Beyond that, it’s about making both the title and meta description as compelling as possible.

    Here are a few tips:

    • Keep them short – Under 70 characters for the title tag and under 160 for the meta description. This helps prevent truncation.
    • Match search intent – Make it clear to searchers that you have what they’re looking for.
    • Don’t clickbait – Be honest about what’s on your page. Don’t over-promise. 
    • Include the year – In the title tag for topics that demand freshness.
    TIP

    If you’re struggling to come up with a compelling title or meta description, try asking ChatGPT to do the work for you:

    Using ChatGPT to come up with titles

    Set a short descriptive URL slug

    The URL slug is the last part of the URL:

    Example of a URL slug

    Google says to use words that are relevant to your content here. This also helps searchers to understand what your page is about before clicking. 

    The easiest way to do this is to set the slug to your target keyword:

    https://ahrefs.com/blog/seo-checklist/

    However, this doesn’t always make sense. It depends on your URL structure. 

    For example, our SEO glossary targets the keyword “SEO glossary.” But as we published this under ahrefs.com/seo, we only used glossary for the slug and not seo-glossary to avoid unnecessary repetition of “SEO.”

    URL slug for our SEO glossary

    Plus, shorter is always better because long URLs tend to truncate on the SERPs:

    URL slug that's cut off

    Add schema markup for rich snippets

    Schema markup can impact how your pages appear in the search results.

    For example, here’s a page that currently ranks for “pizza dough recipe”:

    Rich snippets example

    The star ratings, review count, and preparation time all appear, thanks to schema markup.

    If you want to be eligible for these kinds of “rich results,” here’s a full list of features from Google, along with the structured data you need to use. 

    Implementation-wise, you can either write the markup yourself and add it to your page or use a plugin to create it for you. Yoast works with a fair few of these.

    How to add schema markup in Yoast

    Add a table of contents (blog posts only)

    A table of contents provides jump links to different sections on the page. 

    Example of a table of contents

    Adding these to long blog posts makes sense to help searchers navigate them. They can also help you win sitelinks in the search results: 

    Example of sitelinks

    Internal links help Google find pages on your website and understand what they’re all about. 

    Most website platforms automatically add internal links to new pages from their “parent” pages, but you can boost new pages further by adding more contextual internal links. 

    For example, when we publish new blog posts, WordPress automatically internally links to them from our blog homepage:

    Example of an internal link to a new post on Ahrefs' blog homepage

    This is good, but there are probably plenty of other places where it would make sense to link to this post on our blog. By adding internal links there, we can send more people to this guide and tell Google how important we think it is.

    Here’s how to find internal link opportunities for free with Ahrefs Webmaster Tools (AWT): 

    1. Crawl your website with Site Audit
    2. Go to the Page Explorer
    3. Search for your target keyword in the “Page text” of other pages
    Finding internal link opportunities in Ahrefs' Site Audit

    It’s then simply a case of visiting the pages in the returns, searching for your keyword on the page, and adding a contextual link if and where it makes sense.

    Here’s one we added from our list of free keyword research tools:

    Example of a contextual internal link

    Promote your content with outreach (optional)

    People can’t link to content if they don’t know it exists. That’s why it pays to do link building outreach—especially if you’re trying to rank for a competitive keyword.

    There are many ways to do this, but the Reverse Skyscraper Technique is a good starting point.

    Here’s the process:

    1. Find competing, lower-quality pages with backlinks
    2. Ask people linking to them to link to you instead

    To find competing pages with backlinks, just plug your keyword into Ahrefs’ Keywords Explorer and scroll to the SERP overview: 

    Referring domains (linking websites) to the top-ranking pages, via Ahrefs' Keywords Explorer

    Next, visit the pages and look for reasons why your content is better, like:

    • Their content is inaccurate and outdated.
    • They don’t explain things in detail.
    • Their design is bad.

    It’s then simply a case of pitching your link as the replacement to anyone linking to that page. To find these, plug the page into Ahrefs’ Site Explorer and check the Backlinks report. 

    Final thoughts

    SEO is an ongoing process, and it would be impossible to include everything that’s important in one ultimate SEO checklist. Having said that, if you tackle the checklist items above, you’ll be well on your way to higher rankings. You’ll also probably be well ahead of your competition. That’s all that matters.

    If you’re looking to learn more about executing on the SEO checklist, check out our free SEO training course.

    Want even more SEO ideas? Check out our list of SEO tips.

    Or if you want SEO tools, check out our list of free SEO tools.

    Article Performance
    • Organic traffic
      4.64K
    • Linking websites
      312

    The number of websites linking to this post.

    This post's estimated monthly organic search traffic.