GPTBot Took 6.84 Gigabytes. The Bot That Could Cite Us Took 2.8 Kilobytes.

GPTBot took 6.84 gigabytes from a 28-page site. OAI-SearchBot, the crawler that feeds ChatGPT answers, took 2,790 bytes. Same site, same twelve days.

Krisada Eaton 9 min read 8 views

One of our city guide sites, the over-50 guide for Tampa, has 28 real pages. You can count them in its sitemap.

Between October 5 and October 16 that site answered 1,007,185 requests from AI crawlers and sent them 7.91 gigabytes.

GPTBot took 871,578 of those requests and 6.84 gigabytes of the bytes. OAI-SearchBot, which is the OpenAI crawler whose job is to put pages into ChatGPT search answers, made 31 requests and took 2,790 bytes.

So the crawler that could actually get us cited took about one 2.6-millionth of what the training crawler took.

That is the whole story, and the reason is boring: we published a row of filter buttons, and one crawler decided to press every combination of them.

28 Real Pages, Two Million Addresses

Take a sister site, the Jacksonville bars guide, because its numbers are small enough to hold in your head.

Its sitemap has 25 pages. Its listing page carries 85 filter links, and those links belong to six filters:

➀ 1. Sort order, 2 choices ➀ 2. Experience, 30 choices ➀ 3. Discovery, 22 choices ➀ 4. Neighborhood, 14 choices ➀ 5. Dietary, 4 choices ➀ 6. Venue type, 12 choices

Any filter can be combined with any other. Multiply the choices out and the site has roughly 2,085,525 reachable addresses.

Every one of them returns a real page with a real list on it. None of them is in the sitemap, because none of them is a page we wrote. They are views of the same 25 pages.

That gap between 25 and two million is not a bug. It is what a filter does. The question is only who walks it.

ClaudeBot on the Jax bars guide → GPTBot on the same site, same days
113 requests total → 220,075 requests total
0 filter requests → 220,049 filter requests
25 real pages available → 25 real pages available
85 filter links on the page → 85 filter links on the page

GPTBot Walked the Grid. ClaudeBot Walked Past It.

Same site. Same twelve days. Same server, same code, same 85 filter links sitting in the same place on the page.

GPTBot followed 220,049 of them. ClaudeBot followed zero.

This matters more than the size of the bill, because it kills the explanation most people reach for first. Nobody can say we built a trap, or that our filter grid is somehow malformed, or that a crawler got lost. Two crawlers read the identical page in the same week and made opposite decisions.

It is a policy difference at the vendor, not a property of our site.

And the vendors who do walk it are the big four. Over the 28 days to October 11, four crawlers took 4,055,700 of the 4,139,970 declared AI crawler requests across the whole portfolio:

➀ GPTBot ➀ meta-externalagent ➀ Amazonbot ➀ ClaudeBot

That is 97.96 percent of everything, up from 67.84 percent in the 28 days before that. The other seventeen crawler names we recognize moved from 89,017 requests to 84,270, which is slightly down.

We Wrote Down This Prediction on October 11, and It Held

Last week I published a piece called ClaudeBot Changed Its Mind About Filter URLs, and the honest version of the finding was narrower than the headline. ClaudeBot had started walking filter grids, but only on guide sites it had never requested before. The ones it already knew stayed clean.

So on October 11 we registered that as a prediction in the research ledger. Hosts ClaudeBot already knew would keep getting zero filter requests. Hosts it met for the first time would be walked on arrival.

Over the next five days the BellyUp! network rolled a sports guide out across the city network, and ClaudeBot met ten of those subdomains for the first time between October 12 and October 16.

It walked the filter grid on all ten, on the day it arrived or the day after.

Meanwhile, across the five cities named in that prediction, the six guide subdomains ClaudeBot already knew made 442 requests between them and not one carried a filter. Zero. Over seven days.

The new ones in those same five cities took 101,393 filter requests in the same week.

When ClaudeBot First Met Each New Sports Guide

Why the Portfolio AI Crawler Chart Is Not a Popularity Chart

Here is the part that should change how you read your own numbers.

Across the whole portfolio, declared AI crawler requests went from 1,125,473 in the week of September 28 to 2,885,615 in the week of October 5. Both are complete weeks. That is 2.56 times in seven days.

If you stopped there you would conclude that AI systems suddenly got much more interested in Krisada's portfolio.

They did not. In the same two complete weeks, the seven editorial and research properties went from 18,786 requests to 14,071. They went down 25 percent while the total went up 156 percent.

Both of those figures come from our rolled-up crawler table. When I checked the same week against the raw request log instead, the seven properties came to 15,807 rather than 14,071. The two tables count slightly different things and I have not yet pinned down which filter causes the 11 percent gap. The direction of the week is the same either way, and the gap is logged.

Every one of the thirty largest site-and-crawler pairs in those twelve days is a BellyUp! guide subdomain being filter-walked at between 99.5 and 100 percent query-string share. The surge is not interest. It is arithmetic, and the arithmetic belongs to a filter grid we published.

The lesson is not that the number is useless. It is that an AI crawler count with filter views in it is measuring the size of your filter, and you cannot tell by looking at the chart.

Two Papers and One Partnership Said the Page Is Not the Unit

Three things published in the last week point the same way, and they are the reason I keep separating the training crawlers from the retrieval ones.

On October 11, Yunxuan Jiang and four co-authors posted Understanding ChatGPT Citations, an observational study of four ChatGPT web settings from version 5.2 to 5.5. Two findings stand out. Google Search and the OpenAI Responses API, combined, recover only about one quarter of the URLs ChatGPT actually cites. And both of those proxies match ChatGPT better at the hostname and entity level than at the exact URL.

So if you are using Google rankings as a stand-in for AI citation, you are seeing about a quarter of the picture, and the part you do see is more about your website than your page.

On October 15, Owen Walters, Lihu Chen and Francesca Toni posted Retrieved but Not Read. They found that models often answer straight from search snippets without opening the source page, and that doing so goes with more outdated answers and more citations that do not hold up.

That is the uncomfortable one. If a model can cite you without fetching you, then your fetch log will never show the citation.

And on October 15 Cloudflare published a post with OpenAI about a pilot that began in July 2026. Cloudflare's network gives OpenAI signals about which pages are worth fetching, and on about one percent of Cloudflare's network it has already helped OpenAI discover and index hundreds of millions of new pages. OpenAI still ranks them independently.

I checked all seven of our research properties today. Every one serves straight from our own Apache with no Cloudflare in front of it. So none of this reached us, which is itself a useful thing to know: the discovery channel being built here is one we are not standing in.

Four Changes We Are Making

Four changes

  • 1. Move the filter grid off query strings. The links become fragments inside the page instead of separate addresses, and that happens in the generator rather than in robots.txt. Right now robots.txt on these guide sites says User-agent star, Allow slash, and nothing about query strings at all. We never wrote the rule, so nothing is being ignored.
  • 2. Report filter requests and clean requests as two columns, forever. On the Tampa over-50 guide, GPTBot made 871,534 filter requests and 44 clean ones. One of those two numbers tells you something about our content.
  • 3. Put bytes beside requests. 7.91 gigabytes in twelve days from one 28-page site is the number that makes this a decision instead of a curiosity.
  • 4. Keep watching the retrieval crawlers separately. On that same site OAI-SearchBot made 31 requests. Not 31 thousand. Thirty-one.

A Side Note: week_start Is Not the Start of the Week

This one is unrelated to the crawlers and I am leaving it in because it bit us twice.

Our research extract reports weekly numbers with a field called week_start. I went and read the query that builds it. The field is the earliest date that has any data inside that week, not the day the week begins.

So a week labelled October 10 is really the week beginning October 12 in calendar terms, with nothing recorded before the 10th. Divide by seven and you get a per-day rate that is wrong, in a direction that depends on which site you are looking at.

Two of last week's numbers were off for exactly that reason, and the corrections are in the ledger beside the originals. Every figure in this article is taken from whole weeks or named date ranges instead.

Measure the Filter Before You Measure the Interest

The useful move here is small and you can do it this afternoon.

Split your AI crawler number into requests with a query string and requests without one. If the first number dwarfs the second, your chart is drawing the shape of a filter and not the shape of anyone's interest in your work.

Then look at the crawlers whose stated job is answering questions rather than building training sets. On our Tampa guide that was 31 requests and 2,790 bytes against 6.84 gigabytes. Both numbers are real. Only one of them has anything to do with whether a person ever finds the site.

The filter grid is not a mistake either. Readers use it, and it works. We are moving it off query strings because a reader pressing a button and a crawler walking two million combinations should not look like the same event in a log file.

Four briefs in a row now, the most interesting thing in the data has turned out to be a measurement problem rather than a discovery problem. At some point that stops being a run of bad luck and starts being the finding.

Author

Sr. SEO Strategist & Founder

Krisada Eaton

Krisada Eaton is a 25-year SEO Specialist and founder of RealSEOLife.com. He has worked across Fortune 500 companies and independent businesses, with a current focus on AI-ready architecture, digital asset development, and Search Everywhere Optimization.

Topics
Content Lab

See Where These Ideas Get Tested

The case studies and experiments are where the ideas in these articles get tested on live sites.