You published a great page. It's not ranking. So you rewrite the copy, add a few keywords, maybe build a backlink. Nothing moves.
Here's the uncomfortable part: the copy was probably fine. The problem was in the HTML the page shipped with. A canonical tag pointing at the wrong URL. A title Google threw out and rewrote. Zero structured data telling AI engines what the page even is. None of that shows up when you read the page like a human. All of it shows up when a crawler reads it like a machine.
An on-page SEO audit is how you read your own page the way Google and ChatGPT read it. It's a page-by-page check of the technical and content signals in your HTML: title, meta, canonical, headings, schema, links, and crawlability. Done right, it finds the silent defects costing you rankings and AI citations before you waste another month on the wrong fix.
This guide gives you the 2026 checklist, a simple framework to organize it, and a way to run the whole thing from your AI in minutes. As of July 2026, AI Overviews appear on more than 20% of Google searches and reshape which pages get seen. The pages that win are the ones machines can read cleanly. Let's make yours one of them.
What an on-page SEO audit actually checks#
An on-page SEO audit is defined as a page-level inspection of every signal a search engine or AI model reads directly from your HTML, scored against what actually drives rankings and citations today. It covers three things: whether machines can reach the page, whether they can understand it, and whether they can lift an answer from it.
That's broader than "check your keywords" and narrower than a full site crawl. On-page means the individual page. It's distinct from off-page (backlinks, mentions) and overlaps with technical SEO where the two meet: canonical tags, status codes, and structured data live in both camps.
Most audits stop at Google. That's the 2023 playbook. In 2026 the same HTML feeds ChatGPT, Perplexity, Gemini, and Google's AI Overviews, and they parse it more literally than a human ever would. A messy page doesn't just rank lower. It gets skipped as a source. The audit below treats both audiences as one job, because they read the same file.
The Crawl-Read-Cite framework#
Every page earns visibility by clearing three gates in order. Miss an early one and the later ones don't matter. That's the whole model, and it's the fastest way to prioritize a messy audit: fix the earliest broken gate first.

Here's what each gate covers:
Crawl is the access layer. HTTP status, robots directives, canonical tags, viewport, and secure loading. If a page fails here, it's invisible no matter how good the content is.
Read is the meaning layer. Title, meta description, heading hierarchy, image alt text, and internal links. This is where machines decide what the page is about.
Cite is the answer layer. Structured data, entity relationships, direct answers, and freshness. This is what makes AI engines comfortable quoting you.
Kevin Indig, one of the most-cited independent SEO analysts, put the mindset well: "The alpha is in the content and the infrastructure behind it. The dashboard just tells you if it worked." An audit is how you check the infrastructure. Buying another rank tracker is not.
You're auditing the wrong pages#
Here's the contrarian part. Most founders audit their blog posts obsessively and never audit their money pages. That's backwards. Your homepage, pricing page, and feature pages carry the most commercial intent and usually the worst on-page hygiene, because they were built by a designer, not for a crawler.
Blog posts get audited because tools make it easy. Landing pages get a pretty hero section and a canonical tag nobody checked. Then everyone wonders why the "/pricing" page doesn't rank for the product category.
Run your next audit on your five highest-value URLs first: homepage, primary product or pricing page, top two feature pages, and your best-converting blog post. Fix those before you touch anything else. The rankings you actually care about live there. Your striking-distance keywords sitting on page two are usually one or two on-page fixes away from page one.
Layer 1 — Crawl: can machines reach the page?#
Start here, always. A page that can't be crawled or indexed is a page that doesn't exist to search. These are the catastrophic, silent failures, and they're the most common thing an audit catches.
Check these five things first:
Check | What breaks | Fast fix |
|---|---|---|
HTTP status | A page returning 404, 500, or a redirect chain wastes crawl budget and drops from the index | Return a clean 200. Collapse redirect chains to a single hop |
Robots / noindex | A stray | Remove the directive. Confirm the page is allowed in robots.txt |
Canonical tag | A canonical pointing at another URL (or at localhost) tells Google the real page is elsewhere | Use one self-referencing, absolute canonical per page |
Viewport | A missing viewport meta tag fails mobile-first indexing | Add |
Mixed content | HTTP assets on an HTTPS page trigger browser and trust warnings | Serve every asset over HTTPS |
The canonical trap deserves a callout. A canonical that conflicts with a noindex tag is one of the most common silent indexation killers, and a Next.js site with an unset metadataBase will happily ship a canonical pointing at http://localhost. That single line can deindex a page while everything looks perfect in the browser. If you've ever moved a blog between domains, this is the first thing to re-check.
Layer 2 — Read: can machines understand it?#
Pass the crawl gate and the next question is comprehension. Can a machine tell what your page is about in the half-second it spends parsing your <head> and headings? This is where title tags, meta descriptions, headings, and alt text earn their keep.
Title tags are the highest-leverage element on the page, and most are worse than their owners think. Zyppy analyzed over 80,000 title tags and found Google rewrites about 61% of them. When Google rewrites your title, you've lost control of your single biggest click driver. The study found the lowest rewrite rate at 51 to 60 characters, and that brackets trigger rewrites 77.6% of the time.

Work through the Read layer in this order:
Title tag. Unique per page, 51 to 60 characters, primary keyword front-loaded. No duplicate titles across the site.
Meta description. Unique, under 155 characters, written for the click. Google rewrites 60 to 70% of them, but a strong one still wins the impression when it survives.
Heading hierarchy. One H1 that states the topic. H2s that map to real subtopics. No skipped levels, no styling-only headings.
Image alt text. Every meaningful image described in plain language. Empty alt on decorative images only.
Internal links. Descriptive anchors pointing to related pages, so crawlers understand context and pass authority.
Good blog titles that get cited by AI follow the same rules as good title tags: say the thing directly, front-load the topic, and match the question a searcher is actually asking.
Layer 3 — Cite: can AI engines lift an answer?#
The newest layer, and the one most audits ignore. Passing Crawl and Read gets you indexed and understood. The Cite layer is what makes an AI answer engine comfortable quoting your page as a source instead of a competitor's.
This is where structured data lives, and where the honest 2026 story matters. Schema is correlated with citations: analyses show roughly 81% of pages cited in AI answers include schema markup, versus 19% with none. But correlation isn't a lever you can pull. Ahrefs tracked 1,885 pages that added JSON-LD schema between August 2025 and March 2026 against 4,000 controls and found no meaningful citation lift anywhere: AI Mode moved +2.4%, ChatGPT +2.2%, both close to statistical noise.

So why audit for schema at all? Because it's table stakes, not a boost. Structured data makes your entities legible: an Article linked to an Author linked to an Organization is far easier for a model to trust than three disconnected blocks. Connected schema using @id references builds a small knowledge graph the machine can follow. It won't catapult you, but its absence marks you as harder to parse.
Audit the Cite layer for these:
Organization and Article schema, with author and publisher as structured entities, not plain strings.
A direct-answer sentence near the top of the page, 40 to 60 words, that a model can quote verbatim.
Freshness signals: an accurate
dateModified, because content updated recently gets pulled into answers more often than stale pages.Clean entity naming: the same product, person, and brand names used consistently across the page.
One caution from the field. Don't chase AI-only files as a substitute for this work. Google's John Mueller said of llms.txt: "AFAIK none of the AI services have said they're using LLMs.TXT (and you can tell when you look at your server logs that they don't even check for it)." The reality behind llms.txt is that the fundamentals in this audit move the needle first. Fix the page, then experiment with the extras. If you want the deeper play on getting quoted, our guides to getting cited in Google AI Mode and optimizing for AI crawlers like GPTBot and ClaudeBot cover the answer layer end to end.
The 12-point on-page SEO audit checklist#
Here's the whole thing on one screen. Copy it, run it against a page, and mark each item pass or fail. Fix failures top to bottom, because the list is ordered by the Crawl-Read-Cite gates.

Print it, paste it into a doc, or hand it to your AI. The point is to run the same twelve checks on every page so nothing slips. Then track whether your changes moved rankings so you know which fixes actually paid off.
What one fix is actually worth#
Numbers make this concrete. Say your pricing page ranks in position one for a term that now shows an AI Overview. Research on 2026 search behavior found that position-one click-through rate falls from 31.7% to 19.8% when an AI Overview is present, a 37.5% relative drop.
Now run the audit and find the page has no Article or Organization schema and no direct-answer paragraph. That's exactly the profile of a page the AI Overview quotes a competitor for instead of you. Add the schema, add a 50-word direct answer, and you shift from "traffic the AI skims off the top" to "the source the AI names." On a page taking even 2,000 impressions a month, recovering a slice of that lost 12 points of CTR is dozens of extra sessions from a single afternoon's work. No new content. No backlinks. Just HTML that machines can read.
That's the leverage an audit unlocks. You're not creating anything. You're removing the reasons machines had to skip a page you already published.
How to run the audit in minutes#
You can do all twelve checks by hand with browser dev tools and a lot of patience. Or you can let a tool read the HTML for you and hand back a prioritized list. For a single page, Quillly's free Page Analyzer does exactly that: paste any URL and it returns meta tags, content quality, AI-agent readiness, robots and sitemap status, and Domain Rating, with a copy-paste diagnosis you can hand straight to your AI.
For a whole site, the faster path is to run the audit from the AI you already work in. Quillly's MCP server exposes a get_page_issues tool that live-checks your tracked pages and returns issues worst-first, each with a severity and a concrete fix. The loop looks like this:

In practice, the prompt is as plain as this:
Audit my homepage and pricing page for on-page SEO issues.
List every problem worst-first with the exact fix, then
re-check once I've deployed.Your AI calls get_page_issues, reads back the defect list, and you fix the errors before the warnings. When you deploy a change, ask it to re-audit that one page live so you can confirm the fix landed. This is the same agentic loop that lets you publish and manage content straight from Claude or Cursor without leaving the editor. Your AI reads the page like a crawler. You just approve the fixes.
How often to run an on-page SEO audit#
On-page hygiene decays quietly. A redesign silently drops a canonical. A CMS update strips your schema. A new template ships without a viewport tag. You won't notice from the browser, so put the audit on a schedule instead of waiting for a traffic drop.
Every publish: audit the new page before it goes live. Catching a bad canonical pre-launch costs nothing; catching it after Google deindexes the page costs weeks.
Monthly: re-audit your top five money pages. These change most and matter most.
After any redesign, migration, or CMS upgrade: audit everything. These are when on-page signals break in bulk.
Quarterly: a full-site pass to catch drift on pages nobody's touched.
Tie it to events, not vibes. The teams that stay visible in both Google and AI answers are the ones who treat the audit as plumbing they check on a cadence, the same way they'd check Core Web Vitals or a broken-link report.
Frequently asked questions#
What is an on-page SEO audit? An on-page SEO audit is a page-level review of the technical and content signals in your HTML that search engines and AI models read directly: title, meta description, canonical, headings, structured data, images, and internal links. It finds the silent defects, like a wrong canonical or missing schema, that stop a page from ranking or getting cited even when the content is good.
How do I do an on-page SEO audit? Work through three layers in order. First Crawl: confirm the page returns HTTP 200, isn't blocked by noindex or robots, and has one self-referencing canonical. Then Read: check the title, meta, heading hierarchy, and alt text. Then Cite: verify structured data, a direct-answer paragraph, and freshness. Fix the earliest broken layer first, because later layers don't matter if the page can't be crawled.
What's the difference between on-page and technical SEO? On-page SEO covers signals on an individual page: title, meta, headings, content, and internal links. Technical SEO covers site-wide infrastructure: crawl budget, site speed, XML sitemaps, and rendering. They overlap on canonical tags, HTTP status, and structured data, which live on the page but affect the whole site. A good audit checks both where they meet.
Does schema markup help you rank in AI Overviews? Not directly. An Ahrefs study of 1,885 pages that added schema found no meaningful citation lift, with AI Mode moving just +2.4%. But around 81% of pages that do get cited include schema, so it functions as table stakes: it makes your page legible to models, even if it's not a lever that lifts you on its own. Audit for it, but don't expect it to be a magic switch.
Why does Google rewrite my title tags? Google rewrites roughly 61% of title tags when it thinks its version matches the query better than yours. Common triggers include titles that are too long, keyword stuffing, and brackets, which prompt a rewrite 77.6% of the time. Keep titles unique, between 51 and 60 characters, and front-load the primary keyword to hold onto the title you wrote.
Do meta descriptions still matter in 2026? Yes, but with realistic expectations. Google rewrites 60 to 70% of meta descriptions to match the query. When yours survives, it still influences click-through on the impression, and AI answer engines sometimes use it as a summary. Write a unique, benefit-led description under 155 characters for every page, then accept you won't always win the rewrite.
What on-page factors matter most for AI search? A clean access layer first: crawlable, indexable, canonical-correct pages, because AI engines can't cite what they can't fetch. Then clear structure: a direct-answer paragraph near the top, descriptive headings, and consistent entity naming. Structured data helps models trust and parse the page. Freshness matters too, since recently updated content gets pulled into answers more often.
Can I run an on-page audit from ChatGPT or Claude? Yes. With an MCP server connected, your AI can call an audit tool like get_page_issues, read back a prioritized list of problems, and tell you the exact fix for each. You approve the changes, deploy, and ask it to re-check the page live. It turns a tedious manual crawl into a short back-and-forth in the chat you already work in.
Fix the page, not just the post#
Three things to take away. First, rankings leak from the HTML layer more than the copy layer, so audit the signals machines read: canonical, title, schema, status. Second, audit in Crawl-Read-Cite order and fix the earliest broken gate first, because a page that can't be crawled can't be read or cited no matter how good it is. Third, run it on your money pages, not just your blog, on a real cadence tied to every publish and every redesign.
The pages that win in 2026 aren't the ones with the most words. They're the ones a crawler and an AI model can read without tripping. With Google rewriting 61% of titles and AI Overviews reshaping 20%+ of searches, the on-page layer is where the cheapest rankings still hide.
Want your AI to actually run this audit and fix what it finds? Connect Quillly to Claude, ChatGPT, or Cursor in 30 seconds.
