Title: RowanWeb Bot Traffic – AI Crawler &amp; GEO Analytics
Author: Ryabinin Vitalii
Published: <strong>November 1, 2026</strong>
Last modified: November 1, 2026

---

Search plugins

![](https://ps.w.org/rowanweb-bot-traffic/assets/banner-772x250.png?rev=3778143)

![](https://ps.w.org/rowanweb-bot-traffic/assets/icon-256x256.png?rev=3778143)

# RowanWeb Bot Traffic – AI Crawler & GEO Analytics

 By [Ryabinin Vitalii](https://profiles.wordpress.org/ryabininvitaliy/)

[Download](https://downloads.wordpress.org/plugin/rowanweb-bot-traffic.0.1.5.zip)

 * [Details](https://wordpress.org/plugins/rowanweb-bot-traffic/#description)
 * [Reviews](https://wordpress.org/plugins/rowanweb-bot-traffic/#reviews)
 *  [Installation](https://wordpress.org/plugins/rowanweb-bot-traffic/#installation)
 * [Development](https://wordpress.org/plugins/rowanweb-bot-traffic/#developers)

 [Support](https://wordpress.org/support/plugin/rowanweb-bot-traffic/)

## Description

Referral traffic from AI assistants is hard to measure: apps and many browsers send
no referrer, so it lands in “direct”. Hand-checking AI answers is noisy too, because
the same question gets different sources on different days.

Every AI assistant still has to fetch your pages from your server. RowanWeb Bot 
Traffic records those requests and sorts them by what the bot is doing, so you can
track your visibility in AI answers (GEO) from data your site already has.

#### Bots sorted by intent

Bots are grouped by why they visit, not just by name:

 * **Citation** — an AI assistant reads the page right now to answer a person: ChatGPT-
   User, Claude-User, Perplexity-User, MistralAI-User, DuckAssistBot and others.
   This is the closest server-side signal of your site being shown to people in 
   AI answers.
 * **AI search indexing** — the page is added to an AI search index for future answers:
   OAI-SearchBot, Claude-SearchBot, PerplexityBot, YandexAdditional and others.
 * **Model training** — content collected for training: GPTBot, ClaudeBot, CCBot,
   Bytespider, meta-externalagent and others.
 * **Classic search** — Googlebot, Bingbot, YandexBot and others, for comparison.

The bundled list covers about 60 bots and was checked against the operators’ own
documentation wherever it exists. ChatGPT agent, which uses a regular browser user
agent, is recognized by its signature header.

#### What you see on the dashboard

 * Requests by intent with the change against the previous period.
 * Filters for the whole dashboard: today, 7, 14, 30, 60 or 90 days (as far as your
   retention setting allows) or your own dates, plus bots, intents and HTTP status
   codes. The CSV export follows the same filters.
 * A daily chart by intent or by bot, with your own event markers (“updated llms.
   txt”, “rewrote 40 articles”), so you can see what happened after a change.
 * The pages AI bots read, with citations, indexing and training per page. The HTML
   and `.md` versions of the same post are counted together. You can also switch
   to raw paths to see requests for `robots.txt`, `llms.txt` and feeds.
 * Requests by post type and category, and by HTTP status code.
 * The most active bots with their intent, requests for `.md` files and `llms.txt`,
   and suspicious requests per bot.
 * New bots that need a look. Unknown user agents are reviewed automatically once
   a day: uptime monitors, SEO tools, link previews, placeholder contacts and one-
   off visits are filtered out, so a new AI crawler is not lost among them. You 
   can hide a bot you are not interested in, and an admin notice tells you when 
   a new bot keeps coming back.
 * Suspicious activity: requests for `/.env`, `/.git/config`, backup files and debug
   endpoints sent under AI bot names. They are kept out of the numbers above.

#### Privacy

The plugin records only requests whose user agent looks like a bot. Visitors are
never recorded, and IP addresses are stored only for bot requests. Query strings
are dropped, so tracking parameters and tokens in URLs are not saved. Detailed data
is kept for 90 days by default; you can choose from 30 days to a year in the settings.
Everything is removed when you delete the plugin.

#### Sites behind Cloudflare or a proxy

If the site is behind Cloudflare or another proxy, set this up in **Bot Traffic  
Settings  Client IP address**. Forwarded headers are trusted only from Cloudflare
addresses, from a Cloudflare Tunnel running on the same server, or from the proxy
addresses you list, so a bot cannot fake its IP.

### Pro version

RowanWeb Bot Traffic Pro is a separate, paid version. Everything described above
works fully in this free plugin. Pro adds:

 * **Cloudflare as a data source** — counts bot visits served from the Cloudflare
   cache, which never reach PHP.
 * **Bot verification** — checks each request against the official IP lists published
   by OpenAI, Anthropic, Perplexity, Google, Apple, Microsoft and others, or by 
   reverse DNS, and keeps spoofed bots out of the numbers.
 * **Noise-aware event effect** — compares the period after an event with a baseline
   that accounts for the day of the week and day-to-day spread, and shows the change
   with a confidence interval or says “within noise”.

### External services

#### Freemius (optional opt-in, licensing and updates of the Pro version)

The plugin includes the Freemius SDK, which handles the separate Pro version’s licensing
and updates. In this free version, Freemius only shows an optional opt-in screen
after activation.

 * When: only if you choose to opt in (or activate a Pro license).
 * What is sent: your site URL, WordPress and PHP versions, plugin version, site
   language, and the admin’s name and email address, plus plugin activation, deactivation
   and uninstall events. If you skip the opt-in, nothing is sent.
 * Freemius [Terms of Service](https://freemius.com/terms/), [Privacy Policy](https://freemius.com/privacy/)
   and [details on what is collected](https://freemius.com/wordpress/usage-tracking/).

#### Cloudflare Analytics API (Pro version only, optional)

If you connect Cloudflare in the Pro version, the plugin requests bot traffic for
your zone from the Cloudflare GraphQL Analytics API (api.cloudflare.com).

 * When: once an hour by WP-Cron, only after you enter a Zone ID and an API token
   in the settings. The free version never contacts Cloudflare.
 * What is sent: your zone ID, your API token (as authorization) and the time window.
   Cloudflare returns the user agent, IP address, host, path, status and response
   size of bot requests to your own site.
 * Cloudflare [Terms of Use](https://www.cloudflare.com/website-terms/) and [Privacy Policy](https://www.cloudflare.com/privacypolicy/).

#### Official bot IP lists (Pro version only)

The free version makes no requests to these services. The Pro version verifies bots
and, for that, downloads once a week the IP lists that bot operators publish: openai.
com, claude.com (Anthropic), developers.google.com, bing.com, search.developer.apple.
com, perplexity.com, duckduckgo.com, mistral.ai and index.commoncrawl.org.

 * When: once a week by WP-Cron.
 * What is sent: a plain download request, nothing from your site.
 * Bots that are checked by reverse DNS (Yandex, Baidu, Petal and as a fallback 
   Google and Bing) are looked up through your server’s own DNS resolver.

### Third-party libraries

 * [Chart.js](https://www.chartjs.org/) 4.6.1, MIT License — the daily chart on 
   the dashboard. Bundled locally in `lib/chart.js/`, nothing is loaded from a CDN.
   Source: https://github.com/chartjs/Chart.js

### Support

Questions, bug reports or feature requests: the plugin’s support forum on WordPress.
org, or https://rowan-web.ru/en/

## Screenshots

[⌊Dashboard: requests by intent, the daily chart with event markers and the pages
AI bots read.⌉⌊Dashboard: requests by intent, the daily chart with event markers
and the pages AI bots read.⌉[

Dashboard: requests by intent, the daily chart with event markers and the pages 
AI bots read.

[⌊Bots with their intent, site sections, new bots and suspicious activity.⌉⌊Bots
with their intent, site sections, new bots and suspicious activity.⌉[

Bots with their intent, site sections, new bots and suspicious activity.

[⌊Settings: bot logging, client IP address behind Cloudflare or a proxy, and processing
status.⌉⌊Settings: bot logging, client IP address behind Cloudflare or a proxy, 
and processing status.⌉[

Settings: bot logging, client IP address behind Cloudflare or a proxy, and processing
status.

## Installation

 1. Upload the `rowanweb-bot-traffic` folder to `/wp-content/plugins/`, or install 
    the ZIP via Plugins  Add New  Upload.
 2. Activate the plugin.
 3. If the site is behind Cloudflare or another proxy, open **Bot Traffic  Settings**
    and choose the matching option under Client IP address.
 4. Open **Bot Traffic  Dashboard**. Bot requests are processed every hour, so the 
    first numbers appear within an hour of the first bot visit.

## FAQ

### Why are the numbers lower than in my Cloudflare dashboard?

The free plugin sees requests that reach WordPress. Pages served from a page cache
plugin or from a CDN cache never reach PHP, so those bot visits are not counted.
The dashboard warns you when a page cache is active. The Pro version can add Cloudflare
as a second data source to cover cached traffic.

### Does the plugin slow down my site?

For each request the plugin only checks the user agent. A bot request adds one small
database insert at the end of the request. All counting runs in the background once
an hour.

### Does the plugin block bots or change robots.txt?

No. It only records and reports. To control which bots may crawl the site, use robots.
txt or your firewall.

### Why does a bot show “not checked” in the Authenticity column?

Anyone can send a request with the user agent of a well-known bot. The free version
shows what the bots claim to be. The Pro version checks their IP addresses against
the official lists and flags spoofed requests.

### What does “Days in UTC” mean?

Days on the dashboard start at midnight UTC, the same as Cloudflare and most bot
operators, so the numbers can be compared with other tools.

### Does the plugin send my data anywhere?

No. Bot data stays in your database. The only external service is the optional Freemius
opt-in described below.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“RowanWeb Bot Traffic – AI Crawler & GEO Analytics” is open source software. The
following people have contributed to this plugin.

Contributors

 *   [ Ryabinin Vitalii ](https://profiles.wordpress.org/ryabininvitaliy/)

[Translate “RowanWeb Bot Traffic – AI Crawler & GEO Analytics” into your language.](https://translate.wordpress.org/projects/wp-plugins/rowanweb-bot-traffic)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/rowanweb-bot-traffic/),
check out the [SVN repository](https://plugins.svn.wordpress.org/rowanweb-bot-traffic/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/rowanweb-bot-traffic/)
by [RSS](https://plugins.trac.wordpress.org/log/rowanweb-bot-traffic/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 0.1.5

 * How long detailed data is kept is now a setting: 30, 60, 90, 180 or 365 days (
   90 by default). The dashboard offers the periods that fit.
 * All database queries are built with prepared statements.

#### 0.1.4

 * Chart.js updated to 4.6.1.
 * The free version shows no authenticity column; .md columns are hidden when a 
   period has no requests to .md or llms.txt.
 * CSV export: intents are written as on the dashboard (citation, ai_indexing, training,
   classic_search); response size is empty for the PHP logger, which cannot measure
   it.
 * Bravebot added to the bot list.
 * Pro: Claude-User requests from outside Anthropic’s IP list are no longer marked
   as spoofed: Claude Code and Claude Desktop fetch pages from the user’s own computer.

#### 0.1.3

 * Pro: Cloudflare as a data source. It also sees pages served from the Cloudflare
   cache and from page cache plugins. Bots verified by Cloudflare count as verified.
 * A data source that fails (network, token) no longer overwrites the day with zeros;
   the error is shown in the settings.
 * The dashboard shows one data source at a time, with a switch when there are several.

#### 0.1.2

 * Pro: fixed bot verification for requests recorded by the PHP logger (the IP was
   not read, so they stayed “not checked”).
 * Pro: event effect with a day-of-week adjusted baseline and a 95% confidence interval,
   or “within noise”.

#### 0.1.1

 * Cloudflare mode now also works with Cloudflare Tunnel, where requests reach the
   site from the local cloudflared process.
 * Pro: bot verification by the operators’ official IP lists and reverse DNS. Spoofed
   bots are kept out of the numbers.

#### 0.1.0

 * First release: PHP logger for bot requests, about 60 bots sorted by intent, hourly
   processing, automatic review of unknown bots, suspicious activity filter, dashboard
   with filters and event markers, CSV export, trusted proxy settings.

## Meta

 *  Version **0.1.5**
 *  Last updated **3 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.4 or higher **
 *  Tested up to **7.1.4**
 *  PHP version ** 8.0 or higher **
 * Tags
 * [AI Crawlers](https://wordpress.org/plugins/tags/ai-crawlers/)[analytics](https://wordpress.org/plugins/tags/analytics/)
   [bot traffic](https://wordpress.org/plugins/tags/bot-traffic/)[geo](https://wordpress.org/plugins/tags/geo/)
   [LLM](https://wordpress.org/plugins/tags/llm/)
 *  [Advanced View](https://wordpress.org/plugins/rowanweb-bot-traffic/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/rowanweb-bot-traffic/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/rowanweb-bot-traffic/reviews/)

## Contributors

 *   [ Ryabinin Vitalii ](https://profiles.wordpress.org/ryabininvitaliy/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/rowanweb-bot-traffic/)