MXDATA / Data and method
Data and method
Read the collection method, definitions and limits behind each count. MXDATA records published signals; it does not decide their legal meaning.
7,886 reachable sites · 5,767 valid robots.txt files · 2026-10-16
Signals we collect
| Signal | Location | Recorded fields |
|---|---|---|
| robots.txt AI rules (RFC 9309) | /robots.txt | For each of 36 named AI crawlers: full block, partial block, allowed or not named. The wildcard * group is recorded separately. |
| Content Signals | Content-Signal: lines in robots.txt | Declared values for search, ai-input and ai-train |
| RSL (Really Simple Licensing) | License: in robots.txt, or <link type="application/rsl+xml"> | License URL, permitted and prohibited uses, and up to 2 license files hosted on the same site |
| TDMRep | /.well-known/tdmrep.json, tdm-reservation header or meta | Presence of a reservation signal and the file when available |
| ai.txt | /ai.txt | Presence of the file and its contents |
| noai / noimageai | <meta name="robots">, X-Robots-Tag | Presence of either directive |
Named AI crawlers
2026-10-16 · 5,767 valid robots.txt files
| CCBot | Common Crawl | training | 723 | 98 | 890 |
| GPTBot | OpenAI | training | 706 | 203 | 1,068 |
| Bytespider | ByteDance | training | 691 | 61 | 781 |
| ClaudeBot | Anthropic | training | 634 | 149 | 918 |
| Google-Extended | training | 529 | 149 | 823 | |
| meta-externalagent | Meta | training | 507 | 76 | 627 |
| Applebot-Extended | Apple | training | 498 | 78 | 624 |
| cohere-ai | Cohere | mixed | 481 | 49 | 554 |
| anthropic-ai | Anthropic | legacy | 480 | 71 | 603 |
| Amazonbot | Amazon | mixed | 477 | 83 | 610 |
| Diffbot | Diffbot | mixed | 471 | 18 | 502 |
| omgili | Webz.io | mixed | 463 | 13 | 479 |
| PerplexityBot | Perplexity | search | 454 | 172 | 783 |
| Claude-Web | Anthropic | legacy | 388 | 47 | 480 |
| ChatGPT-User | OpenAI | user triggered | 377 | 197 | 727 |
| YouBot | You.com | search | 376 | 37 | 435 |
| FacebookBot | Meta | legacy | 370 | 42 | 443 |
| Timpibot | Timpi | mixed | 327 | 8 | 337 |
| ImagesiftBot | ImageSift | mixed | 308 | 10 | 321 |
| Webzio-Extended | Webz.io | training | 271 | 8 | 280 |
| OAI-SearchBot | OpenAI | search | 262 | 200 | 618 |
| AI2Bot | Ai2 | training | 257 | 20 | 280 |
| DuckAssistBot | DuckDuckGo | user triggered | 254 | 47 | 318 |
| Meta-ExternalFetcher | Meta | user triggered | 250 | 28 | 294 |
| Perplexity-User | Perplexity | user triggered | 245 | 83 | 381 |
| Claude-User | Anthropic | user triggered | 234 | 87 | 384 |
| cohere-training-data-crawler | Cohere | training | 229 | 16 | 248 |
| Claude-SearchBot | Anthropic | search | 226 | 98 | 384 |
| Google-CloudVertexBot | mixed | 213 | 18 | 240 | |
| MistralAI-User | Mistral AI | user triggered | 196 | 28 | 242 |
| PanguBot | Huawei | training | 195 | 8 | 203 |
| Kangaroo Bot | Kangaroo LLM | training | 169 | 5 | 175 |
| Ai2Bot-Dolma | Ai2 | training | 163 | 11 | 175 |
| Brightbot | Bright Data | mixed | 83 | 3 | 86 |
| Gemini-Deep-Research | user triggered | 81 | 21 | 109 | |
| TikTokSpider | ByteDance | mixed | 77 | 10 | 102 |
The site panel
We follow the top 10,000 domains in Tranco list Y8JGG, dated 2026-10-15. This panel stays fixed, so changes reflect sites rather than a moving sample. Its list file has SHA-256 1e49477006b7d63dced741c2ce51666463c31d9881248df5ec7f4fafbb1376cf. Expanded coverage will use a new panel while this one continues.
1e4947…76cf
1e49477006b7d63dced741c2ce51666463c31d9881248df5ec7f4fafbb1376cfCollection steps
- Each day, from 01:07 UTC, we request
https://{domain}/robots.txt. If needed, we try thewww.hostname. - If robots.txt allows our crawler, we request
/ai.txt,/.well-known/tdmrep.json, the homepage and up to two same-site RSL license files. From the homepage, we retain only the<meta>and<link>tags in<head>. - Requests to a site run in sequence, at most one per second. Collecting the full panel of 10,000 sites takes about 21 minutes.
- User-Agent:
MXDATA-signals/1.0 (+AI usage-rights signal archive; daily, low-rate; robots.txt respected). Collection details are on the crawler page.
Keeping the evidence
- Response details: requested and final URLs, HTTP status, response headers with cookies removed, UTC timestamp, latency and body SHA-256.
- Original files: robots.txt, ai.txt, tdmrep.json and RSL files are retained verbatim and deduplicated by SHA-256. For homepages, we retain
<meta>and<link>tags and the hash of the full<head>. - Daily manifests: each snapshot has a manifest of file hashes, linked to the previous day's manifest hash. Editing an archived file breaks the verification chain. Latest manifest:
7e56985581858d76305bd18d7a9562b36950ef7a54c965acdbdc331615feb130. - Reproducible parsing: signal tables can be rebuilt from the stored files. Parser corrections update derived history; archived bytes remain unchanged.
7e5698…b130
7e56985581858d76305bd18d7a9562b36950ef7a54c965acdbdc331615feb130Detecting changes
We compare consecutive daily snapshots. Robots.txt signals are compared only when both days have a valid robots.txt; homepage signals only when both homepages return 200. For ai.txt and tdmrep.json, both days must return a definitive result: 200, 404 or 410. These checks reduce outage-related false alarms. Each detected change includes the before and after file hashes.
What the data misses
- 2,114 of 10,000 sites were unreachable to our crawler on 2026-10-16, often because of bot protection. We count these as unreachable, not as "no signal".
- We inspect only the homepage. Signals on individual articles or added by JavaScript are outside this collection.
- Full and partial robots.txt blocks are our interpretation of RFC 9309 matching rules. The original file remains available for review.
- The fixed panel favors popular sites and does not represent the web as a whole.
- Our history starts on 16 October 2026. We have no records from earlier dates.
- A signal records what a website states. Whether it is binding, and on whom, is a legal question we do not answer.
Download the aggregates
Download the aggregate data under CC BY 4.0. Site-level records are available through a sample report request.
Need records for your sources? Request a sample report.
Request a sample report