Install
$ agentstack add mcp-auriti-labs-geo-optimizer-skill ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
The open-source Answer Engine Optimization (AEO) & Generative Engine Optimization (GEO) toolkit.
Audit, optimize, and track whether ChatGPT, Perplexity, Gemini, Claude, and Google AI Overviews can crawl, understand, and cite your website.
[](https://pypi.org/project/geo-optimizer-skill/) [](https://python.org) [](https://github.com/auriti-labs/geo-optimizer-skill/actions) [](https://app.codecov.io/gh/Auriti-Labs/geo-optimizer-skill) [](https://github.com/Auriti-Labs/geo-optimizer-skill/actions/workflows/ci.yml) [](LICENSE) [](https://modelcontextprotocol.io) [](https://buymeacoffee.com/auritidesign)
One command scores your site 0–100 on AI-search readiness, tells you exactly what to fix, and checks whether AI engines actually cite you.
[Quick Start](#quick-start) · Live Demo · Pricing · Sign Up · Documentation · [Changelog](CHANGELOG.md)
15 CLI commands · 8 scoring categories · 47 research-backed methods · 7 output formats · 1,720 tests · academic foundation (KDD 2024, ICLR 2026) · runs in CI/CD, as a [Python library](#python-api), an [MCP server](#mcp-server), or an [Astro integration](#astro-integration)
What is GEO Optimizer?
GEO Optimizer is a free, open-source command-line tool (and Python library, MCP server, and [Astro integration](#astro-integration)) that measures how visible your website is to AI answer engines — ChatGPT, Perplexity, Google AI Overviews, Gemini, and Claude — and tells you how to get cited by them.
This discipline goes by several names; this tool covers all of them: Answer Engine Optimization (AEO), Generative Engine Optimization (GEO), AI SEO, LLM SEO, AI Search Optimization, and AI visibility / LLM visibility monitoring. If you're searching for an "open-source AEO tool", a "tool to check if ChatGPT cites my website", or an "llms.txt checker" — that's this.
# Zero install — score any site against 8 AI-readiness categories
uvx --from geo-optimizer-skill geo audit --url https://yoursite.com
It scores your site against 47 research-backed methods (Princeton KDD 2024, AutoGEO ICLR 2026) and generates the exact fixes — robots.txt bot rules, llms.txt, JSON-LD schema, and the content patterns models quote.
Why AI visibility matters in 2026
AI search engines give one synthesized answer and cite a handful of sources. If your site isn't one of them, you're invisible — even if you rank #1 on Google.
User asks ChatGPT: "What's the best mortgage calculator?"
ChatGPT: "According to [Competitor.com], the formula is..."
↑ They get cited. You don't.
- ChatGPT alone serves 900M weekly users — a growing share of sessions that used to be Google searches.
- **28.3% of ChatGPT's most-cited pages have zero organic visibility on Google** (Ahrefs) — AI engines reward different signals than classic SEO.
- Proper JSON-LD schema lifts LLM extraction accuracy from 16% to 54% (Semrush test on GPT-4).
- 844,000+ sites already ship an
llms.txt. Yours?
Does AI actually cite your brand? Ask it directly.
geo citations queries real answer engines with the questions your customers ask, then reports whether your brand is mentioned and your domain is cited as a source — and which competitors get cited instead of you.
AEO / GEO is not traditional SEO
SEO and AEO/GEO answer different questions:
- SEO optimizes for ranking and clicks in traditional search result pages — crawlability, backlinks, keyword signals.
- AEO / GEO measures whether an AI answer engine can read, parse, understand, and cite your content when generating a response.
- A site can rank well on Google and still be largely opaque to AI systems — missing structured data, no llms.txt, bot access blocked, thin factual density.
GEO Optimizer focuses on the technical and structural signals AI answer engines use: robots.txt bot permissions, llms.txt presence and depth, JSON-LD schema richness, brand entity coherence, multi-page topical authority, and content citability across 47 methods. These complement traditional SEO rather than replacing it.
Try it online
| | | |---|---| | Free audit | geoready.dev — single-URL GEO score, no account required | | Free tools | llms.txt generator — build a starter llms.txt from your sitemap | | Pricing | geoready.dev/pricing — plans and feature comparison | | Sign up | app.geoready.dev/signup — Pro/Studio/Agency available now |
Open-source vs GeoReady Platform
| | GEO Optimizer CLI | GeoReady.dev Free | GeoReady Pro / Studio / Agency | |---|---|---|---| | License / access | MIT, open-source | Free, no account | Self-serve — sign up | | Core use | Local audit engine, CI/CD integration, JSON output | Web audit, score preview, educational pages | Monitoring, score history, regression alerts, agency reporting | | Target | Developers, automation | Developers, SEO specialists | Ongoing clients, multi-site portfolios | | Pricing | Free forever | Free forever | From $19/month — see geoready.dev/pricing |
The CLI and web audit remain MIT-licensed and free. The GeoReady platform adds server-side continuity — monitoring, history, and team features — that a local CLI cannot provide on its own.
Quick Start
pip install geo-optimizer-skill
No install? One-shot audit with uv:
uvx --from geo-optimizer-skill geo audit --url https://yoursite.com
# Audit any site — get a score 0-100 with actionable recommendations
geo audit --url https://yoursite.com
# Audit a full sitemap and surface weakest pages first
geo audit --sitemap https://yoursite.com/sitemap.xml --max-urls 25
# Compare before/after versions of a page
geo diff --before https://yoursite.com/page-old --after https://yoursite.com/page-new
# Save history and detect regressions over time
geo audit --url https://yoursite.com --save-history --regression
# Show the saved trend for a site
geo history --url https://yoursite.com
# What changed since the last snapshot? (severity + category deltas; CI: --fail-on warning)
geo drift --url https://yoursite.com
# Passive AI visibility snapshot for a domain
geo monitor --domain yoursite.com
# Ask real AI engines: is my brand mentioned? Is my domain cited as a source?
# BYO API key — PERPLEXITY_API_KEY recommended (real web citations)
geo citations --brand "YourBrand" --domain yoursite.com --topic "your product category"
# Save or query archived AI answer snapshots
geo snapshots --query "best GEO tool" --from 2026-03-01 --to 2026-03-30
# Score citation quality inside an archived answer snapshot
geo snapshots --quality --snapshot-id 12 --target-domain yoursite.com
# Run recurring monitoring and generate an HTML trend report
geo track --url https://yoursite.com --report --output ./geo-track-report.html
# Auto-generate all missing files (robots.txt, llms.txt, schema, meta)
geo fix --url https://yoursite.com --apply
# Generate llms.txt from sitemap
geo llms --base-url https://yoursite.com --output ./public/llms.txt
# Generate JSON-LD schema
geo schema --type faq --url https://yoursite.com
What it checks
| Area | Points | What GEO Optimizer looks for | |------|--------|------------------------------| | Robots.txt | /18 | 27 AI bots across 3 tiers (training, search, user). Citation bots explicitly allowed? | | llms.txt | /18 | Present, has H1 + blockquote, sections, links, depth. Companion llms-full.txt? | | Schema JSON-LD | /16 | WebSite, Organization, FAQPage, Article. Schema richness (5+ attributes)? | | Meta Tags | /14 | Title, description, canonical, Open Graph complete? | | Content | /12 | H1, statistics, external citations, heading hierarchy, lists/tables, front-loading? | | Brand & Entity | /10 | Brand name coherence, Knowledge Graph links (Wikipedia/Wikidata/LinkedIn/Crunchbase), about page, geo signals, topic authority | | Signals | /6 | `, RSS/Atom feed, dateModified freshness? | | **AI Discovery** | /6 | .well-known/ai.txt, /ai/summary.json, /ai/faq.json, /ai/service.json`? |
Score bands: 86-100 Excellent · 68-85 Good · 36-67 Foundation · 0-35 Critical
Bonus checks (informational, do not affect score):
| Check | What it detects | |-------|-----------------| | CDN Crawler Access | Does Cloudflare/Akamai/Vercel block GPTBot, ClaudeBot, PerplexityBot? | | JS Rendering | Is content accessible without JavaScript? SPA framework detection | | WebMCP Readiness | Chrome WebMCP support: registerTool(), toolname attributes, potentialAction schema | | Negative Signals | 8 anti-citation signals: CTA overload, popups, thin content, keyword stuffing, missing author, boilerplate ratio | | Prompt Injection Detection | 8 manipulation patterns: hidden text, invisible Unicode, LLM instructions, HTML comment injection, monochrome text, micro-font, data-attr injection, aria-hidden abuse | | Trust Stack Score | 5-layer trust aggregation (Technical, Identity, Social, Academic, Consistency) — composite grade A-F | | RAG Chunk Readiness | Content segmentation for RAG retrieval: section word counts, definition openings, heading boundaries, anchor sentences 🆕 v4.7 | | Content Decay Prediction | Detects temporal, statistical, version, event, and price decay patterns — evergreen score 0-100 🆕 v4.7 | | Platform Citation Profile | Per-platform readiness scores for ChatGPT, Perplexity, Google AI 🆕 v4.7 | | Multimodal Readiness | Image alt coverage, captions, VideoObject/AudioObject schema, subtitle tracks, transcripts — the text scaffolding multimodal engines (Gemini, GPT-4o) need 🆕 |
Plus a separate Citability Score (0-100) measuring content quality across 47 methods: Quotation +41% · Statistics +33% · Fluency +29% · Cite Sources +27% · and 43 more.
Additional tools
geo coherence --sitemap https://example.com/sitemap.xml # Cross-page terminology consistency
geo logs --file access.log # AI Crawler Activity — crawler evidence from user-agent logs
geo access --url https://example.com # Agent Access Audit — browser vs AI bot access simulation
geo citations --brand "Acme" --domain acme.com # AI Citation Check — are you cited by answer engines? (BYO key)
geo authority --sitemap https://example.com/sitemap.xml # Topic Authority — multi-page entity coverage, clusters, pillars
geo drift --url https://example.com # Semantic Drift — what changed since the last snapshot
Topic authority — AI engines map entities and multi-page coverage, not single pages. geo authority clusters your site by topic and scores depth, interlinking, and pillar pages:
GEO Optimizer checks whether websites can be crawled, understood, cited, and monitored by AI answer engines:
- Crawled — robots.txt, CDN access, AI-bot reachability
- Understood — schema, llms.txt, content structure
- Cited — citability signals across 47 research-backed methods
- Monitored —
geo logs(crawler evidence) andgeo access(access simulation)
Note on wording: AI Crawler Activity reports crawler evidence from server-log user-agents. Agent Access Audit reports citation readiness (whether bots can reach and parse the page). For actual answer-engine checking — "does the AI mention my brand and cite my domain?" — use geo citations with your own API key (Perplexity Sonar returns the real source URLs; OpenAI/Anthropic/Groq reveal parametric brand knowledge).
Optional LLM-powered analysis (pip install geo-optimizer-skill[llm]): brand sentiment, citation attribution, multi-turn persistence, cross-platform citation map, prompt library.
Output formats
geo audit --url https://example.com --format text # Human-readable (default)
geo audit --url https://example.com --format json # Machine-readable
geo audit --sitemap https://example.com/sitemap.xml # Batch sitemap audit (text)
geo audit --sitemap https://example.com/sitemap.xml --format json # Batch sitemap audit (JSON)
geo audit --url https://example.com --format rich # Colored terminal
geo audit --url https://example.com --format html # Self-contained report
geo audit --url https://example.com --format sarif # GitHub Code Scanning
geo audit --url https://example.com --format junit # Jenkins, GitLab CI
geo audit --url https://example.com --format github # GitHub Actions annotations
geo monitor --domain example.com # Passive AI visibility readiness
geo snapshots --query "best GEO tool" # Saved AI answer archive
geo snapshots --quality --snapshot-id 12 # Citation quality tiers for a saved answer
geo history --url https://example.com # Saved score trend
geo track --url https://example.com --report # Monitoring HTML report
The JSON output format is intended to remain stable across minor versions and acts as the machine-readable integration contract for the GeoReady platform.
CI/CD Integration — fail the build when AI-readiness drops
Treat AI visibility like test coverage: gate every deploy on it. The GitHub Action scores your site, fails the build below a threshold, and uploads results to the Security tab.
# .github/workflows/geo.yml
- uses: Auriti-Labs/geo-optimizer-skill@v4.14.0
with:
url: https://yoursite.com
min-score: 70 # Fail the build if the GEO score drops below 70
format: sarif # Upload findings to the GitHub Security tab
Works with GitHub Actions, GitLab CI, Jenkins, CircleCI, and any CI that runs Python. For longitudinal checks, persist snapshots and fail on regression or semantic drift:
geo audit --url https://yoursite.com --save-history --regression
geo drift --url https://yoursite.com --fail-on warning # exit non-zero if signals degraded
MCP Server
Use GEO Optimizer from Claude, Cursor, Windsurf, or any MCP client:
pip install geo-optimizer-skill[mcp]
claude mcp add geo-optimizer -- geo-mcp
Then ask: "audit my site and fix what's missing"
| Tool | Purpose | |------|---------| | geo_audit | Full audit with score + recommendations | | geo_fix | Generate fix files | | geo_llms_generate | Generate llms.txt | | geo_citability | Content citability analysis (47 methods) | | geo_schema_validate | Validate JSON-LD | | geo_compare | Compare multiple sites | | geo_gap_analysis | Explain the gap between two sites and prioritize fixes | | geo_ai_discovery | Check AI discovery endpoints | | geo_check_bots | Check bot access via robots.txt | | geo_trust_score | 5-layer trust signal aggregation | | geo_negative_signals | 8 anti-citation signal detection | | geo_factual_accuracy | Audit unsourced claims, contradictions, and broken citations |
Use as AI Context
Load the right file into your AI assistant for GEO expertise:
| Platform | File | |----------|------| | Claude Projects | [ai-context/claude-project.md](ai-context/claude-project.md) | | ChatGPT Custom GPT | [`ai-context/chatgpt-custom-gpt.
…
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: Auriti-Labs
- Source: Auriti-Labs/geo-optimizer-skill
- License: MIT
- Homepage: https://auriti-labs.github.io/geo-optimizer-skill/
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.