You can track AEO and GEO for free with 4 measurements: Google's AI impressions in Search Console, AI-assistant visits in GA4, AI fetches in your server logs, and a fixed panel of test prompts. Each one sees a different slice; none sees everything.
This is the stack Value Add VC uses on its own site, and the numbers below are ours. It produced the figures in our AI search traffic case study: 1.91 million AI Overview and AI Mode impressions over mid-July to mid-October 2026, and 537 AI-assistant visits on October 1-14. Every vendor claim comes from the vendor's own documentation, linked inline and loaded on October 16, 2026.

Sources: vendor crawler documentation from OpenAI, Perplexity, Anthropic and Google (loaded October 16, 2026); Value Add VC Search Console and GA4.
How to track AEO and GEO: the four measurements
To track AEO and GEO, combine four free sources. Search Console counts how often Google's AI features show your links. GA4 counts visits that AI assistants send. Server logs show when AI systems fetch your pages. A fixed prompt panel checks whether ChatGPT, Perplexity, Claude and Gemini cite you. Together they cover both Google and the other engines.
| Measurement | What it sees | Blind spot | Cost |
|---|---|---|---|
| Search Console Generative AI report | Impressions in AI Overviews and AI Mode, by page, country, device, date | No queries, no clicks, Google only | Free |
| GA4 AI-assistant referrals | Visits from Gemini, ChatGPT, Perplexity, Claude, Meta AI | Misses answers read without a click | Free |
| Server logs: user-triggered fetches | ChatGPT-User, Perplexity-User, Claude-User reading a page for a live answer | A fetch is not proof of a citation | Free |
| Server logs: search crawlers | OAI-SearchBot, PerplexityBot, Claude-SearchBot indexing your site | Shows eligibility, not usage | Free |
| Fixed prompt panel | Whether each engine cites you for the questions you care about | Small sample; answers vary run to run | Free (time) |
| Paid AI visibility trackers | Automated prompt runs at larger scale | No access to Google's internal systems | Paid |
Sources: Google Search Console Help; OpenAI crawler docs; Perplexity crawler docs; Anthropic crawler help article; Google AI optimization guide. Blind-spot column is Value Add VC's assessment.
How do you see AI Overview impressions in Search Console?
Open the Generative AI performance report in Search Console. Google's help page says it reached all websites worldwide as of August 31, 2026, and that it counts impressions for AI Overviews and AI Mode, defined as "how many times links to your site were shown to a user in a generative AI feature on Google Search." Discover has its own separate generative AI report, and Search Labs experiments are excluded.
Four dimensions are available: pages, countries, dates and devices. A search-type filter splits text queries from multimodal ones such as Google Lens and Circle to Search. The usual Performance report limits apply, including the 1,000-row table cap, and values shown as ~ or - export as zeros. If the report is missing, Google says your site may not have enough AI impressions yet, or may be excluded from Search generative AI features.
How we use it: export the date view weekly and track weekday highs, because weekends drag averages down. Ours went from about 10,000 a day in July 2026 to about 40,000 in October. Then export the pages view monthly and sort by impressions to see which content types Google's AI keeps citing. Note the aggregation quirk: the chart counts one impression per property even if two of your links appear in the same answer, while the page table counts each page, so totals can differ.
How do you track AI referral traffic in GA4?
In GA4's Traffic acquisition report, change the primary dimension to session source and filter with a regular expression covering the assistants' domains. The pattern we start from is gemini\.google\.com|chatgpt\.com|perplexity\.ai|claude\.ai|meta\.ai|copilot\.microsoft\.com. Check your own unfiltered source list once a month for new AI domains, since assistants launch new surfaces often. Save it as an exploration or a custom channel group so the numbers are comparable week to week.
Our worked example: on October 1-14, 2026, that filter returned 537 sessions, down from 744 on September 17-30. Gemini sent 415, ChatGPT 50, Perplexity 46, Claude 22 and Meta AI 4. The engaged-session rate was 45%. A click from an AI Overview inside Google Search is not in this filter; it arrives as Google organic traffic, which is why the Search Console report and GA4 must be read together.
Which AI crawler user agents should you log?
Each AI company documents separate agents for training, search indexing and live user requests. The live-request agents are the most useful for measurement, because each hit means a person asked an assistant something and it opened your page to answer.
| Token | Company | Purpose, per the vendor | What a hit tells you |
|---|---|---|---|
| ChatGPT-User | OpenAI | Visits pages for user actions; "robots.txt rules may not apply" | A ChatGPT user's question opened your page |
| OAI-SearchBot | OpenAI | Surfaces sites in ChatGPT search results | You are being indexed for ChatGPT search |
| GPTBot | OpenAI | Crawls content that may be used for model training | Training crawl, not search |
| Perplexity-User | Perplexity | Visits pages to answer user questions; "generally ignores robots.txt rules" | A Perplexity answer used your page |
| PerplexityBot | Perplexity | Surfaces and links sites in Perplexity search results | You are being indexed for Perplexity |
| Claude-User | Anthropic | Accesses sites when individuals ask Claude questions | A Claude user's question opened your page |
| Claude-SearchBot | Anthropic | Improves search result quality for Claude users | You are being indexed for Claude search |
| ClaudeBot | Anthropic | Collects content that could contribute to model training | Training crawl, not search |
| Google-Extended | robots.txt token only, no separate user agent; controls Gemini training and grounding use | Nothing in logs; does not affect Google Search |
Sources: OpenAI, Overview of OpenAI Crawlers; Perplexity Crawlers; Anthropic help center (April 7, 2026); Google common crawlers. All loaded October 16, 2026. OpenAI's help center returned 403 to our fetch, so OpenAI details come from its developer docs.
How we counted: AI-related agents documented by the four vendors, excluding ad and verification bots such as OAI-AdsBot; 4 vendors; 9 tokens; as of October 16, 2026.
A simple start is one grep a week over your access logs, counting hits per agent and per URL:
grep -oE "ChatGPT-User|OAI-SearchBot|GPTBot|Perplexity-User|PerplexityBot|Claude-User|Claude-SearchBot|ClaudeBot" access.log \
| sort | uniq -c | sort -rnUser-agent strings can be faked, so verify before you report. OpenAI publishes IP lists at openai.com/searchbot.json and openai.com/chatgpt-user.json, Perplexity at perplexity.com/perplexitybot.json and perplexity.com/perplexity-user.json, and Anthropic links its own list from the help article above. Match the source IP against those lists and drop anything that does not match. Also confirm your CDN or firewall is not blocking the agents you want: OpenAI says sites opted out of OAI-SearchBot "will not be shown in ChatGPT search answers," and Perplexity documents Cloudflare and AWS WAF rules for allowing its bots.
How do you run a prompt panel to track AI citations?
A prompt panel is a fixed list of questions you ask the same AI engines on a schedule, recording whether each answer cites your site. It lets you see what ChatGPT, Claude and Perplexity actually answer, which analytics and logs cannot show. The method below is ours; adapt the numbers to your size.
- Pick 25 to 50 prompts written the way people ask, mapped to pages you want cited. Mix definitions, comparisons and number questions.
- Freeze the wording. Changing a prompt breaks the time series.
- Use the same engines and settings each time: logged out or a clean profile, web search on, same country.
- Run each prompt 3 times. Google itself says AI Mode and AI Overviews "may use different models and techniques," and other engines vary between runs too.
- Log 4 fields per run: cited (yes or no), cited URL, position among sources, and the competitor cited instead.
- Report a citation rate per engine per month: runs citing you divided by total runs.
Keep the panel honest. Do not add prompts only after you rank for them, and keep losing prompts in the set; the losers tell you which pages need first-hand data. Our read, from the pages AI assistants already send us readers on, is that prompts are won by pages that state a dated number in their opening sentence, like the money explainers linked from our AI spending tracker.
Free or paid AEO tracking tools?
Paid AI visibility tools mostly automate step 4 above at a larger scale. That can be worth paying for. But Google's AI optimization guide tells site owners to "be wary of third-party tools that promise ranking success or claim to use 'internal' Google metrics," adding: "No third-party tool has access to our internal ranking or AI systems." A tool can tell you what an engine answered to the prompts it ran. It cannot tell you how Google decided.
That chart is why we never report one number alone. Read by itself, the 28% drop looks like lost AI visibility. Next to Search Console, where our weekday AI impressions about quadrupled from July to October, it reads as more citations that readers did not need to click. Our breakdown of Google's guide covers what to change once you can see the numbers.
What the headline misses
None of these four measurements counts the thing everyone wants: how many people read your facts inside an AI answer. Search Console counts link impressions for Google only. GA4 counts clicks. Logs count fetches, and a fetch can end in no citation. A prompt panel is a sample of perhaps 150 runs a month against millions of real conversations. Treat the stack as four partial views that agree or disagree, and be skeptical of any single "AI visibility score," including one you build yourself.
Five tracking mistakes to avoid
- Counting training crawls as visibility. GPTBot and ClaudeBot hits say nothing about answers; OpenAI and Anthropic both describe them as training crawlers.
- Blocking the agents you want. Default bot-protection rules at a CDN can stop OAI-SearchBot or PerplexityBot before robots.txt is even read. Test with each vendor's published IP ranges.
- Comparing chart totals to table totals in the Generative AI report. Google aggregates the chart by property and the page table by page.
- Treating every impression as a person. Our blog logged 301K impressions from machine-shaped queries at a 0.01% CTR in the 28 days to September 21, 2026, per our playbook's results file.
- Changing prompts mid-series. A reworded prompt is a new prompt; keep the old one and add the new one alongside.
A monthly AEO and GEO report in one page
- Google AI impressions: weekday high this month vs last, top 10 pages.
- AI-assistant sessions by source and engaged-session rate.
- User-triggered fetches (ChatGPT-User, Perplexity-User, Claude-User) by URL, IP-verified.
- Search crawler coverage: did OAI-SearchBot, PerplexityBot and Claude-SearchBot reach new pages?
- Prompt-panel citation rate per engine, plus the 5 prompts you lost and who won them.
- One line on what you changed on the site, so next month's moves have a cause to test.
The scripts we use for the Search Console side, including a human vs machine query split, are in our open-source AI SEO playbook on GitHub, with the walkthrough on our playbook page. For how these channels differ in the first place, see SEO vs AEO vs GEO.
Latest from the Pulse
Get VC data most people never see
β free to subscribe
Trace's notes on venture, AI and startups, a few times a week. Join 5,000+ subscribers. No spam.
No spam, unsubscribe anytime. Sent via Substack Β· Privacy Β· or subscribe on Substack β