CiteLab

Open-source · MIT · Zero dependencies

GEO Auditor

Find structural gaps in your page: headings, metadata, links, and structured data. Paste your page's HTML below for an instant in-browser audit, or run the open-source Python CLI on any live URL.

Audit a page now

Paste the full HTML of a page (View Source → select all → copy). Everything runs locally in your browser — nothing is uploaded.

The URL provides context only. This tool does not fetch the page.

Or audit any live URL from your terminal

The full auditor is an open-source Python CLI. It also probes /llms.txt and works on URLs (no copy-paste). Zero dependencies — it only needs Python 3.9+.

curl -LO https://citelab.uk/downloads/citelab-geo-auditor-v1.0.0.zip
unzip citelab-geo-auditor-v1.0.0.zip
cd citelab-geo-auditor
python3 -m citelab_geo.cli https://yoursite.com/your-article

# gate a build on a minimum score (CI):
python3 -m citelab_geo.cli https://yoursite.com/page --min-score 80

What it checks (and why)

CiteLab assigns editorial weights to these structural checks. They are heuristics, not measured ranking factors. The browser score is the share of weighted checks passed; it does not check live URLs or llms.txt. The Python CLI has a separate checklist and may return a different score.

SignalWeight
schema.org JSON-LD present 12
FAQPage / HowTo schema 10
Answer-first opening 10
Title tag (10–70 chars) 8
Meta description (50–160) 8
Exactly one H1 8
Article / BlogPosting schema 8
Fact density (≥1 stat / 200 words) 8
Outbound citations (≥2) 8
H2 subheadings (≥2) 6
Internal links (≥3) 6
Canonical URL 4
Open Graph (title + image) 4
Substantial content (≥300 words) 4

A high score means a page is well structured for citation. It does not guarantee rankings or that any engine will cite you — that depends on many factors beyond a single page.

Free newsletter

Get new CiteLab tools first

Practical SEO, GEO, and AI-search tools and guides — no spam, no fake screenshots.

SEO GEO Content systems

No spam. No fake income screenshots. Practical notes you can use.