Key takeaways
- No tool reports AI citations directly. You track them by combining three signals: AI referral traffic in GA4, verified AI crawler and fetcher hits in your server logs, and Google's generative-AI impressions report in Search Console. Each measures a different layer.
- A citation is not a referral. A citation is your page named inside an AI answer; a referral is a human clicking through. Most AI visibility never produces a click, so GA4 referrals systematically undercount how often you are cited.
- Server logs are the most reliable and most underused method, because they do not depend on a referrer surviving. Match the bot user-agent, then verify the source IP against each provider's published IP-range file, or reverse DNS where no ranges are published.
- Google is a special case. AI Overviews use the live Googlebot index, so there is no separate AI crawler to track. Google-Extended only governs Gemini and Vertex AI training and never appears in your logs.
- You can do all of this with tools you already have. GA4, your access logs and Search Console cost nothing extra. Paid platforms add convenience, not new fundamental signals.
There is no single dashboard that reports "AI citations" for your website. Tracking them means assembling three data sources you already own: referral traffic in GA4 (humans who clicked through from an AI answer), AI crawler and fetcher hits in your server access logs (bots reading your pages to build or ground answers), and Google's generative-AI performance report in Search Console (how often your pages appear in AI Overviews and AI Mode). Each measures a different layer of the same phenomenon, and none of them alone equals a full citation count. This guide shows you how to set up all three, verify the data, and read them together without double-counting or fooling yourself.
What is an AI citation, and why is it not the same as a referral?
Get this distinction right first, because everything else depends on it. A citation is your page named or linked inside an AI answer. A referral is a human actually clicking that link through to your site. These are different events, and the gap between them is large.
Most AI visibility never produces a click. Pew Research Center analysed 68,879 Google searches from 900 US adults and found that when an AI summary appeared, users clicked a source link inside that summary in just 1% of visits. They clicked any traditional search result in only 8% of visits with an AI summary, versus 15% without one. Ahrefs found the same direction of travel at scale: analysing 300,000 keywords, it reported that by December 2025 the position-one organic click-through rate had roughly halved, and for keywords showing an AI Overview the drop reached around 58%.
The practical consequence is that if you only track referrals, you are counting "the clicks that survived", not how often you were cited. Referral traffic is the smaller, lagging number. Crawler activity and Search Console impressions are the leading indicators. Track all three, and always know which one you are looking at.
How do I track AI citations for my site?
Use a three-layer stack, each capturing a different stage of the AI answer lifecycle. Here is the full picture, from ingestion to click.
| Signal | What it tells you | Where to find it |
|---|---|---|
| Crawler fetch (GPTBot, ClaudeBot, PerplexityBot) | Your content was ingested or indexed | Server access logs |
| Search-bot fetch (OAI-SearchBot, Claude-SearchBot) | You are eligible to be cited in that engine's answers | Server access logs |
| User-fetch (ChatGPT-User, Claude-User, Perplexity-User) | A live person's question touched your page (strong citation signal) | Server access logs |
| AI referral | That person clicked through to your site | GA4 |
| AI Overviews / AI Mode impression | Google's own count of your visibility in its AI answers | Search Console |
These are separate layers, not one number. Reading them as a hierarchy stops you double-counting: a crawler fetch means your content was read, a user-fetch means a real query touched it, and a GA4 referral means someone clicked. The rest of this guide covers each layer in turn.
How do I capture AI referrals in GA4?
GA4 referral tracking works by matching the referrer against known AI hostnames. GA4 will auto-classify some recognised AI assistants, but only when a referrer actually survives the click. To get reliable, complete coverage, build your own custom channel group rather than relying on the default classification.
Create a custom channel group with a regex against Session source, for example:
chatgpt.com|chat.openai.com|openai.com|perplexity.ai|claude.ai|gemini.google.com|copilot.microsoft.com
Then, in an Exploration, add Landing page as a dimension. The landing pages receiving AI referrals are your best proxy for which pages are being cited: if a page shows up in AI referrals, an AI answer somewhere linked to it and a human clicked.
Now the caveats, because they matter. Perplexity reliably passes perplexity.ai as a referrer on both desktop and mobile, so it is the easiest engine to isolate cleanly. ChatGPT began appending utm_source=chatgpt.com to desktop citation links in 2025. But the ChatGPT mobile app commonly sends no referrer at all, so those sessions land in Direct traffic and vanish from your AI channel. A meaningful share of AI referral sessions arrives referrer-less and gets misattributed to Direct, so treat your GA4 AI referral count as a floor, never a ceiling.
For context on why this now matters at all: ChatGPT sent an estimated 243.8 million visits to 250 news and media sites in April 2025, up 98% from January, with 83% of OpenAI's outbound referral traffic going to news and media that month, according to Similarweb data reported by Digiday. AI referrals are real and growing, but the referrer-loss problem means GA4 alone will always understate them.
Which of my pages does AI cite most, and how do I find out?
Two of your three signals answer this directly, from different angles.
From GA4: the Landing page dimension inside your AI channel exploration shows which pages actually converted a citation into a click. This is a demand-weighted view: it favours pages people found compelling enough to visit.
From server logs: filter your access logs by verified AI bot user-agent and group by requested URL. This shows which pages are being fetched, ingested and grounded, whether or not anyone clicked. This is the more complete view of what AI is reading. In particular, the user-fetch agents (ChatGPT-User, Claude-User, Perplexity-User) are the most valuable: a hit from one of these means a live user asked an AI a question and the model went and fetched that specific page to answer. That is about the strongest citation signal you can observe in your own data.
From Search Console: the generative-AI performance report (covered below) breaks visibility down by page, so you can see which URLs Google is surfacing in its AI answers.
Cross-reference the three. A page that is fetched heavily by user-agents, appears in Search Console AI impressions, but gets few GA4 referrals is a page AI leans on to answer questions without sending you the click. That is exactly the pattern the click-collapse studies predict, and exactly the pattern a referral-only view would hide from you.
How do I track AI crawlers and fetchers in my server logs?
Server log analysis is the most reliable and most underused method, because it does not depend on a referrer surviving a mobile app or a redirect. The catch is that user-agent strings can be spoofed, so you must verify in two steps: match the user-agent token, then confirm the source IP against the provider's published IP-range file, or use reverse DNS where no ranges are published.
Here are the official tokens and verification methods to match against.
| Provider | Bot | Purpose | Verify against |
|---|---|---|---|
| OpenAI | GPTBot | Training | openai.com/gptbot.json |
| OAI-SearchBot | Surfaces and cites you in ChatGPT search | openai.com/searchbot.json | |
| ChatGPT-User | Fetches a page when a user or Custom GPT asks ChatGPT to visit a URL | openai.com/chatgpt-user.json | |
| Anthropic | ClaudeBot | Training | Reverse DNS (no published IP ranges) |
| Claude-SearchBot | Improves Claude search results | ||
| Claude-User | Fetches pages on behalf of a live user's question | ||
| Perplexity | PerplexityBot | Indexing, drives citations | perplexity.com/perplexitybot.json |
| Perplexity-User | Live, user-initiated fetch | perplexity.com/perplexity-user.json |
A worked example. Suppose your log shows a request with user-agent containing ChatGPT-User and the URL +https://openai.com/bot. Step one: the token matches. Step two: take the source IP and check it falls inside a range listed in openai.com/chatgpt-user.json. If both pass, it is a genuine ChatGPT user-fetch, meaning a live person's ChatGPT session pulled that URL to answer them. If the token matches but the IP is not in the range, treat it as an unverified request and discard it.
OpenAI publishes verifiable IP ranges for each of its three crawlers, and its tokens are documented in the OpenAI crawler documentation. Anthropic does not publish dedicated IP ranges because its bots run on provider public IPs, and it warns that blocking by IP is unreliable, so validate Claude traffic by reverse DNS rather than an IP-range file.
Can I stay citable without feeding the training models?
Yes, and this is where log tracking connects to strategy. Because each provider separates its crawlers by purpose, your robots.txt can allow the bots that keep you citable while blocking the ones that only train models.
OpenAI runs three distinct crawlers you should track and control separately. GPTBot is for training, OAI-SearchBot surfaces and cites your site in ChatGPT search, and ChatGPT-User fetches a page on live demand. Allowing OAI-SearchBot while blocking GPTBot keeps you citable in ChatGPT search without contributing to model training. Anthropic follows the same shape: allow Claude-SearchBot and Claude-User, optionally block ClaudeBot. Perplexity: allow PerplexityBot to stay in citations. In each case the mapping is direct: the search and user bots are your route into answers, the training bots are optional. Remember that robots.txt is a request, not enforcement, and does not stop a crawler that ignores it.
Why is Google different, and does blocking Google-Extended help?
Google is the special case, and getting this wrong is common. There is no separate AI crawler for AI Overviews. AI Overviews and AI Mode draw on the live Google Search index built by Googlebot. So there is no distinct "AI bot" hit to count in your logs for Google, and the only way to remove yourself from AI Overviews via crawling controls has historically meant blocking Googlebot, which also removes you from Search entirely.
Google-Extended confuses people because it sounds like a crawler. It is not. It is an opt-out token that only governs whether your content is used to train and ground Gemini and Vertex AI. It makes no HTTP requests, never appears in your logs, and blocking it does not remove you from AI Overviews and does not affect Search ranking or indexation. If you are hunting for a Google-Extended entry in your access logs, you will never find one, because it is a directive, not a fetching agent.
What does Search Console show, and how do I read it?
In June 2026, Google added a dedicated generative-AI performance report to Search Console. It shows how often your URLs appeared in AI Overviews and AI Mode, plus generative AI features in Discover, broken down by page, country, device and date. This is Google's own visibility count, and it is the closest thing to an official "how often does Google cite me in AI" number you can get.
Two critical caveats at launch, per the Google Search Central announcement. First, the report shows impressions only. There are no clicks, no CTR, and no query data, so you can see visibility but not its traffic value. Second, this AI visibility was already blended into your overall Performance report totals rather than being brand-new data, so the breakout does not change your aggregate numbers; it just isolates the AI slice. Note also that the report rolled out initially to a subset of site owners, so you may not see the panel yet. Google paired the report with a new control to block your content from appearing in AI features, but opting out forfeits the impressions and any traffic they carry.
Read impressions here as a visibility and citation signal, not as traffic. Given that Pew found in-summary link clicks at just 1% of visits, high AI impressions with low clicks is the normal, expected state, not a fault to fix.
Can I track AI citations without a paid tool?
Yes. The entire three-layer stack runs on tools you already have: GA4, your server access logs, and Search Console all cost nothing extra. A recommended free stack for a publisher looks like this:
- Server access logs filtered by verified AI bot user-agent and IP, counting crawler and live-user fetches per URL. This is your most complete citation-proxy layer.
- GA4 custom AI channel plus the Landing page dimension, for the clicks that survived.
- Search Console generative-AI report for Google AI Overviews and AI Mode impressions.
- Optionally, periodic manual prompt testing. Ask ChatGPT, Perplexity and Claude the questions your pages should answer, and see whether and how you are cited. This is the one thing analytics genuinely cannot reveal, because it observes the answer itself rather than the trace it leaves.
Paid platforms bundle these signals into one interface and add convenience, but they do not have access to a fundamentally different data source. The building blocks are the same three feeds. What a good free-to-read dashboard adds is the aggregation: pulling your existing GA4 into a clean view so you are not rebuilding custom channel groups and explorations by hand every month.
If you would rather see the AI slice of your GA4 without building the regex and exploration yourself, try Ramprt free on the live demo. It reads your existing GA4 read-only, adds no new tracking script, and has an AI tab that isolates AI referrals by engine and shows which of your pages AI is sending traffic to.
What is citation share and why does it matter?
Citation share is the idea of measuring how often you are cited relative to the total available citations for the questions you care about, rather than counting your own hits in isolation. It matters because raw click and referral counts are collapsing at the source: with in-summary clicks at 1% of visits and position-one clicks roughly halved under AI Overviews, absolute traffic is a shrinking and misleading scoreboard. A share-based view asks the more durable question of whether AI answers are built on your pages versus your competitors', which holds up even as the click layer erodes.
You approximate it from the signals above. Your Search Console AI impressions tell you Google's visibility count for your URLs. Your log-verified user-fetches tell you how often live questions touch your content. Manual prompt testing tells you whether, for a defined set of questions, your page is the one being named. None of these gives you a clean percentage on its own, but together they let you track the direction of travel, which is what actually matters for decisions.
Frequently asked questions
Is there one tool that just shows my AI citations?
No. There is no single dashboard that reports AI citations directly. You assemble the picture from GA4 referrals, verified AI bot hits in your server logs, and Search Console's generative-AI impressions report. Each covers a different layer, and none alone equals a full citation count.
Why is so much of my AI traffic showing up as Direct in GA4?
Because many AI clients pass no referrer. The ChatGPT mobile app in particular commonly sends no referrer, so those sessions fall into Direct rather than your AI channel. A meaningful share of AI referrals arrives referrer-less. Your GA4 AI count is a floor, not the full number.
Does blocking Google-Extended remove me from AI Overviews?
No. Google-Extended only controls whether your content is used to train and ground Gemini and Vertex AI. AI Overviews use the live Googlebot index, so blocking Google-Extended has no effect on them. Google-Extended never appears in your logs because it is a directive, not a crawler.
What is the strongest citation signal I can measure myself?
A verified user-fetch in your server logs: a hit from ChatGPT-User, Claude-User or Perplexity-User, confirmed by matching both the user-agent token and the source IP (or reverse DNS for Claude). It means a live person's question caused an AI to fetch that specific page to answer them.
Can Search Console tell me which queries triggered my AI Overview appearances?
Not at launch. The June 2026 generative-AI report shows impressions only, broken down by page, country, device and date, with no clicks, CTR or query data. Use it as a visibility signal, not as a query or traffic report.
Frequently asked questions
Is there one tool that just shows my AI citations?
No. There is no single dashboard that reports AI citations directly. You assemble the picture from GA4 referrals, verified AI bot hits in your server logs, and Search Console's generative-AI impressions report. Each covers a different layer, and none alone equals a full citation count.
Why is so much of my AI traffic showing up as Direct in GA4?
Because many AI clients pass no referrer. The ChatGPT mobile app in particular commonly sends no referrer, so those sessions fall into Direct rather than your AI channel. A meaningful share of AI referrals arrives referrer-less. Your GA4 AI count is a floor, not the full number.
Does blocking Google-Extended remove me from AI Overviews?
No. Google-Extended only controls whether your content is used to train and ground Gemini and Vertex AI. AI Overviews use the live Googlebot index, so blocking Google-Extended has no effect on them. Google-Extended never appears in your logs because it is a directive, not a crawler.
What is the strongest citation signal I can measure myself?
A verified user-fetch in your server logs: a hit from ChatGPT-User, Claude-User or Perplexity-User, confirmed by matching both the user-agent token and the source IP (or reverse DNS for Claude). It means a live person's question caused an AI to fetch that specific page to answer them.
Can Search Console tell me which queries triggered my AI Overview appearances?
Not at launch. The June 2026 generative-AI report shows impressions only, broken down by page, country, device and date, with no clicks, CTR or query data. Use it as a visibility signal, not as a query or traffic report.
Sources
- OpenAI: Overview of OpenAI crawlers (bots documentation)
- Anthropic / Claude Help Center: Does Anthropic crawl data from the web, and how can site owners block the crawler?
- Pew Research Center: Google users are less likely to click links when an AI summary appears
- Ahrefs: AI Overviews Reduce Clicks by 58% (December 2025 update)
- Google Search Central Blog: Introducing Search generative AI performance reports in Search Console
- Digiday / Similarweb: ChatGPT referral traffic to publishers has nearly doubled in 2025