/geo-optimizer-skill
Make websites visible and citable by AI search engines (ChatGPT Search, Perplexity, Claude, Gemini AI Overviews). Implements the GEO audit framework plus a 47-method citability engine based on Princeton KDD 2024 research.
$ npx -y skills add Auriti-Labs/geo-optimizer-skill --skill geo-optimizer-skill --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/geo-optimizer-skill
Context preview
The summary Claude sees to decide when to auto-load this skill.
Make websites visible and citable by AI search engines (ChatGPT Search, Perplexity, Claude, Gemini AI Overviews). Implements the GEO audit framework plus a 47-method citability engine based on Princeton KDD 2024 research.
SKILL.md
geo-optimizer-skill.SKILL.mdGEO Optimizer
> Make websites visible and citable by AI search engines (ChatGPT Search, Perplexity, Claude, Gemini AI Overviews). Implements the GEO audit framework plus a 47-method citability engine based on Princeton KDD 2024 research.
Workflow
Step 1 — Audit the site
Run `geo audit` first. It scores the site 0–100 across 8 categories and generates a prioritized action list.
geo audit --url https://yoursite.com
geo audit --url https://yoursite.com --format json
geo audit --sitemap https://yoursite.com/sitemap.xml --max-urls 25
Score bands: 0–35 critical · 36–67 foundation · 68–85 good · 86–100 excellent.
Step 2 — Fix AI crawler access (robots.txt)
Ensure AI citation bots can reach the site. Critical bots that must never be blocked:
- `OAI-SearchBot` — ChatGPT Search citations
- `PerplexityBot` — Perplexity answer citations
- `ClaudeBot` — Claude web citations
- `Google-Extended` — Gemini AI Overviews
To allow citations while blocking training: `Disallow: /` for `GPTBot` and `anthropic-ai`, but keep `Allow: /` for `OAI-SearchBot`, `ClaudeBot`, `PerplexityBot`.
Step 3 — Generate llms.txt
`/llms.txt` tells AI crawlers what the site is about and which pages matter.
geo llms --base-url https://yoursite.com --site-name "Site Name" --description "One-sentence description." --output ./public/llms.txt
Required structure: H1 (site name) → blockquote (description) → H2 sections with descriptive links. Keep under 200 lines. Full spec: https://llmstxt.org
Step 4 — Inject JSON-LD schema
Add structured data so AI engines understand page types:
geo schema --type website --url https://yoursite.com
geo schema --type faq --url https://yoursite.com/faq
geo schema --type webapp --url https://yoursite.com/tool
Types: `website`, `webapp`, `faq`, `article`, `organization`, `breadcrumb`.
Step 5 — Optimize content (Princeton GEO methods)
Apply evidence-based improvements ordered by measured impact:
| Priority | Method | Impact | Action | |----------|--------|--------|--------| | 🔴 1 | Cite Sources | +30–115% | Add authoritative external links | | 🔴 2 | Add Statistics | +40% | Include concrete numbers, percentages, dates | | 🟠 3 | Quotation Addition | +30–40% | Expert quotes: `"Text" — Name, Role, Org, Year` | | 🟠 4 | Authoritative Tone | +6–12% | Confident, expert framing | | 🟡 5 | Fluency Optimization | +15–30% | Clear, direct language | | 🟡 6 | Easy-to-Understand | +8–15% | Define terms, use analogies | | 🟢 7 | Technical Terms | +5–10% | Correct industry terminology | | 🟢 8 | Unique Words | +5–8% | Vary vocabulary deliberately | | ❌ 9 | Keyword Stuffing | ~0% ⚠️ | Do NOT apply — neutral to negative |
Source: Princeton KDD 2024 (10,000 queries on Perplexity.ai). Extended by AutoGEO ICLR 2026, SE Ranking 2025, Growth Marshal 2026 to 47 total methods.
Step 6 — Auto-fix all gaps
Generate all missing files at once:
geo fix --url https://yoursite.com --apply
geo fix --url https://yoursite.com --only robots,llms,schema
Creates robots.txt entries, llms.txt, JSON-LD schema, meta tags, and AI discovery endpoints based on audit results.
Scoring
8 categories, 100 points total:
| Category | What it measures | |----------|-----------------| | `robots` | AI bot access via robots.txt | | `llms` | llms.txt presence, structure, depth | | `schema` | JSON-LD types, richness, sameAs | | `meta` | title, description, canonical, Open Graph | | `content` | H1, word count, numbers, links, structure | | `signals` | lang attribute, RSS feed, freshness | | `ai_discovery` | .well-known/ai.txt, /ai/summary.json, /ai/faq.json | | `brand_entity` | Name consistency, Knowledge Graph, about/contact |
CLI Commands
**11 commands** covering audit, remediation, analysis, and monitoring:
# ── Primary ──
geo audit --url URL [--format text|json|rich|html|github|ci|pdf] [--sitemap URL]
geo fix --url URL [--apply] [--only robots,llms,schema,meta,ai_discovery,content]
geo llms --base-url URL --site-name NAME --description DESC --output FILE
geo schema --type TYPE --url URL [--inject FILE]
# ── Analysis ──
geo diff --before URL --after URL
geo history --url URL
geo coherence --url URL
# ── Monitoring ──
geo monitor --domain DOMAIN
geo track --url URL [--report] [--output FILE]
# ── Utility ──
geo logs --path LOGFILE
geo snapshots --url URL [--save | --compare SNAPSHOT_ID]
Output Formats
7 formats for different workflows:
| Format | Flag | Use case | |--------|------|----------| | text | `--format text` | Terminal (default) | | json | `--format json` | Programmatic consumption, CI pipelines | | rich | `--format rich` | Colored terminal with ASCII dashboard | | html | `--format html` | Self-contained HTML report | | github | `--format github` | GitHub Actions annotations | | ci | `--format ci` | CI/CD systems (structured annotations) | | pdf | `--format pdf` | Client-facing reports |
Informational Checks
10 non-scoring checks that provide deeper analysis beyond the 0–100 score:
| Check | What it detects | |-------|-----------------| | WebMCP Readiness | SearchAction, labeled forms, tool attributes for AI agents | | Negative Signals | CTA overload, thin content, keyword stuffing, boilerplate | | Prompt Injection | LLM instructions in content, HTML comment injection, hidden text | | Trust Stack | 5-layer trust score (technical, identity, social, academic, consistency) | | RAG Chunk Readiness | Content structure optimized for retrieval-augmented generation | | Embedding Proximity | Semantic alignment between title, headings, and body content | | Content Decay | Temporal signals indicating stale or outdated content | | Platform Citation | Per-platform citation profile (ChatGPT vs Perplexity vs Gemini) | | Context Window | Content length optimization for LLM context windows | | Instruction Readiness | Content structure that helps LLMs follow extraction patterns |
MCP Integrati
Read more
GEO Optimizer
> Make websites visible and citable by AI search engines (ChatGPT Search, Perplexity, Claude, Gemini AI Overviews). Implements the GEO audit framework plus a 47-method citability engine based on Princeton KDD 2024 research.
Workflow
Step 1 — Audit the site
Run `geo audit` first. It scores the site 0–100 across 8 categories and generates a prioritized action list.
geo audit --url https://yoursite.com geo audit --url https://yoursite.com --format json geo audit --sitemap https://yoursite.com/sitemap.xml --max-urls 25
Score bands: 0–35 critical · 36–67 foundation · 68–85 good · 86–100 excellent.
Step 2 — Fix AI crawler access (robots.txt)
Ensure AI citation bots can reach the site. Critical bots that must never be blocked:
- `OAI-SearchBot` — ChatGPT Search citations
- `PerplexityBot` — Perplexity answer citations
- `ClaudeBot` — Claude web citations
- `Google-Extended` — Gemini AI Overviews
To allow citations while blocking training: `Disallow: /` for `GPTBot` and `anthropic-ai`, but keep `Allow: /` for `OAI-SearchBot`, `ClaudeBot`, `PerplexityBot`.
Step 3 — Generate llms.txt
`/llms.txt` tells AI crawlers what the site is about and which pages matter.
geo llms --base-url https://yoursite.com --site-name "Site Name" --description "One-sentence description." --output ./public/llms.txt
Required structure: H1 (site name) → blockquote (description) → H2 sections with descriptive links. Keep under 200 lines. Full spec: https://llmstxt.org
Step 4 — Inject JSON-LD schema
Add structured data so AI engines understand page types:
geo schema --type website --url https://yoursite.com geo schema --type faq --url https://yoursite.com/faq geo schema --type webapp --url https://yoursite.com/tool
Types: `website`, `webapp`, `faq`, `article`, `organization`, `breadcrumb`.
Step 5 — Optimize content (Princeton GEO methods)
Apply evidence-based improvements ordered by measured impact:
| Priority | Method | Impact | Action | |----------|--------|--------|--------| | 🔴 1 | Cite Sources | +30–115% | Add authoritative external links | | 🔴 2 | Add Statistics | +40% | Include concrete numbers, percentages, dates | | 🟠 3 | Quotation Addition | +30–40% | Expert quotes: `"Text" — Name, Role, Org, Year` | | 🟠 4 | Authoritative Tone | +6–12% | Confident, expert framing | | 🟡 5 | Fluency Optimization | +15–30% | Clear, direct language | | 🟡 6 | Easy-to-Understand | +8–15% | Define terms, use analogies | | 🟢 7 | Technical Terms | +5–10% | Correct industry terminology | | 🟢 8 | Unique Words | +5–8% | Vary vocabulary deliberately | | ❌ 9 | Keyword Stuffing | ~0% ⚠️ | Do NOT apply — neutral to negative |
Source: Princeton KDD 2024 (10,000 queries on Perplexity.ai). Extended by AutoGEO ICLR 2026, SE Ranking 2025, Growth Marshal 2026 to 47 total methods.
Step 6 — Auto-fix all gaps
Generate all missing files at once:
geo fix --url https://yoursite.com --apply geo fix --url https://yoursite.com --only robots,llms,schema
Creates robots.txt entries, llms.txt, JSON-LD schema, meta tags, and AI discovery endpoints based on audit results.
Scoring
8 categories, 100 points total:
| Category | What it measures | |----------|-----------------| | `robots` | AI bot access via robots.txt | | `llms` | llms.txt presence, structure, depth | | `schema` | JSON-LD types, richness, sameAs | | `meta` | title, description, canonical, Open Graph | | `content` | H1, word count, numbers, links, structure | | `signals` | lang attribute, RSS feed, freshness | | `ai_discovery` | .well-known/ai.txt, /ai/summary.json, /ai/faq.json | | `brand_entity` | Name consistency, Knowledge Graph, about/contact |
CLI Commands
**11 commands** covering audit, remediation, analysis, and monitoring:
# ── Primary ── geo audit --url URL [--format text|json|rich|html|github|ci|pdf] [--sitemap URL] geo fix --url URL [--apply] [--only robots,llms,schema,meta,ai_discovery,content] geo llms --base-url URL --site-name NAME --description DESC --output FILE geo schema --type TYPE --url URL [--inject FILE] # ── Analysis ── geo diff --before URL --after URL geo history --url URL geo coherence --url URL # ── Monitoring ── geo monitor --domain DOMAIN geo track --url URL [--report] [--output FILE] # ── Utility ── geo logs --path LOGFILE geo snapshots --url URL [--save | --compare SNAPSHOT_ID]
Output Formats
7 formats for different workflows:
| Format | Flag | Use case | |--------|------|----------| | text | `--format text` | Terminal (default) | | json | `--format json` | Programmatic consumption, CI pipelines | | rich | `--format rich` | Colored terminal with ASCII dashboard | | html | `--format html` | Self-contained HTML report | | github | `--format github` | GitHub Actions annotations | | ci | `--format ci` | CI/CD systems (structured annotations) | | pdf | `--format pdf` | Client-facing reports |
Informational Checks
10 non-scoring checks that provide deeper analysis beyond the 0–100 score:
| Check | What it detects | |-------|-----------------| | WebMCP Readiness | SearchAction, labeled forms, tool attributes for AI agents | | Negative Signals | CTA overload, thin content, keyword stuffing, boilerplate | | Prompt Injection | LLM instructions in content, HTML comment injection, hidden text | | Trust Stack | 5-layer trust score (technical, identity, social, academic, consistency) | | RAG Chunk Readiness | Content structure optimized for retrieval-augmented generation | | Embedding Proximity | Semantic alignment between title, headings, and body content | | Content Decay | Temporal signals indicating stale or outdated content | | Platform Citation | Per-platform citation profile (ChatGPT vs Perplexity vs Gemini) | | Context Window | Content length optimization for LLM context windows | | Instruction Readiness | Content structure that helps LLMs follow extraction patterns |
MCP Integrati
Open-source Answer Engine Optimization (AEO) & Generative Engine Optimization (GEO) toolkit — audit, optimize & track whether ChatGPT, Perplexity, Gemini & Google AI Overviews cite your site. AI SEO / LLM SEO. CLI, Python, MCP, Astro.
Repo: Auriti-Labs/geo-optimizer-skill

