AI citations never show up in GA4, so how do you find which of your pages ChatGPT and Perplexity cite most? The five working methods, what top-cited pages share, and the harder question — which cited pages drive revenue.
A customer wrote to me in April with a screenshot from a $499/mo AI-visibility tool. It showed his comparison page — "best inventory tool for Shopify stores" — getting cited 380-some times a week across ChatGPT and Perplexity, far more than any other URL on his site. He wanted to know what he should do with that. My first question was the one the tool could not answer: how much money does that page make from the AI traffic it gets? We turned on page-level revenue attribution. The 380-citation page had landed exactly two paying customers in the prior 30 days. A quiet teardown post he had nearly deleted — cited maybe 35 times a week — had landed eleven. He had been about to pour a quarter of content effort into the wrong page because the only number he could see was the citation count.
That gap is the entire subject of this article. The practical problem looks like "which of my pages does AI cite most," and I will answer it concretely — the five methods, their accuracy, what your top-cited pages have in common, a worked example from ranking my own site's pages. But the question underneath it, the one that actually decides where your content budget should go, is "which of my cited pages drives revenue." Those are different questions with different answers, and almost every tool on the market answers only the first because the second requires a join to your payment data that the citation monitors structurally cannot do.
This is the practical companion to the mechanics of how AI engines choose sources. That piece is the "why" — the two pathways, the retrieval pipeline, the re-ranker. This piece is the "find yours": how to identify which specific pages on your specific domain are getting cited, what those pages have in common, and how to tell the cited pages that matter from the cited pages that just look good in a dashboard. Everything below is grounded in either the 200-site cohort, a named study, or a worked example. Where the evidence is thin, I say so.
Content Performance Tracking (citation frequency by page)[]
What citation-monitoring tools cannot see
Your Stripe revenue per cited page
Two numbers do most of the work in this article. The first is 34% of "Direct" is actually AI[] — that is why the page-level data you want is hidden by default and why "AI content performance" is so hard to measure in GA4. The second is the per-engine RPV ranking[]: the engine that sends the most citations is not the one that pays the most per visitor, which is the first crack in the assumption that more citations means more value. The rest of the piece is what falls out when you take those two seriously.
The core problem: AI citations don't show up like a referral
A Google referral announces itself; an AI citation arrives in disguise as Direct traffic with no page label — which is why "which pages does AI cite most" has no native report anywhere in your analytics. This is the thing you have to internalize before any method below makes sense.
When Google sends you a click, the browser sets document.referrer to a google.com URL, GA4 reads it, and the visit lands cleanly in Organic Search attributed to the exact landing page. You can open the Landing Pages report, filter to Organic Search, and rank every page by Google traffic in ten seconds. There is no equivalent for AI because the AI clients — the ChatGPT web app, desktop app, iOS and Android apps, Perplexity, Claude — strip the Referer header on most outbound clicks[]. The Plausible Analytics team measured single-digit-percent referrer pass-through on ChatGPT as far back as early 2024[], and the behavior has not materially improved.
So the click arrives at your server carrying no referrer and no UTM. GA4 checks both fields, finds both empty, and files the session as Direct/(none)[]. The page-level information you want — "ChatGPT cited and clicked through to /blog/best-inventory-tool 47 times this week" — is technically present (your server logged the landing URL) but it is buried inside an undifferentiated Direct bucket that also contains real type-ins, bookmarks, returning customers, and UTM-stripped email clicks.
Here is what reaches you from each surface, and what your default analytics makes of it:
The last row is what we are used to. The first four are the problem. The cruel part is that the better your GEO works — the more AI cites you — the more your Direct bucket swells with un-page-attributed AI clicks, so success and measurement failure look identical in the default report. I have watched founders interpret a 35% Direct jump as "brand awareness compounding" when it was actually AI quietly citing three of their pages and clicking through with the referrer stripped.
So when someone asks me "which of my pages does AI cite most," the honest first answer is: that report does not exist, and the reason it does not exist is the stripped referrer. Everything below is a way to reconstruct the report the platforms refuse to hand you. None of the methods is as clean as the Google Landing Pages report. The best of them gets you most of the way there.
Method 1: server-log AI-crawler hits by URL (correlation, not proof)
Grouping your AI-crawler hits by URL is the cheapest way to see which pages AI is interested in — but interest is not citation, and treating crawl frequency as a citation count is the single most common mistake in this whole exercise. I lead with this method because it is the one people reach for first and the one they most often over-read.
Your server access logs record every bot that fetches a page, including the AI crawlers, each identified by User-Agent. If you group those hits by URL, you get a ranked list of which pages the AI systems fetch most. The grep is a ten-minute job:
That gives you (hit-count, URL) tuples sorted by frequency — your most-crawled-by-AI pages. But the bots are not equal in what they tell you, and this is where the correlation-versus-proof distinction lives:
The mental model: a GPTBot spike on a page means OpenAI thinks the page is worth learning from for the next model — useful as a "this content is being noticed" signal, useless as a "this page was cited today" signal, because the page may not surface in a single answer for months until the model ships. A ChatGPT-User burst is different: that agent fetches a URL because the live system is about to use it to answer a query, so a cluster of ChatGPT-User hits on one page over 24-72 hours is a reasonable leading indicator that the page is being cited in answers to something trending. Still not proof — the fetch could feed an answer that does not end up citing you — but materially closer.
What server-log analysis gives you and what it withholds:
Question
Server logs answer?
Why
Which pages does AI crawl most?
Yes, exactly
Every bot hit is logged with a URL
Which pages is AI most interested in?
Yes, directionally
Crawl frequency proxies interest
Which pages did AI cite in an answer?
No
A crawl is not a citation
Which pages got a human click from AI?
No
Bots are not humans
How much revenue did the page make?
No
Logs do not see Stripe events
I use this method as an early-warning system, not as a content-performance ranking. When a freshly published page starts pulling ChatGPT-User and PerplexityBot hits within its first week, I expect citations to follow and I go verify them with Method 2 or Method 3. When an old page suddenly spikes GPTBot, I note that the next model may start "knowing" it. But I never tell a customer "this is your most-cited page" on crawl data alone, because the page AI fetches most and the page AI cites most and the page AI sends buyers to most are routinely three different pages.
Method 2: manual prompt testing per target query
Prompt testing is the only method that confirms a citation actually shipped, because you read the answer with your own eyes — but it only covers the handful of queries you thought to test, which is a rounding error against the real distribution. It is the verification method, not the discovery method.
The procedure is unglamorous and it works. Build a list of the 20-50 queries your buyers actually type — pull them from your Search Console top queries, your sales-call notes, and the questions in your support inbox. Then ask each query to each engine, with browsing on, and record which of your URLs appear as footnotes. A simple tracking sheet:
Query
ChatGPT cites?
Perplexity cites?
Claude cites?
Your URL surfaced
"best inventory tool for Shopify"
Yes
Yes
No
/blog/best-inventory-tool
"cookieless analytics for SaaS"
No
Yes
No
/features/revenue-attribution
"how to track ChatGPT traffic"
Yes
Yes
Yes
/track-chatgpt-traffic
"Stripe revenue attribution tool"
Yes
No
No
/features/revenue-attribution
"alternatives to GA4 for AI traffic"
No
No
No
(not cited — gap)
Run that monthly and you build a longitudinal picture of which pages win which queries on which engines. The "(not cited — gap)" rows are as valuable as the hits: they tell you which buyer queries you are losing, and which page you should be optimizing to win them.
The honest limits are severe, and you have to hold them in mind or you will over-trust the result:
Limitation
Effect
Mitigation
Covers only queries you test
Misses 99%+ of the real query distribution
Test the highest-intent 20-50, accept the rest is dark
Answers are personalized and non-deterministic
Same query, different answer per user/session
Test from a clean session; run each query 2-3 times
Manual, so it does not scale past ~50 queries
Cannot cover a large content library
Automate with a visibility tool (Method 4)
No revenue signal
Tells you cited, not whether it paid
Join to attribution (the gap)
Engines update answers continuously
A snapshot ages within weeks
Re-run monthly
The non-determinism point deserves emphasis because it trips people up. AI answers vary by user history, region, session context, and the engine's own model drift. The same query asked twice can cite different sources. So a single test is a sample, not a measurement — run each priority query a few times from a clean, logged-out session and treat the result as "this page surfaces for this query a majority of the time," not "this page is always cited." Prompt testing tells you, with certainty, that a citation can happen for a query you care about. It cannot tell you how often it happens across the millions of queries you did not test. For that you need the next method.
Method 3: AI-referral landing-page analysis (the strongest single signal)
Ranking your pages by the AI traffic that actually lands on them is the best practical proxy for "which pages does AI cite most," because it is downstream of a real human click rather than a crawl or a sampled prompt — it measures citations that converted into visits, not citations in the abstract. If I could keep only one method, this is the one.
The logic is simple. A citation that nobody clicks generates no traffic and no revenue, so for a business the citations that matter are exactly the ones that produced a landing. And the landing URL is the one thing the AI client cannot strip — your own server always knows which page the visit hit first, even when the referrer is gone. So if you can identify which Direct sessions are actually AI, you can rank your pages by AI-referred landings, and that ranking reflects real, click-producing citation performance.
The recovery has two tiers, with different confidence:
No referrer + deep-page + new visitor + geo/time cluster
The remaining ~80%
~80% precision on the recovered slice
The first tier is unambiguous: a session whose Referer is perplexity.ai and whose landing page is /blog/best-inventory-tool is a Perplexity citation click to that exact page, full stop. The second tier is the harder, larger slice. The fingerprint flags a session as suspected-AI when it carries no referrer, lands on a deep page (not the homepage), comes from a new visitor, and falls into a geo-and-time cluster that matches known AI prompt-traffic patterns. That heuristic runs at roughly 80% precision in the cohort — good enough to rank high-volume pages confidently and noisy in the long tail, where a page with five suspected-AI sessions might be three real plus two false positives.
Why this beats the other methods as a content-performance signal:
Method
Measures
Click-validated?
Revenue-joinable?
Coverage
Server logs (Method 1)
AI interest (crawls)
No
No
All crawled pages
Prompt testing (Method 2)
Citation existence on tested queries
No
No
~20-50 queries only
Landing-page analysis (Method 3)
Citations that produced a visit
Yes
Yes (with a Stripe join)
All pages, full traffic
Visibility tools (Method 4)
Citation frequency on sampled prompts
No
No
Large prompt panel
The deep-page-landing fact is what makes this method viable at all. Across the cohort, 78% of AI-referred sessions land on a deep page rather than the homepage[] — versus 41% for Google organic and 12% for Direct. That distribution is itself a fingerprint: a wave of new-visitor, no-referrer sessions landing on long-tail content pages is overwhelmingly AI, because real type-in Direct traffic goes to the homepage. So the same behavior that makes AI traffic hard to attribute (deep-page, no-referrer) is the behavior that lets you recover it.
The output of this method is the report the platforms refuse to give you: a list of your pages ranked by AI-referred sessions, broken out by engine where the referrer allows it, and — once you add the Stripe join from the final section — ranked by AI-attributed revenue. That last step is what turns "which pages does AI cite most" into the far more useful "which cited pages make me money."
The visibility tools are the right way to see citation frequency at scale across engines — Profound literally sells this as "Content Performance Tracking" — but they measure sampled prompts, not your real traffic, and they cannot see a dollar of your revenue. I recommend them honestly, including the competitor, and I am precise about what they do and do not answer.
These tools run large automated panels of prompts across ChatGPT, Perplexity, Claude, Gemini, and AI Overviews, then report which of your URLs appear as citations in the answers. Profound markets this directly: their Content Performance Tracking feature lets you "see which pages are frequently referenced in AI-generated responses"[]. Otterly, Peec AI, and the rest do variations of the same thing. For answering "which of my pages get cited, and for which prompts, on which engines," they are genuinely the most scalable tool available — they cover thousands of prompts you would never test by hand.
Tool
What it tracks
Strength
What it cannot do
Profound
Citation frequency by page + prompt across engines[]
The categorical fault line, which causes constant confusion in vendor demos: citation monitors measure whether AI is mentioning your page; attribution tools measure whether AI is sending your page traffic that pays. They are not competitors so much as two halves of one picture. A customer who buys Profound expecting to see which cited pages drove revenue is buying the wrong tool for that specific question — not because Profound is weak, but because Stripe data does not exist inside a prompt monitor. I tell people who can afford both to run one of each: a monitor to see the answer-space coverage, an attribution layer to see which of those citations turned into money.
The structural limit shared by every monitor: it samples a prompt panel, not your traffic. If the panel does not include the long-tail query that actually drives your best buyers, that citation is invisible to the tool no matter how valuable it is. And because the panel is a sample, the citation-frequency number is "how often your page appears in our tested prompts," which correlates with but is not equal to "how often AI cites your page to real users." Useful, scalable, and one honest step removed from ground truth — which is exactly the step the landing-page method closes.
Method 5: the honest gap none of these close
Every method above answers a slightly wrong question, and the right question — "which of my cited pages drives revenue" — is not answered by any single one of them, which is the gap this article exists to name. I would rather you understand the gap than buy a tool that papers over it.
Stack the methods against the question you actually care about:
Method
Answers
The question you actually have
Server logs
Which pages AI crawls
Which pages AI sends paying buyers
Prompt testing
Which pages AI cites for 50 queries
Which pages AI cites across all queries
Visibility tools
How often pages appear in sampled answers
How often pages drive real clicks
Landing-page analysis
Which pages AI traffic lands on
Which of those pages convert to revenue
Each is one step removed from the money. Crawls are two steps removed (crawl → citation → click → revenue). Sampled citations are two steps removed (citation → click → revenue). Landing analysis is one step removed (landing → revenue). The only thing that closes the final step is joining the AI-referred landing to a Stripe payment — and that join is exactly what no citation-monitoring tool can perform, because your Stripe data lives in your account, not in their prompt panel.
There is also a hard limit no tool overcomes in 2026, and I want to be straight about it: you cannot get a clean query-to-citation map for organic traffic the way Search Console gives you query-to-click for Google. The AI engines do not transmit the prompt that produced a click. Prompt testing tells you about queries you chose; the referer path tells you the surface (a chatgpt.com/search referer is the search surface, a /c/ path is an in-conversation citation) but never the prompt text. So for the bulk of your real AI traffic, you know the landing page and you can infer the engine, but the exact triggering query stays inside the engine. Anyone selling you a complete query-to-citation report for organic AI traffic is selling you a model's guess dressed as data.
The practical resolution is not a single perfect method — it is a layered stack where each method covers another's blind spot, with the revenue join as the arbiter:
Layer
Method
Question it closes
1
Server logs
Is AI noticing this page at all?
2
Prompt testing
Does AI cite it for my priority queries?
3
Visibility tool
How broad is its citation footprint?
4
Landing-page analysis
Does AI send it real clicks?
5
Stripe join
Do those clicks become revenue?
Layer 5 is the one that reorders everything. Without it you rank pages by citation count and optimize the wrong ones. With it you rank pages by AI-attributed revenue and fund the right ones. The next sections are about what that reordering reveals.
What your most-cited pages have in common: the page-attribute table
Across the cohort, the pages AI cites most are not random — they cluster on six attributes, and the strongest of them is the least glamorous: they already rank top-3 in classic organic search. If you want to predict whether a page will get cited before you measure it, this table is the closest thing to a checklist.
I built the table below by taking the pages that showed high AI-referred landings across the cohort and looking at what they shared, cross-referenced against the page attributes that the ranking-factors analysis and the Princeton GEO study identified as load-bearing[]. The "citation-likelihood lift" column is directional — it is the observed difference in AI-referral rate between pages that have the attribute and pages that do not, within the cohort, not a controlled causal estimate.
The ordering matters as much as the list. The biggest lever is the boring one: classic top-3 organic rank, because the retrieval step that assembles the AI candidate set behaves like a search step, and a page that does not rank rarely enters the pool no matter how clean its passages are[]. This is why "AI killed SEO" is exactly backwards for this purpose — the candidate-set gate is essentially a search-rank gate. Once you are in the pool, format and passage quality take over, which is where comparison structure, schema, liftable stats, and answer-first paragraphs do their work.
The two surprising entries are at the bottom. Domain authority helps less than operators expect at the citation stage — it gets you considered (stage 2) but does not win the citation (stage 3), which is why I have watched a low-authority niche page get cited over a high-authority homepage that buried its answer. And keyword density does essentially nothing: the Princeton GEO study found keyword stuffing produced no measurable lift in generative-engine visibility, while adding statistics and citations to a passage lifted it up to 40%[]. If your "AI optimization" is keyword-focused, the controlled evidence says you are optimizing the one lever that does not move.
The practical read: to predict whether a page will be cited, ask in order — does it rank top-3, is it comparison/listicle shaped, does it carry schema, does it lead with a stat the model can lift, does it answer fast, is it fresh. A page that passes the first four is a strong citation candidate. A page that passes none, regardless of how much content it has, is unlikely to be cited and is a poor place to spend GEO effort.
A worked example: ranking attrifast.com's pages by AI-citation share
When I ranked my own site's pages by AI-citation share, the top 10 were not the pages I would have guessed, and the pattern in them confirmed the attribute table almost exactly — comparison and answer-shaped pages dominated, and the homepage was nowhere near the top. Here is the actual exercise, with the method and the numbers, anonymized only where a raw URL would expose a customer.
I ran all four discovery methods against attrifast.com over a 30-day window: server-log crawler hits by URL, a 40-query prompt-test set across four engines, the landing-page recovery from Method 3, and a cross-check against a visibility-monitor panel. Then I ranked pages by AI-referred landings — the click-validated signal — and looked at what the top 10 shared. The result:
Rank
Page type
AI-referred sessions (30d)
Top-3 organic?
Comparison/listicle?
Schema?
Leads with a stat?
1
"ChatGPT vs Google traffic quality" comparison
1,240
Yes
Yes
FAQ
Yes
2
"Best AI attribution tools 2026" listicle
1,090
Yes
Yes
FAQ
Yes
3
"Track ChatGPT traffic" how-to
870
Yes
No
FAQ + HowTo
Yes
4
"AI traffic revenue benchmark" original data
760
Yes
No
Article
Yes (cohort numbers)
5
"How AI engines choose sources" mechanics
610
Yes
No
FAQ
Partial
6
"Attrifast vs Google Analytics" comparison
540
Yes
Yes
FAQ
Yes
7
"Cookieless tracking" explainer
480
No (rank 4-6)
No
FAQ
Yes
8
"AEO vs SEO 2026" comparison
430
Yes
Yes
FAQ
Partial
9
"How to get cited by AI engines" how-to
390
Yes
No
FAQ
Yes
10
Revenue-attribution feature page
360
No (rank 5-8)
No
Product
Partial
What jumps out:
Observation
Detail
Comparison/listicle over-represented
4 of the top 10 are "X vs Y" or "best X" pages, versus ~15% of total site pages
Original-data page punches up
The benchmark post (rank 4) draws citations specifically because the cohort numbers are liftable
Homepage absent
The homepage was rank 31 — AI sends deep, not to the front door[]
Schema near-universal in the top 10
9 of 10 carry FAQ, Article, or HowTo schema
Two pages cited despite sub-top-3 rank
Ranks 7 and 10 made it on answer-shape and schema, not organic rank
The two exceptions (ranks 7 and 10) are the instructive ones. The cookieless-tracking explainer ranks 4-6 organically yet pulls strong AI landings because it answers a narrow question cleanly with a stat in the first paragraph — the re-ranker rewarded passage quality over rank. The feature page is even more telling: it is a commercial page that does not rank top-3, but it gets cited on "Stripe revenue attribution tool" type queries because it is the canonical answer to a product-shaped question. Both confirm the attribute table: rank gets you considered, but answer-shape and schema can win the citation from a lower-ranked position[].
Now the turn that the rest of the article builds on. If I stopped here, I would conclude "write more comparison pages, add schema, lead with stats" — all true, all in the get-cited playbook. But this ranking is by citation-producing traffic, not by revenue. The next section is what happened when I joined these same pages to Stripe. The order changed, and the change is the whole point.
The revenue layer: which cited pages actually drive money
The page AI cites most and the page AI sends your best buyers to are usually different pages, and you cannot tell which is which until you join the AI-referred landing to a Stripe payment — citation count is a vanity metric until revenue arbitrates it. This is the wedge, and it is where every citation-monitoring tool stops and Attrifast starts.
Take the same top-10 ranking from the worked example and add one column: AI-attributed revenue, from the Stripe join. The reorder is dramatic.
Page type
AI-referred sessions (30d)
Citation rank
AI-attributed revenue (30d)
Revenue rank
Cited-traffic RPV
"Best AI attribution tools" listicle
1,090
2
$2,940
1
$2.70
"ChatGPT vs Google" comparison
1,240
1
$1,490
3
$1.20
Revenue-attribution feature page
360
10
$1,620
2
$4.50
"Track ChatGPT traffic" how-to
870
3
$1,310
4
$1.51
"Attrifast vs Google Analytics" comparison
540
6
$1,180
5
$2.19
"AI traffic revenue benchmark" data
760
4
$610
6
$0.80
"How AI engines choose sources"
610
5
$370
7
$0.61
"Cookieless tracking" explainer
480
7
$290
8
$0.60
"AEO vs SEO 2026" comparison
430
8
$210
9
$0.49
"How to get cited by AI engines"
390
9
$180
10
$0.46
Read the first three rows against each other. The most-cited page (the ChatGPT vs Google comparison, 1,240 sessions) is only the third-highest revenue page, with a middling $1.20 RPV — it draws a lot of top-of-funnel research traffic that browses and leaves. The feature page, dead last in citation rank at #10 with 360 sessions, is the second-highest revenue page, with a $4.50 RPV — nearly four times the most-cited page's RPV — because the people who reach a product page from an AI recommendation are deep in a buying decision. If I had optimized on citation count, I would have poured effort into the comparison page and ignored the feature page. The revenue join inverts the priority.
The principle, stated cleanly: a high-citation page with low RPV is worth less than a low-citation page with high RPV. A simple two-by-two makes the decision obvious:
Low cited-traffic RPV
High cited-traffic RPV
High citation count
Vanity page — defend, do not over-invest
Crown jewel — protect and expand
Low citation count
Deprioritize
Hidden opportunity — invest here first
The bottom-right quadrant — low citation, high RPV — is where the highest-leverage work lives, and it is invisible to every tool that ranks by citation count. That feature page at $4.50 RPV is the textbook case: lifting its citation share from 360 sessions toward 700 would multiply a high per-visitor value, far more valuable than adding citations to the $1.20-RPV comparison page that already gets the most.
This also ties to the per-engine reality from the 200-site benchmark: the engine that sends the most citations is not the one that pays the most. ChatGPT is 71% of AI sessions but Perplexity has the higher RPV ($1.42 vs $0.87), and Claude leads RPV on B2B SaaS specifically at $1.94[]. So even within a single cited page, the same citation is worth more or less depending on which engine produced the click — another dimension the citation monitors flatten and the revenue join preserves.
The method-comparison table: accuracy, effort, cost, what each can tell you
No method wins on every axis, so the right answer is a stack — but if you are forced to pick one to start, pick landing-page analysis, because it is the only single method that is click-validated and revenue-joinable. Here is the full comparison I use when advising on a measurement setup.
Method
Accuracy
Effort
Cost
Click-validated?
Revenue-joinable?
What it can tell you
What it cannot
Server-log crawler hits
Low (correlation)
Low (10 min)
$0
No
No
Which pages AI crawls / is interested in
Whether a citation or click happened
Manual prompt testing
High per query, tiny coverage
High (manual)
$0 + time
No
No
That a citation exists for tested queries
Anything about untested queries or revenue
Landing-page analysis
Medium-high (top ~80%)
Medium (setup)
Low ($29/mo class)
Yes
Yes
Which pages AI sends real traffic to
Exact prompt; long-tail is noisy
Visibility tools
Medium (sampled panel)
Low (managed)
High ($99-$499+/mo)
No
No
Citation frequency at scale across engines
Your real traffic or revenue
The full stack
Highest
Highest
Sum of the above
Yes
Yes
Crawl → cite → click → revenue, end to end
The irreducible query-to-citation gap
A few decisions fall out of this table directly:
If your constraint is...
Start with
Because
Zero budget, today
Server-log grep + 20-query prompt test
Free, ten minutes, gives a directional read
You need to know what pays
Landing-page analysis + Stripe join
Only path to revenue per page
You need broad answer-space coverage
A visibility monitor
Scales past hand-testing
You are an enterprise GEO team
Visibility monitor + attribution layer
One for coverage, one for revenue
You are a $29/mo SMB
Landing-page analysis
Revenue per page at SMB price beats citation counts you cannot bank
The line I draw for SMB SaaS and ecommerce specifically: a $499/mo citation monitor tells you which pages get cited, which is genuinely useful, but for a bootstrapped business the more decision-relevant number is which cited pages pay — and that you can get from a $29/mo attribution layer that does the Stripe join. If the budget exists for both, run both. If you have to choose, choose the one that ranks pages by money.
How to actually instrument page-level AI revenue (cookieless)
The join that turns citation counts into revenue per page is four cookieless layers, and the decisive one is writing your first-party session ID — keyed to the landing page — into Stripe Checkout metadata so the payment webhook can name the page that earned it. This is the architecture, concretely, without the marketing gloss.
The AI client strips the cross-site Referer, but it cannot strip the landing URL, and it cannot reach into your first-party session scope or your Stripe account. So the whole approach is to attribute at the layers the AI client does not control:
Layer
What it does
Cookieless?
What it recovers
1. Server-side referrer fingerprinting
Match Referer against the AI-engine domain list
Yes
The ~15-20% referrer-passed clicks, page-exact
2. Behavioral landing detection
Flag no-referrer deep-page new-visitor sessions as suspected-AI
Yes
The ~80% no-referrer slice, ~80% precision
3. First-party session identity
Write a domain-scoped session row keyed to the landing page
Yes
A stable ID to carry into checkout
4. Stripe metadata join
Carry the session ID into Checkout metadata; join on the webhook
Yes
Revenue attributed back to the landing page + engine
The decision tree the server runs on each request, ending at the revenue join:
The Stripe join is idempotent on the event ID, since Stripe webhooks are at-least-once per their documented delivery guarantee[], so no payment is double-counted. Failed, refunded, and test-mode events are excluded. The output is the report this whole article has been chasing: every page ranked by AI-attributed revenue, broken out by engine where the referrer allows, with cited-traffic RPV computed per page so the two-by-two from the revenue section fills itself in.
That is what Attrifast ships — cookieless, consent-light under most jurisdictions (verify per your own privacy review), a 4 KB script, an OAuth Stripe connection rather than an API key. The first-person reason I built it is the reason this article opens with that customer screenshot: I was the operator staring at a citation count I could not bank. The fix was never a better citation monitor. It was the join to revenue. If you want the detection code itself, the track-ChatGPT-traffic guide walks the middleware; the revenue-attribution feature is the join; and the share-of-voice piece covers how to read the per-engine coverage alongside the revenue.
Common mistakes when measuring AI content performance
Most teams measuring "which pages does AI cite most" make at least three of the same six mistakes, and every one of them ends in optimizing the wrong page. I have seen each often enough to name it.
Mistake
Why it is wrong
Fix
Reading GPTBot crawl spikes as citations
A training crawl is not a live citation; it is interest, two steps from a click
Separate crawl / cite / click in reporting; use ChatGPT-User as the closer signal
Ranking pages by citation count alone
Citation count is a vanity metric until joined to revenue
Rank by cited-traffic RPV, not citation frequency
Trusting a single prompt test
Answers are non-deterministic; one test is a sample
Run each priority query 2-3 times from a clean session
Treating all engines as one
Per-engine RPV differs 3x+ (Perplexity $1.42 vs Gemini $0.41)[]
Break out by engine; weight by RPV
Ignoring the homepage-vs-deep-page split
AI lands deep (78%)[]; a homepage-centric view misses it
Rank deep pages explicitly; expect the homepage to under-index
Buying a citation monitor expecting revenue
Monitors have no Stripe data; they cannot show revenue
Pair the monitor with a revenue-joining attribution layer
The first and second mistakes are the expensive ones. Reading crawls as citations inflates your sense of which pages are performing and sends you optimizing pages AI merely noticed. Ranking by citation count — the mistake the citation monitors structurally encourage, because count is what they can measure — sends you optimizing pages that get cited but do not pay. Both are fixed by the same discipline: keep crawled, cited, and clicked separate, and let revenue arbitrate which clicked pages matter.
How this fits the rest of your AI measurement
Page-level citation performance is one slice of a larger AI measurement picture, and it is most useful read alongside share-of-voice and the per-engine revenue split rather than in isolation. Here is how the pieces connect, so this article does not become a hammer that turns everything into a citation-count nail.
The throughline is that none of these are useful as standalone vanity metrics. Citation share without revenue is a number you cannot bank; share-of-voice without conversion is a leaderboard position with no P&L impact; ranking factors without measurement is optimization you cannot verify. The reason every one of these pieces ends at the same place — join it to Stripe — is that the join is what converts an AI-search metric into a business decision. Page-level citation performance is no exception: it becomes actionable the moment you can say not "this page is cited most" but "this page makes the most AI-attributed revenue, so it gets the next sprint."
FAQ
How do I find which of my pages AI cites most?
There is no single report, because AI citation clicks do not arrive labelled the way a Google referral does. You triangulate from four imperfect signals. First, server-log analysis: group AI-crawler hits (GPTBot, OAI-SearchBot, PerplexityBot, ClaudeBot, ChatGPT-User) by URL — high crawl frequency on a page correlates with citation interest but does not prove a citation happened. Second, manual prompt testing: ask each engine the 20-50 queries your buyers actually use and record which of your URLs appear as footnotes. Third, AI-referral landing-page analysis: server-side referrer fingerprinting plus deep-page-landing heuristics tells you which pages AI traffic actually lands on, which is the strongest single signal because it reflects real clicks. Fourth, dedicated visibility tools like Profound or Otterly that run prompt panels at scale. The landing-page method is the one I trust most because it is downstream of an actual human click rather than a crawl or a sampled prompt.
Why don't AI citations show up in GA4 like a normal referral?
Because the AI clients strip the Referer header on most outbound clicks, so the browser never tells your server the visit came from chatgpt.com or perplexity.ai. GA4 assigns channels by reading document.referrer and UTM parameters; with both empty it files the session as Direct/(none). Across the 200 Stripe-connected sites in the Attrifast cohort a median 34% of the GA4 Direct bucket is actually AI-referred traffic once you fingerprint it server-side. So the page-level citation data you want is sitting inside Direct, unlabelled and un-page-attributed, in the default report. You have to recover it before you can rank pages by AI performance at all.
Does a high AI-crawler hit rate on a page mean AI is citing it?
It is a correlation, not a proof, and conflating the two is the most common mistake I see. GPTBot is a training crawler — frequent GPTBot hits mean OpenAI considers the page worth ingesting for a future model, not that any live answer cited it. ChatGPT-User and OAI-SearchBot are closer to citation signals because they fire when the live system fetches a URL to answer or index, so a burst of those on one page over 24-72 hours is a reasonable leading indicator. But the only way to confirm a citation actually shipped is to see your URL appear as a footnote in a real answer (prompt testing or a visibility tool) or to catch the human click it produced (landing-page analysis). Treat crawl frequency as "AI is interested in this page," never as "AI cited this page."
What do the pages AI cites most have in common?
Across the cohort, the most-cited pages cluster on six attributes, in rough order of strength: they already rank top-3 in classic organic search for the query, which gates entry to the retrieval candidate set; they are comparison or listicle format ("best X", "X vs Y", "X alternatives"), which matches the recommendation queries buyers ask AI; they carry FAQ or Article schema that makes the answer trivially parseable; they contain original data, statistics, or a number the model can lift verbatim; they answer the question in the first 80-120 words rather than burying it; and they were updated within the last 6-12 months. No single attribute guarantees citation — but a comparison page that ranks top-3, carries schema, and leads with a stat is far more likely to be cited than a thin prose page that ranks page two.
Is the page AI cites most the page I should optimize most?
Almost never, and this is the entire point of the article. Citation count is a vanity metric until you join it to revenue. A page can be cited 500 times a week and convert nobody, while a quieter page cited 40 times a week lands three high-intent buyers a month. The number that should set your optimization budget is cited-traffic RPV — revenue per visitor on the AI-referred sessions that landed on that page — not raw citation count. Profound, Otterly, and the other visibility tools rank pages by how often they appear in answers because that is what they can measure; they cannot see your Stripe data. To find the page that actually deserves your next sprint you have to join citations to traffic to revenue, and the join to revenue is the part no citation-monitoring tool does.
How accurate is ranking my pages by AI traffic landing?
More accurate than crawl analysis and more complete than prompt testing, but bounded by the precision of the AI-detection layer. Referrer-passed AI clicks (the 15-20% that arrive with chatgpt.com or perplexity.ai in the Referer) are attributable with near-certainty to the exact landing page. The larger no-referrer slice is recovered with behavioral fingerprinting — no Referer, deep-page entry, new visitor, geo-and-time cluster matching AI prompt traffic — which runs at roughly 80% precision in the cohort. So the page ranking is solid at the top (high-volume cited pages show up clearly) and noisier in the long tail (a page with five suspected-AI sessions could be three real plus two false positives). It is the best single method for "which pages does AI actually send traffic to," which is the closest practical proxy for "which pages does AI cite most."
Which tools track which pages AI references?
Two categories, and they answer different questions. Citation-monitoring tools — Profound, Otterly, Peec AI — run panels of prompts across engines and report which of your URLs appear as references in the answers; Profound markets this explicitly as Content Performance Tracking. They are the right tool for "which pages get cited" but they measure sampled prompts, not your real traffic, and they do not touch revenue. Attribution tools — Attrifast, and to a lesser degree Plausible or Fathom for the referrer-passed slice — measure which pages AI traffic actually lands on and, in Attrifast's case, join those sessions to Stripe revenue per page. The honest answer is you often want one of each: a citation monitor to see the answer-space coverage and an attribution layer to see which of those citations turned into money.
How often should I check which pages AI cites most?
Monthly for the full pass, weekly for the leading indicators. The full pass — re-running your prompt-test set across engines and re-pulling the landing-page ranking — is a monthly cadence because AI answer composition drifts on roughly that timescale as content gets re-crawled and re-ranked. The leading indicators worth a weekly glance are the AI-crawler hit-rate-by-URL view (a new page spiking GPTBot and ChatGPT-User hits is about to start getting cited) and the suspected-AI landing-page trend (a page whose AI-attributed sessions jump is a page whose citation share just rose). On the RAG pathway a freshly published page can go from zero to cited within 24-72 hours on a well-crawled domain, so a brand-new high-priority page is worth checking inside its first week.
Can I see which exact prompt or query made AI cite my page?
Partially, and only by combining methods. Prompt testing tells you which queries surface your page because you control the query — but it only covers the queries you thought to test, which is a tiny fraction of the real distribution. Server-side referrer paths sometimes carry a hint: a chatgpt.com/search referer indicates the ChatGPT search surface, a /c/ path indicates an in-conversation citation, but neither exposes the actual prompt text. The AI engines do not send the query that produced the click — that data stays inside the engine. So you can know the queries you tested and infer the surface from the referer path, but you cannot get a clean query-to-citation map for organic traffic the way Google Search Console gives you query-to-click. That gap is structural in 2026 and no tool closes it honestly.
What is the difference between a page being crawled, cited, and clicked?
Three distinct events that get conflated constantly. Crawled means an AI bot fetched the page (GPTBot for training, OAI-SearchBot for the search index, ChatGPT-User for a live fetch) — this is the most common and the weakest signal. Cited means your URL appeared as a reference in an AI-generated answer to some user's query — this is what citation-monitoring tools measure on sampled prompts, and it is the thing most "AI content performance" language actually refers to. Clicked means a human read the answer, clicked your footnote, and landed on your page — this is the only one that can produce revenue, and it is what landing-page attribution captures. A page can be crawled thousands of times, cited dozens of times, and clicked zero times. Your reporting language should keep the three separate or your conclusions will be wrong.
Why do my AI citations not match my Google rankings?
Because AI citation runs through a two-stage filter that classic ranking does not. Stage one is the retrieval candidate set, which is roughly a search step — so your top-3 organic pages are the ones eligible, and that part tracks Google rankings closely. Stage two is the re-ranker, which scores passages on answer-shape, schema, concision, and embedded statistics, where the Princeton GEO research found passage edits lifted generative visibility by up to 40% while keyword density did nothing. So a page can rank #1 on Google and still lose the citation to a #3 page that answers the question more cleanly in its first paragraph. The mismatch is the re-ranker doing its job: rank gets you considered, passage quality gets you cited. If your highest-ranking pages are not your most-cited pages, it is usually because the high rankers bury the answer.
Should I optimize my most-cited page or my highest-revenue cited page?
The highest-revenue cited page, every time, and the two are usually different pages. Optimizing your most-cited page harder often just adds citations to a page that already converts poorly — you make a vanity number bigger. Optimizing the page with the highest cited-traffic RPV compounds money: you are pouring effort into the page where each additional AI-referred visitor is worth the most. The exception is a page with low current citation count but high RPV and high ceiling — that is the genuine opportunity, because lifting its citation share multiplies a high per-visitor value. The decision framework is a simple two-by-two: citation count on one axis, cited-traffic RPV on the other. You fund the high-RPV quadrants and you stop pouring budget into high-citation-low-RPV pages no matter how good the citation number looks in a report.
How do I attribute revenue to a specific cited page when the referrer is stripped?
Through first-party, server-side, page-level session identity joined to Stripe. The AI client strips the cross-site Referer, but it cannot strip the landing URL — your own server always knows which page the visit hit first. So you write a first-party session row keyed to that landing page (cookieless, scoped to your domain), carry the session ID into Stripe Checkout metadata, and on the checkout.session.completed webhook you join the payment back to the originating landing page and its inferred AI source. That gives you revenue per cited page even though GA4 saw only an unlabelled Direct visit. It is exactly the join Attrifast was built to do, and it is the only way I know to rank pages by AI-attributed revenue rather than by citation count.
Does this work the same for ChatGPT, Perplexity, Claude, and Gemini?
The method is the same; the data quality per engine differs. Perplexity passes referrers most often and exposes a Sources tab, so its page-level citation data is the cleanest to collect via both prompt testing and landing analysis. ChatGPT is the highest-volume engine but strips referrers aggressively, so most of its page-level signal comes from the recovered no-referrer slice. Claude almost never passes a referrer and is browse-off by default, so a large share of its influence shows up as later branded search rather than a trackable click — the hardest engine to attribute at the page level. Gemini behaves like Google AI Overviews and rarely passes a clean referrer. In the cohort the per-engine RPV ranking is Perplexity $1.42, Claude $1.18, ChatGPT $0.87, Gemini $0.41, AI Overviews $0.29, so the engine sending the most citations (ChatGPT) is not the one paying the most per visitor — another reason page-level citation count alone misleads.
What about pages AI mentions without linking — do those count as cited?
They count as influence, not as a trackable citation, and they are the hardest case. When a browse-off model says "I'd use Attrifast" with no clickable link — the training-corpus pathway — there is no footnote and no referrer, so neither a citation monitor scanning for URL references nor a landing-page analyzer watching for clicks will catch it cleanly. The influence shows up later as a branded search or a Direct visit days after the recommendation, with no link back to the AI engine. You can approximate it with branded-search-lag analysis, but you cannot attribute it to a specific page the way you can a RAG citation click. For page-level "which pages does AI cite most," focus on the RAG pathway where citations are linkable and clickable; the unlinked recall pathway is real and valuable but lives at the brand level, not the page level.