Skip to content

MakiDevelop/geo-checker

Repository files navigation

GEO Checker

SEO helps content get found. GEO ensures content gets interpreted correctly.

License: MIT Python 3.11+

GEO Checker Homepage

GEO (Generative Engine Optimization) Checker analyzes how well your content is understood by AI search engines like ChatGPT, Claude, Perplexity, and Google AI Overviews.

Live demo: gc.ranran.tw

Why GEO matters

SEO optimizes for search engine ranking. But when ChatGPT or Perplexity answers a question, they don't rank pages — they interpret, summarize, and cite content. If your page isn't structured for AI comprehension, you're invisible to the next generation of search.

GEO Checker tells you exactly what to fix.

Features

Core Analysis

  • 14 AI Crawler Detection — GPTBot, ClaudeBot, PerplexityBot, Google-Extended, Applebot, Meta AI, and 8 more
  • GEO Signal Analysis — E-E-A-T authority, content freshness, image alt text quality, llms.txt, Schema.org structured data
  • AI Citation Simulator — Preview how AI engines would summarize and cite your content
  • GEO Score Card — Shareable visual score card (1200x630 OG image)
  • Compare Mode — Side-by-side analysis of multiple pages
  • Action Toolkit — Fix checklist, robots.txt generator, Schema.org generator
  • Multilingual — Full English and Traditional Chinese support

v4.0 — Persistence, Trends & Live Probe

  • SQLite Persistence — Scan history survives restarts (URLs, scans, findings, crawler status)
  • Trend Tracking — SVG line chart on results page + diff between two scans
  • Fix Snippets — Copy-paste ready fixes (robots.txt, JSON-LD, meta tags, nginx config)
  • Live AI Probe (BYOK) — Actually ask Perplexity whether your URL gets cited. Bring your own API key — stored only in your browser
  • Scheduled Rescan — Hourly / daily / weekly auto rescans (opt-in via GEO_CHECKER_ENABLE_SCHEDULER=1)
  • Webhook Alerts — Generic HTTP POST when grade drops or score falls below threshold. Route to Slack / Telegram / LINE via n8n / Zapier
  • Monitoring APIGET/PUT /api/v1/monitoring, GET /api/v1/trends/{url}, GET /api/v1/trends/diff, GET /api/v1/fixes/{job_id}, POST /api/v1/probe

Analysis Result

Quickstart

Use the hosted version

Visit gc.ranran.tw — no installation needed.

Run locally

git clone https://github.com/MakiDevelop/geo-checker.git
cd geo-checker
pip install -r requirements.txt
python -m spacy download en_core_web_sm

# Web UI
uvicorn app.main:app --host 0.0.0.0 --port 8000
# → http://localhost:8000

# CLI
python -m src.main run https://example.com

Run with Docker

docker compose up -d
# → http://localhost:8000

Architecture

URL input
  │
  ├─ src/fetcher/     → Fetch HTML
  ├─ src/parser/      → Extract main content
  ├─ src/seo/         → Mechanical SEO checks
  ├─ src/geo/         → AI readability & risk heuristics
  ├─ src/ai/          → LLM citation simulation
  └─ src/report/      → Format output (CLI/JSON/Markdown)
  • CLI-first, fully local — no data leaves your machine
  • Web UI — FastAPI-powered dashboard for visual analysis
  • Docker-ready — one command to deploy

Tech Stack

Component Choice
Backend FastAPI + Python 3.11+
NLP spaCy (entity extraction)
Container Docker + Traefik
Frontend Vanilla HTML/CSS/JS

Contributing

Issues and PRs welcome. See docs/ for design decisions and RFCs.

License

MIT

About

GEO (Generative Engine Optimization) Checker — Analyze how well your content is understood by AI search engines. CLI + Web UI.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors