---
title: "How to Measure Whether AI Search Sends You Anything"
url: https://adityaarsharma.com/measure-ai-search-traffic-wordpress/
date: 2026-09-19
modified: 2026-09-03
lang: en
author: "Aditya Sharma"
description: "Three partial signals and no complete one. Server logs, the new Search Console generative AI report, Bing AI Performance, and each one's limits."
categories:
  - "AI"
  - "SEO"
  - "WordPress"
image: https://adityaarsharma.com/wp-content/uploads/2026/09/cc4d718a-2fda-42c8-a375-104d7d1594c1_2912x1632-1024x574.png
word_count: 1985
---

# How to Measure Whether AI Search Sends You Anything

On 31 August 2026 Google finished rolling the Generative AI performance report out to every site in Search Console. Two days later I read the documentation for it, and the thing worth knowing is what the report does not contain.

Four dimensions: pages, countries, dates, devices. No query dimension. And the entire page is written in terms of impressions.

![Google](https://adityaarsharma.com/wp-content/uploads/2026/09/cc4d718a-2fda-42c8-a375-104d7d1594c1_2912x1632-scaled.png)
So the state of measurement, on 2 September 2026, is three partial signals and no complete one. Google will tell you how often you appeared and on which URLs, without telling you what was asked.

Bing will tell you what was asked, as a sample. Your own server tells you the truth about crawling and nothing about answers. Anyone selling you a single number for "AI visibility" is selling you a model, not a measurement.

Here is the method, in the order I would run it, with what each step can and cannot establish.

On this page

- The seven degrees- The formula the tradition actually uses- The case that breaks the sign label- Three mirror pairs and one graha on its own- Two details worth knowing- What exaltation does not mean- Rāhu and Ketu, where the sources part company- Reading it in a chart

## Step 1: your access log, because it is the only source you control

### Why the log goes first

Start here even though it measures crawling and not traffic, because it is the only dataset in this post that nobody else curates for you.

Run this against your combined-format access log. It is case-insensitive, which matters because Bing's real token is lowercase:

`awk '
BEGIN{ n=split("gptbot oai-searchbot oai-adsbot chatgpt-user claudebot claude-user \
claude-searchbot ccbot perplexitybot perplexity-user bingbot applebot \
google-cloudvertexbot meta-externalagent bytespider", B, " ") }
{ l=tolower($0); for(i=1;i<=n;i++) if(index(l,B[i])) { c[B[i]]++; break } }
END{ for(k in c) printf "%-22s %d\n", k, c[k] }' /var/log/nginx/access.log | sort -k2 -nr`
Three things to hold in mind before you read the output.

- **Google-Extended will never appear.** Google's crawler documentation states it has no separate HTTP request user agent string; the token exists only as a robots.txt control. If a tool shows you Google-Extended hits, it is guessing.- **These strings are forgeable.** OpenAI, Perplexity and Common Crawl publish IP ranges as JSON, and Google and Bing support reverse DNS verification. A user agent match is a claim.- **Crawling is not citation.** A high GPTBot count tells you your content was collected for training. It says nothing about whether anyone was ever shown a link to you.

### Crawl coverage is the number nothing else gives you

The number this gives you that nothing else does is your *crawl coverage*: which URLs the AI crawlers have actually fetched, and when.

If a page has never been fetched by OAI-SearchBot, it cannot appear in ChatGPT search answers, and you have found the problem without any third-party tool.

## Step 2: referrers, measured rather than assumed

Same log, different field. Pull referrer hostnames and see which AI products are actually sending people:

`awk -F'"' '{split($4,u,"/"); h=u[3]; if(h!="" && h!="-") c[h]++}
END{for(k in c) printf "%-30s %d\n", k, c[k]}' /var/log/nginx/access.log \
| sort -k2 -nr | head -40`

### The hostnames to look for

They are the product hostnames: `chatgpt.com`, `perplexity.ai`, `claude.ai`, `copilot.microsoft.com`, `gemini.google.com`.

Also check whether inbound URLs carry a `utm_source` parameter that names an AI product, because some of these products append one to outbound links and some do not, and it changes without announcement:

`grep -oE 'utm_source=[a-zA-Z0-9._-]+' /var/log/nginx/access.log | sort | uniq -c | sort -nr`
Run it and record what you find rather than what you expected.

I am deliberately not telling you which products tag their outbound links, because that behaviour is undocumented by every vendor involved and I would be asking you to trust a claim with no source behind it.

Your log settles it for your site in about four seconds.

### The failure mode: calling direct traffic AI traffic

It is the well-worn one: a rise in direct or unattributed traffic gets narrated as AI traffic.

Direct rises for many reasons, including referrer stripping by privacy settings, app-to-browser handoffs and mistagged campaigns. If you cannot see the hostname, you do not have the evidence.

![The Search Console help page for the Generative AI performance report, noting the 31 August 2026 worldwide rollout.](https://adityaarsharma.com/wp-content/uploads/2026/09/a218416f-9a73-49c8-84d4-649ad3531217_2800x2000-scaled.png)support.google.com/webmasters/answer/16984139, screenshot taken 3 September 2026. The rollout note reads "As of August 31, 2026".

## Step 3: Search Console, and its two AI-specific screens

Two things exist that did not a year ago, and both rolled out to all sites worldwide on 31 August 2026.

**The [Generative AI performance report](https://support.google.com/webmasters/answer/16984139)**, at `search.google.com/search-console/performance/search-analytics/ai`. What the documentation describes: impressions in Google's generative AI features on Search, grouped by pages, countries, dates or devices.

Pages are attributed to the canonical URL after redirects, dates are Pacific Time, the newest data is preliminary and shown as a dotted line, and the usual Search performance limits apply, including the 1,000 row cap.

There is an export button. The documentation does not describe an API for it.

**The [Search generative AI control](https://support.google.com/webmasters/answer/16908024)**, under Settings, at `search.google.com/search-console/settings/search-gen-ai`. Default is include.

Excluding stops your links and content appearing in Google's generative AI features and forfeits impressions and traffic from them. It takes one to two days to apply.

Google states that this control is not a ranking or inclusion signal elsewhere in Search, and that it does not affect AI training, for which the separate Google-Extended token exists.

### Check the control before you read the report

Check the control before you interpret an empty report. Google's own troubleshooting says an absent report can mean you excluded yourself.

Also check inheritance: a property inherits its control from its closest parent property that stopped inheriting, so a setting on `example.com` silently governs `https://example.com/blog` unless someone overrode it.

Two limits to write down before you build a report on this. There is no query dimension, so you cannot learn what prompt surfaced you.

And the report covers Google's generative AI features on Search, which means AI Overviews and AI Mode, not ChatGPT, not Claude, not Perplexity.

Newsletter

## Automating the boring half

I publish one researched piece a week on putting agents to work on real sites. What I built, what broke, and the commands to check it yourself.

Email address

Get it weekly

Free. One email a week. Unsubscribe in one click, and I do not send anything else.

## Step 4: Bing Webmaster Tools, which has the data Google withholds

Bing put [AI Performance](https://blogs.bing.com/webmaster/February-2026/Introducing-AI-Performance-in-Bing-Webmaster-Tools-Public-Preview) into public preview in February 2026.

Per that announcement it reports total citations, average cited pages per day, page-level citation counts, a visibility trend over time, and grounding queries, which are the phrases the AI used when retrieving the content it cited.

Grounding queries are the interesting part, because that is exactly what Google's report does not give you.

Read Bing's caveat with it: the data shown is described as a sample of overall citation activity, and Bing says it will keep refining the metric. Treat it as directional.

### The ChatGPT-runs-on-Bing correction

Now the correction, because this is where most measurement plans go wrong. It is commonly said that ChatGPT search runs on Bing, and therefore that Bing Webmaster Tools covers it.

Two pieces of primary evidence say do not assume that. Bing's own announcement defines the coverage as Microsoft Copilot, AI-generated summaries in Bing, and select partner integrations. It does not name ChatGPT.

And OpenAI runs its own search crawler, OAI-SearchBot, with its own published IP ranges at `openai.com/searchbot.json`, and states that sites opted out of OAI-SearchBot will not be shown in ChatGPT search answers.

A vendor does not operate and document its own search crawler for an index it does not have.

Whatever the relationship is today, you cannot verify ChatGPT coverage from a Bing dashboard, so do not report it as though you can.

There is no equivalent publisher dashboard from OpenAI, Anthropic or Perplexity as of 2 September 2026. For those three, step 1 and step 2 are the whole of your evidence.

![Google Search Central documentation, AI features and your website, showing the AI Overviews and AI Mode sections.](https://adityaarsharma.com/wp-content/uploads/2026/09/74406ea5-d65e-4079-8156-5dcc02b8ed96_2800x2000-scaled.png)developers.google.com/search/docs/appearance/ai-features, screenshot taken 3 September 2026.

## Step 5: calibrate against the base rate before you draw a conclusion

The published research on citation distribution is the part that decides whether your numbers are bad or normal.

- Evertune ran 200 million prompts over five months and found that even the most-cited domain rarely exceeds 5 percent of citations, and that only around 11 percent of sites are cited by both ChatGPT and Perplexity. Citation is thin and it does not transfer between engines. A site with a real presence in one engine and none in another is the common case, not a bug.- Profound tracked 1.4 million citations across the major AI engines and found LinkedIn moved from the 11th most-cited domain in November 2025 to 5th by February 2026, with roughly 78 percent of those citations pointing at Pulse articles and about 75 percent at individual profiles. The shape of that is worth more than the rank: what moved was a platform with a lot of individually-authored pages.

### The demand side

And the demand side, which is the number that reframes the whole exercise. Google Ads keyword data pulled via DataForSEO for the US on 20 August 2026:

`mcp server` gets 60,500 monthly searches at low competition and `claude code` gets 550,000, while three of the five head terms for AI SEO itself fell 55 to 70 percent year over year.

People are searching for how to build with these systems far more than for how to be found by them.

![Bar chart: 550,000 monthly US searches for claude code against 60,500 for mcp server.](https://adityaarsharma.com/wp-content/uploads/2026/09/c56bca0c-91b7-4980-8717-485ad778fc6c_2912x1632-scaled.png)Built from the DataForSEO figures in this post, pulled for the US on 20 August 2026.

## What a defensible baseline looks like

One row per source, dated, with the limitation attached. This is the whole deliverable:

- **AI crawler hits, last 30 days, by bot.** Source: access log. Limitation: user agents are forgeable and Google-Extended is invisible.- **URLs fetched by OAI-SearchBot and Claude-SearchBot.** Source: access log. This is your eligibility set for those two products.- **Sessions by AI product hostname.** Source: access log referrers or your analytics. Limitation: referrers get stripped.- **Generative AI impressions and top pages.** Source: Search Console. Limitation: Google Search features only, no queries, 1,000 rows.- **Citations and grounding queries.** Source: Bing Webmaster Tools. Limitation: preview, sampled, Copilot and Bing surfaces.- **Everything else.** Unmeasured. Write the word down rather than estimating it.

### One reading is noise. The delta is the decision.

Take the snapshot, then take another in 30 days. A single reading of any of these is noise; the delta is the only thing that supports a decision.

The same discipline applies as with any traffic question, which is that you compare against a baseline you recorded rather than against your memory of last quarter, and you check the [redirect behaviour of the URLs involved](https://adityaarsharma.com/how-to-fix-301-errors-in-wordpress/) before concluding that a page lost visibility.

If you want to automate the URL set that feeds all of this, [pulling your sitemap into a sheet](https://adityaarsharma.com/how-to-extract-links-from-websites-using-sitemap-in-sheets/) is enough to join against your log output and your Search Console export.

And if you are already running [Claude Code against your WordPress install](https://adityaarsharma.com/running-claude-code-against-wordpress-the-complete-setup/), the log parse and the Search Console export are a scheduled job rather than a monthly chore.

### One caution on the log data

Bot traffic and human traffic in the same file get conflated constantly, and a jump in requests that reads as a traffic win is usually a crawler discovering a parameterised URL space.

The most useful sanity check I know is to segment by user agent first and question anything that only shows up for one agent, which is the same habit that surfaced [a site serving different content to Googlebot than to browsers](https://adityaarsharma.com/the-scanner-said-clean-the-site-was-serving-spam-to-googlebot/).

Run the two awk commands against last month's log tonight and write the six rows above into a dated note.

Then the question you can actually answer in October is whether the number moved, which is more than most people measuring AI visibility today can say.

## Watch this part instead

If you want referrer data that is yours rather than sampled, this is the setup I use.

https://www.youtube.com/watch?v=514j1YCF-Z8How to Self-Host Plausible on VPS with RunCloud

## More on ai search and wordpress

- [llms.txt for WordPress: What the Spec Actually Says and Whether Anything Reads It](https://adityaarsharma.com/llms-txt-wordpress-spec-and-adoption/)- [robots.txt for AI Crawlers: The Actual User-Agent Strings, and What Each One Honours](https://adityaarsharma.com/robots-txt-ai-crawlers-user-agents/)- [Structured Data and AI Answers: What Schema Is Actually Doing for You Now](https://adityaarsharma.com/structured-data-ai-answers-what-schema-does/)

## Resources

- [Generative AI performance report (Search)](https://support.google.com/webmasters/answer/16984139) and the [Search generative AI control](https://support.google.com/webmasters/answer/16908024), Google Search Console help.- [AI Performance in Bing Webmaster Tools](https://blogs.bing.com/webmaster/February-2026/Introducing-AI-Performance-in-Bing-Webmaster-Tools-Public-Preview), February 2026.- [How clicks, impressions and position are counted in Search Console](https://support.google.com/webmasters/answer/7042828), including the AI Overviews and AI Mode rules.- [OpenAI crawler documentation](https://platform.openai.com/docs/bots) and [searchbot.json](https://openai.com/searchbot.json).- [Google common crawlers and fetchers](https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers), for the Google-Extended entry.