SEOGEO
SEO + GEO site auditorOpen source · MIT

Get found on Google. Get quoted by AI.

SEO and GEO audits for programmatic sites: rank on Google and get cited by ChatGPT, Perplexity and Claude — reported per template, so every fix shows how many pages it covers.

3 free audits a day · about $0.20 each, paid by us · no sign-up · unlimited when you self-host

One report instead of four tools

Site crawler
Screaming Frog, Sitebulb
Search data
Search Console, Bing Webmaster
GEO checker
Page-by-page AI readiness tools
AI visibility tracker
Profound, Peec, Otterly

13 modules, one report

Audit runs on every scan. Connect adds your own search and analytics data. Track runs on a schedule and catches regressions.

Audit

Connect

Track

  1. 01

    Read the sitemap

    Smart sampling across every sitemap family, scaled back up to estimate pages per template. robots.txt respected.

  2. 02

    Find the templates

    URL patterns plus page structure, clustered with HDBSCAN.

  3. 03

    Check a sample

    Rule checks, Core Web Vitals, and Claude reading about 5 pages per template.

  4. 04

    Rank the fixes

    By pages covered × severity, each with the code to fix it.

What runs where

The hosted demo runs on Claude and free APIs. Everything else is built and open source — self-host it and add your own keys.

Free

Crawling, technical SEO, Core Web Vitals, what AI sees, AI crawler logs, monitoring, CI.

Claude

Fact extraction, judging and fixes, question gaps, Claude citation tracking. About $0.20 per audit.

Connect

Your Google Search Console, Bing Webmaster, and GA4 or PostHog, read-only. Coming soon: these need the site owner's own accounts.

Your key

ChatGPT, Perplexity, Gemini and Copilot citation tracking, when you self-host.

Sample reports

Pre-run audits of example sites — open one to explore every module.

Built for developers

Catch SEO and GEO regressions in pull requests, run audits from your editor, or host the whole thing yourself.

  • ✓GitHub Action — fails the PR when a template's score drops or its schema disappears.
  • ✓MCP server — audit_site, check_page, get_llms_txt and more, in Claude Code or Cursor.
  • ✓Self-host — docker compose up: the API, the website and Postgres, with your own keys.
View on GitHub →
.github/workflows/seogeo-audit-kit.yml
# .github/workflows/seogeo-audit-kit.yml
name: SEOGEO Audit Kit
on: [pull_request]
jobs:
  audit:
    runs-on: ubuntu-latest
    steps:
      - uses: jaylahoti/seogeo-audit-kit/action@main
        with:
          url: ${{ steps.deploy.outputs.preview-url }}
          fail-on: "geo<60,high-issues>0,missing-jsonld"
          anthropic-api-key: ${{ secrets.ANTHROPIC_API_KEY }}  # optional

Questions

Do you check every page?+

No — and you don't need to. Pages built from one template share its problems, so the audit uses smart sampling: it reads a fair sample of your sitemap files across every family and checks about 5 representative pages per template. The report shows exactly how pages were counted, and “Count every page” reads every sitemap file when you need the exact number. On a 1.3M-page site the estimate was within 1% of the full count.

Why per template?+

A programmatic site has thousands of pages but only a handful of templates. Fix the template and every page built from it is fixed — so that's the unit worth reporting on.

What does an audit cost?+

About $0.20 in Claude usage, paid by the hosted demo. Rules and ML run first for free; Claude only reads about 60 sample pages and the bigger model runs once. Each report shows the exact cost under “Under the hood”.

Which parts need my own keys?+

Tracking ChatGPT, Perplexity, Gemini and Copilot citations. Everything else runs on Claude or free Google and Bing APIs.

Is my site safe to point this at?+

It only fetches public pages, identifies itself as SEOGEOAuditKitBot, respects robots.txt and Crawl-delay, and caps requests per host.

See your templates

Paste a site or sitemap. Results in 2–4 minutes.

Or open a sample report