# Measuring AEO: Get Started for $1 a Month

> The full content reporting stack I run for hcd.ai to measure AEO: 10 sources, ~$1/month, no third-party platform required.

- Canonical: https://hcd.ai/ai-in-practice/measuring-aeo/
- Published: 2026-04-21
- Updated: 2026-04-21
- Author: Sasha Merzliakov (https://hcd.ai/about/)
- Pillar: AI in Practice

---


<p class="direct-answer" data-direct-answer="true">AEO has created a visibility gap that traditional analytics can't see. Your content can get cited inside ChatGPT or Perplexity, shape someone's decision, and register zero clicks in Google Analytics. The reader got their answer and moved on without ever hitting your site. Enterprise platforms charge hundreds of dollars a month to track that. What follows is the ten-source stack I've created and run for this website, built almost entirely on free APIs, for about $1 a month.</p>

<nav aria-label="Article sections" style="margin: 1.5em 0; padding: 1em 1.5em;">
<p style="margin: 0 0 0.5em; font-weight: 500;">In this article</p>
<ul style="margin: 0; padding-left: 1.2em; line-height: 1.8;">
<li><a href="#ai-search-space">The AI search space</a></li>
<li><a href="#why-clicks-arent-enough">Why clicks aren't enough anymore</a></li>
<li><a href="#stack-at-a-glance">My top 10 analytics stack at a glance</a></li>
<li><a href="#source-blocks">Source-by-source reference</a></li>
<li><a href="#what-the-stack-found">Key insights so far</a></li>
<li><a href="#minimum-viable">Where to start today</a></li>
<li><a href="#faqs">Frequently Asked Questions</a></li>
</ul>
</nav>

<h2 id="ai-search-space" style="scroll-margin-top: 6rem;">The AI search space</h2>

<p>The acronyms in this space are getting crowded, and they don't mean the same thing to everyone. Worth walking through an overview before going further. <strong>Search Engine Optimisation (SEO)</strong> targets link-based ranking, the classic ten blue links. <strong>Answer Engine Optimisation (AEO)</strong> targets the engines where synthesis replaces the list and the click is optional: Perplexity, ChatGPT, Google's AI Overviews (<a href="https://www.columnfivemedia.com/aeo-vs-seo/" target="_blank" rel="noreferrer noopener">Column Five 2026</a>). <strong>Generative Engine Optimisation (GEO)</strong> is the broader umbrella for anything surfacing inside generated text. <a href="https://arxiv.org/abs/2311.09735" target="_blank" rel="noreferrer noopener">Aggarwal et al. (2023)</a> coined the term in the paper that first formalised it. <strong>Large Language Model Optimisation (LLMO)</strong> narrows to training-data presence: whether your content shaped the model before any live query ran (<a href="https://searchengineland.com/optimize-content-strategy-ai-powered-serps-llms-451776" target="_blank" rel="noreferrer noopener">Search Engine Land 2025</a>). <a href="https://www.aleydasolis.com/en/search-engine-optimization/ai-search-trends/" target="_blank" rel="noreferrer noopener">Aleyda Solís (2025)</a> has the full taxonomy if you want to go deeper.</p>

<p>Beyond those four, the space keeps splintering. <strong>AI Optimisation (AIO)</strong> is an emerging framing that treats AEO, GEO, and LLMO as one ecosystem rather than rival disciplines (<a href="https://www.atakinteractive.com/blog/seo-vs-geo-vs-aeo-vs-aio-the-complete-guide-to-optimization-in-the-ai-era" target="_blank" rel="noreferrer noopener">Atak Interactive 2026</a>). At the implementation layer you have <strong>Retrieval-Augmented Generation (RAG) optimisation</strong>, which covers tuning how content is chunked, indexed, and retrieved inside retrieval pipelines (<a href="https://ragflow.io/blog/rag-review-2025-from-rag-to-context" target="_blank" rel="noreferrer noopener">RagFlow 2025</a>). <strong>Semantic SEO</strong> prioritises meaning and entity relationships over keywords (<a href="https://backlinko.com/hub/seo/semantic-seo" target="_blank" rel="noreferrer noopener">Backlinko 2024</a>). <strong>Entity SEO</strong> uses schema and knowledge-graph signals so AI systems can disambiguate one brand, author, or concept from every other lookalike in the training data (<a href="https://ahrefs.com/blog/entity-seo/" target="_blank" rel="noreferrer noopener">Ahrefs 2024</a>). Google's old <strong>Search Generative Experience (SGE)</strong> now ships as <strong>AI Overviews</strong> (<a href="https://blog.google/products/search/generative-ai-google-search-may-2024/" target="_blank" rel="noreferrer noopener">Google 2024</a>), and <strong>Generative Search Optimisation (GSO)</strong> floats around as a synonym for both. A Search Engine Land analysis cited by <a href="https://www.emarketer.com/content/faq-on-geo-aeo--where-ai-search-seo-overlap-2026" target="_blank" rel="noreferrer noopener">eMarketer (2026)</a> found 59% of SEO influencers use GEO as their default term, though fewer than a third stay consistent across categories.</p>

<p><strong>GEO</strong> = citation visibility<br/><strong>AEO</strong> = direct-answer extraction<br/><strong>LLMO</strong> = training-data presence<br/><strong>RAG</strong> = retrieval precision</p>

<h2 id="why-clicks-arent-enough" style="scroll-margin-top: 6rem;">Why clicks aren't enough anymore</h2>

<p>Google Analytics and Google Search Console were built for a world where someone typed a query, scanned ten links, and clicked one. Traditional search still drives most of the web, and both tools do that job well: where you rank, what queries find you, how many clicks land. The problem is that world is shrinking. <a href="https://www.pewresearch.org/short-reads/2025/07/22/google-users-are-less-likely-to-click-on-links-when-an-ai-summary-appears-in-the-results/" target="_blank" rel="noreferrer noopener">Pew Research Center (2025)</a> analysed browsing data from 900 US adults and found click-through rate dropped 47% when AI Overviews appeared: 8% versus 15% without. <a href="https://ahrefs.com/blog/ai-overviews-reduce-clicks-update/" target="_blank" rel="noreferrer noopener">Ahrefs (2026)</a> puts the position-one CTR drop at 58% against pre-AI-Overviews forecasts. <a href="https://www.seerinteractive.com/insights/aio-impact-on-google-ctr-september-2025-update" target="_blank" rel="noreferrer noopener">Seer Interactive (2025)</a> measured a 61% decline in organic CTR for informational queries with AI Overviews, across 3,119 queries and 25.1 million impressions from 42 client organisations over fifteen months.</p>

<p>When your content appears in a Perplexity answer or a ChatGPT response, there's often no click attached. No session. No pageview. Your analytics register nothing, but your content shaped what the reader believed and decided. Third-party platforms exist to make that visible. Most start at hundreds of dollars a month; enterprise tiers run into the thousands. For a solo operator or small team, that's hard to justify against what is, at this stage of AEO maturity, still a leading indicator with uncertain conversion. What follows is the alternative I built: ten sources, most of them free, covering the four categories of signal you actually need.</p>

<h2 id="stack-at-a-glance" style="scroll-margin-top: 6rem;">My top 10 analytics stack at a glance</h2>

<p>Grouped into four signal categories: <strong>AI citation</strong>, <strong>search</strong>, <strong>site health</strong>, and <strong>audience context</strong>. Almost everything below is free. All of it is automatable. Wire it once and it runs. The table covers the whole stack at a glance; each source gets its own breakdown in the section below.</p>

<table aria-label="Content reporting stack overview" style="width:100%; border-collapse: collapse; margin: 1.5em 0; font-size: 0.875rem; table-layout: fixed;">
<colgroup>
<col style="width:16%;">
<col style="width:28%;">
<col style="width:28%;">
<col style="width:28%;">
</colgroup>
<thead>
<tr style="border-bottom: 2px solid var(--brand-border, #333); height: 5em;">
<th scope="col" style="text-align:left; padding: 0.5em 0.75em 0.5em 0; vertical-align: middle;">Category</th>
<th scope="col" style="text-align:left; padding: 0.5em 0.75em; vertical-align: middle;">Source</th>
<th scope="col" style="text-align:left; padding: 0.5em 0.75em; vertical-align: middle;">Question it answers</th>
<th scope="col" style="text-align:left; padding: 0.5em 0; vertical-align: middle;">What it measures</th>
</tr>
</thead>
<tbody>
<tr style="border-bottom: 1px solid var(--brand-border, #333); height: 5em;">
<td style="padding: 0.5em 0.75em 0.5em 0; vertical-align: top;">LLM visibility</td>
<td style="padding: 0.5em 0.75em; vertical-align: top;">AEO probe (4 engines)</td>
<td style="padding: 0.5em 0.75em; vertical-align: top;">Am I being cited in AI-generated answers?</td>
<td style="padding: 0.5em 0; vertical-align: top;">Citations from Perplexity, ChatGPT, Claude, Gemini</td>
</tr>
<tr style="border-bottom: 1px solid var(--brand-border, #333); height: 5em;">
<td style="padding: 0.5em 0.75em 0.5em 0; vertical-align: top;">LLM visibility</td>
<td style="padding: 0.5em 0.75em; vertical-align: top;">Server access logs (AI crawlers)</td>
<td style="padding: 0.5em 0.75em; vertical-align: top;">Are AI crawlers fetching my pages?</td>
<td style="padding: 0.5em 0; vertical-align: top;">ClaudeBot, GPTBot, PerplexityBot, GoogleOther crawl rate</td>
</tr>
<tr style="border-bottom: 1px solid var(--brand-border, #333); height: 5em;">
<td style="padding: 0.5em 0.75em 0.5em 0; vertical-align: top;">Search / Google</td>
<td style="padding: 0.5em 0.75em; vertical-align: top;">GA4 Data API</td>
<td style="padding: 0.5em 0.75em; vertical-align: top;">Are real people actually reading this?</td>
<td style="padding: 0.5em 0; vertical-align: top;">Human sessions, engagement, page views</td>
</tr>
<tr style="border-bottom: 1px solid var(--brand-border, #333); height: 5em;">
<td style="padding: 0.5em 0.75em 0.5em 0; vertical-align: top;">Search / Google</td>
<td style="padding: 0.5em 0.75em; vertical-align: top;">Google Search Console API</td>
<td style="padding: 0.5em 0.75em; vertical-align: top;">What queries surface me on Google, and where do I rank?</td>
<td style="padding: 0.5em 0; vertical-align: top;">Impressions, clicks, CTR, position, query</td>
</tr>
<tr style="border-bottom: 1px solid var(--brand-border, #333); height: 5em;">
<td style="padding: 0.5em 0.75em 0.5em 0; vertical-align: top;">Search / Google</td>
<td style="padding: 0.5em 0.75em; vertical-align: top;">Google Keyword Planner</td>
<td style="padding: 0.5em 0.75em; vertical-align: top;">Is there volume for the topics I'm covering?</td>
<td style="padding: 0.5em 0; vertical-align: top;">Keyword search volume, competition, trend</td>
</tr>
<tr style="border-bottom: 1px solid var(--brand-border, #333); height: 5em;">
<td style="padding: 0.5em 0.75em 0.5em 0; vertical-align: top;">Search / Google</td>
<td style="padding: 0.5em 0.75em; vertical-align: top;">Google Ads Search Term Insights</td>
<td style="padding: 0.5em 0.75em; vertical-align: top;">What real language are people using to find me?</td>
<td style="padding: 0.5em 0; vertical-align: top;">Real queries triggering your ads, clustered by theme</td>
</tr>
<tr style="border-bottom: 1px solid var(--brand-border, #333); height: 5em;">
<td style="padding: 0.5em 0.75em 0.5em 0; vertical-align: top;">Search / Bing</td>
<td style="padding: 0.5em 0.75em; vertical-align: top;">Bing Webmaster Tools API</td>
<td style="padding: 0.5em 0.75em; vertical-align: top;">Am I visible on Bing and Copilot?</td>
<td style="padding: 0.5em 0; vertical-align: top;">Bing impressions, clicks, queries</td>
</tr>
<tr style="border-bottom: 1px solid var(--brand-border, #333); height: 5em;">
<td style="padding: 0.5em 0.75em 0.5em 0; vertical-align: top;">Site health</td>
<td style="padding: 0.5em 0.75em; vertical-align: top;">PageSpeed Insights API</td>
<td style="padding: 0.5em 0.75em; vertical-align: top;">Is my site fast and healthy enough to be cited?</td>
<td style="padding: 0.5em 0; vertical-align: top;">Core Web Vitals, performance scores</td>
</tr>
<tr style="border-bottom: 1px solid var(--brand-border, #333); height: 5em;">
<td style="padding: 0.5em 0.75em 0.5em 0; vertical-align: top;">Context</td>
<td style="padding: 0.5em 0.75em; vertical-align: top;">Google Trends</td>
<td style="padding: 0.5em 0.75em; vertical-align: top;">Is interest in this topic rising or cooling?</td>
<td style="padding: 0.5em 0; vertical-align: top;">Topic-level search-interest baseline</td>
</tr>
<tr style="border-bottom: 1px solid var(--brand-border, #333); height: 5em;">
<td style="padding: 0.5em 0.75em 0.5em 0; vertical-align: top;">Audience</td>
<td style="padding: 0.5em 0.75em; vertical-align: top;">Returning-visitor cohort (GA4-derived)</td>
<td style="padding: 0.5em 0.75em; vertical-align: top;">Am I building an audience, not just traffic?</td>
<td style="padding: 0.5em 0; vertical-align: top;">90-day returning vs new ratio</td>
</tr>
</tbody>
</table>

<h2 id="source-blocks" style="scroll-margin-top: 6rem;">Source-by-source reference</h2>

<h3>1. AEO probe</h3>

<p>I run 40 target queries fortnightly across ChatGPT, Claude, Gemini, and Perplexity, checking whether <span class="font-medium">hcd.ai</span> appears in citations, in the body text, or not at all. Each run produces a structured record so I can track citation rate over time, not just take a point-in-time snapshot.</p>

<p>This is the source most teams don't have. LLM citations frequently don't generate clicks, so without probing the engines directly you won't know whether your content is being cited at all. <a href="https://www.aleydasolis.com/en/search-engine-optimization/ai-search-trends/" target="_blank" rel="noreferrer noopener">Aleyda Solís (2025)</a> covers the AEO measurement landscape in detail if you want the broader context.</p>

<p><strong>Signal type:</strong> Leading (citation often precedes ranking).<br/>
<strong>Cost:</strong> About $1 a month in API usage across all four engines (40 queries, fortnightly). The only source in this stack that costs anything.<br/>
<strong>Cadence:</strong> Fortnightly. Weekly is overkill. Citations don't shift that fast.</p>

<p>One thing I'd flag: a single snapshot tells you almost nothing. Citations drift depending on what the engine has indexed recently, what competing content exists, and how the query is phrased. You need a history, not a one-off check.</p>

<hr style="margin: 2em 0; border: none; border-top: 1px solid var(--brand-border, #333);">

<h3>2. Server access logs (AI crawlers)</h3>

<p>Raw HTTP logs from your server, parsed for AI crawler user agents: ClaudeBot and Claude-SearchBot (<a href="https://privacy.claude.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler" target="_blank" rel="noreferrer noopener">Anthropic</a>), GPTBot and OAI-SearchBot (<a href="https://platform.openai.com/docs/bots" target="_blank" rel="noreferrer noopener">OpenAI</a>), PerplexityBot (<a href="https://docs.perplexity.ai/docs/resources/perplexity-crawlers" target="_blank" rel="noreferrer noopener">Perplexity</a>), GoogleOther and Google-Extended (<a href="https://developers.google.com/search/docs/crawling-indexing/overview-google-crawlers" target="_blank" rel="noreferrer noopener">Google</a>).</p>

<p>This is the upstream signal for everything else. If ClaudeBot isn't crawling your pages, Claude isn't considering them for citations. Crawl rate tells you what's going to happen in the AEO probe before it happens, and it gives you a place to look when citation rates are flat, so you don't automatically assume the content isn't good enough.</p>

<p><strong>Signal type:</strong> Leading.<br/>
<strong>Cost:</strong> Free (your hosting already keeps these logs).<br/>
<strong>Cadence:</strong> Weekly grep.</p>

<p>Watch log retention. Most default server setups keep logs for 7-14 days, which isn't enough for weekly trending. Extend retention before you need it. Retroactive fixes aren't possible once logs roll off.</p>

<hr style="margin: 2em 0; border: none; border-top: 1px solid var(--brand-border, #333);">

<h3>3. GA4 Data API (bot-filtered)</h3>

<p>Human sessions, page views, engagement rate, and referral source on your own site, pulled programmatically via the GA4 Data API rather than the UI. Running it via API means it cross-references cleanly with the other sources in the stack.</p>

<p>This is the baseline for whether real people are actually reading what you publish. It's also where chatgpt.com or perplexity.ai referrals show up when a citation converts to a click, so it catches the tail of what the AEO probe measures upstream.</p>

<p><strong>Signal type:</strong> Lagging (reports on what happened).<br/>
<strong>Cost:</strong> Free.<br/>
<strong>Cadence:</strong> Weekly.</p>

<p>GA4's built-in bot filter uses the IAB's International Spiders and Bots List, which misses sophisticated headless browsers and referral spam. <a href="https://searchengineland.com/guide/spam-traffic" target="_blank" rel="noreferrer noopener">Search Engine Land (2025)</a> documents the limitations; <a href="https://www.kissmetrics.io/blog/ga4-bot-spam-traffic" target="_blank" rel="noreferrer noopener">Kissmetrics (2025)</a> covers the workarounds.</p>

<hr style="margin: 2em 0; border: none; border-top: 1px solid var(--brand-border, #333);">

<h3>4. Google Search Console API</h3>

<p>Impressions, clicks, average position, and CTR for every query Google associates with your pages. The closest thing to a direct read of how Google perceives your content.</p>

<p>It shows which queries you're ranking for before traffic shows up in GA4, and which pages get impressions but no clicks, which is the title and meta description problem. Both of those are things you can act on; raw session counts aren't.</p>

<p><strong>Signal type:</strong> Lagging, with a 2-3 day delay before data appears.<br/>
<strong>Cost:</strong> Free.<br/>
<strong>Cadence:</strong> Weekly.</p>

<p>"Average position" hides a lot. A page sitting at position 8 across 300 impressions can still produce zero clicks if the title doesn't match what the searcher actually wanted. Look at CTR by query, not just position. And remember GSC only covers Google. Bing is a separate pull.</p>

<hr style="margin: 2em 0; border: none; border-top: 1px solid var(--brand-border, #333);">

<h3>5. Google Keyword Planner</h3>

<p>Monthly search volume ranges, competition level, and trend direction for any keyword, drawn from Google Ads data. GSC shows what you already rank for; Keyword Planner shows the volume context for terms you're targeting but haven't yet ranked for. That's a different question, and it matters before you commit to a content piece.</p>

<p>Writing without knowing whether anyone searches for the core term is guesswork dressed as strategy.</p>

<p><strong>Signal type:</strong> Contextual.<br/>
<strong>Cost:</strong> Free, though <a href="https://developers.google.com/google-ads/api/docs/productionize/access-levels" target="_blank" rel="noreferrer noopener">Basic Access</a> to the Google Ads API is required for programmatic pulls. The UI works for manual lookups in the meantime.<br/>
<strong>Cadence:</strong> Monthly.</p>

<p>Volume ranges are broad at lower tiers (100-1K, 1K-10K), directional not precise. Fine for topic selection. Not for traffic forecasting.</p>

<hr style="margin: 2em 0; border: none; border-top: 1px solid var(--brand-border, #333);">

<h3>6. Google Ads Search Term Insights</h3>

<p>The exact queries that triggered your ads, clustered thematically by Google on the Insights page of your Google Ads account. Unlike Keyword Planner, this is what people actually typed, not what Google thinks matches your targeting.</p>

<p>Multi-word, conversational queries (the kind LLMs are trained on) show up here in ways they don't in GSC. For readers running paid campaigns, this is the only source that gives verbatim query clusters without sampling.</p>

<p><strong>Signal type:</strong> Ground-truth (for paid traffic).<br/>
<strong>Cost:</strong> Free within Google Ads, but requires an active paid campaign.<br/>
<strong>Cadence:</strong> Monthly.</p>

<p>Data density tracks spend. A thin campaign produces thin query data, and this source disappears entirely if you pause campaigns.</p>

<hr style="margin: 2em 0; border: none; border-top: 1px solid var(--brand-border, #333);">

<h3>7. Bing Webmaster Tools API</h3>

<p>Bing's equivalent of GSC: impressions, clicks, queries, and page performance in Bing Search.</p>

<p><a href="https://help.openai.com/en/articles/10093903-chatgpt-search-for-enterprise-and-edu" target="_blank" rel="noreferrer noopener">ChatGPT Search</a> (OpenAI's web-grounding feature for Plus, Enterprise, and Edu users) uses Bing as its backend. If you're not indexed in Bing, you're less likely to appear in ChatGPT's web-grounded responses. That alone makes Bing worth monitoring. Bing Webmaster also surfaces query data that GSC tends to suppress under "(other)".</p>

<p><strong>Signal type:</strong> Lagging.<br/>
<strong>Cost:</strong> Free.<br/>
<strong>Cadence:</strong> Weekly.</p>

<p>Bing volumes are small relative to Google. One or two clicks per week on a given query is normal at this scale. Treat it as directional signal rather than anything you'd act on in isolation.</p>

<hr style="margin: 2em 0; border: none; border-top: 1px solid var(--brand-border, #333);">

<h3>8. PageSpeed Insights API</h3>

<p>Core Web Vitals and Lighthouse performance scores for your pages, split between lab data (controlled test) and field data (real user experience collected via Chrome).</p>

<p>Google has been explicit that Core Web Vitals factor into ranking. For LLM crawlers the connection is more indirect. Faster pages are cheaper to crawl, which matters when crawl budgets are finite, but the basic principle holds. A slow site is a liability on both fronts.</p>

<p><strong>Signal type:</strong> Lagging (health, not visibility).<br/>
<strong>Cost:</strong> Free.<br/>
<strong>Cadence:</strong> Monthly.</p>

<p>A score of 98/100 in Lighthouse can coexist with a mediocre field CLS score if real users on mobile are loading heavy images. Lab scores and field scores don't always agree. Check field data first.</p>

<hr style="margin: 2em 0; border: none; border-top: 1px solid var(--brand-border, #333);">

<h3>9. Google Trends</h3>

<p>Relative search interest over time for any topic, compared against other topics or the overall index. Not absolute numbers, relative ones. That's a meaningful distinction when you're reading the output.</p>

<p>This is contextual baseline. It tells you whether your topic is trending, flat, or declining regardless of whether you rank for it. If a term you've been building content around is losing interest, that's worth knowing before you commission a follow-up piece.</p>

<p><strong>Signal type:</strong> Contextual.<br/>
<strong>Cost:</strong> Free. Google launched an official Trends API in alpha in July 2025, still limited-access (<a href="https://developers.google.com/search/blog/2025/07/trends-api" target="_blank" rel="noreferrer noopener">Google 2025</a>). The long-standing community scraper pytrends was archived in April 2025 (<a href="https://github.com/GeneralMills/pytrends" target="_blank" rel="noreferrer noopener">GeneralMills 2025</a>); the current maintained successor is <a href="https://github.com/flack0x/trendspyg" target="_blank" rel="noreferrer noopener">trendspyg</a>.<br/>
<strong>Cadence:</strong> Monthly.</p>

<p>A topic dropping from index 85 to 60 doesn't mean 25% fewer searches. It means 25% less relative to the peak. And one spiking topic can suppress the index of everything else in the same comparison set, so watch what you're comparing against.</p>

<hr style="margin: 2em 0; border: none; border-top: 1px solid var(--brand-border, #333);">

<h3>10. Returning-visitor cohort (GA4-derived)</h3>

<p>The ratio of returning visitors to new visitors over a rolling 90-day window, pulled from the GA4 Data API and tracked monthly.</p>

<p>A content programme that only attracts first-time visitors hasn't built an audience. Returning visitor rate tells you whether the stack is compounding, whether people come back or just show up once and leave.</p>

<p><strong>Signal type:</strong> Lagging.<br/>
<strong>Cost:</strong> Free.<br/>
<strong>Cadence:</strong> Monthly.</p>

<p>At low traffic volumes the numbers get noisy. I'm at that threshold now, so this metric will become more useful as the site grows. Don't read single-month swings as trends when your total returning visitor count is still in the dozens.</p>

<h2 id="what-the-stack-found" style="scroll-margin-top: 6rem;">Key insights so far</h2>

<p><strong>AEO citation before Google ranking.</strong> The week after the <a href="/agentic-ai/vux-verification-user-experience/">VUX article</a> published, the AEO probe showed Perplexity citing it for "verification user experience" queries. Google Search Console showed zero impressions for the same term. The article hadn't appeared in Google's index yet. Without the probe, I'd have concluded the piece had no traction and defaulted to waiting. The citation was real, even though GA4 had nothing to show for it.</p>

<p><strong>ClaudeBot at zero.</strong> Before I added explicit Allow directives for named AI crawlers in robots.txt, the server logs showed ClaudeBot at zero for several weeks running. After the directive went in, the crawl rate moved off zero within days. Whether Anthropic's crawler deprioritises sites without explicit permission or whether it was coincidence with the site maturing, I can't say for certain, but the directive is worth adding regardless. What I can say is that if I'd been relying on the AEO probe alone, I'd have seen flat Claude citation rates and assumed the content wasn't good enough. The crawler logs showed the problem was upstream from the content entirely.</p>

<p><strong>Ghost sessions in GA4.</strong> Over 90 days, bot filtering exposed a subset of sessions as spam-domain referrals. Not a crisis, but enough that any decisions made on raw counts were decisions made on numbers that included noise. Spam referrals tend to cluster, which distorts engagement rate for specific pages. That's the part that matters in a weekly report, because page-level engagement is what you'd use to decide whether to update or extend a piece.</p>

<h2 id="minimum-viable" style="scroll-margin-top: 6rem;">Where to start today</h2>

<p>Ten sources sound like a lot but the richness in reporting is worth it. Work through the following and you'll be up and running before you know it:</p>

<ul>
<li><strong>Step 1:</strong> GA4, Google Search Console, and Bing Webmaster Tools. All free, all well-documented, roughly half a day of setup for all three. Covers human search behaviour completely and gives you a baseline before you start measuring anything else.</li>
<li><strong>Step 2:</strong> A manual AEO probe. Take your top ten target queries into Perplexity and note whether you appear. No API needed yet, just the habit of checking once a week. You'll learn more from two months of that than from a one-off comprehensive audit.</li>
<li><strong>Step 3:</strong> A grep of your server access logs for GPTBot and ClaudeBot. One command, run weekly. If the count is zero, your robots.txt needs attention before anything else.</li>
</ul>

<p>Once those three are running consistently, add bot-filtered GA4 exclusions, explicit AI crawler Allow directives in robots.txt, and a trailing-slash canonical rewrite. That last one fixes LLM citation 404s when engines drop the trailing slash during URL normalisation. I lost early citation traffic to this before catching it.</p>

<p>The rest of the stack can follow at whatever pace makes sense.</p>

{% faqs faqs %}

<aside class="not-prose mt-16 pt-8 border-t border-brand-border">
<p class="section-label mb-4">References</p>
<div class="text-sm text-brand-text-muted space-y-2">
<p>Aggarwal, P., Murahari, V., Rajpurohit, T., Kalyan, A., Narasimhan, K. and Deshpande, A. 2023. <em>GEO: Generative Engine Optimization</em> [Online]. Available: <a href="https://arxiv.org/abs/2311.09735" target="_blank" rel="noreferrer noopener" class="text-brand-accent hover:text-brand-accent-hover transition-colors">arxiv.org</a> [Accessed 21/04/2026].</p>
<p>Ahrefs. 2024. <em>Stop overcomplicating things: entity SEO is just SEO</em> [Online]. Available: <a href="https://ahrefs.com/blog/entity-seo/" target="_blank" rel="noreferrer noopener" class="text-brand-accent hover:text-brand-accent-hover transition-colors">ahrefs.com</a> [Accessed 21/04/2026].</p>
<p>Ahrefs. 2026. <em>Update: AI Overviews Reduce Clicks by 58%</em> [Online]. Available: <a href="https://ahrefs.com/blog/ai-overviews-reduce-clicks-update/" target="_blank" rel="noreferrer noopener" class="text-brand-accent hover:text-brand-accent-hover transition-colors">ahrefs.com</a> [Accessed 21/04/2026].</p>
<p>Anthropic. 2026. <em>Does Anthropic crawl data from the web, and how can site owners block the crawler?</em> [Online]. Available: <a href="https://privacy.claude.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler" target="_blank" rel="noreferrer noopener" class="text-brand-accent hover:text-brand-accent-hover transition-colors">privacy.claude.com</a> [Accessed 21/04/2026].</p>
<p>Atak Interactive. 2026. <em>SEO vs. GEO vs. AEO vs. AIO: the complete guide to optimisation in the AI era</em> [Online]. Available: <a href="https://www.atakinteractive.com/blog/seo-vs-geo-vs-aeo-vs-aio-the-complete-guide-to-optimization-in-the-ai-era" target="_blank" rel="noreferrer noopener" class="text-brand-accent hover:text-brand-accent-hover transition-colors">atakinteractive.com</a> [Accessed 21/04/2026].</p>
<p>Backlinko. 2024. <em>Semantic SEO: what it is and why it matters</em> [Online]. Available: <a href="https://backlinko.com/hub/seo/semantic-seo" target="_blank" rel="noreferrer noopener" class="text-brand-accent hover:text-brand-accent-hover transition-colors">backlinko.com</a> [Accessed 21/04/2026].</p>
<p>Column Five. 2026. <em>AEO vs. SEO: how answer engine optimisation differs from search</em> [Online]. Available: <a href="https://www.columnfivemedia.com/aeo-vs-seo/" target="_blank" rel="noreferrer noopener" class="text-brand-accent hover:text-brand-accent-hover transition-colors">columnfivemedia.com</a> [Accessed 21/04/2026].</p>
<p>eMarketer. 2026. <em>FAQ: GEO and AEO, where AI search and SEO overlap</em> [Online]. Available: <a href="https://www.emarketer.com/content/faq-on-geo-aeo--where-ai-search-seo-overlap-2026" target="_blank" rel="noreferrer noopener" class="text-brand-accent hover:text-brand-accent-hover transition-colors">emarketer.com</a> [Accessed 21/04/2026].</p>
<p>GeneralMills. 2025. <em>pytrends</em> [Online]. GitHub (archived 17 April 2025). Available: <a href="https://github.com/GeneralMills/pytrends" target="_blank" rel="noreferrer noopener" class="text-brand-accent hover:text-brand-accent-hover transition-colors">github.com</a> [Accessed 21/04/2026].</p>
<p>Google. 2024. <em>Generative AI in Search: let Google do the searching for you</em> [Online]. Google blog. Available: <a href="https://blog.google/products/search/generative-ai-google-search-may-2024/" target="_blank" rel="noreferrer noopener" class="text-brand-accent hover:text-brand-accent-hover transition-colors">blog.google</a> [Accessed 21/04/2026].</p>
<p>Google. 2025. <em>An experimental Google Trends API is now available in alpha</em> [Online]. Google Search Central Blog. Available: <a href="https://developers.google.com/search/blog/2025/07/trends-api" target="_blank" rel="noreferrer noopener" class="text-brand-accent hover:text-brand-accent-hover transition-colors">developers.google.com</a> [Accessed 21/04/2026].</p>
<p>Google. 2026a. <em>Access levels</em> [Online]. Google Ads API Documentation. Available: <a href="https://developers.google.com/google-ads/api/docs/productionize/access-levels" target="_blank" rel="noreferrer noopener" class="text-brand-accent hover:text-brand-accent-hover transition-colors">developers.google.com</a> [Accessed 21/04/2026].</p>
<p>Google. 2026b. <em>Overview of Google crawlers and fetchers (user agents)</em> [Online]. Google Search Central Documentation. Available: <a href="https://developers.google.com/search/docs/crawling-indexing/overview-google-crawlers" target="_blank" rel="noreferrer noopener" class="text-brand-accent hover:text-brand-accent-hover transition-colors">developers.google.com</a> [Accessed 21/04/2026].</p>
<p>Kissmetrics. 2025. <em>How to identify and remove bot and spam traffic in GA4</em> [Online]. Available: <a href="https://www.kissmetrics.io/blog/ga4-bot-spam-traffic" target="_blank" rel="noreferrer noopener" class="text-brand-accent hover:text-brand-accent-hover transition-colors">kissmetrics.io</a> [Accessed 21/04/2026].</p>
<p>OpenAI. 2026. <em>Bots</em> [Online]. OpenAI Platform Documentation. Available: <a href="https://platform.openai.com/docs/bots" target="_blank" rel="noreferrer noopener" class="text-brand-accent hover:text-brand-accent-hover transition-colors">platform.openai.com</a> [Accessed 21/04/2026].</p>
<p>OpenAI. 2026. <em>ChatGPT search for enterprise and edu</em> [Online]. OpenAI Help Center. Available: <a href="https://help.openai.com/en/articles/10093903-chatgpt-search-for-enterprise-and-edu" target="_blank" rel="noreferrer noopener" class="text-brand-accent hover:text-brand-accent-hover transition-colors">help.openai.com</a> [Accessed 21/04/2026].</p>
<p>Perplexity. 2026. <em>Perplexity crawlers</em> [Online]. Perplexity Documentation. Available: <a href="https://docs.perplexity.ai/docs/resources/perplexity-crawlers" target="_blank" rel="noreferrer noopener" class="text-brand-accent hover:text-brand-accent-hover transition-colors">docs.perplexity.ai</a> [Accessed 21/04/2026].</p>
<p>Pew Research Center. 2025. <em>Google users are less likely to click on links when an AI summary appears in the results</em> [Online]. Available: <a href="https://www.pewresearch.org/short-reads/2025/07/22/google-users-are-less-likely-to-click-on-links-when-an-ai-summary-appears-in-the-results/" target="_blank" rel="noreferrer noopener" class="text-brand-accent hover:text-brand-accent-hover transition-colors">pewresearch.org</a> [Accessed 21/04/2026].</p>
<p>RagFlow. 2025. <em>RAG review 2025: from RAG to context</em> [Online]. Available: <a href="https://ragflow.io/blog/rag-review-2025-from-rag-to-context" target="_blank" rel="noreferrer noopener" class="text-brand-accent hover:text-brand-accent-hover transition-colors">ragflow.io</a> [Accessed 21/04/2026].</p>
<p>Search Engine Land. 2025. <em>Guide to spam traffic in analytics</em> [Online]. Available: <a href="https://searchengineland.com/guide/spam-traffic" target="_blank" rel="noreferrer noopener" class="text-brand-accent hover:text-brand-accent-hover transition-colors">searchengineland.com</a> [Accessed 21/04/2026].</p>
<p>Search Engine Land. 2025. <em>Optimise your content strategy for AI-powered SERPs and LLMs</em> [Online]. Available: <a href="https://searchengineland.com/optimize-content-strategy-ai-powered-serps-llms-451776" target="_blank" rel="noreferrer noopener" class="text-brand-accent hover:text-brand-accent-hover transition-colors">searchengineland.com</a> [Accessed 21/04/2026].</p>
<p>Seer Interactive. 2025. <em>AIO impact on Google CTR: September 2025 update</em> [Online]. Available: <a href="https://www.seerinteractive.com/insights/aio-impact-on-google-ctr-september-2025-update" target="_blank" rel="noreferrer noopener" class="text-brand-accent hover:text-brand-accent-hover transition-colors">seerinteractive.com</a> [Accessed 21/04/2026].</p>
<p>Solís, A. 2025. <em>AI search trends: From GEO to AEO and LLMO</em> [Online]. Available: <a href="https://www.aleydasolis.com/en/search-engine-optimization/ai-search-trends/" target="_blank" rel="noreferrer noopener" class="text-brand-accent hover:text-brand-accent-hover transition-colors">aleydasolis.com</a> [Accessed 21/04/2026].</p>
</div>
</aside>

