AEO Visibility

Measures whether AI answer engines can reach your site, cite it and send traffic, using GA4 and live checks.

Free plan: up to 10 private skills and 3 members, no credit card.

  • aeo
  • geo
  • ai-search
  • ai-search-optimization
  • ga4
  • citations
  • visibility
  • mcp-bound

Files

  • SKILL.md shown below

SKILL.md

Three questions, in order: can AI engines reach us, do they cite us, does it send anyone? Measurement first; optimization advice only against pages that measurement says matter.

Render through growth-report-format. Open it alongside this skill.

Tools this skill calls

Need Tool Key arguments
AI-surface referral sessions mcp__google_search_mcp__ga4_run_report dimensions: ["sessionSource", "landingPage"]
Page readiness: outward citations, schema, structure mcp__google_search_mcp__audit_page urls, response_format: "json"

Agentman default: GA4 property 471838641. Any other property: resolve first.

Target resolution

  1. Named property in the request wins.
  2. Otherwise a registry in data/ names the default. example-* files and scrubbed placeholders never bind.
  3. Otherwise ask.

Part 1 — Measure (GA4)

ga4_run_report, dimensions sessionSource + landingPage, filtered to the AI-surface source list in references/ai-surfaces.md (chatgpt.com, perplexity.ai, claude.ai, copilot.microsoft.com, gemini.google.com, and variants). Pull the trailing 90 days monthly-bucketed for the trend.

The undercount caveat, stated in every report: referral traffic is the floor, not the measure. Most AI answers satisfy the user with zero click, and some surfaces strip referrers. Rising citations with flat referrals is still a win for brand presence — that is what the citation checks are for.

Watch for source fragmentation. Variants of the same surface counted separately understate it. Group before reporting, and say which strings you merged.

Part 2 — Access (can they even read us?)

Fetch robots.txt and check the AI crawler list in references/ai-surfaces.md (GPTBot, OAI-SearchBot, PerplexityBot, ClaudeBot, Google-Extended, et al.). Report a three-column table: crawler, allowed?, consequence. Blocking Google-Extended affects Gemini grounding, not Search indexing — say which lever each directive actually pulls. Flag contradictions (wanting AI citations while blocking every AI crawler) as the finding.

Part 3 — Citation spot-checks

For 5–10 target prompts (the queries the business wants to be the answer to, stored per-property in data/): run each against available AI surfaces and record cited / mentioned / absent, and who is cited instead.

Sampling honesty: AI answers are stochastic. One run is an anecdote; three runs per prompt is a sample, and even that is thin — published work on answer stability finds roughly two thirds of cited sources change between consecutive days on the same prompt. Record the date, surface, and exact phrasing; results are not comparable across differently-phrased prompts. Log to data/citation-log-<target>-<date>.md so the trend is real.

Report distributions, not binaries: "cited in 2 of 3 runs" is the finding, "we are cited" is not.

Part 4 — Page readiness rubric

Score only pages that Parts 1–3 say matter (cited-adjacent, or target-prompt relevant). Run audit_page on them first — it returns three of these checks directly, so do not eyeball what the tool already measured.

Check Source Why (evidence)
Sources cited outward audit_page → outwardCitations Cite Sources: top-tier method in GEO benchmarks
Structured data present audit_page → schemaTypes engines parse it; malformed blocks are ignored entirely
FAQ content actually visible audit_page → faq schema describing invisible content is a policy violation
Citable self-contained passages read the page position-adjusted visibility favors quotable blocks
Statistics present read the page Statistics Addition: top-tier method
Quotations from credible sources read the page Quotation Addition: top-tier method
Fluent, plain phrasing read the page Fluency/Easy-to-Understand: mid-tier positive
Entity named consistently read the page engines must know who is being cited
No keyword stuffing read the page measurably hurts in generative engines

Output per page: score, and the one or two methods that would move it most.

Execution hand-off: for new or rewritten content, hand the target question and the failing rubric rows to aeo-blog-generator. For structural fixes on existing non-blog pages, a content brief is enough.

Closing the loop (produce → measure → verdict)

  1. Add the target question to this skill's prompt list in data/ the day the page ships.
  2. Baseline the citation status (Part 3, three samples minimum) at ship time.
  3. Register the change — metric: citation rate for that prompt; control: a comparable untouched page's prompt.
  4. Re-check at the next monthly run. Content that is never re-measured is a superstition.

Output — the Findings section

Referral trend table, access table, citation log delta, top 5 page-readiness rows. Provenance per growth-report-format; save to data/aeo-report-<target>-<date>.md.

Honesty rules

  • Never import conversion multipliers. Published AI-vs-organic figures range 4.4× to 23× with incompatible definitions of "conversion". Report this property's measured conversion rate for AI-referred sessions or nothing.
  • GEO-paper effect sizes came from Perplexity-like engines on GEO-bench; they are directional priors for other surfaces, not guarantees. Method efficacy varies by domain — the paper's own headline caveat.
  • A citation check is evidence about that prompt, on that surface, on that day. No "we rank in ChatGPT" claims off a single sample.
  • Access findings are about crawlers, not indexing: robots directives for AI bots do not touch classic Google indexing, and vice versa.
  • audit_page reads server-rendered HTML only. A page whose content is injected client-side may score poorly here and read fine in a browser — that gap is itself the finding, since a crawler sees what the tool sees.

Working copies and publishing

Public master: data/ holds fictional example-* files only. Target-prompt lists are competitive strategy; citation logs name your property — both live only in a private clone and are never published.

A skill is a written procedure, not a prompt. Add it to your library and it is yours to edit in plain language.

In your Agentman library

A skill you keep, not a prompt you paste

  • Versioned, not pasted

    Edit a skill once and every agent using it follows the new version.

  • Shared with your team

    One library with per-skill access control and a record of who did what.

  • One connection

    A single MCP link works across Claude, ChatGPT, Cursor and Agentman agents.

How Agent Skills work
Questions

Using a skill

What is a skill?

A skill is a written procedure an AI assistant reads before it does a task: the steps, the judgement calls, the standards and what "done" looks like. It lives in a SKILL.md file, sometimes with reference files beside it. A prompt is typed again each time; a skill is versioned and runs the same way for everyone who uses it.

How do I use this skill in Claude, ChatGPT or Agentman?

Create a free Agentman account and add the skill to your library. One MCP connection then makes your library available in Claude, ChatGPT, Cursor and Agentman agents, so you set it up once. To see it work before you sign up, use "Try it in Claude" on this page, which opens a chat that reads the public SKILL.md.

Can I edit the skill after I add it?

Yes. Cloning a skill puts a copy in your workspace that is yours to edit in plain language. Skills are versioned: edit one once and every agent using it follows the new version. The free plan covers up to 10 private skills and 3 members, no credit card.

Make it yours

Add AEO Visibility to your library, edit it to match how your team works, and use it from Claude, ChatGPT or an Agentman agent. The free plan covers up to 10 private skills and 3 members, no credit card.

Or try it in ChatGPT first.

Use this skill free