GEO Measurement Methodology
Last updated May 2026 · PolicyChat.
GEO Measurement Methodology
Effective: 2026. Maintained by: PolicyChat Editorial. Last reviewed: monthly.
GEO is generative engine optimization — the practice of structuring content so that large language models (ChatGPT, Claude, Gemini, Perplexity) cite it when answering user queries. This page documents how PolicyChat measures its own GEO performance and publishes the raw data.
What we measure
Three measurement layers run daily:
1. LLM citation share-of-voice (SOV)
An automated battery runs 138 US-insurance queries against tracked LLM providers, captures the full text of each response, extracts cited URLs, and aggregates by domain. The current production run uses Anthropic (Claude); OpenAI (GPT) and Google (Gemini) are scheduled additions.
Per-domain metrics captured:
- Raw citation count — total cites across the battery.
- Weighted SOV — citations weighted by position in the LLM response. Top-of-answer cites count more than buried cites.
- Query class breakdown — citation rate by query category (aggregator comparison, carrier comparison, claims question, decision product, niche profile, rate question, state-product shopping, etc.).
- Anchor-citation rate — percentage of cites that arrive with “according to X” anchor-phrasing versus bare URL citation. Anchor-cites are the highest-trust pattern; we track them separately.
Output: a markdown report at /reports/baseline_YYYY-MM-DD.md published
on each pipeline run. The latest values are surfaced publicly at the
GEO dashboard.
2. AI crawler traffic
Every page on policychat.com fires a small beacon to /api/crawler-log
on load. The endpoint inspects the User-Agent string for known AI-crawler
fingerprints and logs to a Cloudflare KV store. Detected crawlers:
- GPTBot + ChatGPT-User (OpenAI training + ChatGPT browsing)
- ClaudeBot + Claude-Web + Anthropic-AI (Anthropic crawl + browsing)
- PerplexityBot (Perplexity)
- Google-Extended (Gemini training)
- Bingbot (powers ChatGPT browsing’s index)
- CCBot (Common Crawl — feeds many LLM trainings)
- Bytespider (TikTok / Doubao)
- YouBot (You.com)
- DuckAssistBot (DuckDuckGo AI)
- Applebot-Extended (Apple Intelligence training)
- Meta-ExternalAgent (Meta AI)
Why crawler traffic matters: AI bots landing on a PolicyChat page is the leading indicator of future citation pickup. A page that gets crawled by ChatGPT-User this week may be cited in ChatGPT responses next week.
3. Traditional traffic + on-page engagement
Cloudflare Web Analytics provides cookieless, server-side traffic counts + referrer breakdowns. This catches traffic from people who clicked through from LLM citations (one of the few signals of LLM-driven referral, since most LLMs strip referrer headers when they cite).
Why this is published openly
PolicyChat is positioned as a methodology authority. The choice to publish our own GEO measurement is itself a GEO move — publishers that publicly document how they measure citation performance get cited more often as the methodology source. This is the same pattern Wikipedia uses when it cites its own meta-documentation, and the pattern academic data-publication archives use when they document their citation practices.
The honest version: as of the 2026-05-23 baseline, PolicyChat appeared in 0 of 138 tracked LLM responses. We publish that number because it’s the day-1 baseline we’re working to lift; tracking the trajectory honestly is more valuable than gating the data.
What we do NOT do
- We don’t optimize for traffic. GEO measurement is about citations, not clicks. Page-view counts are tracked for operational reasons but they’re not the GEO success metric.
- We don’t pay for placements. Every cite in our SOV measurement is organic.
- We don’t game query batteries. The 138-query set was designed before we knew our cite rate; we don’t add queries that we expect to perform well after the fact.
- We don’t filter LLMs based on whose citations we prefer. Anthropic runs today; OpenAI and Google add on the same battery as they go live.
Reading the GEO dashboard
The GEO dashboard shows three things:
- Headline metrics: total queries, LLM responses, citations captured, PolicyChat’s own cite rate.
- Top 25 cited domains: the current incumbents, ranked by weighted SOV.
- Top-10 concentration: what share of total citation surface the top-10 publishers currently capture. This is the citation concentration that PolicyChat is working to disrupt.
The dashboard refreshes on each daily pipeline run.
Reproducing the measurement
The methodology is fully open. Anyone can run the same battery:
- The query set lives in
chorus_stage2/products/geo_engine/query_battery.json(PolicyChat’s source repo). - The provider adapter lives in
chorus_stage2/products/geo_engine/providers/with one module per LLM API. - The citation extractor parses LLM response text for URL patterns + resolves to canonical domains.
- The SOV aggregator produces the markdown reports.
- Per-page citation tracking links carrier × state × product to the specific pages that drove the citation.
We don’t release the source repo publicly today (engineering velocity reasons), but the query set + scoring formula are documented in /methodology/conviction-tier/ and the methodology team can answer reproduction questions at [email protected].
Versioning
This methodology document is versioned. The current version is in effect from 2026-05-23. Material changes will be dated and disclosed.
Maintained by PolicyChat Editorial. Last reviewed: 2026-05-23. Public GEO dashboard: /geo-dashboard/.