SEO Audit Prompt Workflow: Audit a Whole Site With AI

A repeatable AI prompt chain that audits titles, descriptions, schema, and internal links page by page - with the verification step that stops AI from lying about tags it can't see.

TL;DR

Most small content sites share the same five on-page SEO problems: titles that truncate, vague descriptions, missing or duplicate H1s, thin internal linking, and absent structured data. A single LLM pass against a fixed checklist catches all five - if you give it real page HTML and force it to output page-by-page rows. The catch: a model without browsing will confidently describe meta tags it never saw, so the workflow below ends with a verification step you should never skip. Budget 30-60 minutes for a first audit of 20 pages; 10-15 minutes per quarterly re-run after that.

Who this is for

Indie devs, content creators, and small marketing teams running content sites on Astro, Next.js, WordPress, or Hugo. It’s aimed at anyone with 50-500 pages who can’t justify a $1,500-5,000 SEO retainer but already pays for an LLM subscription (ChatGPT Plus at $20/mo or Claude Pro at $20/mo, as of June 2026).

When to run it

  • Before launch - while typos in 200 titles are a find-and-replace, not a re-crawl wait.
  • Quarterly after launch - titles drift, descriptions go stale, and internal links rot as you delete pages.
  • After any migration or theme change - new templates routinely break canonical tags and H1 structure.

What “good” looks like in June 2026

Pin your audit to current targets, not 2019 advice. These are the numbers the prompt should check against:

FieldTarget (as of June 2026)Why
Title length50-60 chars / under ~600px desktopGoogle truncates titles past roughly 600 pixels; 50-60 chars displays cleanly in ~90% of results
Description length120-158 chars (desktop ~920px, mobile ~680px ≈ 120 chars)Google shows ~158 chars on desktop, ~120 on mobile; over that it truncates or rewrites
H1Exactly one per page, distinct from the titleDuplicate or missing H1s confuse topic parsing
CanonicalPresent and self-referentialStops duplicate-content dilution
Structured dataJSON-LD Article/BlogPosting + OrganizationJSON-LD is the only format Google recommends; these still drive rich results
Internal links2+ contextual links in/out per pageOrphan pages get crawled late and rank poorly

One important change: as of May 7, 2026, Google no longer shows FAQ rich results in Search, and HowTo rich results were dropped earlier. FAQPage markup is still valid schema.org, won’t trigger errors, and still helps AI engines extract answers - but don’t expect it to win a SERP feature anymore. More on that in the GEO section.

Before you start

  • Have your sitemap reachable at /sitemap.xml, or a hand-picked list of URLs. With no input, the model invents pages and audits fiction.
  • Fix your length targets up front (see table above). Different targets produce different audits.
  • Pick a model that can actually see the page. Use GPT-5.5 or Claude Opus 4.7 / Sonnet 4.6 with web browsing on, or pipe the raw HTML in via a script. Do not trust a model’s training snapshot for current page state - it is months stale.
  • Reserve time for the fix pass. The audit is fast; rewriting 50 titles and descriptions is a couple of hours of human review.

Step by step

  1. Sample first, scale second. Pull your 20 highest-impression URLs from Search Console (Performance report, sort by impressions) before running the whole sitemap. You’ll catch the systemic problems in the first 20.
  2. Force a fixed checklist. Ask the model to report title length, description specificity, H1 presence and uniqueness, internal link count, JSON-LD presence and type, and canonical state - explicitly listed, one row per page.
  3. Demand a fix table, not prose. Columns: URL, problem, severity (P0/P1/P2), proposed fix. Reject “your titles could be better”; you want 74 chars, trim to: "...".
  4. Apply fixes. Hand-edit for a CMS without an API; script it if your content is Markdown/MDX with frontmatter (a 30-line Node script can rewrite title: and description: across files).
  5. Re-validate after deploy. Re-run the same prompt on the same URLs. A clean report confirms the fix landed; any remaining flag is the next iteration. Then schedule a quarterly re-run.

A prompt that actually works

You are an SEO auditor. For each URL below, fetch the live page (or use the
HTML I provide). Do NOT guess - if you cannot fetch a page, say "could not
fetch" rather than describing tags you did not see.

For each URL report:
- Title: exact text, char count, primary keyword present (Y/N), under 60 chars (Y/N)
- Description: exact text, char count, specific to this page (Y/N), 120-158 chars (Y/N)
- H1: present (Y/N), count, distinct from title (Y/N)
- JSON-LD: present (Y/N), @type (Article/BlogPosting/Organization/FAQPage), parses (Y/N)
- Canonical: present and self-referential (Y/N)
- Internal links out: count, anchor diversity (varied / repetitive)
- Issues: P0 (broken/missing), P1 (weak), P2 (nice-to-have)

Output one markdown table, one row per URL. Be specific: write
'title is 74 chars, trim to 56' not 'title could be shorter'.

URLs:
[paste up to 20 URLs here]

The two sentences doing the heavy lifting are “Do NOT guess” and “Be specific.” Drop the first and the model fabricates tags; drop the second and you get advice you can’t act on.

What AI is good and bad at in SEO

  • Reliable: Per-page audits against a fixed checklist, rewriting titles and descriptions to length, spotting title cannibalization between similar pages, flagging internal-link gaps, drafting JSON-LD.
  • Better with a second tool: Keyword research (pair with Ahrefs or Semrush for real volume and difficulty) and competitor analysis (a browsing model helps; a non-browsing one is guessing).
  • Unreliable alone: Search volume estimates, ranking-impact predictions, and current SERP layout - none of this is in training data or inferable.
  • Actively dangerous: Inventing schema.org fields that don’t exist, claiming a page “ranks #3” without checking, or fabricating backlink counts. Treat any such claim as a hallucination until verified.

Cross-check every AI SEO claim against Google Search Console, a real keyword tool, or curl -sL https://yoursite.com/page | grep -i '<title\|description' on the actual HTML.

GEO: optimizing for AI answer engines

Showing up inside ChatGPT, Perplexity, and Google AI Overviews (Generative Engine Optimization) now matters as much as classic ranking. The kicker: by 2026, studies found only about 10% of ChatGPT’s citations for a query also appear in Google’s top 10 organic results, so AI visibility is no longer a free byproduct of ranking. What actually moves it:

  • Submit your sitemap to Bing Webmaster Tools. ChatGPT’s web search runs on Bing’s index, so a missing Bing submission means zero ChatGPT visibility.
  • Strengthen E-E-A-T signals: a named author with a real bio, visible publish and update dates, and inline references. Wikipedia and cited sources dominate factual AI answers.
  • Write extractable answers: short, self-contained paragraphs that state the answer in the first sentence. AI engines lift those almost verbatim.
  • Keep FAQPage and Article JSON-LD. Even with Google’s FAQ rich result gone, the markup still helps AI engines parse your Q&As.
  • Freshness counts - Perplexity in particular skews toward content updated in the last ~90 days. A quarterly audit doubles as a freshness signal.

Search Console (top 20 URLs) -> audit prompt -> per-page fix table (P0/P1/P2) -> apply fixes -> deploy -> re-audit same URLs -> if clean, scale to the rest -> schedule quarterly. First audit: 30-60 minutes. Quarterly re-runs once the systemic issues are fixed: 10-15 minutes.

FAQ

  • Can AI estimate keyword difficulty? No, not reliably - there’s no live SERP or backlink data behind the guess. Use Ahrefs or Semrush for KD; use the LLM for prioritization and rewriting.
  • What about Core Web Vitals? An LLM can read a PageSpeed Insights report and prioritize fixes, but it can’t measure live numbers. Pull those from PageSpeed Insights or CrUX. The “good” targets as of June 2026: LCP under 2.5s, INP under 200ms, CLS under 0.1, at the 75th percentile.
  • Should I let AI write the new titles? First draft yes, ship no. AI titles trend bland and sometimes keyword-stuff; review every one and add your voice.
  • Can I automate the audit on every PR? Yes - wire the model into a CI step that audits only the changed pages and posts findings as a PR comment. Worth it for content-heavy repos.
  • Is FAQ schema still worth adding in 2026? For Google rich results, no - they were dropped May 7, 2026. For AI answer engines, yes - it stays valid and helps extraction, and it won’t hurt rankings.
  • How often should I re-audit? Quarterly minimum, monthly if you publish weekly, and immediately after any redesign or migration.

Common mistakes

  • Trusting a non-browsing model that describes meta tags it never fetched - always require “could not fetch” over invention.
  • Auditing once and never again - drift is the whole reason quarterly re-runs exist.
  • Asking “is this SEO-friendly?” - too vague, so the output is vague.
  • Bulk-applying AI rewrites without spot-checking - one page in twenty gets a factual error or odd phrasing.
  • Chasing FAQ rich results that no longer exist - keep the markup for AI engines, not for a SERP feature.
  • Relying on AI alone - Search Console and a keyword tool catch volume, indexing, and ranking data the model simply doesn’t have.

Tags: #AI coding #Tutorial