Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Optimize content to rank in AI search engines (AI Overviews, Perplexity, ChatGPT) via generative engine optimization (GEO), citability audits, and schema markup. Use when optimizing for AI search, generative search, or LLM visibility.
.claude/skills/borghei-ai-seo/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-08 | ✗→✓ | ▲ Improved | 356% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 333% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 273% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 384% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 375% | 0% |
Generative engine optimization (GEO) for getting cited by AI search platforms — not just ranked in traditional results.
AI SEO, generative engine optimization, GEO, AI overviews, Google SGE, ChatGPT citations, Perplexity SEO, Claude citations, AI search optimization, semantic search, entity optimization, LLM visibility, AI-generated answers, structured data, schema markup, content extractability, AI citability, GPTBot, PerplexityBot, ClaudeBot, answer engine optimization
Before optimizing, confirm these inputs. If any is unknown or vague, ASK — do not assume:
Stop rule: ask only the 2-3 that most change the output. If the user says "just draft it," proceed and list your assumptions at the top of the artifact.
Traditional SEO gets your page ranked. AI SEO gets your content cited. These are different optimization targets.
| Dimension | Traditional SEO | AI SEO | |-----------|----------------|--------| | Goal | Rank on page 1 | Get cited in AI-generated answers | | Success metric | Click-through rate | Citation frequency | | Content priority | Keyword density | Answer extractability | | Authority signal | Backlinks + domain authority | Backlinks + answer quality + attribution | | User interaction | User clicks your link | AI extracts your answer; user may never visit | | Content format | Long-form comprehensive | Self-contained extractable blocks | | Optimization unit | The page | The paragraph or section |
AI systems pull content in chunks. They find the paragraph, list, or definition that directly answers a query and extract it. Your content must be structured so answers are self-contained.
Extractability requirements:
Anti-patterns that kill extractability:
AI systems do not just extract the most relevant answer — they extract the most credible one.
Authority signals in the AI era:
AI systems must be able to find and index your content.
Technical requirements:
Step 1: Bot Access Verification
Check robots.txt for AI crawler permissions:
# These bots must NOT be blocked for AI visibility:
GPTBot # OpenAI / ChatGPT
PerplexityBot # Perplexity
ClaudeBot # Anthropic / Claude
Google-Extended # Google AI Overviews
anthropic-ai # Anthropic (alternate)
Applebot-Extended # Apple Intelligence
cohere-ai # CohereIf any AI bot is blocked, that is the single highest priority fix. Zero visibility on that platform until resolved.
Step 2: Citation Testing
Test top 10 target queries on each platform:
| Platform | How to Test | What to Record | |----------|-------------|----------------| | Perplexity | Search at perplexity.ai, check Sources panel | Cited? Which competitors cited? Content format winning? | | ChatGPT | Web browsing enabled, check citations | Same | | Google AI Overviews | Google query, check AI Overview panel | Same | | Microsoft Copilot | Search at copilot.microsoft.com, check source cards | Same | | Claude | Web search enabled queries | Same |
Step 3: Content Extractability Scoring
Score each key page (0-7):
Interpretation: 0-3 = needs major restructuring. 4-5 = good baseline. 6-7 = strong.
Step 4: Competitive Citation Analysis
For each target query, document:
Step 1: Lead with the Answer
The first paragraph must contain the core answer to the target query. No preamble, no context-setting, no "In today's landscape..." openers.
Step 2: Structure Self-Contained Sections
Every H2 section must be answerable as a standalone excerpt:
Step 3: Add Extractable Content Blocks
Insert 2-3 of these per key page:
Step 4: Replace Vague with Specific
Find and replace every vague claim:
Step 5: Add Schema Markup
Implement JSON-LD in the page head:
| Content Type | Schema | Impact | |-------------|--------|--------| | FAQ sections | FAQPage | High — AI extracts Q&A pairs directly | | Step-by-step guides | HowTo | High — AI uses step structure | | Articles and posts | Article | Medium — establishes content authority | | Product pages | Product | Medium — product comparison queries | | Author pages | Person | Medium — author credibility signal | | Company pages | Organization | Medium — entity authority |
Step 1: Define Your Entity
Ensure your brand exists as a recognized entity across the web:
Step 2: Build Entity Associations
Connect your entity to relevant topics:
Step 3: Strengthen the Citation Chain
Create a network of credible references:
markdown**[Term]** is [concise definition in 1-2 sentences]. [One sentence of context explaining why it matters or how it differs from related concepts].
Place within the first 200 words. No hedging, no preamble.
Requirements for AI extraction:
Two-column or multi-column tables with clean headers:
markdown| Dimension | Option A | Option B | |-----------|----------|----------| | Price | $X/mo | $Y/mo | | Key Feature | Description | Description | | Best For | Use case | Use case |
Explicit Q&A pairs. Questions should match natural language queries:
markdown### What is [topic]? [Direct answer in 1-2 sentences.] ### How does [topic] work? [Step-by-step explanation.]
Mark up with FAQPage schema for maximum discoverability.
markdownAccording to [Source Name] ([Year]), X% of [population] [finding].
Complete attribution is critical. Unattributed statistics get deprioritized because AI cannot verify the source.
markdown"[Quote]" — [Name], [Role] at [Organization]
Named experts with credentials produce citable units AI systems pick up.
FAQPage Schema (highest impact for informational queries):
json{ "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [ { "@type": "Question", "name": "What is [topic]?", "acceptedAnswer": { "@type": "Answer", "text": "[Direct answer]" } } ] }
HowTo Schema (high impact for process queries):
json{ "@context": "https://schema.org", "@type": "HowTo", "name": "How to [do thing]", "step": [ { "@type": "HowToStep", "name": "Step name", "text": "Step description" } ] }
Article Schema (medium impact, establishes authority):
json{ "@context": "https://schema.org", "@type": "Article", "headline": "Title", "author": { "@type": "Person", "name": "Author Name", "url": "https://author-page" }, "datePublished": "2026-01-15", "dateModified": "2026-03-01" }
Validate all schema at schema.org/validator before deployment.
# Allow all AI search crawlers
User-agent: GPTBot
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: ClaudeBot
Allow: /
User-agent: Google-Extended
Allow: /
User-agent: Applebot-Extended
Allow: /
User-agent: cohere-ai
Allow: /Some organizations want to allow AI citation but block training. This distinction is difficult to enforce because:
Recommendation: Allow AI bots if you want AI citation visibility. The citation benefits outweigh the training concerns for most commercial content.
Test top 10 target queries on Perplexity and ChatGPT:
Use the "Search type: AI Overviews" filter in Google Search Console:
| Signal | What to Check | Tool | |--------|---------------|------| | Perplexity citations | Top 10 queries | Manual testing | | ChatGPT citations | Top 10 queries | Manual testing | | Google AI Overviews | Impressions and clicks | Google Search Console | | Copilot citations | Top 5 queries | Manual testing | | AI bot crawl activity | Crawl frequency and pages | Server logs / Cloudflare | | Competitor citations | Who is getting cited for your queries | Manual testing | | Content freshness | Date signals on key pages | Content audit |
Diagnostic checklist when you lose a citation:
| Problem | Likely Cause | Fix | |---------|-------------|-----| | Content not cited despite high DA | Poor extractability — answers buried in prose | Restructure with definition blocks, numbered steps, and FAQ pairs in first 200 words | | Cited on Perplexity but not ChatGPT | Different crawling and indexing pipelines per platform | Verify bot access for all AI crawlers; test rendering without JavaScript | | AI Overview shows competitor instead | Competitor has more extractable, better-attributed content | Audit competitor's cited content format and match or exceed specificity | | Citation dropped after site update | Page restructure broke the extraction pattern AI was using | Compare old vs new page structure; restore extractable blocks | | GPTBot blocked in robots.txt unknowingly | CMS update or security plugin overwrote robots.txt | Audit robots.txt after every CMS or plugin update; set up monitoring | | Schema markup present but no rich results | Missing required fields or content-markup mismatch | Validate with Google Rich Results Test; ensure schema matches visible page content | | AI cites your data but not your brand | Missing entity signals — no Organization schema or sameAs links | Implement Organization schema with sameAs to Wikidata, LinkedIn, and social profiles |
In scope:
Out of scope:
Known limitations:
bash# Analyze content for AI citability signals python scripts/content_scorer.py page.html --json # Simulate how content might appear in AI search results python scripts/serp_simulator.py --query "what is cloud cost optimization" --content page.md # Analyze keyword opportunities for AI search visibility python scripts/keyword_analyzer.py --keywords keywords.csv --json
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-08 | fail→pass | 9,977 | 8,689 | -13% | 1 | 1 | 0% | 1,475 | 6,731 | +356% | 0 | 0 | — |
case-01 | fail→fail | 25,061 | 22,702 | -9% | 1 | 1 | 0% | 3,219 | 8,716 | +171% | 0 | 0 | — |
case-02 | fail→fail | 17,067 | 18,874 | +11% | 1 | 1 | 0% | 2,798 | 8,470 | +203% | 0 | 0 | — |
case-03 | fail→fail | 24,517 | 31,847 | +30% | 1 | 1 | 0% | 3,768 | 10,339 | +174% | 0 | 0 | — |
case-04 | pass→pass | 23,026 | 17,886 | -22% | 1 | 1 | 0% | 3,943 | 8,279 | +110% | 0 | 0 | — |
case-05 | pass→pass | 10,732 | 7,700 | -28% | 1 | 1 | 0% | 2,123 | 6,480 | +205% | 0 | 0 | — |
case-06 | pass→pass | 6,022 | 7,472 | +24% | 1 | 1 | 0% | 851 | 6,133 | +621% | 0 | 0 | — |
case-07 | fail→fail | 8,993 | 5,897 | -34% | 1 | 1 | 0% | 1,402 | 5,916 | +322% | 0 | 0 | — |
case-09 | pass→pass | 3,198 | 4,097 | +28% | 1 | 1 | 0% | 565 | 5,637 | +898% | 0 | 0 | — |
case-10 | pass→pass | 8,848 | 5,821 | -34% | 1 | 1 | 0% | 1,751 | 6,062 | +246% | 0 | 0 | — |
case-11 | pass→pass | 6,732 | 6,079 | -10% | 1 | 1 | 0% | 972 | 5,952 | +512% | 0 | 0 | — |
case-12 | fail→pass | 10,772 | 11,831 | +10% | 1 | 1 | 0% | 1,630 | 7,061 | +333% | 0 | 0 | — |
case-13 | fail→pass | 11,580 | 10,257 | -11% | 1 | 1 | 0% | 1,790 | 6,670 | +273% | 0 | 0 | — |
case-14 | fail→pass | 8,893 | 9,846 | +11% | 1 | 1 | 0% | 1,328 | 6,421 | +384% | 0 | 0 | — |
case-15 | fail→pass | 8,744 | 8,780 | +0% | 1 | 1 | 0% | 1,365 | 6,484 | +375% | 0 | 0 | — |
case-16 | pass→pass | 5,625 | 8,270 | +47% | 1 | 1 | 0% | 838 | 6,432 | +668% | 0 | 0 | — |
case-17 | pass→pass | 9,114 | 13,363 | +47% | 1 | 1 | 0% | 1,387 | 7,011 | +405% | 0 | 0 | — |
case-18 | fail→fail | 11,281 | 13,343 | +18% | 1 | 1 | 0% | 1,726 | 6,911 | +300% | 0 | 0 | — |
case-19 | fail→pass | 5,519 | 7,735 | +40% | 1 | 1 | 0% | 777 | 6,245 | +704% | 0 | 0 | — |
case-20 | fail→fail | 19,956 | 24,199 | +21% | 1 | 1 | 0% | 3,103 | 8,836 | +185% | 0 | 0 | — |
case-21 | fail→fail | 12,518 | 14,651 | +17% | 1 | 1 | 0% | 2,016 | 7,416 | +268% | 0 | 0 | — |
case-22 | fail→fail | 23,490 | 18,828 | -20% | 1 | 1 | 0% | 4,242 | 8,482 | +100% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +27 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.