Real-data SEO and GEO audits for any site

seo-kit is a free, open-source CLI that measures how search crawlers and LLM answer engines actually see a site.

$ seo-kit audit https://example.com
auditing example.com ...

Findings (ranked)

  [HIGH] crawl:schema.missing      No JSON-LD structured data in server HTML
                                   (no Person/Organization entity for Google or LLMs).
  [HIGH] crawl:render.thin_shell   Server HTML has only 21 words of text.
                                   Non-JS crawlers and most LLM bots see almost nothing.
  [MED]  crawl:description.missing No meta description.
  [MED]  crawl:sitemap.missing     No /sitemap.xml (200).
  [LOW]  crawl:canonical.missing   No rel=canonical link.

saved seo-reports/example.com-20260705T000345Z.md (+ .json)

Real output from the keyless crawl pass. No API keys, no config, any URL.

One audit, three audiences

Search crawlers

Titles, meta, canonical, structured data, sitemaps, robots, and Core Web Vitals from the PageSpeed API. Search Console queries once the property is connected.

Platform-internal search

GitHub repo topics, descriptions, and traffic signals. The searches that happen inside platforms, where classic SEO tooling never looks.

LLM answer engines

The GEO layer: is the content readable without JavaScript, does it ship an entity for the model to cite, and do answer engines surface you or a namesake?

Every data source is a provider behind one interface. The free Tier-0 core (crawl, PageSpeed, Search Console, GitHub, Bing, Trends) does most of the work; SERP position, keyword volume, and LLM citation probes are opt-in paid tiers. Nothing paid runs until you turn it on.

Quickstart

git clone https://github.com/johncarmack1984/seo-kit && cd seo-kit
uv sync
uv run seo-kit audit https://example.com   # zero keys: crawl runs, the rest skip and say why
uv tool install --editable .               # global command; then, in any repo with a site:
seo-kit setup                              # scaffold that repo's seo-kit.toml
seo-kit audit example.com                  # full configured set; reports live with the repo

This page is part of the loop: the repo carries its own seo-kit.toml, this site is its registered surface, and the audit history is committed alongside the code.

Honesty about limits

Search Console lags about two days and spans 16 months. Keyword volumes from any tool are modeled estimates, not truth. GEO probe results are non-deterministic and shift with model versions, so they are read as trends across repeated runs, not single answers.

SEO feedback loops are weeks to months and confounded. seo-kit attributes improvement by trend and never invents a metric it did not measure.