For the complete documentation index, see llms.txt. Every page on this site is also served as Markdown: append `.md` to any URL, or send `Accept: text/markdown`.
Skip to content

Guide · Measurement

The GEO measurement guide

To measure GEO, ask a fixed set of buyer questions on each AI engine every day, record who each answer names and links, and report each rate with the number of answers behind it. Keep branded and unbranded questions apart, show unmeasured engines as gaps, not zeros, and call a change real only when it clears a significance test.

7 days free · card required

Scorecard · attensira.com · 30 days
  • Questions tracked

    ChatGPT
    61
    Perplexity
    61
  • Answers read

    ChatGPT
    2,274
    Perplexity
    2,100
  • Named us, 3 branded questions

    ChatGPT
    90 of 90
    Perplexity
    90 of 90
  • Named us, 58 unbranded questions

    ChatGPT
    0 of 2,184
    Perplexity
    0 of 2,010
  • Linked attensira.com

    ChatGPT
    142
    Perplexity
    77
  • Days with a reading

    ChatGPT
    23 of 31
    Perplexity
    23 of 31
  • Gemini, Claude, AI Overviews

    ChatGPT
    not measured
    Perplexity
    not measured
Analyst agentAnalyst · reads this workspace's answersattensira.com workspace, Attensira MCP ·
Karl-Gustav KallasmaaKarl-Gustav Kallasmaa, Founder & CEO

Last updated

Key facts

What does this guide answer?

Each of these stands on its own, without the paragraph before it.

  • An AI visibility number is a sample from a system built to vary, so it means nothing without the questions, engines, window and number of answers that produced it.
  • A cell nobody measured reads as a gap, never as zero: reporting an engine you do not track as 0% invents a failure nobody observed.
  • Share of voice in Attensira is the share of answers that named you, a rate rather than a pie, so it does not add up to 100% across brands and does not move when you edit your competitor list.
  • Branded questions name you almost every time and unbranded ones decide whether buyers find you, so mixing them produces a number that describes neither.
  • Nobody can yet tie an AI mention to a visit, a signup or revenue; any tool that claims it is reporting a correlation with a causal label.

Which chapter answers my question?

What does honest GEO measurement look like on a real brand?

It looks less flattering than most dashboards, and more useful. The scorecard at the top of this page is ours. Attensira tracks its own site, attensira.com, the same way it tracks a customer's, and the scorecard covers the 30 days to 4 October 2026, read over the Attensira MCP that morning: 61 questions, 2,274 answers from ChatGPT and 2,100 from Perplexity, with Gemini, Claude and Google AI Overviews not measured at all. The days row matters as much as the counts: readings landed on 23 of the 31 days in the window, so the rates describe those days and say nothing about the eight days without one.

Every line is a count you could check by opening the stored answers. Read top to bottom, it tells a plain story. When a buyer asks about us by name, both engines know who we are. When a buyer asks a category question, such as "best GEO tools", neither engine names us. On that question ChatGPT named Otterly AI in all 57 of its answers and Perplexity named Profound in 35 of 57; we were on none of the pages either engine cited.

A summary line such as "named in 90 of 2,274 answers" would be true and misleading at once, because all 90 came from three branded questions. The split is the finding.

This guide is about producing that kind of scorecard for your own brand: what to count, how much of it you need, which questions to ask, and how to report it without letting a number say more than the evidence. The five chapters go deep on each part. This page is the map.

What is GEO measurement for?

To decide what to do next, and later to know whether it worked. Every design choice below follows from those two jobs.

Deciding what to do needs to know where you are absent and who is present instead. That is a question about specific buyer questions, on specific engines, compared with specific competitors. It does not need decimal precision. It needs the right questions and an honest zero.

Knowing whether it worked needs before-and-after comparisons on the questions a change was meant to affect, with enough answers on both sides to tell a movement from noise. It needs depth, discipline about the question set and a significance test.

A measurement programme that serves neither, such as a single score on a weekly slide, is reporting, not measurement. It tells you how you are doing in a way that does not tell you what to do.

What exactly do you count?

Four units, defined before any number is computed.

  • A run: one question, sent to one engine, for one country, at one moment, producing one answer. It either named you or it did not; it either linked your domain or it did not.
  • A cell: one combination of question, engine and country.
  • A window: the days a rate is computed over. Only days with readings count.
  • A denominator: successful runs only. A run that timed out is not evidence you were left out, so it is set aside and kept for debugging.

Every rate is then the runs where something happened divided by all successful runs in the window. An answer that names you nine times counts once. That is what keeps rates comparable across questions, engines and months.

Where you read matters as much as what you count. Attensira reads the consumer surfaces of ChatGPT, Perplexity, Google AI Overviews and Gemini the way a person would, from a browser in the country being tracked, and uses model APIs only as a labelled fallback. Claude has no consumer reader and is read through its API with the country stated in the question. Consumer and API runs are never averaged together. A tool that reads only APIs is measuring something close to what buyers see, not the thing itself.

Chapter one, what AI visibility tools can and cannot measure, draws the line between observation and estimate in detail.

What does one pooled rate hide?

The same 30 days of ChatGPT answers, counted per kind of question. Every branded answer named us and no unbranded one did. Pooled, that is 4.0%: a rate that describes neither.

branded answers named attensira.com
90 of 90
3 branded questions
unbranded answers named attensira.com
0 of 2,184
58 unbranded questions
pooled: 90 of 2,274 answers
4.0%
n=2,274 answers
Analyst agentAnalystattensira.com workspace, read over the Attensira MCP on 2026-10-04, ChatGPT · ChatGPT · to

Which numbers matter?

Five, each answering a different question.

  • Share of voice

    What it answers
    In what share of answers were you named?
    Shape
    A rate with its count; does not sum to 100% across brands
  • Citation rate

    What it answers
    In what share of answers did the engine link your domain?
    Shape
    A rate with its count, same denominator
  • Source share

    What it answers
    Which domains supply the answers in your category?
    Shape
    A true share of all citations; sums to 100%
  • Competitors' share of voice

    What it answers
    Who is named when you are not?
    Shape
    Same rate, same denominator, per brand
  • Position among tracked names

    What it answers
    Where are you named, when you are named?
    Shape
    An average, always with its base

Two numbers are missing on purpose. There is no single visibility score, because a blend of weighted ingredients cannot tell you which ingredient moved. And there is no "AI impressions" figure, because no engine publishes how many people saw an answer; Google even folds appearances in AI Overviews and AI Mode into ordinary Web search traffic in Search Console.

Chapter three, mentions, citations and share of voice, explains why the first two so often disagree. On ChatGPT, our pricing page was attached to 42 of 57 answers to a pricing question that never once named us.

How many answers do you need?

More than a weekly spot check, fewer than most people fear, and it depends on the claim.

AI engines vary by design. Ask twice, get two answers. So a rate is an estimate with an error bar, and the error bar is set by the number of answers behind it. The NIST/SEMATECH handbook's Wilson interval makes this concrete on three real counts from our workspace: at 1 of 6 answers the 95% interval runs from 3 to 56 in 100, so you know almost nothing; at 1 of 57 it runs from 0.3 to 9, so you know it is rare; and at 90 of 2,274 it runs from 3.2 to 4.8, so you know it well. Chapter two's table shows more.

The pattern holds everywhere: single questions on single engines are noisy; pooled numbers are steady. So make per-question claims sparingly, pool by topic or engine when you need a firm number, and always print the count beside the rate. Attensira takes three samples per daily reading, issued together (n=3), on Growth and Business and one on Starter, and switches the headline to the count, such as 3 of 12, when there are fewer than 20 answers.

Chapter two, how many AI answers make a sample, has the arithmetic and the trade-off between more questions and more answers per question.

Which questions should you track?

The ones your buyers ask before they know your name, in their words. This is the decision that matters most, because every number above is an average over the set.

Three rules carry most of the weight.

  1. Keep branded questions in their own group. Our scorecard shows why: three branded questions produced every mention we had. Mixed into the total, they make a brand that is absent from its category look present.
  2. Write the set down before looking at results, with the source of each question: a sales call, a support ticket, a Search Console query, a competitor's page that answers cite.
  3. Date every change. A new question does not backfill, so adding questions changes the average with nothing in the world changing.

Chapter four, how to build a prompt set, works through our own set, flaws included.

Who do the engines name when we are not named?

On the category question "best GEO tools", each engine had a clear favourite and neither named us once. The split by engine is why a pooled number hides the finding.

"best GEO tools" · 57 answers per engine
  • ChatGPT

    Most-named brand
    Otterly AI, 57 of 57
    Named Attensira
    0 of 57
  • Perplexity

    Most-named brand
    Profound, 35 of 57
    Named Attensira
    0 of 57
attensira.com workspace, read over the Attensira MCP · · 30 days

How do you know a change worked?

By comparing like with like, past the noise, and saying so when you cannot tell.

The method is a before-and-after on the questions the change was meant to affect. Attensira does it automatically for work that ships: it re-reads the attached questions at 7, 14 and 30 days after a change goes live, compares a week before with a week around each date, and first checks that the change is actually on the live page. A difference is called a movement only when it clears a two-proportion z-test at 95% confidence. Otherwise the honest answer is "nothing we can prove yet".

Three traps catch most teams:

  • Calling a change on too few answers. At one sample a day, a week holds seven answers per cell, which only detects large swings.
  • Changing the question set inside the window. Our own daily ChatGPT rate went from 0 of 81 to 9 of 132 on the day our branded questions started. The test said "real". The cause was our set.
  • Reading a movement as proof of cause. A movement past the test means the number moved by more than noise. It does not rule out everything else that changed in the same weeks.

What does a change that passes the test, but is not a win, look like?

Our own daily ChatGPT reading, the day before and the day our three branded questions were added. The test called the jump real. The cause was the question set, not the world, which is why every change to the set is dated.

ChatGPT · answers naming attensira.com, per day
  • Named us

    Day before
    0 of 81
    Day the branded questions started
    9 of 132
  • Rate

    Day before
    0.0%
    Day the branded questions started
    6.8%
  • Z-test at 95%

    Day before
    baseline
    Day the branded questions started
    passed: called real
Analyst agentAnalyst · reads this workspace's answersattensira.com workspace, read over the Attensira MCP ·

What can nobody measure yet?

Four things, whichever tool you use.

  • Who asked. Tools ask their own questions; real prompts are private.
  • How many people saw an answer. No engine publishes it.
  • What happened next. There is no identity link between an answer and a later visit or sale. You can count assistant-referred visits in your own analytics and you can measure answers, but joining the two is inference.
  • Why the engine chose what it chose. You see which pages an answer leaned on, not the ranking function.

Say these out loud in every report. A report that is honest about its edges is believed about its middle.

Does one engine read us more than the other?

Over the same 30 days ChatGPT linked attensira.com almost twice as often as Perplexity, while the two named us at the same rate. One engine reads us more; neither recommends us more.

of ChatGPT answers linked attensira.com
6.2%
142 of 2,274 answers
of Perplexity answers linked attensira.com
3.7%
77 of 2,100 answers
gap in naming us (ChatGPT 4.0%, Perplexity 4.3%): not provable
0.3 pts
n=2,274 and n=2,100
attensira.com workspace, read over the Attensira MCP on 2026-10-04 · to

Why measure each engine separately?

Because they are different products that disagree, and an average across them hides the disagreement you need to act on.

Our own data shows it on one question. Asked "AI search visibility software", ChatGPT named Ahrefs in all 57 of its answers in the month. Perplexity's most-named brand on the same question was SE Ranking, in 27 of 52. The two engines were not giving slightly different versions of one answer; they were recommending different shortlists.

They also lean on different sources. Across all 61 of our questions, the domains ChatGPT cited most were help.openai.com and developers.google.com: the platforms' own documentation. Perplexity's were semrush.com, linkedin.com and blog.hubspot.com, with reddit.com close behind. Attensira's per-engine guidance draws the same line from a wider base: ChatGPT tends to lean on a brand's own docs and pricing pages, Perplexity on threads, videos and roundups. The move that wins one engine may do nothing on the other.

The same split shows up in what the engines do with our own pages. ChatGPT linked attensira.com in 142 of its answers and Perplexity in 77, a difference that clears a significance test easily, while the two engines named us equally often. One engine reads us more; neither recommends us more. Without the per-engine split, that difference disappears into an average and the obvious next step, finding out what ChatGPT reads on our site that Perplexity does not, never gets taken.

Three practical consequences:

  • Report per engine first, pooled second. A pooled rate is a useful headline; it is never a plan.
  • Expect changes to land on one engine before another. Each engine keeps its own index on its own schedule, so a fix can show on Perplexity weeks before ChatGPT, or the reverse.
  • Do not compare engines you read differently. A consumer reading and an API reading of the same engine are different measurements. If one engine is read through its API, say so next to its numbers.

How often should you look at the numbers?

Less often than the data arrives. Readings are daily because samples need to accumulate, not because a daily number is meaningful.

A cadence that works:

  • Daily: nothing to read, unless an alert fires. Today is always partial, because each question is read once a day on its own slot and some slots have not opened yet. A "drop" at eleven in the morning is usually the morning.
  • Weekly: glance at the competitors named on your most important questions, and at anything flagged as a real change. Expect most weeks to say "nothing we can prove yet" on a single-sample plan.
  • Monthly: the report. Thirty days pools enough answers for per-topic rates to be worth reading, and lines up with how budgets are reviewed.
  • After each change ships: the before-and-after at one, two and four weeks.

Windows should be whole days and the same length on both sides of any comparison. Read the days actually sampled too: our month had readings on 23 of 31 days, and a window with half its days missing is not the same evidence as a full one, even when the count looks healthy.

Which mistakes make AI visibility numbers wrong?

Eight, and we have made several of them ourselves.

  1. Mixing branded and unbranded questions. The branded ones name you nearly every time and lift the average. Ours supplied every mention we had.
  2. Reading a percentage without its count. One of three and three hundred of nine hundred are the same percentage and very different evidence.
  3. Showing an unmeasured engine as zero. It invents a failure and hides a coverage gap.
  4. Counting failed runs as "not mentioned". An engine outage then looks like a collapse in visibility you caused.
  5. Changing the question set mid-window. The average moves with nothing in the world moving.
  6. Using a pie share of voice and then editing the competitor list. Your number moves with your settings.
  7. Trusting mention detection blindly on a common-word brand. Every use of the ordinary word counts, so the rate reads high.
  8. Treating a citation as a recommendation. An engine can lean on your page and name someone else, as ChatGPT did with our pricing page.

Each of these produces a number that is precise, repeatable and wrong. None of them is fixed by more data; each is fixed by a rule.

Where does crawler data fit?

Beside the answer data, never inside it. AI crawlers fetch pages; answer engines answer questions. They are separate pipelines on separate schedules, and a rise in one does not predict the other.

On attensira.com in the same month, Meta's training agent made 108,487 of roughly 120,000 AI crawler requests. OpenAI's agents made 7,060 and PerplexityBot 595. Not one of those numbers tells you whether an answer named us. What crawler data does tell you is coverage: a section the search agents never fetch cannot become a fresh citation, and a page a user-triggered agent fetched is one a person just asked an assistant about.

Count crawlers at the server or the edge, because they do not run JavaScript and never reach a browser analytics script, and treat the counts as directional, because a user-agent string is self-reported. The AI crawler guide covers reading them properly.

How should you report it?

As a short list of claims, each with its evidence attached.

  • The question set, engines, countries and window, and the days actually read.
  • Each rate with its count, branded and unbranded apart.
  • Unmeasured engines listed as not measured.
  • Competitors named instead of you, on the questions that matter most.
  • Changes called real only past the significance test, with the windows compared.
  • A dated log of every change to the question set.

Chapter five, what a defensible AI visibility report shows, builds a full report from our own data, including the parts that do not flatter us.

What does a report built on these rules look like?

Our own month, one line per claim: the set, the engines, the window and the days read, each rate with its count, branded and unbranded apart, the gaps named and the change judged.

Monthly report · attensira.com · 30 days to 4 Oct 2026
Monthly report · attensira.com · 30 days to 4 Oct 2026
LineReading
Question set61 questions: 3 branded, 58 unbranded
EnginesChatGPT and Perplexity
Not measuredGemini, Claude, Google AI Overviews
Days with a reading23 of 31
Named us, branded180 of 180 answers
Named us, unbranded0 of 4,194 answers
Change vs the 30 days beforenothing we can prove yet
Analyst agentAnalyst · reads this workspace's answersattensira.com workspace, read over the Attensira MCP ·

What should you ask any AI visibility tool?

Ten questions separate measurement from decoration. Ask them of any vendor, including us.

  1. Do you read the consumer product people use, or the model's API?
  2. How many samples per question per engine per day, and are they taken at the same moment?
  3. Is every rate shown with the number of answers behind it?
  4. Is a failed run excluded from the denominator or counted as "not mentioned"?
  5. Does an engine I do not track show as zero or as not measured?
  6. Is your share of voice a rate or a pie, and what is its denominator?
  7. What test does a change have to pass before you call it a change?
  8. Can I read the stored answer behind any number?
  9. How do you detect a mention, and where does that method go wrong?
  10. What do you not measure, in writing?

Attensira's answers are in its public documentation: consumer surfaces first; one sample on Starter and three concurrent samples above it; counts on every rate; failed runs excluded; unmeasured shown as a dash; share of voice as a rate; a two-proportion test at 95%; every answer stored verbatim; whole-word matching that reads common-word brands high; and a limitations page.

What happens after the measurement?

Measurement only matters if someone acts on it. That is the gap most teams fall into: the dashboard says where you are absent, and nobody has the time to do the work that changes it.

Attensira is built to close that gap. A crew of AI agents reads these numbers every day, finds which pages decide the answers you lose, and does the work: fixes to your own pages, new articles, and placements on the third-party pages the engines cite. You approve what ships, and each change is re-read against the same questions so you can see whether it moved anything. Each re-read, at 7, 14 and 30 days, first checks that the change is live, then compares a week before it with a week around that date.

You do not need Attensira to apply this guide. You need a fixed question set, enough answers, honest zeros and a test for change. If you would rather have the measurement and the work done for you, that is what the crew is for.

What do the terms in this guide mean?

TermMeaning here
RunOne question to one engine for one country at one moment
CellOne question, engine and country combination
Share of voiceAnswers that named a brand divided by all answers read
Citation rateAnswers that linked a domain divided by all answers read
Source shareA domain's citations divided by all citations
Not measuredNothing was read; never the same as zero
Nothing we can prove yetA difference inside the noise for the sample involved
Branded questionA question that contains your brand name

What else do people ask?

Can you actually measure AI search visibility, or is it guesswork?
You can measure it, within clear limits. A tool can ask a fixed set of questions on real AI engines every day and record who each answer names and links. That is an observation. What it cannot see is who really asked, how many people saw the answer, or what they did next, so treat any figure for those as an estimate.
How many answers does a rate need before it means anything?
Dozens per question for a rough read, hundreds for a firm one. On our own data, a brand named in 1 of 6 answers could truly be named anywhere from 3 to 56 times in 100. At 90 of 2,274 answers it is under a point either side, 3.2 to 4.8 in 100. Read the count before the rate.
Why does one tool show a different share of voice from another?
Usually because they compute different things under the same name. Attensira's share of voice is answers that named you divided by all answers, so it does not sum to 100% across brands. Many tools divide your mentions by all tracked brands' mentions, which does sum to 100% and moves when the competitor list changes. Ask which one you are looking at.
Should an engine I do not track show as zero?
No. A zero is a measured result: the engine was asked and did not name you. An engine nobody asked has no result at all and should show as not measured. Reporting it as zero invents a failure, and it hides a coverage gap you might want to fix.
Can any tool prove an AI mention produced revenue?
Not today. There is no identity link between an answer an engine gave someone and a person who later visits your site. You can count assistant-referred visits in your own analytics and you can measure answers, but joining them into cause and effect is an inference.
How do I know whether a change I made to a page worked?
Compare the same questions before and after the change went live, with enough answers on both sides to clear a significance test, and log every change to the question set on the day it happens. Attensira re-reads a shipped change at 7, 14 and 30 days and says nothing we can prove yet when the difference is inside the noise.

Where do these facts come from?

10 sources, 16 statements: each statement with the page it came from and the day it was checked.

  1. Attensira reads the consumer surfaces of ChatGPT, Perplexity, Google AI Overviews and Gemini the way a person would, uses model APIs only as a labelled fallback, and never averages consumer and API runs together.

    docs.attensira.com · retrieved

  2. Attensira reads each prompt, model and country at most once per daily slot, taking one sample on Starter and three samples per daily reading, issued together (n=3), on Growth and Business.

    docs.attensira.com · retrieved

  3. Every delta Attensira shows has passed a two-proportion z-test at 95% confidence; otherwise it reports no change it can prove.

    docs.attensira.com · retrieved

  4. Attensira shows an unmeasured value as a dash and returns null for it, and shows a measured zero as 0.

    docs.attensira.com · retrieved

  5. Attensira's share of voice is successful runs naming the brand divided by all successful runs, a rate that does not sum to 100% across brands.

    docs.attensira.com · retrieved

  6. Attensira re-reads the tracked prompts attached to a shipped change at 7, 14 and 30 days, compares a week before with a week around each date, and checks the change is live before measuring.

    docs.attensira.com · retrieved

  7. Attensira cannot tell you that a mention produced a visit, that a citation produced a signup, or that any of it produced revenue.

    docs.attensira.com · retrieved

  8. Attensira computes no visibility score.

    docs.attensira.com · retrieved

    “There is also no visibility score in Attensira.”
  9. Google counts sites appearing in AI Overviews and AI Mode in the overall Web search traffic in Search Console.

    developers.google.com · retrieved

  10. Google documents that AI Mode and AI Overviews may use different models and techniques, so the set of responses and links they show will vary.

    developers.google.com · retrieved

    “AI Mode and AI Overviews may use different models and techniques, so the set of responses and links they show will vary.”
  11. The NIST/SEMATECH e-Handbook gives the Wilson score interval for a proportion and notes its lower limit cannot be negative.

    itl.nist.gov · retrieved

  12. Read over the Attensira MCP on 4 October 2026, 30 days: the attensira.com workspace tracked 61 prompts on ChatGPT and Perplexity, read 2,274 and 2,100 answers, was named in 90 on each engine (all on its three branded prompts), was linked in 142 and 77, and took readings on 23 of 31 days; the answers carried 97,149 citations, 1,442 of them to Attensira's own domains.

    attensira.com workspace, read over the Attensira MCP on

  13. Read over the Attensira MCP on 4 October 2026, 30 days: on 'AI search visibility software' ChatGPT named Ahrefs in 57 of 57 answers while Perplexity's most-named brand was SE Ranking, in 27 of 52; ChatGPT's most cited domains were help.openai.com and developers.google.com, Perplexity's semrush.com, linkedin.com and blog.hubspot.com.

    docs.attensira.com · retrieved

  14. Attensira's per-engine guidance, from a static table until a workspace has enough of its own readings, says ChatGPT answers lean on a brand's own docs and pricing pages, Claude on review sites and listicles, and Perplexity, Gemini and Google AI Overviews on threads, YouTube and roundups.

    docs.attensira.com · retrieved

  15. Read over the Attensira MCP on 4 October 2026, 30 days: Meta-ExternalAgent made 108,487 of about 120,000 AI crawler requests to attensira.com, OpenAI's agents 7,060 and PerplexityBot 595, counted by user agent and not verified.

    docs.attensira.com · retrieved

  16. Read over the Attensira MCP on 4 October 2026, 30 days: on 'best GEO tools', ChatGPT named Otterly AI in 57 of 57 answers and Perplexity named Profound in 35 of 57; Attensira was named in none and was on none of the pages the answers cited.

    docs.attensira.com · retrieved

Want software that does your AI-search visibility work, with you in control of every change?

7 days free · card required