Labs · Methodology
How a scan works, and what we refuse to do.
This page is the reference every experiment links back to. If a claim in a post seems to skip a step, this is where the step is defined.
How a scan works
Every experiment starts with a fixed set of prompts, decided before any run — this is the fixed instrument, not something we adjust mid-study to chase a result. Each prompt is repeated N times per AI surface (5 reps is our default). Every run is recorded, and for every recorded run we capture each individual cited URL the surface returned, then reduce it to a domain for aggregate tables. Nothing is sampled or estimated after the fact — a citation count is a count of citations we actually captured.
The surfaces we attempt
We attempt ChatGPT, Claude, Perplexity and Google AI Overviews. Citation capture is not uniform across them:
- ChatGPT and Claude are queried through their own APIs with web search enabled.
- Perplexity and Google AI Overviews are queried through a third-party SERP/LLM API — meaning any shared retrieval stack between those two can inflate their apparent overlap versus a truly independent measurement. We flag this rather than treat the overlap number as clean (see exp-011).
- Google AI Overviews has, at least once, returned zero captured citation URLs across an entire run despite zero recorded errors (see exp-012). We do not know whether that means the surface cited nothing, or our capture missed the citations it did show — and we do not guess in either direction.
What we refuse to do
No fabricated figures. If a number can't be traced to a primary data file behind a specific scan, it does not get published — not softened, not rounded to sound safer, deleted.
We exclude a surface rather than publish a finding we can't defend. The worked example is exp-012: Google AI Overviews returned zero citation URLs across all 75 of its runs in that scan, with zero recorded errors. Rather than publish "Google cites nobody for these queries" on an unresolved capture question, we excluded AIO from every agreement calculation and headline table in that post and said so in the piece.
Like-for-like comparison
Answer engines don't always answer every prompt in a battery — in exp-012, each engine covered only 15-16 of the 20 prompts, and which prompts were skipped differed by engine, with zero errors recorded. Raw per-engine totals in a case like that are not strictly comparable. So every cross-engine table we publish is computed only on the subset of prompts every engine in that comparison actually answered — never on raw totals across an uneven prompt set. Where it matters, we also publish a robustness check on the looser, full-battery basis and confirm the finding survives the stricter test before treating it as the headline number.
Disclosure policy
Lead Media, which operates GetCited Labs, also operates sites in some of the markets we measure — for example verdikt.bet, a Canadian iGaming comparison site that appears in our Alberta citation study. We are not a neutral third party, and we never imply otherwise. Any experiment that touches a market we operate in names the property, in the piece, near the top — not buried in a footnote. See who runs this.
Corrections policy
If we get something wrong — a measurement bug, a mislabelled figure, a broken extractor — we correct it in place and say what changed. exp-011 shipped with a caught-in-review example of this: an early pass had our citation extractor reading a Gemini grounding-redirect wrapper instead of the real publisher domain, which would have shipped as "Gemini cites almost nobody." We caught it before publishing and corrected the numbers, and said so in the post. That review step runs on every experiment before it ships.
See this in practice: the Alberta AI-citation study (exp-012) and five engines, one question (exp-011).