Build1 publisher2 min readPublished
Meta's training crawler outpaced its citation crawler 39 to 1 on a single WordPress site
One operator's 30-day log counts 6,027 requests from Meta's training collector, 155 from the crawler documented for Meta AI search quality, and zero from the fetcher that fires when a person asks a question.
The Engineer · Build desk
What happened
- An operator's crawler log on one small WordPress site recorded 11,818 AI crawler requests over the thirty days ending September 11.
- Meta's training collector meta-externalagent made 6,027 of those requests, while meta-webindexer, the crawler Meta documents for search result quality, made 155.
- meta-externalfetcher, the crawler that runs when a Meta AI user asks for a specific link, did not appear once in the window.
- The equivalent user-initiated fetchers from OpenAI, Perplexity, Anthropic, DuckDuckGo and Mistral all showed up on the same site.
Compiled by The EngineerSomething wrong?How this is made
Why it matters
- decision A site owner deciding whether to keep serving meta-externalagent has to argue it on what a training corpus is worth to them, because the Meta crawler documented to repay it in citations ran 155 times.
- constraint A rule that keeps the indexer and refuses the collector can only name a user-agent string, and Meta does not publish IP ranges a site owner could check that string against.
- cost The log counts requests, not bytes, so a publisher who wants to argue this crawl is too expensive to permit has to pay for bandwidth instrumentation of their own first.
- contradiction The strong version of the decoupling claim needs referral data, and the only referral figure in the record is two human arrivals in an earlier month, too small to separate Meta's zero from anyone else's.
The three user agents do different jobs, and Meta documents which is which. Its description of meta-externalagent says it "crawls the web for use cases such as training foundation AI models or improving products by indexing content directly" [5]. meta-webindexer "navigates the web to improve Meta AI search result quality for users" [6]. meta-externalfetcher pulls individual links at a user's request, which the operator takes as evidence that somebody asked something a few seconds earlier [7].
The counts add up exactly. 6,027 from the training collector, 155 from the indexer, zero from the fetcher: 6,182, all of Meta's traffic on the site [25]. That is 38.9 training requests per indexer request [24], or 2.6% in the other direction [28], which the operator rounds to about two percent [13]. The window logged 11,818 AI crawler requests in total, 8,979 of them on pages with writing on them [1][2], so Meta's 6,182 is 52.3% of the traffic [23] and beats every other vendor combined by 546 requests [26].
Whether that split shows up in someone else's logs depends on who controls each side of it. Meta sets the training collector's schedule. Readers set the fetcher's, because it only runs when a user asks Meta AI for a specific link [7]. A small WordPress site can pass a month without that happening, and the operator says as much: "One site is not a census" [21]. On the same logs, Perplexity's traffic is 93% user-initiated and OpenAI's is 21% [14][15].
The identity problem sits under all of it. Meta publishes no IP ranges and no reverse-DNS scheme for these crawlers, so the operator has no way to confirm that any of the 6,182 requests came from Meta, and the dashboard shows a dash where other vendors get a verification percentage [17][16]. The operator does not think the requests are forged, and wrote: "I am reporting a number I am not able to check, and that should be said out loud rather than buried" [18].
The referral side of the record is thinner than the crawl side. It comes from an earlier month, when the site was read about ten thousand times and two humans arrived, one from ChatGPT and one from DuckDuckGo [19]. The operator argues that the largest contributor to the read count was the vendor structurally least likely to appear in the arrival count [20].
He also sets aside whether training collection is theft, calling that a separate argument [30], and limits the finding to the ratio his instrument shows [22].
What to watch
- Whether Meta publishes IP ranges or a reverse-DNS scheme for the three crawlers, which would make the 6,182 requests checkable.
- Whether meta-externalfetcher stays at zero on the same site in the next thirty-day window.
- Whether a larger publisher running the same instrument reports the same split between the two Meta collectors.