The Crawl Price Index.

Coverage · edition of 2026-10-04

Anatomy of the frame

Every figure this index publishes is a share of the 30,779 domains that served a readable robots.txt in the 50,000-domain frame — not of 50,000, and not of the web. This page is where that number comes from, and what is inside it.

Frame
50,000
ranked domains
Readable robots.txt
30,779
61.56% — the denominator
No reading
19,221
38.44% — broken out below
Block ≥1 crawler
5,031
16.35% of the denominator
50,000 in the ranked frame30,779 served a readable robots.txt19,221 no reading10,359 answered8,862never gave a usable responserefused, no file, or not a robots.txt53.89% of the group
Widths are proportional to domain counts. The domains that answered a request and still returned no robots.txt outnumber those that never returned a usable response — and every branch below is measured by the scanner, not inferred.

Why 19,221 domains told us nothing

The scanner records a reason for every domain it cannot read. These 9 groups cover 75 distinct raw reasons and sum to 19,221 exactly, with nothing left over.

ReasonDomainsOf the 19,221
Name never resolved, or the connection was refused4,17721.73%
Refused an identified crawler (403 or 429)4,09221.29%
No robots.txt file (404 or 410)3,76419.58%
Answered 200, but the body was not a robots.txt2,50313.02%
TLS would not negotiate1,7549.13%
Connected, then timed out1,7339.02%
Connection dropped mid-transfer5232.72%
Other HTTP status3791.97%
Server error (5xx)2961.54%
10,359 of them answered the door and still said nothing — 53.89% of the group, more than everything that failed to connect (8,187), with 675 more that connected and answered a server error. A 404 is not the same as an unlisted crawler: 3,764 domains have no robots.txt at all and have therefore made no declaration about anything, while an unlisted crawler means a file exists and does not mention it.

Inside the 30,779

These branches are computed from the census itself. Each level sums to the one above it.

30,779 with a readable robots.txt25,748 block none of the 18 · 83.65%5,031 block ≥12,756search AND machine2,180machine only95search only
Grouping: Cloudflare’s — training and user-initiated crawlers together as machine consumption, against search. The home page’s asymmetry card uses the index’s own role tags (training against search, user-initiated on neither side), which is why it reads 2,167 / 96. Four in five domains that publish a robots.txt block none of the 18 tracked crawlers. Of those that do block, most draw no distinction between a crawler that sends readers back and one that does not.
BranchDomainsOf 30,779
Block none of the 1825,74883.65%
Name none of the 18 at all23,97177.88%
Named one and explicitly allowed it9283.02%
Path-scoped rule only, never the whole site8492.76%
Block at least one5,03116.35%
Search and machine-consumption alike2,7568.95%
Machine-consumption only, search left open2,1807.08%
Search only, machine-consumption left open950.31%

The 1,026 that block exactly one crawler

Blocking a single named crawler and nothing else cannot be a copied snippet or a hosting default. Someone chose that one.

CrawlerSole targetShare
GPTBot28527.78%
CCBot22321.73%
Bytespider21721.15%
Amazonbot918.87%
meta-externalagent807.80%
ClaudeBot343.31%
Google-Extended313.02%
Applebot-Extended272.63%
7 other crawlers383.70%

How many crawlers each blocker blocks

Crawlers blockedDomainsOf blockers
11,02620.39%
2–71,56931.19%
8 — the copied list and its variants2044.05%
9–171,99539.65%
All 182374.71%
Only 237 domains block every tracked crawler without exception — 0.77% of everything with a readable robots.txt. Blanket refusal, as a stated policy, is rare.

Wildcard policy coverage

Raw-body wildcard analysis is unavailable for this edition in this view. This is a coverage gap, not a finding of zero wildcard restrictions. The named-crawler figures above come from the parsed census and remain available.

At the level of individual states

30,779 domains × 18 crawlers is 554,022 individual declarations.

StateCellsOf 554,022Meaning
unlisted501,07390.44%The file exists and does not mention this crawler
blocked38,5366.96%Named, with Disallow: /
allowed7,5951.37%Named, and explicitly permitted
partial6,8181.23%Named, with a path-scoped disallow only
Nine declarations in ten are silence. Most sites have said nothing about most AI crawlers, and that is the most honest one-line summary of the declared-policy layer.

By rank band

CPI-50K v1 rank bandParsedBlock ≥1
1-1006627.27%
101-50027130.63%
501-100035024.86%
1001-50002,74720.93%
5001-100003,19418.07%
10001-250009,22216.1%
25001-5000014,92914.78%
Blocking declines with rank below the top thousand. This gradient is what reconciles our headline with indices that sample deeper: extend this frame to 100,000 along the observed curve and it predicts a materially lower rate.

How to read this page

The census figures above are computed from the edition of 2026-10-04, from the census file each time this page is built. Raw-body wildcard analysis is unavailable in this view for this edition. These figures describe declared robots.txt policy, not observed crawler access.

The per-domain rows behind these counts are the subscription. The shape is free, and free to cite with attribution.