Sponsored by

SnackOnAI Engineering | Senior AI Systems Researcher | Technical Deep Dive | August 30, 2026

The Promise

A production measurement of 149,912 AI citations says the surface that matters is not your site, and the open-source tooling arriving to fix it is pointed at the wrong surface.

What this covers: how AI brand visibility is actually measured, where citations land, the noise floors that decide your sampling cadence, and OpenSEO's agent architecture. What this excludes: whether any GEO intervention causally lifts visibility, because nobody has run that trial yet, including the people selling it.

What It Actually Does

Two artifacts landed this summer that define the shape of this field.

The measurement side is Generative Engine Optimization at Scale, a June 2026 preprint from Pratyush Kumar of Ranqo. It reports 102 brands, 3,508 tracking runs, 102,025 prompt responses, roughly 15,815 brand mentions and 149,912 source citations across ChatGPT, Gemini, Perplexity, Claude and Grok, gathered March to May 2026. Read the competing-interests note before the findings: the author co-founded and holds equity in the platform being analyzed, and says so plainly. That disclosure is why the paper is usable.

The tooling side is OpenSEO, an MIT-licensed alternative to Semrush and Ahrefs from Every, built around an MCP server and nine agent skills. Ten dollars a month hosted, or self-host on Cloudflare Workers with your own DataForSEO key.

The headline finding is a three-tier ladder in day-one unbranded visibility, and it is statistically solid:

Tier

n

Unbranded visibility, first run

95% CI

Global household names

11

72.9%

[60.1, 84.2]

Established mid-cap

36

43.6%

[36.4, 50.9]

Small and niche

55

11.4%

[4.2, 20.3]

Kruskal-Wallis rejects equality at H equals 38.32, p equals 4.78e-9. All three pairwise Mann-Whitney comparisons survive Bonferroni correction, with Cohen's d of 1.57, 2.34 and 1.31. Leave-one-out on the small Tier 1 cell moves the headline only between 70.5% and 76.7%.

Roughly thirty points per rung. Hold that number.

The Architecture, Unpacked

Caption: Follow the last box back up. The measurement stack is careful and the scoring is transparent, and it terminates in a distribution where the surface every SEO tool optimizes receives one citation in thirty four.

Three design decisions in the measurement layer are worth stealing.

One, unbranded prompts by default. The generator keeps the brand name and its aliases out of the prompt text. Branded prompts recognize at 94 to 100% on every engine, so including them measures nothing except that the brand exists in the index. Any vendor dashboard quoting a visibility score above 90% is almost certainly counting branded queries.

Two, mention and sentiment are never collapsed into one number. They have different noise floors, so a weighted composite would inherit the worse one silently.

Three, carry-forward on transient failure. When a single query fails, the previous value is carried and flagged, so an API timeout is not read as a visibility drop. Anyone who has built a monitoring dashboard knows why that line exists.

The Code, Annotated

Wiring an agent to real SEO data

# OpenSEO's MCP server is the data plane; skills are the procedure plane.
# Keeping them separate is the design decision: MCP grants access, a SKILL.md
# tells the agent which of nine workflows to run and in what order.
claude mcp add --transport http --scope user openseo https://app.openseo.so/mcp
#                                --scope user  → available across every repo
#                                --scope local → this repository only

# Self-hosting on Cloudflare. One command provisions D1, KV, R2, migrations,
# the Worker, and the Cloudflare Access gate.
pnpm alchemy login                 # must enable access:write when prompted
pnpm alchemy cloudflare bootstrap
cp .env.selfhost.example .env.selfhost
pnpm deploy:selfhost --yes

Caption: The MCP-plus-skills split is why this composes with an agent instead of being a dashboard with a chatbot bolted on. Data access and workflow are separately versioned.

The self-host trap that will bite someone

# Docker path, from docs/SELF_HOSTING_DOCKER.md
cp .env.example .env
docker compose up -d          # serves on :3001

# ← THIS is the trap. Docker mode ships AUTH_MODE=local_noauth, which means
# NO auth check at all and an injected admin@localhost user. The docs say to
# put it behind your own reverse proxy. A tunnel for "quick sharing" exposes
# an unauthenticated admin surface holding your DataForSEO key.
AUTH_MODE=local_noauth

# The key itself is base64 of "email:password", NOT the raw API password:
printf '%s' 'YOUR_LOGIN:YOUR_PASSWORD' | base64
# Getting this wrong fails at request time, not at startup, so the container
# reports healthy and every data call returns empty.

OPENSEO_TELEMETRY_DISABLED=1   # heartbeats every 5 min for the first 2 hours

Caption: Two failure modes that produce no error. Unauthenticated exposure looks like a working install, and a mis-encoded key looks like a brand with no SEO data.

The sampling cadence the noise floors actually demand

# Reconstructed from the flip rates reported in the paper's reliability section.
MENTION_FLIP   = 0.068   # 6.8%  of (brand, prompt, engine) cells flip
SENTIMENT_FLIP = 0.455   # 45.5% of the same cells flip
print(SENTIMENT_FLIP / MENTION_FLIP)     # 6.7x noisier

def runs_needed(signal):
    """Mention is near-binary: 77.5% of cells are strictly always- or
    never-mentioned, and 93.2% sit outside the volatile 30-70% band.
    Sentiment has no such structure."""
    if signal == "mention":
        return 3            # settles the ~22.5% of cells in the middle
    if signal == "sentiment":
        return 10           # ← THIS is the trick: prompts per platform,
                            # not runs. Sentiment needs a wider denominator,
                            # not a longer time series.
    raise ValueError(signal)

# The consequence most dashboards get wrong: reporting mention and sentiment
# on the SAME refresh cadence means one of them is always being misreported.
# Mention is stable enough for weekly. Sentiment on a small prompt set is noise
# rendered as a trend line, and a "sentiment dropped 8 points" alert is a
# coin-flip artifact 45.5% of the time.

Caption: Two signals from the same API call with a 6.7x noise gap. Any product that puts them on one refresh timer is shipping a false alert generator.

It In Action

Input: the paper's CRM reference study. Fifty unbranded prompts across the six categories, sent to all five engines ten times, in January 2026. Ten CRM brands tracked.

Step one, fan-out. 50 prompts × 5 engines × 10 repeats produces 2,500 responses and over 9,600 brand mentions.

Step two, concentration. Salesforce, HubSpot and Zoho take 51% of all CRM mentions. The bottom three, Copper, Insightly and Capsule, appear in fewer than one answer in five.

Step three, per-engine divergence. Average mention position splits by engine. ChatGPT puts Salesforce at 1.2 and Zoho at 3.1; Claude puts HubSpot at 1.3 and Salesforce at 1.8. Same category, same prompts, different winner. Perplexity over-indexes on Pipedrive at 2.8, which the author attributes to live retrieval picking up recent comparison reviews.

Step four, the citation problem. Source-link inclusion runs Perplexity 95%, Gemini 35%, Grok 20%, ChatGPT 15%, Claude 10%. On nine out of ten Claude answers there is no URL to attribute at all.

Step five, the arithmetic nobody ran. Pool citations across engines without normalizing for link-inclusion rate and Perplexity contributes roughly 54% of citation rows on that factor alone, against Claude's 6%. The 149,912-citation composition in the main study is therefore a Perplexity-weighted view of the web presented as a cross-engine one. The paper reports mention rates per engine but does not break the citation composition down the same way.

Step six, the output. A brand gets a visibility score on a 0 to 100 scale with letter grades, A+ at 90 and up, F below 30. A Tier 3 brand at 11.4% unbranded visibility scores an F, and that grade is a description of its Wikipedia article, not its website.

Why This Design Works, And What It Trades Away

The measurement works because it fixed the right unit. Everything is stored per (brand, prompt, platform, run) tuple, which is what makes the determinism analysis possible: you cannot discover that 77.5% of cells are strictly always- or never-mentioned unless you kept every cell.

OpenSEO works for a different reason. It is not a better crawler, it is a thinner one. DataForSEO supplies the index, OpenSEO supplies workflow and an MCP surface, and the hosted business takes 28% on top of DataForSEO requests plus ten dollars a month. Run the cost curve: at fifty dollars of monthly DataForSEO spend, hosted is 74 dollars against 50 self-hosted. At two hundred, it is 266 against 200. Both sit under an Ahrefs or Semrush entry tier at roughly 100 to 130 dollars before usage, which is the actual competitive claim.

What both trade away:

No causal evidence, from anyone. The paper is explicit in section 7.2 that it reports no randomized trial of its recommendation engine, and the closed-loop RCT is protocol P3, designed and unrun. Every GEO vendor claim about lift you have read this year rests on nothing stronger than this, and this says it rests on nothing.

A vendor-produced dataset. Convenience-sampled, skewed to SaaS, retail execution, fintech and Indian DTC. Tier 1 is n equals 11. Claude and Grok run on far fewer brands, and that cohort skews high-stature, which is why Claude's 51.5% unbranded day-one recognition is not comparable to ChatGPT's 22.1%. The author flags this himself.

Manual tier coding by one rater. Tiers are hand-assigned from Wikipedia length, press coverage and funding stage. Those are proxies for web prominence, so the ladder quantifies an expected effect rather than proving prominence causes citation. Inter-rater agreement is deferred to v1.1.

Sentiment is a heuristic. Classified by a model on the mention spans, so the 45.5% flip rate mixes real output variance with classifier noise, and the paper has not separated them.

On OpenSEO's side, the index is the moat and OpenSEO does not own it. Fork the MIT code all you like; you still rent the data from DataForSEO at a fifty dollar minimum top-up. The self-hosting instructions require Cloudflare Workers, R2 with a payment method on file, Node 22.6, pnpm and Alchemy. This is a developer product wearing a marketing-tool label.

Technical Moats

Neither artifact has a defensible technical moat, and pretending otherwise would be the easy mistake here.

For Ranqo, the moat is the panel. 102 brands under continuous tracking across five engines for three months is an asset that only accrues by running the business, and the (brand, prompt, platform, run) history is what turns a snapshot into a trajectory. Anyone can replicate the query layer in a fortnight. Nobody can replicate three months of somebody else's customers.

For OpenSEO, the moat is distribution and the skills library. Nine SKILL.md workflows, an MCP server, and plugin installs for Claude Code and Codex that add MCP and every skill in one step. The code is MIT and forkable by design, which the founder treats as the point rather than a risk.

What is genuinely hard in this space is the thing neither has done: a controlled trial. You need matched brands within tier and category, random assignment to treatment, a fourteen to thirty day re-audit window, and a fleet large enough to power it. The paper's P3 describes exactly this. Whoever runs it first owns the only defensible claim in GEO.

The older literature is worth reading precisely because it shows what maturity looks like. Ali and Khusro's 2021 review in Computer Science Review surveys two decades of webpage ranking split across content signals and link-structure signals, PageRank and HITS and their descendants. That field got a shared vocabulary, reproducible algorithms, and adversarial testing. GEO in 2026 has vendor telemetry and seven unrun protocols.

Insights

Insight One: every SEO tool on the market operates on 2.9% of the citation surface.

Look at what OpenSEO ships: keyword research, rank tracking, competitor insights, backlinks, site audits, AI visibility. Five of those six act on your own domain or your own rankings. Now look at where AI engines actually get their sources.

The brand's own domain is 2.9% of 149,912 citations. Third-party corporate pages, meaning competitors, peers and vendors in the same category, are 75.2%. Peer pages are cited 25.9 times more often than yours.

This is not an argument that on-page work is worthless. When your page is the one cited, its structure decides whether the engine can lift a clean answer from it, and the Princeton GEO benchmark showed quotations, statistics and citations each worth roughly 25 to 40% more visibility. It is an argument about surface area. You are optimizing one citation in thirty four and calling it AI visibility.

The addressable move is uncomfortable for a tooling business because it is not a software feature. It is getting into other people's pages: the comparison posts, the category roundups, the vendor lists. Meanwhile the second-largest non-corporate source is YouTube at 4.2%, ahead of editorial media at 3.8% and Reddit at 3.3%. A brand with no video presence is absent from the largest non-corporate surface these engines draw on, and no SEO tool has a workflow for that.

Insight Two: GEO tactics cannot move you a tier, and the arithmetic is not close.

The tier gaps are 29.3 and 32.2 percentage points. The paper reports that the fastest Tier 3 movers it observed travelled only 10 to 20 absolute points across the observation window, and treats those as anecdotes because they are single-brand series picked out after the fact with no confidence intervals.

So the best observed within-tier movement is roughly two thirds of the smallest gap between tiers. Page-level optimization does not promote a brand. It moves you inside your band.

The no-intervention baseline makes it worse. Left alone, unbranded visibility declines measurably on ChatGPT at minus 1.34% per run with a CI of [-2.45, -0.38] and on Perplexity at minus 0.76% with [-1.66, -0.03]. Both exclude zero. Gemini, Claude and Grok are statistically flat. So on two of five engines you lose ground by standing still, and the tier structure means you cannot sprint out of your band.

C-SEO Bench, the first systematic benchmark of conversational SEO tactics, found most of them do not help and several actively hurt. Put that beside a field with no completed RCT and the honest position is that GEO's demonstrated effect size is currently zero, not because it does not work, but because nobody has measured it.

What the data does support is blunt and cheap: find out which tier you are in before spending anything. Tier 1 is near saturation and needs share of voice, not recognition. Tier 2 has the largest absolute headroom. Tier 3's highest-confidence move is brand mass, meaning Wikipedia, mainstream press and sustained video, before any per-engine optimization is worth funding.

Takeaway

The ranked listicle is 21.0% of all citations. Your entire domain is 2.9%. Getting onto other people's "best X tools" pages is worth roughly seven times everything you will ever publish on your own site.

The mechanism is reuse. Content pages are 59% of citations, and within them the listicle is 35.7%, ahead of the generic article at 31.0% and the how-to guide at 9.7%. Once a ranked list includes you, that single page becomes a source the engines pull across many different prompts. One page, many answers.

It compounds, too. Algaba and colleagues showed LLMs prefer sources that are already heavily cited, a Matthew effect, and the paper finds it replicating at the brand level: already-cited domains pull more citation. A listicle placement is not one citation, it is a position in the set of pages the engines keep returning to.

This inverts twenty years of advice. The SEO era taught you to own your content because owning it meant controlling the ranking asset. In the citation era the asset is somebody else's page with your name in it, and the work is outreach, review-site presence, and being the obvious inclusion in a category roundup. That is a PR and partnerships motion wearing an SEO budget line, and it is not something an MCP server can do for you.

TL;DR For Engineers

  • Across 149,912 citations, your own domain is 2.9% and third-party corporate pages are 75.2%. Peer pages are cited 25.9x more than yours.

  • Day-one unbranded visibility forms a three-tier ladder at 72.9%, 43.6% and 11.4%, roughly thirty points per rung, and the best observed within-tier movement is 10 to 20 points.

  • Sentiment flips 45.5% of the time against mention's 6.8%. Mention settles in about three runs, sentiment needs ten or more prompts per platform. One refresh cadence cannot serve both.

  • Source-link inclusion runs from Perplexity at 95% to Claude at 10%, so any pooled cross-engine citation analysis is Perplexity-weighted unless you normalize, and this one does not.

  • OpenSEO's Docker path ships AUTH_MODE=local_noauth with an injected admin user. Exposing it through a tunnel publishes an unauthenticated console holding your DataForSEO key.

Explain It Like I'm New

For twenty years, being found online meant ranking on a results page. You published pages, earned links, and climbed a list of ten blue links. An industry grew around that one mechanic.

That mechanic is being replaced. People now ask an assistant what to buy, and it answers in a paragraph naming two or three products. There is no list to climb, only whether your name appears in the sentence.

The obvious response is to optimize your website harder. The measurement here says that instinct is misdirected. When these assistants show their sources, only about one in thirty four points at the company being discussed. Most point at other companies' pages, and the most-cited kind of page is somebody's ranked roundup of the best tools in a category.

Think of it as the difference between owning a shop and being recommended by a guide. You can renovate the shop endlessly. If the guide does not list you, nobody walks in.

The other finding is that size dominates. Well-known brands appear in roughly seven of ten relevant answers on day one. Small ones appear in about one in ten, and that gap is larger than anything a small brand was observed to close through optimization.

None of this means the work is pointless. It means the work is different, and it looks more like public relations than like engineering. Nobody has yet run a controlled experiment proving any of it moves the number.

See It In Action

  • OpenSEO MCP setup (docs), the server sits at https://app.openseo.so/mcp, and the Claude Code plugin installs MCP plus all nine agent skills in one step. The fastest way to see whether an agent with live SERP data changes your workflow or just relocates the dashboard.

  • The nine agent skills (docs), project setup, SEO coach, audit, keyword research, keyword clustering, competitive landscape, competitor analysis, local SEO, link prospecting. Each is a SKILL.md you can read before installing, which is the right way to evaluate an agent workflow.

  • Cloudflare self-hosting guide (repo docs), one deploy command provisions D1, KV, R2, migrations, the Worker and the Access gate. A clean reference implementation of Alchemy-based Workers deployment regardless of whether you care about SEO.

  • The Ranqo CRM study (blog), the 2,500-response category study summarized in the paper, with the per-engine position tables. The most concrete demonstration that engines disagree on who ranks first.

  • C-SEO Bench (paper), NeurIPS Datasets and Benchmarks 2025, the systematic test finding most conversational SEO tactics do not help and several hurt. Read this before buying any GEO service.

Community Conversation

  • The author discloses equity in the platform he measures, in a competing-interests section that also tells readers to weigh the findings as a vendor-produced measurement study. That framing is rarer than it should be in this field, and it is the reason the numbers are worth quoting at all.

  • The strongest critique of OpenSEO came from its own launch thread. A commenter argued that for data-heavy tools the index is the moat, not the code, and founder Ben Senescu confirmed self-hosted users go directly to DataForSEO with their own integrations. That exchange settles the data-ownership question and underlines the dependency in the same breath.

  • Tanner Medina's evaluation advice in the same coverage is the most practical line written about this tool: test it against a client site you know cold, and if the backlink counts come back thin next to your Ahrefs baseline you learned that in an hour for about five dollars.

  • The seven v1.1 protocols in section 6.7 are published as an open invitation, including the cross-platform Jaccard overlap measured at roughly 0.12 on the CRM study, and the web-search on/off natural experiment that would separate training-layer from retrieval-layer visibility. Anyone with a brand fleet can run these.

  • The academic corrective is already on record. Yang's analysis of roughly 366,000 citations found engines concentrate on small and mutually different source sets, and Kirsten and colleagues found generative engines pull from a broader and different source pool than classical search. The GEO vendor pitch of one optimization working across all engines contradicts both.

The Field Has Telemetry And No Experiments

The useful contribution here is a baseline, and baselines are underrated. Before this paper, GEO had assertions. Now it has a number for what brand stature buys you on day one, a citation composition that contradicts the prevailing playbook, and two noise floors that tell you how often to measure. That is real, and it is enough to plan against.

What it does not have, and what no vendor currently has, is a single controlled experiment showing that any GEO intervention moves the metric. The paper says so about its own product in plain language. The one systematic benchmark that exists found most tactics inert or harmful. Between those two facts sits an industry selling retainers.

The honest strategy that survives all of it: figure out your tier, spend on brand mass if you are in the bottom one, get into other people's ranked lists rather than polishing your own, measure mention weekly and ignore sentiment until you have the denominator for it, and treat every engine as a separate market because the source overlap is about 0.12.

And when someone sells you a lift number, ask which trial produced it.

References

A 102-brand production study of 149,912 AI citations finds brand stature dominates day-one visibility in a three-tier ladder at 73%, 44% and 11%, while only 2.9% of citations point at the brand's own domain against 75.2% for third-party corporate pages and 21% for ranked listicles. OpenSEO ships the first credible open-source agent-native SEO stack, an MIT MCP server with nine skills over a DataForSEO backend, but five of its six workflows act on the 2.9% surface. It matters because the measurement layer and the tooling layer now disagree about where AI visibility is won, and no controlled trial exists to settle it.

Keep Going

The habit worth taking: when a study reports a composition, check whether the collection rate is uniform across sources. Source-link inclusion here ranges from 95% on Perplexity to 10% on Claude, which makes a pooled cross-engine citation breakdown a Perplexity-weighted one. That check takes a minute and reframes the headline table.

SnackOnAI runs this teardown weekly on the systems engineers actually deploy, agent architectures, serving stacks, measurement pipelines, and the appendix tables that contradict the abstract. No announcements, no press release summaries. Subscribe at snackonai.com and join 10,000+ engineers reading it.

Forward this to whoever on your team just got handed an AI visibility budget.

Sponsored Ad If you enjoy practical AI insights, check out SnackOnAI and support the newsletter by subscribing, sharing, and exploring our sponsored ad, it helps us keep building and delivering value 🚀

The best voice models now listen, adapt, and resolve too.

Most CX platforms don't own the voice. They orchestrate a workflow, then call a third party for speech and transcription. Every hop adds latency, and latency is what turns a frustrated customer into a churned one.

ElevenAgents is the opposite. Built on the voice models the market already builds on, it runs voice, transcription, chat, and reasoning in one vertically integrated pipeline. Responses come back in under 400 milliseconds and sound human, not synthetic. When a caller gets frustrated, the agent detects it and shifts tone in real time: calm, reassuring, patient.

You keep full control. Plug in any LLM, connect tools, webhooks, and MCP servers, and ground every answer in your knowledge base. Launch in minutes, A/B test with Experiments, enforce Guardrails, and version every change.

More resolved conversations, less infrastructure stitching. Pricing is transparent and flat at $0.08 per minute.

Recommended for you

View all
caret-right