SEO helps content get found. GEO ensures content gets interpreted correctly.
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
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.
- 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
- Brand Visibility Audit — CJK-first prompt pack, competitor mention-rate analysis, and Markdown action report for AI answer engines
- Action Toolkit — Fix checklist, robots.txt generator, Schema.org generator
- Multilingual — Full English and Traditional Chinese support
- 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 API —
GET/PUT /api/v1/monitoring,GET /api/v1/trends/{url},GET /api/v1/trends/diff,GET /api/v1/fixes/{job_id},POST /api/v1/probe,POST /api/v1/brand-audit
POST /api/v1/brand-audit turns the CJK GEO/AIO opportunity into a repeatable audit workflow:
- Generate Taiwan/Japan/global prompt packs for ChatGPT, Perplexity, Gemini, and Google AI Mode
- Paste answer-engine outputs back into the request to measure target and competitor mention rates
- Receive prioritized fixes for entity clarity, localized comparison content, structured data, llms.txt, and third-party proof
- Export a copy-ready Markdown report for client review or internal planning
Visit gc.ranran.tw — no installation needed.
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.comdocker compose up -d
# → http://localhost:8000URL 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
| Component | Choice |
|---|---|
| Backend | FastAPI + Python 3.11+ |
| NLP | spaCy (entity extraction) |
| Container | Docker + Traefik |
| Frontend | Vanilla HTML/CSS/JS |
Issues and PRs welcome. See docs/ for design decisions and RFCs.
MIT

