Why an AI assistant cites one page and not yours

Retrieval, reranking and the answer itself are three separate steps, and most pages fail at a different one than their owner assumes. A working theory of what actually gets quoted.

By The Citevana teamPublished 4 min read

  • ai-visibility
  • citations
  • chatgpt

A competitor with worse content, fewer links and a slower site gets named in the answer. You do not. This is the complaint we hear most often, and the useful response is not "improve your content" — it is to work out which of three separate steps you are losing at, because the fix for each is different.

When an assistant answers a question with sources, roughly this happens:

  1. It rewrites your question into one or several search queries. Not the question you typed — its own version of it.
  2. It retrieves a few dozen candidate pages from an index (its own, or Bing's, or a search API).
  3. It reranks those candidates, reads some of them, and writes an answer, citing the handful it leaned on.

Three gates. A page can pass two and still never be seen.

Gate one: query rewriting

Ask an assistant "what's the best CRM for a 12-person agency" and watch what it actually searches. It will not search that string. It will fan out into three or four literal queries — comparisons, "best crm small business", specific product names it already associates with the category.

Which means the page that wins is often not the one optimised for the user's phrasing, but the one that ranks for the model's phrasing. If you have never looked at what an assistant searches on your behalf, do it once. In ChatGPT the searched queries are visible if you expand the sources. It is frequently a surprise.

Gate two: retrieval

This is the boring gate, and it is where most losses actually happen.

You are not in the index. Or you are, but the retrieval crawler is blocked — OAI-SearchBot disallowed in robots.txt, or the page is behind a consent wall, or it renders client-side and the crawler got an empty shell. Or the page 200s for you and 403s for a datacentre IP because your WAF decided so.

None of that is a content problem, and no amount of rewriting fixes it. Check it first. It takes minutes and it is the difference between a page that can be cited and one that cannot.

Gate three: reranking, and the part that is genuinely about the writing

Now the honest caveat: nobody outside these companies knows the ranking function, the systems change monthly, and anyone selling you a checklist of "GEO ranking factors" is guessing with confidence. What follows is a pattern we see repeatedly, not a law.

Pages that get quoted tend to state the answer in one place, early, in a form you could lift out verbatim. Pages that get skipped tend to make the reader assemble it — the answer is real, but it is distributed across four paragraphs, two of which are about the company.

A concrete version of the same idea: if someone asked your question in a forum, and the best reply was a copy-paste from your page, which sentences would they copy? If the answer is "none of them cleanly", that is the problem. Models are doing something not far off the same operation.

Secondary patterns that seem to help, with less confidence: a specific number or date in the sentence that answers the question, since it gives the model something checkable to attribute. Naming the alternatives honestly, including the cases where yours is the wrong choice — comparison pages that admit a weakness get cited about things other than the weakness. And a publication date the model can see, because for anything time-sensitive an undated page reads as unsafe to quote.

What does not appear to help

Stuffing the page with the question as an H2 and then answering it in marketing voice. Schema markup as a citation lever — it helps machines parse what is already there, and does nothing for a page with nothing to parse. Word count. Writing "as an AI language model" bait. A llms.txt file, if the assistant in question does not read one, which is most of them.

The measurement problem

Here is the thing that makes all of this hard, and that we would rather say out loud than paper over: ask the same model the same question twice and you can get different sources. Sampling is stochastic, retrieval is live, and the answer is personalised in ways you cannot see.

So a single check tells you nothing. "We are cited by ChatGPT" is only a meaningful claim across repeated runs, and any tool — ours included — reporting a bare percentage from one pass per question is showing you noise with a decimal point on it. If you take one methodological thing from this page: ask how many runs the number came from, and what the spread was.

Start with gate two. It is unglamorous, it is where most of the losses are, and unlike the rest of this page it is a fact rather than a theory.

About the author

The Citevana team

Product and engineering at Citevana

Citevana is built by a small team that works on AI search visibility every day: crawler behaviour, structured data, llms.txt and the checks behind the free tools. Posts here describe what we have tested ourselves, and say so plainly when something is still uncertain.

More about the team

All posts