There is an exchange happening between your website and the AI assistants. They take your text and use it to answer questions. Sometimes they send you a reader in return.
Nearly everybody discussing this is arguing about whether the exchange is fair. Almost nobody has measured it, because doing so requires two numbers that normally live in different systems and are never put side by side.
The two halves
What was taken. Which URLs the AI crawlers fetched, how often, and when. This is in your server or edge logs. It is not in your analytics, because crawlers do not execute JavaScript.
What came back. Visits whose referrer is an AI assistant, and which page they landed on. This is in your analytics, assuming it is classifying AI referrals correctly, which by default it probably is not.
Put them in one table, joined on the URL, and you get something genuinely useful — a per-page ledger of extraction against return.
What the ledger tells you
Four patterns turn up, and each means something different.
Crawled heavily, cites you often
The exchange is working. Whatever these pages do — structure, specificity, being the clearest available answer — is what you should do more of. These are usually not your most-visited pages, which is the interesting part.
Crawled heavily, cites you never
The pages doing unpaid work. Something about them is useful enough to read and not attributable enough to link. In practice this is often because the page answers a question completely and generically — the assistant can restate it without needing to point anywhere.
Counter-intuitively, the fix is usually more specificity, not less: original data, a named method, a number only you have. Things that require attribution to be worth repeating.
Rarely crawled, cites you often
A small number of pages punching above their weight. Worth understanding and extending.
Rarely crawled, cites you never
Invisible to this whole channel. Fine, if that was never the point of the page.
Why this is hard to assemble
The two halves live in different places by default, and the join is on URL, which requires both sides to normalise paths the same way — trailing slashes, query strings, case. Most people who attempt it give up at the spreadsheet stage.
The structural fix is measurement that sees both events in the same system, which means the measurement has to be in the request path rather than in the page. That is the one architectural advantage of running analytics at the edge: the crawler fetch and the human visit are the same kind of event, recorded the same way, joinable by definition.
An honest limitation
This ledger tells you about citations that produced a click. It cannot tell you about being used without a link, and it cannot tell you about being mentioned in an answer nobody clicked through from.
Those are real and probably larger than the measurable part. Nothing on your server can see them, because they happen entirely inside somebody else's product. Anyone offering you a complete picture of AI visibility is selling an estimate.
What you can measure is the part that reaches you. That is less than the whole truth and considerably more than the nothing most sites currently have.
Where to start
Four weeks of data is enough to see the pattern. Rank your pages by crawler fetches, put AI referrals beside them, and look at the top twenty. The pages in the second category — read constantly, never cited — are where the interesting question is, and you will not have guessed which ones they are.
Common questions
Why would an AI crawler read a page and never cite it?
Usually because the page answers a question so completely and so generically that the assistant can restate the answer without needing to point anywhere. Citations tend to follow things that are hard to paraphrase: original data, a specific number, a named method, a distinctive argument. Pages that are competent summaries of common knowledge get read and absorbed rather than linked.
Can I measure AI mentions that do not produce a click?
Not from your own infrastructure. If an assistant uses your content to answer someone and they never visit, nothing reaches your server and there is no event to record. Some third-party tools sample assistant outputs by asking questions repeatedly and recording which sources appear, which is a genuine method but is sampling rather than measurement. Your logs can only ever show you the part of the exchange that touches you.
What data do I need to build this comparison?
Crawler fetches per URL, from server or edge logs with the User-Agent verified against published IP ranges, and visits per landing page where the referrer is an AI assistant host. Join them on a normalised URL — same treatment of trailing slashes, query strings and case on both sides, which is where most manual attempts fall apart. Four weeks is enough to see the pattern.