Checklist · 34 checks

The SEO Checklist We Run on Every Page

Every check we run on our own site, with why it matters, how to check it and how to fix it. Tick them off as you go. Your progress saves in this browser.

0 of 34 done

A few people asked me to look at their websites this month. I expected to find something clever wrong. I found the basics missing.

So I looked wider. 101 small sites, all under 1,000 visits a month, went through our free site check between September 14 and October 8. 99 of them scored 90 or more out of 100 on an automated on-page SEO score. Of those 99, 82 didn't have a single keyword on page one of Google.

Passing a list of tags isn't the same as being built to rank. This is the checklist we run on every page of our own site instead. In the last 90 days that site earned 1,209,883 Google impressions and 7,963 clicks, on a domain that's six months old.

Quick answer
  • Set the site up once: unique titles under 60 characters, meta descriptions of 120 to 155, one H1, canonical tags, share cards, structured data and a sitemap with real dates.
  • Build every page the same way: a short intro, a Quick Answer, 5 or more H2s, an FAQ and links in both directions.
  • Choose topics on real numbers: search volume, the referring domains of the top 10, a soft page one and no page of your own already chasing it.
  • Never trust a guessed search volume: not from a person, and not from an AI.

Set the site up once

Site-wide settings. You do them once, and every new page inherits them.

  1. Under 60 characters. The words people search go first, your brand goes last.

    Why it matters, and how to check
    Why it matters
    The title is the blue link in Google. It decides more clicks than anything else on the results page, and it tells Google what the page is about.
    How to check
    Search site:yourdomain.com in Google and read down the titles. Look for "Home", repeats, and anything cut off with an ellipsis.
    How to fix
    Write each one as an ad for that page. "Home | Acme" says nothing. "Payroll Software for Small Restaurants | Acme" says everything.
    What we do
    A script checks every title's length before a post ships.
  2. 120 to 155 characters, with the main keyword in the first clause and one reason to click.

    Why it matters, and how to check
    Why it matters
    It's the gray text under the link. Google often rewrites it, but it uses yours when yours matches the search, and a good one wins clicks at the same ranking.
    How to check
    View the source of each key page and search for name="description". Missing, under 120, over 155 or copied across pages all need fixing.
    How to fix
    Lead with the keyword, then a number, a result or a promise. For example, "Run payroll for a 12-person restaurant in 10 minutes a week. Tips, overtime and tax filings handled for you. Free for 30 days."
    What we do
    The same script checks every description.
  3. One H1 per page. On the homepage it says what you offer, in words a customer would search.

    Why it matters, and how to check
    Why it matters
    The H1 is the page's headline for readers and for Google. A slogan tells neither of them what you sell.
    How to check
    View the source and count the <h1 tags. Then read your homepage H1 out loud. Would a stranger know what you sell?
    How to fix
    "Build the future of work" tells Google nothing. "Payroll software for small restaurants" tells it everything. Keep the slogan for the line underneath.
    What we do
    Every post's H1 comes from its title, so there's always exactly one.
  4. Lowercase, hyphens, the keyword, and nothing else.

    Why it matters, and how to check
    Why it matters
    Short URLs are easier to read, share and link to, and the words in them tell people what to expect before they click.
    How to check
    Look for dates, ID numbers, ?p=123 and long strings of filler words in your URLs.
    How to fix
    /blog/meta-description-length/ beats /blog/2026/10/08/post-1234/. Only change a live URL if you redirect the old one.
    What we do
    Slugs stay keyword-clean. A numbered variant like /blog/7-best-x/ redirects to /blog/best-x/.
  5. Each page points at its own clean URL.

    Why it matters, and how to check
    Why it matters
    One page can load at several addresses, such as with and without www, or with tracking codes on the end. The canonical tells Google which one counts, so your signals aren't split.
    How to check
    View the source and search for rel="canonical". It should match the address you want ranked, exactly.
    How to fix
    Most site builders have a setting for it. On a coded site, set it once in the shared layout.
    What we do
    Every post sets its canonical from its slug automatically.
  6. A 301 to the new home, in one hop.

    Why it matters, and how to check
    Why it matters
    Old URLs keep their links and their traffic for months. A 404 throws both away.
    How to check
    In Search Console, open Pages and look at "Not found (404)". Then try a few old URLs yourself.
    How to fix
    Add a 301 from each old URL straight to the final one. If A goes to B and B goes to C, point A at C.
    What we do
    Our redirects file holds about 120 rules.
  7. og:title, og:description and a 1200x630 og:image.

    Why it matters, and how to check
    Why it matters
    When someone pastes your link into X, Slack or iMessage, this is the preview. No card means a bare link people scroll past.
    How to check
    Paste a few of your URLs into a message to yourself and see what shows.
    How to fix
    Set a default image for the whole site, then give your most-shared pages their own.
    What we do
    A script draws a card for every post when the site builds. Nobody makes them by hand.
  8. Organization and Person structured data on every page, each with an @id.

    Why it matters, and how to check
    Why it matters
    It tells Google and AI tools who runs the site and who wrote each page, so your brand and your author are recognized as the same thing everywhere.
    How to check
    Run your homepage through Google's Rich Results Test or the Schema Markup Validator and look for Organization.
    How to fix
    Add one JSON-LD block to your shared layout with your name, logo, URL and social profiles. Point every article's author and publisher at it.
    What we do
    Every page carries both, and each post's author and publisher point at them by @id.
  9. BlogPosting and BreadcrumbList on posts. FAQPage, HowTo or ItemList where they fit. Product, SoftwareApplication or LocalBusiness on what you sell.

    Why it matters, and how to check
    Why it matters
    It spells out what the page is, so search engines and AI tools don't have to guess.
    How to check
    Run one page from each template through the Rich Results Test. Fix errors before warnings.
    How to fix
    Add the markup to the template, not page by page, so every new page gets it.
    What we do
    Every post gets BlogPosting, breadcrumbs and FAQPage. Step-by-step posts add HowTo, and ranked lists add ItemList.
  10. Every page you want indexed, nothing you don't, each with its real last-modified date.

    Why it matters, and how to check
    Why it matters
    It's how Google finds new pages and notices changed ones. When every date is the same, it stops trusting them.
    How to check
    Open /sitemap.xml, or whichever file robots.txt names. Look for redirects, 404s, noindexed pages and identical dates.
    How to fix
    Generate it from your content, using each page's real updated date.
    What we do
    Our sitemap takes each post's "updated" date, so editing a post moves it.
  11. It names your sitemap and blocks nothing you want ranked.

    Why it matters, and how to check
    Why it matters
    One stray Disallow line can hide a whole site from Google.
    How to check
    Open /robots.txt. Read every Disallow line and ask whether you meant it.
    How to fix
    Add a Sitemap: line with the full URL. Remove blocks left over from a staging site.
    What we do
    Ours is three lines. Allow everything, and here's the sitemap.
  12. Your domain verified and your sitemap submitted.

    Why it matters, and how to check
    Why it matters
    It's the only place Google tells you what you rank for, what it couldn't index, and why.
    How to check
    Log in. If your site isn't there, nothing on this list is being measured.
    How to fix
    Add a Domain property, verify it with a DNS record, then submit your sitemap under Sitemaps.
    What we do
    Our daily SEO work starts from Search Console.
  13. Your text is in the HTML the server sends, not added after the page loads.

    Why it matters, and how to check
    Why it matters
    Many AI crawlers don't run JavaScript. If your text only appears after it runs, those crawlers see a blank page. In our free site check, 5 homepages came back with zero words.
    How to check
    View the page source (not Inspect) and look for your headline and body text. Or run curl -s yourdomain.com in a terminal.
    How to fix
    Turn on server rendering or static generation. Most frameworks have it as a setting.
    What we do
    Our site is built as static HTML, so every word is there before any script runs.
  14. A plain-text map of your site at /llms.txt.

    Why it matters, and how to check
    Why it matters
    It tells AI tools what you do and where your key pages are. Nobody has shown it moves rankings, so it's a 10-minute job, not a priority.
    How to check
    Open /llms.txt on your domain.
    How to fix
    Write a few lines on what you do, then list your key pages with one sentence each.
    What we do
    Ours is written by hand.

Build every page the same way

Part 1 is the frame. This is what goes inside it. Every post on our site has the same parts in the same order, so nothing gets forgotten on a busy day.

  1. An author, a published date, and an updated date that moves when the page really changes.

    Why it matters, and how to check
    Why it matters
    Readers trust a page more when they can see who wrote it and when it was last checked.
    How to check
    Is a date visible near the top? Does dateModified in the structured data match it?
    How to fix
    Bump the updated date on every real edit, not on a typo fix. Never fake freshness.
    What we do
    Every edit to a post bumps its updated date, which feeds the sitemap and the structured data.
  2. 2 to 4 short paragraphs. The problem, who it's for and what they'll get.

    Why it matters, and how to check
    Why it matters
    Readers decide in seconds whether they're in the right place.
    How to check
    Read only the intro. Do you know what the page will give you?
    How to fix
    Cut the history lesson and the "in today's fast-moving world". Start with the problem.
    What we do
    Our build fails if a setup or migration notice sits above a post's opening.
  3. 4 to 5 bullets straight after the intro, before the first H2.

    Why it matters, and how to check
    Why it matters
    Skimmers get the answer fast and trust the rest of the page. AI Overviews and assistants lift short, self-contained chunks, and a tight list is the easiest thing on a page to quote.
    How to check
    Could someone who reads only the box leave with the answer?
    How to fix
    Watch out for one-line answers. In our July data, pages answering a one-line question got 0.38% click-through at position 6.6, while pages answering a how-to or shortlist question got 1.79% at 9.2. Give the answer in the box, and keep the how, the examples and the detail in the body.
    What we do
    Every post on our site has one.
  4. Short headings, each a section someone might look for, some phrased as questions.

    Why it matters, and how to check
    Why it matters
    Headings are how skimmers, Google and AI tools find the part they need. They double as your table of contents.
    How to check
    Read only the H2s. Do they outline the page? Would anyone search for any of them?
    How to fix
    "How long should a meta description be?" beats "Length considerations".
    What we do
    Our table of contents is built from the H2s, so a vague heading stands out straight away.
  5. Each section answers one thing, completely.

    Why it matters, and how to check
    Why it matters
    An AI tool that quotes one section should get a full answer from it, without the paragraphs around it.
    How to check
    Read a section on its own. Does it still make sense?
    How to fix
    Split any section that answers two questions. Open with the subject by name, not "this" or "it".
  6. In the first fifth of the page, as the answer to the reader's problem.

    Why it matters, and how to check
    Why it matters
    Readers who get their answer and leave never find out you sell the fix.
    How to check
    Scroll a fifth of the way down. Has your product or service been named yet?
    How to fix
    Put it where the problem is described, not in a banner.
    What we do
    We audited 195 of our own posts in August. 110 didn't name our product until past halfway, and 6 never did. Now it's a rule.
  7. 3 or more links out, to docs, studies and official pages.

    Why it matters, and how to check
    Why it matters
    It shows where your claims come from and lets readers check them.
    How to check
    Count your outbound links. Do they go to the original source, or to someone else's summary of it?
    How to fix
    Link the source itself. Skip Wikipedia.
  8. 2 or more links to your own pages in the body, 3 related posts at the end, and a link back from an older post.

    Why it matters, and how to check
    Why it matters
    Links are how Google finds new pages and works out which ones belong together. A page nothing links to is hard to find.
    How to check
    Take your newest page. How many of your other pages link to it?
    How to fix
    Every time you publish, add a link to the new page from at least one older page on the same topic.
    What we do
    Our build refuses to publish if a related-post link points at a page that doesn't exist.
  9. 3 to 5 questions people actually ask, 40 to 60 words each, marked up as FAQPage.

    Why it matters, and how to check
    Why it matters
    Google stopped showing FAQ rich results for most sites in 2023. We still write them. They catch long-tail questions, they match how people phrase questions to AI assistants, and each answer is easy to quote.
    How to check
    Are they real questions? Look in Search Console queries, "People also ask" and your inbox.
    How to fix
    Answer the question in the first sentence, then add one useful detail.
    What we do
    Every post has one.
  10. 1,500 words for a post, 2,000 for a guide.

    Why it matters, and how to check
    Why it matters
    The floor makes sure the topic is covered. It's not there to pad. In our free site check, 36 of 101 small homepages had fewer than 500 words, which gives Google very little to rank.
    How to check
    Count the words rather than guessing. Then look for any section that adds nothing.
    How to fix
    If you're short, the page is usually missing a section someone would search for. Find that before adding words.
  11. Lengths, structured data, links and one cold read.

    Why it matters, and how to check
    Why it matters
    Most SEO mistakes are small. They're cheaper to catch before Google indexes them.
    How to check
    Check the title and description lengths, test the structured data, click every link, and read it once as a stranger would.
    How to fix
    Write the checks down and run the same list every time, or script them. The check you skip is the one that ships broken.
    What we do
    A script checks lengths and structured data before every post ships.

Choose what to write

Parts 1 and 2 make a page able to rank. They don't decide whether anyone is searching for it. This is where most sites go wrong, and it needs real numbers. Ask an AI for a keyword's search volume and it'll give you a confident guess.

  1. The job your product does, in their words, before they've heard of you.

    Why it matters, and how to check
    Why it matters
    People rarely search for a product. They search for the problem it solves.
    How to check
    Ask five customers what they would have typed into Google before they found you.
    How to fix
    Write down 20 phrases. They're your starting points for keyword research.
  2. Monthly volume from a live keyword tool.

    Why it matters, and how to check
    Why it matters
    A topic nobody searches for can't send you traffic, however well it's written.
    How to check
    Look each phrase up. Impressions in your own Search Console are a hint, not proof.
    How to fix
    If an AI gave you the number, check it. They guess, and they guess confidently.
    What we do
    We use ContextBolt SEO, the tool we build, for volume, difficulty and intent.
  3. How many sites link to each page in the top 10. Not just the difficulty score.

    Why it matters, and how to check
    Why it matters
    A difficulty score squashes page one into one number, and it says nothing about your site. The average referring domains per page tells you what it takes to get onto that page, and you can compare it with what you already rank for.
    How to check
    Calibrate against yourself. Find the hardest keyword you already rank in the top 10 for, and note its page-one average. Topics under that line are in reach.
    How to fix
    If the average is far above your line, park the topic. Look for a longer, more specific version of it with a weaker page one.
    A real example
    "jira mcp" had 3,600 searches a month and a difficulty of 51, and its top 10 averaged 77 referring domains per page. We killed it. "recover deleted bookmarks" had 140 searches and a difficulty of 0, and its top 10 averaged 3. We wrote it.
    What we do
    ContextBolt SEO's difficulty lookup returns the top 10's referring domains alongside the score.
  4. Forum threads, Reddit and old articles in the top 10 mean you can get in.

    Why it matters, and how to check
    Why it matters
    A page of big publishers is close to impossible for a small site. A page of stale posts is an open door.
    How to check
    Search the keyword in a private window. Note who's there and how old their pages are.
    How to fix
    Ten big brands means walk away, however good the volume looks.
    What we do
    We read the results page with ContextBolt SEO's search results lookup.
  5. Search your own site and Search Console before you write.

    Why it matters, and how to check
    Why it matters
    Two of your pages chasing one keyword split the result.
    How to check
    Search site:yourdomain.com plus the keyword, then filter Search Console by the query.
    How to fix
    If the old page earns clicks, improve it instead. If it earns nothing, write the new one and retarget the old page in the same change.
  6. The page should lead to something your product really does.

    Why it matters, and how to check
    Why it matters
    Traffic that can't become a customer is a vanity number.
    How to check
    Could you write the page's last section as "here's how we do this"?
    How to fix
    If you can't, drop the topic, or pick the version of it your product does solve.
  7. The topic, the date and the number that killed it.

    Why it matters, and how to check
    Why it matters
    Otherwise the same topic gets proposed again next month, and you pay to research it twice.
    How to check
    Is there one place where rejected topics live?
    How to fix
    Keep one list, a doc or a spreadsheet, and check it before you research anything new.
    What we do
    Since August we've killed more topics than we've written.
  8. Pages in positions 5 to 15 with plenty of impressions and few clicks.

    Why it matters, and how to check
    Why it matters
    They're the cheapest wins you have. Google already thinks they're relevant.
    How to check
    In Search Console, open Performance, show average position, and sort pages by impressions.
    How to fix
    A better title, a sharper description or the missing section usually moves them.
    What we do
    Our daily optimize run fixes one of these every morning. With Search Console connected, ContextBolt SEO lists them for you.
  9. Ask ChatGPT, Gemini and Claude what your customer would ask.

    Why it matters, and how to check
    Why it matters
    More buying questions start there now. In our free site check, 79 of 86 small sites weren't named in ChatGPT's answer to a customer-style question.
    How to check
    Note who gets named and which pages get cited.
    How to fix
    The cited pages show you what the AI trusts. Answer the same question better, and get mentioned where they're mentioned.
    What we do
    ContextBolt SEO checks which brands ChatGPT, Gemini, Claude and Perplexity name for your questions.

Frequently asked questions

Something else on your mind? Get in touch.

What should an SEO checklist include?

Three parts. Site setup you do once, covering titles, meta descriptions, one H1, canonical tags, share cards, structured data and a sitemap. A fixed structure for every page, with an intro, a Quick Answer, clear H2s, an FAQ and internal links. And a way to choose topics using real search volume and page-one strength.

How long should a title tag and meta description be?

We keep titles under 60 characters, because Google usually cuts off anything longer, with the main keyword first. Meta descriptions run 120 to 155 characters, with the keyword in the first clause and one reason to click. Every page gets its own. Duplicates across pages waste both.

Why does a site pass an SEO checker and still not rank?

Checkers grade tags. They can't tell you whether anyone searches for what's on the page, or whether page one is winnable. Of 101 small sites through our free site check, 99 scored 90 or more on an automated on-page score. Of those 99, 82 had no keyword on page one of Google.

Do I need a paid tool for this checklist?

Not for Parts 1 and 2. View source, Google's Rich Results Test and Search Console cover them, and all three are free. Part 3 needs live keyword data, because volume and difficulty change every month. We use ContextBolt SEO, the tool we build, which has a 7-day free trial.

How often should I run an SEO checklist?

Part 1 once, then again after any redesign or platform move. Part 2 on every page before it goes live. Part 3 every week, because that's where new topics and quick wins come from. Our own site runs the Part 3 checks every day, on a schedule.