AEO AND GEO SKILL
AI search optimisation method
The longest AEO skill on the shelf: a three-pillar method (structure, authority, presence), an AI visibility audit, machine-readable files for agents, and monitoring that treats one run as an anecdote.
No key, no account needed
Claude Code
Cursor
CodexWindsurfany agent that reads SKILL.md
npx skills add addition-labs/skills --skill ai-seo
Run this in a terminal inside your project folder. Claude Code, Cursor and Codex then read the skill from where it lands.
- Step 01Open a terminal in your project folder
- Step 02Paste the command and press Enter
- Step 03Pick the agents to install to
- Step 04Ask the agent for the job; it reads the skill
ai-seoaddition-labs/skillsMIT licencev2.5.0updated 2026-09-05
It starts where most AEO advice ends: with Google’s own statement that generative features are rooted in core Search, no special markup is needed, and chunking content for AI risks the scaled-content policy. Then it separates that from ChatGPT, Perplexity and Claude, which do reward extractable structure, and tells you to write for people and organise for clarity.
The audit is a table: ten checks per priority page, from a definition in the first paragraph to whether AI bots are allowed in robots.txt. The optimisation section carries the Princeton GEO study’s nine methods with their measured visibility boosts and the one that hurts (keyword stuffing, minus 10%).
Eight reference files cover platform ranking factors, content patterns, agent readiness, the citation-versus-recommendation ladder, format volatility after ChatGPT 5.6, YouTube citations, and the OKF bundle.
When to use it
The phrases that trigger it
Say any of these and an agent that has the skill installed will usually load it; you can also call it by name. The phrases are the skill’s own, from its description.
- AI SEO
- AEO
- GEO
- LLMO
- AI Overviews
- optimize for ChatGPT
- optimize for Perplexity
- AI citations
- llms.txt
- is my site agent-ready
What’s inside
The playbook, section by section
Google’s stance versus the other engines
What Google says you do not need, what ChatGPT, Claude and Perplexity reward anyway, and the rule that satisfies both.
Query fan-out
Why a page that covers the parent topic and its sub-questions is retrieved more often than narrow per-query pages, with the DevTools method for reading ChatGPT’s literal background queries.
The three pillars
Structure (40 to 60 word answer blocks, tables, lists), authority (statistics, expert attribution, freshness), presence (Wikipedia, LinkedIn, review sites, YouTube, podcasts).
Machine-readable files
/pricing.md, /llms.txt and the OKF bundle, with Google’s explicit note that none of them affect Google Search.
Citation is not recommendation
A 100-query B2B study in which 69% of the AI Overview citations earned by self-promotional listicles appeared in answers that recommended a competitor.
Monitoring with sample sizes
Run each query three to five times per platform and track the rate with n, because answers are non-deterministic.
Reference files the agent loads on demand
8 files in the skill folder, read only when an instruction calls for one.
platform-ranking-factors.md- How ChatGPT, Perplexity, Claude, Gemini and Google AI Overviews each pick sources, with the robots.txt for each crawler.
content-patterns.md- Reusable blocks for answer engines: what-is, how-to, A versus B, pros and cons, FAQ, best-of lists, with templates.
agent-readiness.md- Can an agent reach, navigate and parse your site: the access checklist and the free scoring tools.
citations-vs-recommendations.md- Why being cited and being recommended are two different outcomes, and what moves each.
format-volatility.md- Which page formats AI engines cite, how fast that changes, and how to read ChatGPT’s background queries.
youtube-ai-citations.md- How AI answers cite YouTube: models read the text around a video, so titles, chapters and transcripts carry it.
okf.md- Google’s Open Knowledge Format v0.1: a markdown bundle that presents site content to agents.
content-types.md- Tactics by content type: SaaS product pages, blog posts, comparison pages, documentation, local and ecommerce.
See it in action
One real run, in full
The request on the left went to the skill as installed. On the right is everything it returned, unedited; scroll inside the box to read it all.
Run your content extractability check on https://addition-labs.com/resources/guides/ai-seo (fetch it) and on https://addition-labs.com/robots.txt. We want to be cited for 'ai seo' style queries by ChatGPT and Perplexity. Give the pass/fail table and the five highest-impact fixes.
AI SEO: Content Extractability Check
Page: https://addition-labs.com/resources/guides/ai-seo (fetched 2026-09-11, HTTP 200, 37.5 KB HTML, ~2,965 words of rendered body text) robots.txt: https://addition-labs.com/robots.txt (fetched 2026-09-11, HTTP 200) Target: citations for "ai seo" style queries in ChatGPT and Perplexity.
No .agents/product-marketing.md (or the older filenames) was found, so the audit below runs on the page and the request alone.
Step 3: Content Extractability Check
| Check | Pass/Fail | What I found |
|---|---|---|
| Clear definition in first paragraph? | PASS (with a caveat) | The standfirst is a 43-word self-contained block: "AI SEO is used for two different jobs: using AI tools to produce and maintain search content, and getting your pages named inside AI answers..." It sits directly under the H1, before the byline and TOC. Caveat: it defines AI SEO by its two uses, not with a canonical "AI SEO is the practice of..." sentence, which is the shape a "what is AI SEO" answer usually takes. |
| Self-contained answer blocks (work without surrounding context)? | PARTIAL | The standfirst and the four FAQ answers stand alone. The body sections do not lead with an answer: "What AI SEO covers" opens with "Say you are asked to sort out AI SEO for a store...", "Which index retrieval runs on" opens with "The visibility job sounds like it needs a separate discipline." The answer arrives two or three sentences in. The two numbered call-out lists ("The entry condition, in Google's own words", "Where each job becomes countable") are extractable as-is. |
| Statistics with sources cited? | PASS | Every number carries a named source and a read date: Otterly $29/15 prompts to $489 (Otterly pricing, read 5 Sep 2026); Orbit Media 13,184 citations / 1,765 answers / 30 of 1,792 combinations (2025); the "three of fifty-four combinations" benchmark (arxiv 2506.11097, authors named). 16 sources listed, 15 external links. |
| Comparison tables for "[X] vs [Y]" queries? | PASS (one table) | One HTML <table>: "Which job you were handed", comparing "AI doing your SEO" vs "Being found by AI" on what you buy / what moves / where it shows up / who sells it. There is no table for the adjacent fan-out queries "AI SEO vs traditional SEO" or "AI SEO vs GEO/AEO/LLM SEO". |
| FAQ section with natural-language questions? | PASS | "Questions people ask": 4 questions, all in natural language ("Is SEO dead now with AI?", "Which AI is best for SEO?", "Can I use AI to do my SEO?", "How do I know which kind of AI SEO I need?"). Answers are 50 to 80 words. They are inside <details> elements, so the text is in the HTML but collapsed on screen. |
| Schema markup (FAQ, HowTo, Article, Product)? | PASS | One JSON-LD @graph with Article (headline, description, datePublished 2026-08-10, dateModified 2026-09-05, mainEntityOfPage), BreadcrumbList (4 levels), and FAQPage (the same 4 Q&As as on-page). No HowTo for the four-step triage section. |
| Expert attribution (author name, credentials)? | FAIL | Byline is "By the Addition team". Schema author is @type: Organization. No named person, no credentials, no author bio, no link to an author page. |
| Recently updated (within 6 months)? | PASS | On-page "Updated 5 September 2026"; schema dateModified 2026-09-05; HTTP last-modified 11 Sep 2026. Six days old at time of check. |
| Heading structure matches query patterns? | FAIL | H1 "AI SEO names two opposite jobs"; H2s "What AI SEO covers", "Which index retrieval runs on", "How to buy AI SEO without buying two things", "Two price ranges that barely overlap", "Four ways to confuse the two jobs", "What each job lets you count". These are editorial headlines. None matches how "ai seo" queries are phrased ("What is AI SEO", "How does AI SEO work", "AI SEO vs traditional SEO", "How much does AI SEO cost", "Is AI SEO worth it"). Only "What AI SEO covers" is close. |
| AI bots allowed in robots.txt? | PASS | See Step 4. |
Score: 7 pass, 1 partial, 2 fail.
Two things the checklist does not ask but that matter for this page:
- Server-rendered. All body text, the table, the FAQ and the JSON-LD are in the raw HTML. The four
<script type="module">bundles are not needed to read the content. The header nav contains zero<a>elements in the HTML, so the H1 and standfirst are the first text a bot sees (H1 at character 7 of the rendered text). - Discoverable. The URL is in
/sitemap.xmland is listed with its description in/llms.txt(line 127, HTTP 200, 45 KB).
Step 4: AI Bot Access Check
/robots.txt in full:
User-agent: *
Allow: /
Sitemap: https://addition-labs.com/sitemap.xml
No Disallow lines at all, so every bot in the skill's list is allowed: GPTBot, ChatGPT-User, PerplexityBot, ClaudeBot, anthropic-ai, Google-Extended, Bingbot. CCBot (Common Crawl, training only) is also allowed; blocking it is a business decision, not a citation issue.
Live probe (HTTP status when fetching the guide with each user agent):
| User agent | Status |
|---|---|
| GPTBot/1.2 | 200 |
| OAI-SearchBot/1.0 | 200 |
| PerplexityBot/1.0 | 200 |
One correction to the skill's own bot list, from OpenAI's bots page (platform.openai.com/docs/bots, fetched 2026-09-11): the crawler that decides whether a page can appear in ChatGPT search results is OAI-SearchBot, not GPTBot. GPTBot is the training crawler, and OpenAI states the two settings are independent ("a webmaster can allow OAI-SearchBot in order to appear in search results while disallowing GPTBot"). Your robots.txt allows both, so nothing to change; it only matters if you later decide to block training.
The five highest-impact fixes (in order)
1. Add a named author with credentials, and switch the schema author to a Person
The only outright FAIL that both ChatGPT and Perplexity weight directly. Replace "By the Addition team" with a named person, a one-line credential (role, years, what they have run), and a link to an author page. In the JSON-LD change "author": {"@type": "Organization", ...} to {"@type": "Person", "name": "...", "jobTitle": "...", "url": "https://addition-labs.com/about/..."}, keep publisher as the Organization. The skill's own data: expert attribution is worth roughly +25 to 30% citation lift, and undated or unattributed content is named as an underperformer on every platform.
2. Rewrite the H2s to the query shapes, keep the editorial voice in the body
Retitle so the headings match the fan-out queries an assistant issues for "ai seo", without changing the argument underneath:
| Current H2 | Query-shaped H2 |
|---|---|
| What AI SEO covers | What is AI SEO? (two jobs, one name) |
| Which index retrieval runs on | How does AI SEO work? |
| How to buy AI SEO without buying two things | How to choose an AI SEO service or tool |
| Two price ranges that barely overlap | How much does AI SEO cost? |
| Four ways to confuse the two jobs | Common AI SEO mistakes |
| What each job lets you count | How to measure AI SEO results |
The H1 can stay as the brand headline; the <title> already carries "AI SEO" first.
3. Lead every section with a 40 to 60 word direct answer
Under each new H2, put the answer first and the scene-setting second. Example for "What is AI SEO?": open with a single definition sentence ("AI SEO is either using AI tools to produce search content, or getting your pages named inside AI answers; the two share a name, not a mechanism"), then the two-job explanation. Under "How much does AI SEO cost?", the first paragraph should carry the numbers that are currently buried in paragraph three (entry plans from $29 to $129 a month; Otterly tops out at $489). Perplexity in particular extracts atomic, self-contained paragraphs; the current openers ("Say you are asked to sort out AI SEO for a store...") cannot be lifted out.
4. Add the two comparison tables the fan-out actually asks for
"ai seo" queries fan out to "AI SEO vs traditional SEO" and "AI SEO vs GEO / AEO / LLM SEO". The page argues both points in prose (retrieval runs on the same index; the terms are the same second job) but has no table for either. Add a short comparison table under the "How does AI SEO work?" section: rows for index used, entry condition, what moves, how it is measured, with columns "Traditional SEO" vs "AI visibility". A second small table can map the synonyms (AI SEO / GEO / AEO / LLM SEO / AI visibility) to which of the two jobs each usually means, linking to your existing LLM SEO and AI Visibility guides.
5. Mark up the four-step triage as HowTo and expand the FAQ to cover the definition queries
The "How to buy AI SEO without buying two things" section is already four ordered steps (write down the outcome, ask the assistants signed out, open robots.txt, check indexing). Add a HowTo block to the existing @graph so the steps are extractable as a process. Then add three FAQ entries, on-page and in FAQPage, that match the remaining query shapes: "What is AI SEO?", "What is the difference between AI SEO and GEO?", "How much does AI SEO cost?" (answer with the sourced ranges already on the page). Keep answers at 40 to 60 words each.
Not a fix, but a note: robots.txt, freshness, sourcing, schema presence, server rendering, sitemap and llms.txt are all already in place. The gap on this page is attribution and heading/answer shape, not access.
Context still needed (from the skill's intake list; not required for the check above)
- Have you run "what is AI SEO" / "AI SEO agency" / "AI SEO vs GEO" through ChatGPT and Perplexity signed out, and are you cited today? (One run is an anecdote; 3 to 5 runs per query gives a rate.)
- Which competitors are being cited for those queries where you are not?
- Do you have any third-party presence for the topic (LinkedIn articles, guest posts, review-site profiles)? The skill's data says brands are cited via third parties far more often than via their own domain, and this check only covers your own page.
What this run could not do
It could not read current AI visibility (no signed-out ChatGPT or Perplexity runs), competitor citation data, domain authority or any monitoring-tool data (the Semrush, Ahrefs, Search Console and GA4 integrations the skill names were not connected). Those are left as open questions.
Method behind it
Where we would differ, and why
Our AI SEO guide is the measured companion: what we could reproduce of the citation studies, where the numbers disagree across Ahrefs, SE Ranking and Seer, and what an ecommerce page needs to change. The skill gives you the method; the guide gives you the evidence bar for each claim in it.
The robots.txt section says blocking GPTBot means ChatGPT cannot cite you. OpenAI’s crawler documentation separates GPTBot (training) from OAI-SearchBot (search citations); a site that blocks GPTBot and allows OAI-SearchBot is citable in ChatGPT search. The claude-seo `seo-geo` skill on this shelf gets this right.
It also lists Google-Extended as governing AI Overviews. Google documents Google-Extended as a Gemini training and grounding control; AI Overviews and AI Mode are served from the Googlebot index.
It still lists `anthropic-ai` as an Anthropic user agent. Anthropic’s current crawler article names ClaudeBot, Claude-User and Claude-SearchBot only.

SKILL.md
The file the agent reads
Written by Corey Haines and published under the MIT licence. Read the full file (4,290 words) on GitHub, at the commit we reviewed: coreyhaines31/marketingskills/skills/ai-seo/SKILL.md. The reference files are in the same folder.
Questions
Questions people ask before installing
Is llms.txt worth adding?
The skill says yes for non-Google engines and quotes Google saying it does nothing for Google Search. Our own reading of the evidence, in the llms.txt guide, is that no major engine has confirmed reading it; add it if it costs you ten minutes, expect nothing from it.
Does the Princeton table apply to Google AI Overviews?
The study was run on Perplexity-style generative answers over a benchmark set. The skill presents the boosts as general; treat them as a ranking of tactics, not as percentages you will see on your site.
How is this different from the seo-geo skill?
seo-geo (claude-seo) is a scored audit of one URL with a crawler-access table that is more accurate; ai-seo is a longer method with a monitoring plan and the agent-readiness layer. Run seo-geo on a page, use ai-seo to plan the programme.




