AI training opt-out tracker: how the top 500 websites use robots.txt

On 31 October 2026, 2 of the 227 readable robots.txt files among the Tranco top 500 had a group for the shared AI training token __usage_ai-training (twitter.com, x.com). 68 files (30 %) named at least one AI training control: the shared token, Google-Extended, GPTBot or ClaudeBot. We repeat the count every month with the same method.

By the Crawlerpeek editorial team · Run of , 19:48 to 19:57 UTC · Tranco list 746VX · first run · Method

Download CSV (one row per run)Per-domain CSV (2026-10-31)Open JSON

Latest run

31 October 2026. Shares are of the 227 readable files; 273 of the 500 domains gave no readable robots.txt.

Robots.txt files in the Tranco top 500 that use each AI training control, run of 2026-10-31
Signal in robots.txtFilesShare of readable filesWith Disallow: / in that group
__usage_ai-training group (shared token)20.9 %–
Google-Extended Google5624.7 %33
GPTBot OpenAI5725.1 %38
ClaudeBot Anthropic5624.7 %38
At least one of the four6830 %–
All three vendor tokens4318.9 %–
Content-Signal line83.5 %–
Misspelled token (matches nothing)00 %–

A file counts for a token when one of its User-agent lines names it exactly, apart from case. User-agent: * never counts: the draft says wildcard groups must not be read as matching the shared token, and a group for all bots says nothing about AI training in particular.

Who uses the shared token

Domains with a __usage_ai-training group, run of 2026-10-31
RankDomainRules in the group
16twitter.comDisallow:/
47x.comDisallow:/

x.com and twitter.com served the same file, so this is one site owner.

Run by run

Every run of the tracker, newest first
RunReadable filesShared tokenGoogle-ExtendedGPTBotClaudeBotAt least oneContent-SignalData
2026-10-31 Tranco 746VX227 of 500256575668 (30 %)8CSV

A new run is added at the start of each month. The list of top sites changes a little from month to month, so a change of one or two files can come from the list as well as from the sites.

What is being counted

__usage_ai-training is a policy token defined in the IETF Internet-Draft draft-kelley-aipref-training-preference-signal-00 (30 October 2026, an individual submission). A robots.txt group that names it states one preference against or in favour of AI training for every provider that reads it, instead of one group per vendor bot. It is not a crawl directive. Until providers read it, the vendor tokens Google-Extended (Google), GPTBot (OpenAI) and ClaudeBot (Anthropic) are how sites opt out of training, so we count those too. Background, provider dates and a parser test: __usage_ai-training in robots.txt: What to Add Now.

To add the group to your own file, use the robots.txt generator; the robots.txt validator flags misspelled variants of the token.

Method

  1. Sample: the top 500 domains of the Tranco list of the run day (list ID per run in the table and the files). Tranco ranks domains, not websites, so the sample includes CDN, API and tracking domains without a public site.
  2. One pass: one HTTPS request for /robots.txt on the domain, and one on www. plus the domain when the first answer was not HTTP 200. Redirects are followed, certificates are checked, the timeout is 10 seconds and at most 1 MB is read.
  3. Polite: at most 2 requests per second over the whole run, robots.txt files only, with a user agent that names the survey and a contact page.
  4. A file is readable when the answer is HTTP 200, not empty and not an HTML page. Everything else (errors, 403, 404, timeouts, HTML) counts as not readable and is left out of the shares.
  5. Each readable file is split into groups as in RFC 9309 (consecutive User-agent lines share the rules below them). A token counts when a User-agent line names it exactly, apart from case; the Disallow: / column shows whether that group closes the whole site.
  6. The script and its parser are open: scripts/ai-training-optout-scan.py, Python standard library only. The per-domain file of every run lets you recount each number.

Limits

  • 273 of 500 domains gave no readable file in the latest run. Many are infrastructure domains without a website; others block unknown clients, which our survey client is. The shares describe the readable files, not the top 500 as a whole.
  • A named token is not always an opt-out: a group can also allow a bot. The Disallow: / column counts only groups that close the whole site; partial rules are in the per-domain file.
  • robots.txt states a preference; it does not show whether a provider follows it, and it says nothing about meta tags, HTTP headers or contracts that also express AI preferences.
  • The top 500 are large sites. Small and medium sites may behave very differently.

Columns

The per-domain file has one row per domain and run:

Columns of the per-domain file
ColumnMeaning
scan_dateDay of the run (UTC)
rankRank in the Tranco list of that run
domainDomain as listed by Tranco
fetched_hostHost we asked: the domain, or www. plus the domain when the first answer was not HTTP 200
http_statusHTTP status of the last answer; 0 when there was no answer (timeout, DNS or TLS error)
fetch_errorError class when http_status is 0
readable1 when the answer was HTTP 200, not empty and not an HTML page
bytesSize of the answer in bytes (read up to 1 MB)
token_present1 when a User-agent line names __usage_ai-training exactly (case-insensitive)
token_rulesAllow and Disallow lines of that group; or a note when the token appears only outside a User-agent line
token_typoUser-agent values that spell the token with other punctuation (e.g. usage-ai-training) and so match nothing
content_signal1 when the file has a Content-Signal line
google_extended_named1 when a User-agent line names Google-Extended
google_extended_blocks_root1 when that group has Disallow: /
gptbot_named1 when a User-agent line names GPTBot
gptbot_blocks_root1 when that group has Disallow: /
claudebot_named1 when a User-agent line names ClaudeBot
claudebot_blocks_root1 when that group has Disallow: /

The run file (ai-training-opt-out.csv) has one row per run with the counts above: scan_date, tranco_list_id, sample, readable, token_group, token_group_pct_readable, any_ai_training_control, any_ai_training_control_pct_readable, google_extended_named, google_extended_blocks_root, gptbot_named, gptbot_blocks_root, claudebot_named, claudebot_blocks_root, all_three_named, content_signal, token_typo, token_string_outside_group, period_start, period_end, per_domain_file. Percentages are of readable files. Both files quote every field and have no comment lines.

Cite this data

Free to use under CC BY 4.0 with a link to this page. Please cite the Tranco list as well (Le Pochat et al., NDSS 2019, list ID of the run).

Citation (APA style)
Crawlerpeek. (2026). AI training opt-out tracker: robots.txt of the Tranco top 500 (Version 2026-10-31) [Data set]. https://crawlerpeek.com/data/ai-training-opt-out

License scope: our measurements and descriptions. Domain names and ranks come from Tranco; the robots.txt files belong to their sites.

Changelog

  • 2026-10-31: First measurement, the day after the IETF draft that defines the __usage_ai-training token (30 October 2026). Top 500 rows of the Tranco list 746VX, identical to that day's daily file.

Related: robots.txt of 151 big sites · block AI crawlers · AI training crawlers · bot traffic data