OpenGEO·open benchmark for AI answer engines·October 2026

Specific facts are what get a page cited by AI answer engines.

OpenGEO changes one thing about a document and measures whether the models behind ChatGPT, Gemini, Claude, DeepSeek and Grok cite it more. Adding specific figures took a page from being cited 50% of the time to 98.5%, on every model tested. Repeating keywords moved it by 3.8 points. Every number carries its interval, and the tests that found nothing are reported alongside the ones that did.

What changing a page did to its citation rate

0+10+20+30+40+50+60Replace vague claims with specific figures8 models · found twice · not pre-registered+48.2Repeat the topic keyword 4–8 times7 models · pre-registered+3.8pts

Both changes were measured against the same kind of starting page — one that doesn't answer the question, cited 50–52% of the time. Pages with facts were cited 98.5% of the time, so the specific-facts effect ran into the ceiling: its direction is clear, but its size reflects where the vague page started and is not identified.

Found twiceNot pre-registered

Put the specific answer on the page

We took pages that talk around a question and replaced their generic phrasing with the specific figure the question asks for — a price, an interval, a dose — keeping the length within three words. Citation rose on every model we tested, by 37 to 61 points. The same result appeared at 12 questions and again at 48.

Vague pageSame page, specific figures
0%25%50%75%100%ChatGPTgpt-5.4-mini45%Geminigemini-3-flash-preview63%Claudeclaude-haiku-4.538%DeepSeekdeepseek-chat59%Grokgrok-4.362%
Share of runs in which each engine cited the page. Engines ordered by share of AI-assistant web traffic (Similarweb, August 2026). Llama 4 Maverick, Mistral Medium 3 and Kimi K2 showed the same effect; the pooled +48.2 points [+40.4, +56.3] covers all 8 models.
For your contentWhere a page says “fast,” “affordable” or “most teams,” say how fast, how much, and how many.
48 questions · 24 domains18,432 engine callsp < 0.0001full report
Pre-registered

Repeating your keyword helps a little, and doesn't get you misquoted

We expected keyword stuffing to do nothing, or to hurt. It helped: repeating a page's topic phrase four to eight times, with no new facts and no extra length, raised citation by +3.8 points [+0.4, +7.5] — roughly 13× smaller than the effect of adding specific figures. No engine went significantly the other way, but on Gemini and Claude the interval includes zero.

−50+5+10+15NO EFFECTChatGPTgpt-5.4-miniGeminigemini-3-flash-previewClaudeclaude-haiku-4.5DeepSeekdeepseek-chatGrokgrok-4.3All modelspooled · 7 models+3.8pts
Change in citation rate from repetition, with 95% intervals. Dots in green have intervals clear of zero. The pooled figure covers 7 models, as the pre-registration specified — Llama 4 Maverick (+3.5) and Mistral Medium 3 (−0.6) are in it, and neither of their intervals clears zero. Kimi K2 was excluded for failing to cite sources reliably (no-cite rate 12.1%).

We also checked whether stuffed pages get misrepresented more once cited. They don't: the share of attributed claims the page didn't support moved by −0.9 points [−3.8, +1.8], and a second, independent judge model agreed.

For your contentNaming your topic plainly helps a little. It is the weaker lever by an order of magnitude — facts first.
hypothesis committed before collection18,432 engine callsp = 0.045full reportpre-registration
Pre-registered

Padding a page with filler does not win it citations

Doubling a page's length with filler that states no fact, names no entity and repeats none of the question's words moved its citation rate by +0.4 points [−2.3, +3.1] — an interval comfortably around zero. Length is invisible in this round's variance decomposition too, behind which question was asked, which domain it came from, and the page's format.

But the engines disagree about the sign. On three of the five a padded page is cited less often, each with an interval clear of zero, and two of those hold up after correcting across the panel. The engines that shrug padding off are the two carrying most of the traffic, which is why the pooled figure lands flat. Nothing here rewards padding on any engine; on some it costs you.

−10−50+5NO EFFECTChatGPTgpt-5.4-miniGeminigemini-3-flash-previewClaudeclaude-haiku-4.5DeepSeekdeepseek-chatGrokgrok-4.3All enginesshare-weighted · 5 engines+0.4pts
Change in citation rate from doubling length with filler, with 95% intervals. Dots in red have intervals entirely below zero. Pooled across 5 engines, weighted by market share.

A page's share of the answer's sentences — a fairer test of the word-count metrics used elsewhere in this field — did not move either, on any dose.

For your contentWords are not the lever. Adding length without adding facts is at best neutral, and on several engines it actively costs you citations.
hypothesis committed before collection23,040 engine callsp = 0.764full reportpre-registration
Probe, not a roundDesign committed before collection

How the answer is presented does not change whether it is cited

These are the things the optimisation advice actually sells: put the answer first, format it as an FAQ, attribute it to its source, cite where it came from. We applied all four to documents already competing against real alternatives, holding the facts identical — no tactic was allowed to add a figure the original did not have, because a page that says more is already known to win. Pooled across the panel they moved citation by +0.1 points [−3.6, +3.4].

The engines are not unanimous, and the disagreement is worth more than the pooled figure. On one engine these tactics cost a page citations and on another they earn a few, each with an interval clear of zero — but neither survives correction across the panel, and they point opposite ways. Per-cell movement sat at the level you get from running the same unchanged document twice.

−20−100+10+20NO EFFECTChatGPTgpt-5.4-miniGeminigemini-3-flash-previewClaudeclaude-haiku-4.5DeepSeekdeepseek-chatGrokgrok-4.3All enginesshare-weighted · 5 engines+0.1pts
Change in citation rate from four fact-preserving presentation tactics, with 95% intervals. Pooled across 5 engines, weighted by market share. 3 questions — an estimate with an interval, not a published effect size.

Two further probes asked whether the documents were simply too short for order to matter. Lengthening them did not rescue the effect. Rebuilding every document as a full page section did something more awkward: the citation rates split to the extremes, most documents either always cited or never, and the gradeable middle this measurement depends on disappeared.

That middle turns out to be an artefact of cutting the documents short. A short excerpt is a partial answer and earns a partial rate; a full page either contains the answer or it does not. So this null cannot be fixed by running a bigger version of it — the regime it needs is a property of the truncation, not of the content.

For your contentPresentation is not the lever at this stage. What the engine does with a page it already has depends on whether the page answers the question, not on where the answer sits or how it is framed. If these tactics help, they help earlier — by getting the page retrieved at all — and that is not what this measures.
design and reading committed before collection4,320 engine calls across three probesfact-preserving by construction: no tactic adds a figurefull report
Replicated ×2

Engines largely agree on what deserves a citation

GEO tools are often sold on the idea that every engine is its own optimisation problem. We measured how closely engines agree on which documents they cite, and compared it with how closely one engine agrees with itself when asked the same thing again. Engines agree with each other about as closely as one engine agrees with its own re-run — the disagreement between them is no bigger than ordinary run-to-run noise.

0.00.20.40.60.81.0Different engines, compared with each other0.80One engine, compared with its own re-run0.77
Kendall's W: the higher it is, the more alike two rankings of which documents get cited. The within-engine figure is the noise floor any real disagreement would have to clear. Keyword-stuffing document set shown; the claim-density document set gave 0.803 against 0.772.
For your contentA page that earns citations from one engine tends to earn them from the others. The data doesn't support a separate strategy per engine.
measured on two independent document sets36,864 engine callsfull reportearlier round
Two independent judges

Engines sometimes credit your page with things it doesn't say

Being cited isn't the same as being represented accurately. For every sentence that cited a page, we asked a separate model whether the page actually supports it. Between 13% and 20% of cited sentences made a claim the page doesn't support, depending on which model did the checking. These test pages don't directly answer the question asked — the situation where misattribution is most likely — so pages that do may fare better.

13  per 100 by the more lenient judge's count (glm-5.3, 95% CI 10.5–17.0)
20  per 100 by the stricter judge's count (qwen3.8-max, 95% CI 15.8–25.5)
supported, or partly supported, by the page
For your contentCheck what engines actually say when they cite you, not just whether they do.
20,694 judged sentencesALCE-style entailment checkingfull reportjudging methodcomputation
Early · 12 questions, one engine

Tracking tools that query the API may undercount your citations

Most citation-tracking tools query engines through their API. We asked the same 12 everyday questions through OpenAI's API and on chatgpt.com without an account. On 3 questions the API cited nothing while the website cited real sources. The reverse never happened, and when both cited, they largely pointed to the same sites.

QuestionOpenAI APIchatgpt.com, logged out
Both cited · 4
Current US federal funds ratefederalreserve.govfederalreserve.gov
Most recent Formula 1 race winnerformula1.comformula1.com
Cost to install a home EV chargerafdc.energy.gov, angi.com, homeadvisor.comafdc.energy.gov, qmerit.com
Budget mechanical keyboard under $100rtings.com, tomsguide.com, tomshardware.comrtings.com
Website cited, API didn't · 3
Seattle weather this weekno sourcesweather.gov, timeanddate.com
Calories in a Chipotle burrito bowlno sourceschipotle.com
Core vaccine schedule for puppiesno sourcesaaha.org
Neither cited · 5
Roth vs traditional IRAno sourcesno sources
Health benefits of creatineno sourcesno sources
Seasonal allergies vs a coldno sourcesno sources
Best beginner portrait lensno sourcesno sources
How long a 5-year ARM stays fixedno sourcesno sources

API: three runs per question, sources pooled. Website: one run. The website may use a different model than the API, so some of the gap could be the model rather than the channel.

For your contentIf a monitoring tool queries the API, read its citation counts as a floor rather than a measurement of what people see.
divergence 0.37 [0.14, 0.62]Perplexity untestable: its site requires sign-in to searchfull report
Pre-registeredQuestions never publishedExclusion rule corrected after

The effect holds on questions we have never released

A benchmark that publishes its own corpus is eventually trained on it, and an effect that survives only on questions a model has already seen is not an effect. So a second set of questions was built and deliberately never released — not in this repository, not in any report, not now and not later. Only totals from it are ever published.

Running both sets together, the strongest finding on this page holds on the unreleased half: +47.3 points [+37.5, +57.1], with an interval clear of zero on every engine. Which half a question came from explains one hundredth of one percent of the variance in whether its page gets cited; the change to the page itself explains a quarter.

−100+10+20+30+40+50+60+70+80+90NO EFFECTChatGPTgpt-5.4-miniGeminigemini-3-flash-previewClaudeclaude-haiku-4.5DeepSeekdeepseek-chatGrokgrok-4.3All enginesshare-weighted · 5 engines+47.3pts
Change in citation rate from adding specific figures, measured only on questions that have never been published, with 95% intervals. Pooled across 5 engines, weighted by market share. 12 held-out questions.

This is not yet a test for contamination, and the pre-registration says so: at the time of measurement the repository had never been public, so neither set had been exposed and there was no asymmetry to find. What it establishes is the before — a reading that can only be taken once, and that a later re-run is compared against.

One caveat travels with the number. The treatment arm saturates: on most engines every single run cites the page once it carries the figures. So +47.3 is a floor on the effect rather than a measurement of it, and the true size is not identified at this baseline.

The figure above uses a rule corrected after this round was pre-registered. The committed version of the rule dropped any engine that often cited nothing at all, without checking whether that happened only when no page answered the question. One engine was dropped on exactly that basis, and it turned out to show the largest effect here. The pre-registered figure, computed without it, was lower; both numbers and the reason they differ are set out in the report, and the correction now applies to every round.

For your contentThe advice does not depend on the test set. Adding the specific figure works on questions nobody has optimised against.
pre-registered before collection14,400 engine callsheld-out half reported as totals only, permanentlyfull reportpre-registration

What this can't tell you yet

How it works

One change at a time

Six candidate sources per question. Only the page under test differs between versions; the other five are byte-identical.

Asked many times

24 runs per question per engine, at default randomness, with source order shuffled every run.

Decided in advance

Rounds marked pre-registered published their hypothesis and analysis plan before a single call was made.

Reproducible

Split-half reliability 0.92–0.96 per engine. Documents, code and every raw response are public.