Skip to main content

Generative Engine Optimization toolkit — make websites visible to AI search engines

Project description

GEO Optimizer

Make websites visible to AI search engines

PyPI Python 3.9+ CI codecov License: MIT MCP Compatible Buy Me a Coffee

Audit, fix, and optimize any website to be cited by ChatGPT, Perplexity, Claude, and Gemini.

Quick Start · Live Demo · Documentation · Changelog


Why this exists

AI search engines give direct answers and cite their sources. If your site isn't optimized, you're invisible — even if you rank #1 on Google.

User: "What's the best mortgage calculator?"

Perplexity: "According to [Competitor.com], the formula is..."
             ↑ They appear. You don't.

GEO Optimizer audits your site against 47 research-backed methods (Princeton KDD 2024, AutoGEO ICLR 2026) and generates the fixes.


Quick Start

pip install geo-optimizer-skill
# 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

# Passive AI visibility snapshot for a domain
geo monitor --domain yoursite.com

# 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 <html lang>, 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

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 log analysis

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

CI/CD Integration

# .github/workflows/geo.yml
- uses: Auriti-Labs/geo-optimizer-skill@v1
  with:
    url: https://yoursite.com
    min-score: 70        # Fail if score drops below 70
    format: sarif        # Upload to 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 regressions:

geo audit --url https://yoursite.com --save-history --regression

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
ChatGPT Custom GPT ai-context/chatgpt-custom-gpt.md
Cursor ai-context/cursor.mdc
Windsurf ai-context/windsurf.md
Kiro ai-context/kiro-steering.md

Internal Skill System

The repository now includes a structured internal skill catalog for maintainers at src/geo_optimizer/skills/catalog/ plus validation rules and examples. See docs/skill-system.md for the v1 architecture.


Python API

from geo_optimizer import audit

result = audit("https://example.com")
print(result.score)                      # 85
print(result.band)                       # "good"
print(result.citability.total_score)     # 72
print(result.score_breakdown)            # {"robots": 18, "llms": 14, ...}
print(result.recommendations)            # ["Add FAQPage schema..."]

Async variant:

from geo_optimizer import audit_async
result = await audit_async("https://example.com")

Dynamic Badge

Show your GEO score in your README:

![GEO Score](https://geoready.dev/badge?url=https://yoursite.com)

Colors: 86-100 green · 68-85 cyan · 36-67 yellow · 0-35 red. Cached 1h.


Plugin System

Extend the audit with custom checks via entry points:

[project.entry-points."geo_optimizer.checks"]
my_check = "mypackage:MyCheck"

See examples/example_plugin.py for a working example.


Research Foundation

Paper Venue Key Finding
GEO: Generative Engine Optimization KDD 2024 9 methods tested on 10k queries. Cite Sources: +115%, Statistics: +40%
AutoGEO ICLR 2026 Automatic rule extraction. +50.99% over Princeton baseline
C-SEO Bench 2025 Most content manipulation is ineffective. Infrastructure matters most

We focus on technical infrastructure (robots.txt, llms.txt, schema, meta) over content rewriting. The research confirms: if crawlers can't find and parse your content, prose optimization doesn't matter.


Roadmap

This project follows a deliberate release cadence — focused waves, not noisy patches.

Version Window Codename
v4.10.0 Late Apr 2026 Veil
v4.11.0 Mid / Late Jul 2026 Static
v4.12.0 Sep 2026 Ledger
v4.13.0 Nov 2026 Quiet Glass
v4.14.0-rc1 Jan 2027 Threshold
v4.14.0-rc2 / v4.15.0 Mar 2027 Pale Signal
v5.0.0 May 2027 Black Archive

Next focus areas: signal architecture, retrieval surface analysis, scoring recalibration, and structural pattern recognition. The v5.0 cycle represents a broader architectural evolution.

Full release calendar, philosophy, and direction → docs/ROADMAP.md


Security

All URL inputs are validated against private IP ranges (RFC 1918, loopback, link-local, cloud metadata) with DNS pinning before any request. See SECURITY.md for reporting vulnerabilities.


Contributing

git clone https://github.com/YOUR_USERNAME/geo-optimizer-skill.git
cd geo-optimizer-skill && pip install -e ".[dev]"
pytest tests/ -v   # 1309 tests, all mocked

Bug reports · Feature requests · CONTRIBUTING.md


MIT License · Built by Auriti Labs

If this saved you time, a star helps others find it.

Star on GitHub

Star History

Star History Chart

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

geo_optimizer_skill-4.10.3.tar.gz (507.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

geo_optimizer_skill-4.10.3-py3-none-any.whl (427.0 kB view details)

Uploaded Python 3

File details

Details for the file geo_optimizer_skill-4.10.3.tar.gz.

File metadata

  • Download URL: geo_optimizer_skill-4.10.3.tar.gz
  • Upload date:
  • Size: 507.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for geo_optimizer_skill-4.10.3.tar.gz
Algorithm Hash digest
SHA256 72712eee7d144ca74371e5951f5171973314e0a08549b7fc1bdf534f2bd40787
MD5 c254134fcb497642f146ea2e043f2632
BLAKE2b-256 f197917c53b8f2f692da779609228e452a643ba1f21dbc45cf9f15a5533bc1e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for geo_optimizer_skill-4.10.3.tar.gz:

Publisher: publish.yml on Auriti-Labs/geo-optimizer-skill

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file geo_optimizer_skill-4.10.3-py3-none-any.whl.

File metadata

File hashes

Hashes for geo_optimizer_skill-4.10.3-py3-none-any.whl
Algorithm Hash digest
SHA256 27c7f2e5d3fb69f32fe30423e96b309466bc319a82583f85d7a86ec563a184a2
MD5 83f66904b6686283d3151838884d025e
BLAKE2b-256 39c5ac80206ed15f7b39a9280b9e08313cce5724d2501c004bfb65fae9f8625f

See more details on using hashes here.

Provenance

The following attestation bundles were made for geo_optimizer_skill-4.10.3-py3-none-any.whl:

Publisher: publish.yml on Auriti-Labs/geo-optimizer-skill

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page