cd /news/ai-policy/the-robots-txt-user-agent-lines-that… · home topics ai-policy article
[ARTICLE · art-122859] src=ai-visibility.lastminutedealshq.com ↗ pub= topic=ai-policy verified=true sentiment=· neutral

The robots.txt user-agent lines that do not name what they look like

A scan of robots.txt files across the Tranco top 5,000 sites found that 582 of 2,725 sites (21.4%) contain at least one User-agent value that is not a valid product token under RFC 9309, causing crawler names like AI2Bot to be misread as 'AI' by Google's reference parser. The ai.robots.txt project's list of 175 AI crawler entries includes 21 invalid tokens, meaning lines targeting those crawlers may not work as intended.

read5 min views2 publishedSep 8, 2026

582 of the 2,725 sites with User-agent lines carry at least one value that is not a valid product token, so it does not name the crawler the author meant. AI2Bot is read as AI. Measured across the top 5,000 sites.

A robots.txt User-agent value is a product token, and RFC 9309 defines the characters it may contain as letters, - and _. There are no digits in that grammar and no spaces. Google's reference parser implements it the same way: ExtractUserAgent reads characters while they are in [a-zA-Z_-] and stops at the first one that is not, then compares what it got against the crawler's own name exactly, ignoring case.

So User-agent: AI2Bot is read as AI. The digit ends the token. The line still parses, it just names a crawler called AI rather than the one the author had in mind. This is a separate scan from the crawler census on the data page, so its totals differ slightly: 2,725 sites here published a robots.txt containing at least one User-agent line, and 582 of those (21.4%) carry at least one value that is not a valid token. There were 4,781 such values in total, 1,196 of them distinct.

What that means in practice splits three ways. 4,022 values on 559 sites become a token that names nothing else in the file, so the rule sits there applying to a crawler that does not exist. 568 values on 141 sites truncate into a token that IS declared elsewhere in the same file, which quietly merges two rule sets. 182 values on 120 sites reduce to nothing at all.

One honest limit on all of this. The grammar above is what the standard says and what Google's parser does. Whether the crawler named AI2Bot honours the line anyway depends on that crawler's own parser, which I cannot observe from the outside. What is certain is that anything built on the reference implementation does not read it as AI2Bot. Treat these lines as unreliable rather than as proven dead.

The twenty most common ones #

Written in robots.txt Actually reads as Sites
AI2Bot AI 137
MJ12bot MJ 131
img2dataset img 110
Kangaroo Bot Kangaroo 98
Ai2Bot-Dolma Ai 95
archive.org_bot archive 69
Offline Explorer Offline 64
Datenbank Crawler Datenbank 55
netEstate Imprint Crawler netEstate 55
Sidetrade indexer bot Sidetrade 54
| `008` | `(nothing)` | 46 | 
| `360Spider` | `(nothing)` | 44 | 

| Crawl4AI | Crawl | 43 | | panscient.com | panscient | 43 | | peer39_crawler | peer | 42 | | iaskspider/2.0 | iaskspider | 42 | | Echobot Bot | Echobot | 42 | | Sogou web spider | Sogou | 38 | | Channel3Bot | Channel | 38 | | sitecheck.internetseer.com | sitecheck | 38 |

Counted across the Tranco top 5,000 on 2026-09-07. Each "reads as" is recomputed with the same parser the checker runs, not copied from the scan.

The same check on a list a lot of sites paste in #

The ai.robots.txt project maintains a list of AI crawlers and publishes a generated robots.txt from it. Plenty of sites use that file as it comes, which makes it worth running the grammar over. Of its 175 entries, 21 are not valid product tokens, so under the reference parser those lines do not name the crawler the list is aiming at.

Entry in the list Reads as
AI2Bot AI
AI2Bot-DeepResearchEval AI
Ai2Bot-Dolma Ai
bigsur.ai bigsur
Brightbot 1.0 Brightbot
Channel3Bot Channel
ChatGPT Agent ChatGPT
Crawl4AI Crawl
Datenbank Crawler Datenbank
Echobot Bot Echobot
iaskspider/2.0 iaskspider
img2dataset img
Kangaroo Bot Kangaroo
Linguee Bot Linguee
MistralAI-User/1.0 MistralAI-User
netEstate Imprint Crawler netEstate
panscient.com panscient
Poseidon Research Crawler Poseidon
quillbot.com quillbot
Sidetrade indexer bot Sidetrade
Terra Cotta Terra

4 pairs also collapse into the same token, so two entries become one group:

  • AI2Bot andAI2Bot-DeepResearchEval both reduce toAI

  • Brightbot andBrightbot 1.0 both reduce toBrightbot

  • iaskspider andiaskspider/2.0 both reduce toiaskspider

  • MistralAI-User andMistralAI-User/1.0 both reduce toMistralAI-User Three of those pairs are one name listed twice, once bare and once with a version suffix, which is harmless. AI2Bot and AI2Bot-DeepResearchEval are different crawlers that both reduce to AI, which is not.

This is not carelessness by that project. The list records the names crawlers publish for themselves, and several of those names contain digits, spaces or dots that the RFC 9309 grammar has no room for. The gap is between the names vendors choose and what the standard can express. The same caveat as above applies, so the entries are worth keeping: a crawler matching on the full string will still honour them.

What to do about it #

Do not delete these lines. A line that the reference parser reads as AI is still honoured by any crawler that matches on the full string, and removing it can only make things worse. The useful move is to stop relying on it. If there is a crawler you genuinely need to keep out, express it in a way the grammar can carry: block broadly with a catch-all Disallow and allow back the crawlers you do want by their exact token.

Version suffixes are the safe case. User-agent: CCBot/2.0 reduces to CCBot, which is the crawler the author meant, so it works. The same is true of ChatGPT-User/2.0. Writing the bare token is clearer, but nothing breaks.

You can check any site with [the checker](/), which uses this same parser, or from the command line with [aicheck](https://github.com/SamHartleyFixes/aicheck).

Related: the [5,000-site crawler census](/data), [every site that blocks an AI search crawler](/sites-blocking-ai-search), and [what blocking GPTBot actually controls](/guides/should-i-block-gptbot).
── more in #ai-policy 4 stories · sorted by recency
── more on @google 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/the-robots-txt-user-…] indexed:0 read:5min 2026-09-08 ·