Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Audits a live website for AI-engine discoverability (AEO/GEO). Crawls the site, runs 16 deterministic checks plus a 6-dimension content evaluation, and produces a scored report (A-F) with prioritized fixes. Use to get a baseline before improve-aeo-geo, or to measure progress after changes.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 94% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 105% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 645% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 500% | 0% |
| case-17 | ✗→✓ | ▲ Improved | 104% | 0% |
You audit a live website the way an AI agent would — crawling its pages, parsing structure, and judging whether the content is citation-worthy for ChatGPT, Claude, Perplexity, and Google AI Overviews.
The audit has two halves:
Final score = 0.5 × foundational + 0.5 × intelligence, mapped to an A-F grade.
This skill produces a diagnosis. To then fix a codebase, hand off to the improve-aeo-geo skill.
Follow this sequence exactly.
Ask the user for:
workspace/<customer-name>/ if working a customer project.If the user already gave a URL when invoking the skill, don't re-ask — just confirm crawl depth and proceed.
Run the bundled script from this skill's scripts/ directory. It requires only Node 18+ — no npm install.
bashnode <skill-path>/scripts/aeo-audit.mjs <url> --max-pages=10 --out=<output-dir>/aeo-audit.json
The script crawls (sitemap + robots.txt + internal links), runs the 16 checks per page, aggregates site-wide, and writes a JSON report. It also prints a human-readable summary. Tell the user the foundational score and the failed checks.
If the script errors (site unreachable, 0 pages crawled), report the error and stop — don't fabricate a score.
Read the aeo-audit.json file. The key fields:
scoring.foundationalScore — the deterministic score (0-100). This is final — do not change it.checks — the 16 site-wide checks with pass/fail and details.pagesForReview — up to 5 representative pages (home + richest content pages), each with an aiView object containing title, metaDescription, h1, headings, schemaTypes, jsonLdSummary, textExcerpt, internalLinkCount, author, publishedDate, modifiedDate. Use these for Step 4.prioritizedFixes, worstPages, coverage, heuristicIntelligenceSignals — supporting context. The heuristic signals are a deterministic prior — a sanity check, not the real evaluation.You are an AI agent that just found this site via web search. A user asked you a question and you landed here. Decide: would you cite this site in your answer?
Read the textExcerpt, headings, and metadata of each page in pagesForReview. Then score all 6 dimensions below, each 0-5, using only what you actually observed (no assumptions about pages you didn't see). Write the rationale before the score.
Answer Readiness — If a user asked a question about this site's topic, could you find a direct answer here? The #1 factor — content answering questions in the first paragraph gets 4.8x more citations.
Quotability — Can you extract a clean, self-contained 40-60 word passage to quote? Comparison tables get 2.8x citations; FAQ blocks +156%.
Evidence Density — Statistics, data points, named sources, in-text citations? Adding in-text citations = +115% visibility; statistics = +40% citation rate.
Content Depth — Enough substance to thoroughly answer questions on the topic? Long-form (2000+ words) gets 3x more citations.
Freshness — Current enough to cite confidently? 76% of ChatGPT's most-cited pages were updated in the last 30 days.
Structural Clarity — Does the HTML parse cleanly into readable text? A prerequisite — clean heading hierarchy = 3.2x more citations.
For each dimension, record: a 1-2 sentence rationale, the 0-5 score, and a one-line key finding (under 14 words).
average(6 dimension scores) × 20 → rounds each 0-5 to 0-100.round(0.5 × foundationalScore + 0.5 × intelligenceScore).| Grade | Range | Grade | Range | Grade | Range | |---|---|---|---|---|---| | A+ | 95-100 | B+ | 80-84 | C | 60-64 | | A | 90-94 | B | 75-79 | C- | 55-59 | | A- | 85-89 | B- | 70-74 | D | 40-54 | | | | C+ | 65-69 | F | below 40 |
Sanity-check your intelligence score against heuristicIntelligenceSignals in the JSON. If they diverge by more than ~25 points on any dimension, re-read that page's excerpt and confirm your score is grounded in observed content.
Write a Markdown report to <output-dir>/aeo_audit_report.md using the format in Report Format below. Then summarize for the user: the grade, the 3 highest-impact fixes, and a one-line recommendation.
If the user wants to act on the findings:
improve-aeo-geo skill, passing this report as input.Run by the script. For reference (id — what it verifies — points):
| Check | Verifies | Pts | |---|---|---| | title | <title> present, 10+ chars | 10 | | meta-description | Meta description present, 50+ chars | 10 | | canonical | <link rel="canonical"> present | 8 | | h1 | Exactly one <h1> | 8 | | schema | At least 1 JSON-LD block | 8 | | schema-types | A recognized schema.org @type is used | 8 | | og | og:title and og:description present | 8 | | internal-links | 5+ internal links | 10 | | image-alt | 80%+ of images have alt text | 8 | | text-depth | 250+ words of body text | 12 | | indexability | No noindex directive | 10 | | ai-meta-tags | No nosnippet / noai / noimageai | 6 | | heading-hierarchy | 2+ heading levels, no skipped levels | 6 | | llms-txt | Valid llms.txt (heading + links + 100+ chars) | 10 | | ai-bot-access | robots.txt does not block 9 major AI crawlers | 12 | | rss-feed | RSS or Atom feed discoverable | 8 |
A site-wide check passes when 80%+ of crawled pages pass it (the script handles aggregation). Foundational score = earned points ÷ 142 × 100.
markdown# AEO/GEO Audit — [domain] **Audited:** [date] · **Pages crawled:** [N] ## Score | | Score | | |---|---|---| | Foundational (16 checks) | XX/100 | | | Intelligence (6 dimensions) | XX/100 | | | **Final** | **XX/100** | **Grade: X** | [One-sentence verdict on AI-citation readiness.] ## Foundational Checks [Table of the 16 checks: ✓/✗, label, detail. Group failures at the top.] ## Intelligence Evaluation For each of the 6 dimensions: score (X/5 → XX/100), rationale, key finding. ## Prioritized Fixes Numbered list, highest impact first. For each: what to change, why it matters, impact/effort. Pull from `prioritizedFixes` and your dimension findings. ## Weakest Pages [From `worstPages` — URL and per-page %.] ## Recommendation [2-3 sentences: biggest opportunity, and whether to run improve-aeo-geo next.]
textExcerpt / headings / metadata in pagesForReview. No assumptions about unseen pages.improve-aeo-geo.All statistics above are from verifiable primary research:
| Claim | Source | |---|---| | Quotations = +41% visibility; Statistics = +33%; Cite Sources = +28%; in-text citations = +115% for lower-ranked sites | Aggarwal et al., "GEO: Generative Engine Optimization," KDD 2024 (arXiv) | | 44.2% of ChatGPT citations from first 30% of content | Kevin Indig, Growth Memo, Feb 2026 — 1.2M AI answers | | Comparison tables 2.8x citations; FAQ blocks +156% | AirOps, 2025 — structuring content for LLMs | | Clean heading hierarchy = 3.2x more citations vs unstructured | AirOps, 2025 | | 76% of ChatGPT's most-cited pages updated within 30 days; AI cites content 25.7% fresher than organic | Ahrefs, 2025 — 17M citations across 7 AI platforms | | Long-form (2000+ words) gets 3x more citations | SE Ranking, Nov 2025 — 2.3M pages, 295K domains |
Other measured skills in the registry, with their headline benchmark lift.