SEO / GEO / AEO Readiness Audit
Score how well a page is built to rank in search (SEO), get cited by AI engines (GEO), and win the direct answer (AEO) — then return a prioritized fix list. Modern visibility is three layers on one page, and most pages are strong on classic SEO while invisible to AI engines.
When to use
The user wants to know why a page isn't ranking or being cited by AI, or wants a readiness check before/after publishing.
Before you start
- Get the page as a crawler sees it. Fetch the URL — and critically, fetch it the way a bot does. Run
curl -A "GPTBot" <url> (or fetch and inspect the raw HTML). If the body, meta, and JSON-LD are missing from the initial response, the site is client-side rendered and most other wins are blocked until SSR/prerender ships — this is the single most important finding.
- Also retrieve
robots.txt, sitemap.xml, and llms.txt / llms-full.txt for that domain.
Workflow
- Evaluate all 27 checks in
resources/scoring-rubric.md, recording pass / partial / fail for each. The rubric defines exactly what each check means and how to test it.
- Score it — feed the results to the engine:
node resources/score.js '{"checks":{"ssr_prerender":"fail","title_tag":"pass", ...}}'
node resources/score.js --help
It returns category scores, a 0–100 total, a letter grade, and the failing checks.
- Prioritize fixes by impact: rendering/crawlability first (it gates everything), then the cheapest high-value GEO/AEO wins (answer-first passage, FAQPage schema, llms.txt, inline statistics and citations), then on-page and authority polish.
- Present the score, the category breakdown, and a short, ordered remediation plan.
Scoring model
Five weighted categories: Technical & Crawlability 25 · On-Page SEO 20 · AEO 20 · GEO 20 · Authority & Trust 15. Each category scores by pass-rate × weight. Grades: A ≥ 90, B 75–89, C 60–74, D 45–59, F < 45. GEO checks are anchored to the Princeton GEO study's measured citation lifts (statistics, citations, quotations, terminology).
Present the result
Lead with the headline score and grade, then the five-category bar, then the top fixes in priority order with the expected effect of each. Be concrete: name the missing schema, the absent llms.txt, the empty-shell render — not "improve SEO."
Guardrails & common mistakes
- Rendering gates everything. A perfect on-page score on an un-prerendered SPA is still near-invisible to AI engines — always test the crawler-eye HTML first and lead with it.
- GEO ≠ SEO. Ranking and being cited by an LLM are different; a page can win one and lose the other. Score both.
- Schema must mirror visible text. FAQ/Article schema that doesn't match on-page content is a liability, not a win.
- Don't conflate score with traffic. This measures readiness; pair it with analytics for outcomes.
Related AAJ resources
Related skills
geo-content-optimization (fix the GEO/AEO gaps this finds) · programmatic-seo (scale the technical fixes).
Credits
Original AAJ skill. The Agent Skills format and the marketing-skills catalog by Corey Haines (coreyhaines31/marketingskills, MIT) were references for structure and coverage; this skill is independently written. See the repository README for the full reference list.
1---2name: seo-geo-aeo-audit3description: Use when the user wants to audit a web page or site for SEO, GEO (generative- engine / AI citation readiness), and AEO (answer-engine / featured-snippet readiness). Also use when the user mentions SEO audit, AI search visibility, getting cited by ChatGPT/Perplexity/Claude, featured snippets, llms.txt, schema, crawlability, or "why don't we show up in AI answers." Produces a 0–100 score across 5 weighted categories, a grade, and prioritized fixes.4license: MIT5---67# SEO / GEO / AEO Readiness Audit89Score how well a page is built to **rank in search (SEO), get cited by AI engines (GEO), and win the direct answer (AEO)** — then return a prioritized fix list. Modern visibility is three layers on one page, and most pages are strong on classic SEO while invisible to AI engines.1011## When to use1213The user wants to know why a page isn't ranking or being cited by AI, or wants a readiness check before/after publishing.1415## Before you start16171. **Get the page as a crawler sees it.** Fetch the URL — and critically, fetch it the way a bot does. Run `curl -A "GPTBot" <url>` (or fetch and inspect the raw HTML). If the body, meta, and JSON-LD are missing from the initial response, the site is client-side rendered and **most other wins are blocked until SSR/prerender ships** — this is the single most important finding.182. **Also retrieve** `robots.txt`, `sitemap.xml`, and `llms.txt` / `llms-full.txt` for that domain.1920## Workflow21221. **Evaluate all 27 checks** in `resources/scoring-rubric.md`, recording `pass` / `partial` / `fail` for each. The rubric defines exactly what each check means and how to test it.232. **Score it** — feed the results to the engine:24 ```bash25 node resources/score.js '{"checks":{"ssr_prerender":"fail","title_tag":"pass", ...}}'26 node resources/score.js --help27 ```28 It returns category scores, a 0–100 total, a letter grade, and the failing checks.293. **Prioritize fixes** by impact: rendering/crawlability first (it gates everything), then the cheapest high-value GEO/AEO wins (answer-first passage, FAQPage schema, llms.txt, inline statistics and citations), then on-page and authority polish.304. **Present** the score, the category breakdown, and a short, ordered remediation plan.3132## Scoring model3334Five weighted categories: **Technical & Crawlability 25 · On-Page SEO 20 · AEO 20 · GEO 20 · Authority & Trust 15.** Each category scores by pass-rate × weight. Grades: A ≥ 90, B 75–89, C 60–74, D 45–59, F < 45. GEO checks are anchored to the Princeton GEO study's measured citation lifts (statistics, citations, quotations, terminology).3536## Present the result3738Lead with the headline score and grade, then the five-category bar, then the top fixes in priority order with the expected effect of each. Be concrete: name the missing schema, the absent llms.txt, the empty-shell render — not "improve SEO."3940## Guardrails & common mistakes4142- **Rendering gates everything.** A perfect on-page score on an un-prerendered SPA is still near-invisible to AI engines — always test the crawler-eye HTML first and lead with it.43- **GEO ≠ SEO.** Ranking and being cited by an LLM are different; a page can win one and lose the other. Score both.44- **Schema must mirror visible text.** FAQ/Article schema that doesn't match on-page content is a liability, not a win.45- **Don't conflate score with traffic.** This measures readiness; pair it with analytics for outcomes.4647## Related AAJ resources4849- Interactive tool: https://aajconsult.com/tools/seo-geo-readiness-scorer5051## Related skills5253`geo-content-optimization` (fix the GEO/AEO gaps this finds) · `programmatic-seo` (scale the technical fixes).5455## Credits5657Original AAJ skill. The Agent Skills format and the marketing-skills catalog by Corey Haines (`coreyhaines31/marketingskills`, MIT) were references for structure and coverage; this skill is independently written. See the repository README for the full reference list.