Skip to content
GeoSalience
Case Studies · 8 min read

This site is our GEO lab: the stack, the data, the experiments

GeoSalience measures its own AI-crawler traffic, tracks whether LLMs cite it, and runs controlled experiments on its own pages. Here are the first real numbers: an 898-request crawler footprint, a measured 0% citation baseline, and an honest account of where data is still thin.

··

GeoSalience is a publication about Generative Engine Optimization, so it has to be the best live example of GEO we can build — and a place where we test GEO methods on ourselves instead of describing them in the abstract. That means measuring our own AI-crawler traffic, tracking whether large language models cite us, gating every page on a GEO checklist, and running controlled before/after experiments on our own pages. Operating the site is, itself, our primary research.

This page is the running account of that lab. It is dated, it uses only numbers we have actually measured, and where a measurement is still thin it says so rather than guessing. The launch-day section below is preserved as history; the 2026-06-07 update carries the first real numbers from the live pipelines.

Key takeaways (as of 2026-06-07):

  • The site went live on 2026-05-31 and now runs 5 live articles plus 6 glossary terms, with a full GEO surface — llms.txt, .md aliases, JSON-LD, canonical URLs — verified returning 200 over HTTPS.
  • We track four things no off-the-shelf analytics tool reports for us: AI-crawler hits, AI citation rate (our North Star), a self-audit GEO gate, and on-site experiments. All four are now live and streaming — not pending.
  • The crawler and citation pipelines have produced their first real data. In the first week (2026-05-31 → 2026-06-07) we logged 898 AI-crawler requests from 18 distinct crawlers, and our first citation run measured 0% (0 of 50 prompts) — a real, honest day-zero baseline, not a placeholder. See the citation rate definition for what we count.
  • The first experiment, exp-001, records the day-zero baseline. Three more are drafted and waiting for a decision on which to run.

Why a publication about GEO should experiment on itself

The thing that makes a claim about GEO credible is data nobody else can reproduce. "We added FAQPage schema to one page and its AI-crawl frequency changed by this much over 30 days" is a finding that needs our server logs and our measurement harness — a competitor cannot copy it. Every page we publish is a unit we control, which makes the whole site a sample frame.

This is the same logic behind open-metrics companies that published their own numbers and got linked and cited for it. Our version is a public lab: the citation rate, the crawler footprints, and the experiment log are all on /lab, updated as the data lands.

The stack, component by component — and its real status

The honest part of a build-in-public report is the status column. Here is the same stack as on launch day, with the status column brought current to 2026-06-07 — every "pending" replaced by a real, dated state.

LayerWhat it measuresStatus on 2026-06-07
GEO surface (llms.txt, .md aliases, JSON-LD, canonical, sitemap)discoverability + machine-readabilityLive — verified 200 over HTTPS
AI-crawler tracking (nginx log → daily dataset)which LLM bots read us, how often, which pagesLive — 898 requests / 18 crawlers logged, first bots seen 2026-05-31
Citation-rate harness (50 prompts × 4 LLMs)our North Star: do LLMs cite usLive — baseline 0% (0/50) on 2026-06-07, prompt set v1
Self-audit GEO gate (40-point Playbook)every page obeys our own GEO rulesAutomatedpnpm verify:geo runs in the pre-deploy gate
Experiment framework + public logcontrolled before/after tests on our pagesLive — see /lab/experiments
Traffic (privacy-friendly analytics)human visitors, referrersLive — Plausible self-hosted, first-party (early/low traffic)

Two of these — crawler tracking and citation rate — are the GEO-native metrics that make the lab worth running. Both now produce dated data we publish under /datasets; the next two sections report the first real numbers and the caveats that go with them.

The launch-day baseline (the real numbers)

You can only prove a curve moved if you wrote down where it started. On 2026-05-31 the verifiable state was:

  • Corpus: 2 live articles — What is GEO? and The llms.txt spec: adoption and setup — plus 6 glossary terms. Ten further articles exist as drafts, gated on primary research and hidden from listings.
  • Crawler policy: robots.txt welcomes the major AI crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended and others), and Cloudflare runs DNS-only, so those bots reach the origin directly instead of being filtered at the edge.
  • Quality: the cornerstone pages score 99/100/100/100 on Lighthouse (performance / accessibility / best-practices / SEO).
  • One published dataset already: our llms.txt adoption study found 37 of 100 surveyed domains served a valid llms.txt when we crawled them on 2026-05-19. That is real primary research about other sites; the lab described here turns the same lens on ourselves.

On launch day the two GEO-native numbers — total AI-crawler hits and citation rate — were recorded as pending first run, because we do not write down a measured number we did not collect. exp-001 is the formal record of that baseline. The next section replaces those two "pendings" with real measurements.

Update — 2026-06-07: the first real measurements

One week after launch the crawler parser and the citation harness have each produced their first dated run. Both numbers are public datasets; neither is rounded or spun.

AI-crawler footprint: 898 requests from 18 distinct crawlers

Between 2026-05-31 and 2026-06-07, our nginx logs recorded 898 requests from 18 distinct AI-related crawlers (dataset). The traffic is concentrated, and the mix is more interesting than the total:

CrawlerOperator · typeRequestsFirst seen
GoogleOtherGoogle · mixed (training/research)3952026-06-05
ClaudeBotAnthropic · training2492026-05-31
GooglebotGoogle · search1022026-05-31
bingbotMicrosoft · search242026-06-01
ApplebotApple · search242026-06-04
Google-ExtendedGoogle · training152026-06-06
Meta-ExternalAgentMeta · mixed142026-06-06
CCBotCommon Crawl · training122026-06-06
ChatGPT-UserOpenAI · on-demand112026-06-06
PerplexityBotPerplexity · search102026-06-06
GPTBotOpenAI · training82026-06-06

The remaining seven (Bytespider, OAI-SearchBot, Amazonbot, anthropic-ai, cohere-ai, Claude-User, Perplexity-User) trail in single digits. The honest reading: a brand-new GEO site is crawled within hours, but early volume is dominated by training and generic fetchers (GoogleOther, ClaudeBot), while the on-demand "answer" fetchers that signal a live citation (ChatGPT-User, Perplexity-User) are still a trickle. That gap is exactly what the citation rate measures next.

Citation rate: a measured 0% (0 of 50) — and why that number is credible

Our first citation run, on 2026-06-07 with prompt set v1 (50 prompts across the four GEO pillars, run against ChatGPT, Claude, Gemini and Perplexity), returned 0% — 0 of 50 prompts cited or mentioned geosalience.com (dataset). Per provider, every rate is 0%.

A zero is only worth publishing if you can show it is real rather than an empty pipeline. Ours is real: across the run the four models grounded their answers in 1,105 source URLs (870 unique) — and not one pointed to geosalience.com. The models were answering GEO questions with sources; we simply were not among them yet. That is the honest starting height, and it matches the crawler picture above: we are being read for training, not yet retrieved for answers. This is the baseline the citation rate curve climbs from.

We turned those same captured sources into a first real finding: who LLMs actually cite for GEO maps the 927 attributable citations to 417 domains — led by YouTube and SEO-tool blogs, with geosalience.com nowhere in them yet.

Methodology caveat: grounding coverage was uneven

The 0% headline is a confident "no LLM cited us." But per-provider retrieval coverage was not uniform, and that has to be stated plainly. Web grounding actually fired on:

  • Perplexity — 50/50 prompts (always searches),
  • Claude — 35/50 (searches at the model's discretion),
  • Gemini — 13/50 (a free-tier 429 quota capped the run partway through),
  • ChatGPT — 3/50 (searched only when the model chose to).

So while no provider cited us on any prompt where it did search, ChatGPT and Gemini searched on few prompts, so their slice of the baseline is thin. We run grounding at model discretion on purpose — it mirrors how real users get answers — but a stricter follow-up run (forced search, a higher-quota Gemini key) is a stated next step before we read too much into per-provider deltas. The 0% overall stands; the per-provider confidence varies.

The self-audit gate

Every article on GeoSalience is meant to pass a 40-point GEO Playbook: answer-first opening, standalone-coherent sections, dense dated facts, inline primary-source citations, Schema.org markup, a working .md alias, internal links. As of 2026-06-07 that gate is automated: pnpm verify:geo runs the machine-checkable subset of the Playbook against every state: live page in the pre-deploy step, and refuses the deploy if any page drops below its threshold (cornerstone 100%, spoke ≥85%, pulse ≥60%). A page that breaks our own rules cannot ship. The tool is deliberately honest about its limits — it never claims a page is "GEO-perfect," only that it has not regressed on the checkable subset; the research-quality points (A and B of the Playbook) still need a human. At this update every live page passes its threshold — the same gate had to pass for this very cornerstone to ship, and the running self-compliance figure is on /lab.

The experiments

The framework treats each experiment as a citable page with a protocol, a status, and — only at conclusion — a result. The analysis is deliberately modest: it reports descriptive before/after deltas with explicit caveats and computes no statistical significance, because a handful of pages with noisy, slow metrics does not justify it. When the data is too thin to say anything, the analyzer returns inconclusive and says why. We publish that as readily as a positive result.

One limit is worth stating here because it shapes what these experiments can show: our citation harness measures the whole domain, not individual pages. So a page-level citation experiment cannot be cleanly attributed, and the framework says so — it falls back to per-page crawler re-fetch frequency as a proxy and treats citation movement as site-wide context. Sharpening that into true per-page citation attribution is on the list.

How we test (disclosure)

The methodology here is the dogfooding loop itself: publish a page, audit it against the GEO Playbook, measure which AI crawlers read it, measure whether LLMs cite the site, change one variant and measure the delta, then publish the finding — which becomes another page in this lab. We disclose that the site is our own subject. Numbers come from our nginx logs (bot rows only, no visitor PII) and from our own harness querying public LLM APIs with our own prompts.

The citation harness runs a locked 50-prompt set (v1) — spread across the four GEO pillars and the same intents we write about, from "what is GEO" to "GEO vs AEO vs LLMO" — against four models (ChatGPT, Claude, Gemini, Perplexity). Grounding is left at model discretion, not forced, so the measurement reflects how a real user gets an answer; the trade-off is the uneven per-provider coverage disclosed in the 2026-06-07 update above. Datasets are published under /datasets; the experiment log is at /lab/experiments.

Frequently asked questions

Is the citation rate really 0% right now? Yes. On 2026-06-07 our harness measured 0% — 0 of 50 prompts cited or mentioned geosalience.com across all four models. It is a measured zero, not a guess: the models grounded those answers in 1,105 source URLs and none were ours. The expected first value was always near zero, and that is fine — the point is the curve, not the starting height. Track it on /lab.

Doesn't experimenting on your own site bias the results? Yes, and we say so. These are quasi-experiments on a small, single-domain corpus, not randomized controlled trials. We disclose the confounders — page-type differences, tiny samples, site-wide-only citation data, and the uneven grounding coverage noted above — on every experiment.

Where can I check these claims? Every figure is public: fetch /robots.txt, /llms.txt, or any article's .md alias; open the citation-rate dataset and the crawler dataset; read exp-001; follow the citation rate definition. Nothing in the baseline depends on private data. If you are new to the terms, start with what GEO is and how knowledge cutoffs and live web access interact.

Limitations

This is still a young lab, but the gaps have shifted. Resolved since launch: both GEO-native metrics now stream (898 crawler requests; a measured 0% baseline), and the self-audit gate is automated in the deploy step. Still open, and stated plainly:

  • Per-page citation attribution does not exist — the harness measures the whole domain, so a page-level citation experiment falls back to crawler re-fetch frequency as a proxy.
  • Grounding coverage is uneven — ChatGPT searched on 3/50 prompts and Gemini on 13/50 (a quota cap) this run, so per-provider numbers carry less weight than the overall figure until a stricter run lands.
  • The corpus is small — five live articles is a thin sample frame, and traffic is early/low.

Each is a reason a later entry here will be worth reading. This is, for now, the only entry in our case studies pillar; the next one will be a delta, not a baseline.


Cite this article

Reference this work in one of the formats below. The same strings are embedded in this page's Schema.org JSON-LD so LLM crawlers see them too.

GeoSalience (2026, May 31). This site is our GEO lab: the stack, the data, the experiments. GeoSalience. https://geosalience.com/case-studies/geosalience-as-its-own-case-study

Changelog

  • Published — 31 May 2026
  • Updated — 7 June 2026
  • Last reviewed — 7 June 2026
GeoSalience

Editorial

Independent publication on Generative Engine Optimization. Primary research on how AI search engines retrieve, rank, and cite.

Related