Skip to content
Barkhausen AI

DataBA-D-2026-01

AI-crawler access census 2026 (four sectors)

One row per domain for 2,000 domains across four documented frames — universities, news, e-commerce, and U.S. federal government (500 each) — recording each domain's root-level robots.txt policy toward sixteen crawler tokens and its /llms.txt probe result.

Collection window: 2026-07-09 · License: CC-BY-4.0 · Published with BA-D-2026-01: AI-crawler access across four sectors: a robots.txt census of 2,000 domains

Download

CC-BY-4.0 · cite as a dataset with the parent report.

Schema

ColumnTypeDescription
domainstringThe registrable domain (eTLD+1) that was probed, as listed in the sector frame; lowercased, computed with the Public Suffix List.
sectorstring (enum)The frame the domain belongs to: universities, news, ecommerce, or government. Frames are disjoint; 2,000 rows, 2,000 distinct domains.
countrystring (ISO 3166-1 alpha-2) or emptyCountry code carried by the frame source. Empty where the source supplies none (e.g. gTLD e-commerce domains, whose country is not inferable from the ccTLD).
categorystring (enum)Fetch/parse outcome that governs whether the token fields are populated: parsed (a real robots.txt was evaluated), no_robots_file (HTTP 404/410, allowed by default), unparseable_blocked (403/5xx/other non-200 or an HTML/non-texty 200 — policy unknowable), or fetch_error (network failure).
http_statusinteger or emptyHTTP status of the /robots.txt response. Empty when category is fetch_error (no response received).
star_root_blockedboolean or emptyWhether the default '*' group root-blocks the site, measured with a probe token guaranteed to have no specific group. Distinguishes 'blocks everyone' from 'blocks AI crawlers specifically'. Empty when the policy is unknowable (unparseable_blocked/fetch_error).
gptbot_blockedboolean or emptyroot_blocked for GPTBot (training class): the token cannot fetch '/'. Empty when the policy is unknowable. Same convention for every *_blocked column below.
oai_searchbot_blockedboolean or emptyroot_blocked for OAI-SearchBot (retrieval class).
chatgpt_user_blockedboolean or emptyroot_blocked for ChatGPT-User (user-fetch class).
claudebot_blockedboolean or emptyroot_blocked for ClaudeBot (training class).
claude_searchbot_blockedboolean or emptyroot_blocked for Claude-SearchBot (retrieval class).
claude_user_blockedboolean or emptyroot_blocked for Claude-User (user-fetch class).
perplexitybot_blockedboolean or emptyroot_blocked for PerplexityBot (retrieval class).
perplexity_user_blockedboolean or emptyroot_blocked for Perplexity-User (user-fetch class).
ccbot_blockedboolean or emptyroot_blocked for CCBot (training class; Common Crawl).
google_extended_blockedboolean or emptyroot_blocked for Google-Extended (training class; a product token, not a distinct crawler).
applebot_extended_blockedboolean or emptyroot_blocked for Applebot-Extended (training class).
bytespider_blockedboolean or emptyroot_blocked for Bytespider (training class; observed, undocumented operator).
meta_externalagent_blockedboolean or emptyroot_blocked for meta-externalagent (training class).
amazonbot_blockedboolean or emptyroot_blocked for Amazonbot (training class).
googlebot_blockedboolean or emptyroot_blocked for Googlebot (search class).
bingbot_blockedboolean or emptyroot_blocked for bingbot (search class).
gptbot_namedboolean or emptyhas_specific_group for GPTBot: whether the file contains a user-agent line that is an exact, case-insensitive match for 'GPTBot'. Distinct from gptbot_blocked (prefix-matched effective access). Empty when the policy is unknowable.
oai_searchbot_namedboolean or emptyhas_specific_group for OAI-SearchBot: an exact user-agent name match for 'OAI-SearchBot'.
llms_txt_presentbooleanWhether GET /llms.txt returned HTTP 200. Probed regardless of the robots.txt outcome, so it is populated for all 2,000 rows including fetch_error/unparseable_blocked.
llms_txt_looks_validbooleanContent-sanity heuristic: the /llms.txt body is non-HTML-leading and resembles markdown (leading '#', a text/markdown or text/plain body with content, or a markdown heading/link/bullet). Screens out HTML soft-404s served at /llms.txt.
fetched_atstring (ISO 8601 timestamp)UTC timestamp at which the domain's /robots.txt was fetched.

Known limitations

FAQ

Why are some token columns empty?
The row's category is unparseable_blocked or fetch_error — the /robots.txt request returned a 403, a bot-challenge page, or a network error, so no policy could be read. Those rows are kept (they are a first-class 'unknowable' finding) but their per-token fields are left empty rather than guessed. Only parsed and no_robots_file rows carry populated token fields.
Can I compare sectors directly?
The measurement method is identical across sectors, so the columns mean the same thing everywhere. But the four frames are built from different sources and orderings (enrollment for US universities, traffic rank elsewhere), so a cross-sector difference is a difference between these particular frames, not between representative populations. Compare method-to-method on the stated denominators (each sector's parsed + no_robots_file count), not as sector-wide rates.
A domain is marked blocked here, but I still see it cited in an AI assistant. Why?
A *_blocked value is root-path exclusion in the site's published robots.txt as of 2026-07-09 — a request, not an enforced barrier, and only for the root path. It does not measure whether a given engine honored the file, whether the site is present in a training corpus collected earlier, or whether the site appears in an answer. Presence in an answer is a separate quantity this dataset does not measure.
What is the license, and how should this be cited?
The dataset is released under CC-BY-4.0. Cite the parent census BA-D-2026-01 and this datasheet, and state the collection date (2026-07-09), since the data is a single-day snapshot.

Changelog

How to cite

Barkhausen AI (2026). AI-crawler access census 2026 (four sectors) (dataset). https://barkhausen.ai/data/crawler-access-2026/

BibTeX
@techreport{BA-D-2026-01,
  author       = {{Barkhausen AI}},
  title        = {AI-crawler access census 2026 (four sectors) (dataset)},
  institution  = {Barkhausen AI},
  year         = {2026},
  url          = {https://barkhausen.ai/data/crawler-access-2026/}
}

Published under the Creative Commons Attribution 4.0 International (CC-BY-4.0).