If you've ever tried to figure out why ChatGPT doesn't mention your brand — or why your competitor shows up in Perplexity but you don't — the existing tools split into two camps: shallow free checks (one engine, one prompt) or enterprise platforms that need a sales call and a 12-month commit.
We built GEO Visibility because both camps miss the actual user need: a deep audit, across four AI engines, in one pass, with concrete recommendations you can ship.
This post is a tour of what's under the hood.
The four engines we query
Every audit hits all four major LLM platforms in parallel:
- ChatGPT (
gpt-4o-minivia the OpenAI Chat Completions API) - Perplexity (scrape fallback today — Sonar Pro key is on the immediate roadmap, see below)
- Google Gemini (
gemini-2.5-flash-litewithgemini-2.5-flashfallback via the Google AI API) - Anthropic Claude (
claude-sonnet-4via the Anthropic API)
Three prompts per engine, category-aware. So a finished audit returns up to 12 LLM snapshots — enough to detect whether your brand is consistently mentioned, sometimes mentioned, or invisible.
Each snapshot is then run through our extraction pipeline — brand mention, sentiment, position, citations, competitor names — using a smaller LLM as the extractor in JSON mode. The result: a structured LLMSnapshot[] that becomes the "AI Engine Breakdown" card on the results page.
The nine analyzers
| Analyzer | Layer | What it scores |
|---|---|---|
| Crawler access | GEO | 14 AI bot user-agents in robots.txt (GPTBot, ClaudeBot, OAI-SearchBot, PerplexityBot, etc.) |
| llms.txt | GEO | Presence + spec compliance for /llms.txt and /llms-full.txt |
| Citability | GEO | Front-30% concentration, proper-noun density, question-heading ratio, statistic density, reading grade |
| E-E-A-T | GEO | Experience / Expertise / Authoritativeness / Trust — with trust cap + YMYL classification + originality flag |
| AI format | GEO | Schema completeness, paragraph density, list/table structure, summary blocks |
| Platform readiness | GEO | Per-engine score with engine-specific recommendations (Wikipedia entity for ChatGPT; Reddit presence for Perplexity; etc.) |
| Schema analyzer | SEO | JSON-LD type detection, Wikidata QID, Organization.sameAs, schema-HTML mismatch |
| Localization signal | SEO | hreflang, LocalBusiness schema, regional landing pages, currency, phone formats |
| Per-engine visibility | LLM | The 12-snapshot grid showing which engines mention you, who they list as competitors, and where you rank in their answer |
Five of these run an LLM as a judge layer (citability, E-E-A-T, AI-format, platform-readiness, schema). The other four are deterministic (robots.txt, llms.txt, sitemap, localization). We picked which to make smart based on whether the signal benefits from contextual judgment vs strict rule-checking — robots.txt is fine as a rule check; "is this content trustworthy?" needs an LLM.
Why this is hard to get right cheaply
A naive pipeline that fans out 5 prompts × 4 engines + full-page LLM analyzers on a 50KB page lands at roughly $0.50–$1.00 per audit when you sum token cost across providers at 2026 list prices. Our blended cost is currently ~$0.10 per audit (measured over the last 30 days of free-tier traffic). The gap is the three engineering moves below.
1. Head + tail content sampling
Long pages get truncated to a 70/30 head+tail split before the LLM sees them. The first 30% of a page carries 44% of citation signal per the Profound study; the last 30% carries closing context. Middle gets discarded. Saves ~60% of token cost on pages over ~5KB while preserving signal.
2. Three prompts per engine, not five
We profiled the marginal lift of prompts 4 and 5 across a sample of free-audit runs and found their unique brand-mention contribution was small compared with prompts 1–3. Three prompts cover the direct + niche + comparative axes that surface ~90% of the brand-mention signal at ~60% of the per-engine cost — informed estimate from our own logs, not a public benchmark.
3. URL-level caching
If two users audit the same URL within 24 hours, the second audit short-circuits to the cached result (with a cachedFromAuditId reference). Audits are public-facing and the same URL doesn't change scores in 24h, so this is free quality.
What the free audit unlocks vs gates
Free audit shows: overall score (SEO + GEO + LLM), category auto-detected, top 5 competitors, one high-priority recommendation in full, summary counts for the rest.
The email-gated unlock shows: all recommendations with full howToFix content, per-engine breakdown, hallucination flags, downloadable Markdown / PDF / llms.txt versions, citation gap analysis.
We gate at the email — no credit card, no signup — because the audit costs us real money to run and the email lets us reach back out with the upgrade flow when the user is ready.
What's next
Three things on the immediate roadmap:
- Perplexity Sonar Pro API key — switches from the scrape fallback (rate-limited, no data ~20% of the time) to first-party API. Per-audit cost goes up by $0.015; coverage goes from 3/4 to 4/4 engines.
- Multi-region tracking GA — the LocalizationSignalScore analyzer is shipped; the per-region visibility comparison view is in beta on Pro.
- Recommendation auto-execute — for a subset of recommendations (llms.txt generation, robots.txt rules, schema templates), we'll ship the patch as a downloadable diff you paste into your repo.
If you've made it this far, run a free audit and let us know what's missing.
Want to go deeper?
Reading list from inside the team:
- Per-engine citation behavior — what each LLM actually pulls from
- Schema for AI in 2026 — Wikidata QID + Person entity + Speakable
- llms.txt — the honest guide — what it is, who reads it
- Content patterns that get cited — Princeton GEO + Profound checklist
- E-E-A-T 2026: trust caps + YMYL — Sept 2025 QRG update
Three minutes. No signup. Four AI engines. Run your free audit →