<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mira Voss</title>
    <description>The latest articles on DEV Community by Mira Voss (@miravoss).</description>
    <link>https://dev.to/miravoss</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4060979%2F33a35f08-a92b-4754-8b02-e848707bdebf.png</url>
      <title>DEV Community: Mira Voss</title>
      <link>https://dev.to/miravoss</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/miravoss"/>
    <language>en</language>
    <item>
      <title>19% of the top 2,000 sites block AI crawlers — and 136 more block them without knowing</title>
      <dc:creator>Mira Voss</dc:creator>
      <pubDate>Thu, 06 Aug 2026 18:28:07 +0000</pubDate>
      <link>https://dev.to/miravoss/19-of-the-top-2000-sites-block-ai-crawlers-and-136-more-block-them-without-knowing-59n5</link>
      <guid>https://dev.to/miravoss/19-of-the-top-2000-sites-block-ai-crawlers-and-136-more-block-them-without-knowing-59n5</guid>
      <description>&lt;h1&gt;
  
  
  19% of the top 2,000 sites block AI crawlers
&lt;/h1&gt;

&lt;p&gt;On 2 August 2026 I scanned the top 2,000 domains from the Tranco top-1M list and&lt;br&gt;
asked one question of each: can an AI crawler read this site?&lt;/p&gt;

&lt;p&gt;Not "should it" — that's a business decision every site gets to make. Just:&lt;br&gt;
what does the site actually do when GPTBot, ClaudeBot, PerplexityBot, or&lt;br&gt;
Google-Extended shows up.&lt;/p&gt;

&lt;p&gt;Here is what came back.&lt;/p&gt;
&lt;h2&gt;
  
  
  The headline
&lt;/h2&gt;

&lt;p&gt;Of the 1,530 domains with a reachable &lt;code&gt;robots.txt&lt;/code&gt;, &lt;strong&gt;292 (19.1%) disallow at&lt;br&gt;
least one of the four major AI crawlers.&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Crawler&lt;/th&gt;
&lt;th&gt;Blocked by&lt;/th&gt;
&lt;th&gt;Share&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;GPTBot&lt;/td&gt;
&lt;td&gt;254&lt;/td&gt;
&lt;td&gt;16.6%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ClaudeBot&lt;/td&gt;
&lt;td&gt;241&lt;/td&gt;
&lt;td&gt;15.8%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google-Extended&lt;/td&gt;
&lt;td&gt;227&lt;/td&gt;
&lt;td&gt;14.8%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PerplexityBot&lt;/td&gt;
&lt;td&gt;165&lt;/td&gt;
&lt;td&gt;10.8%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The blockers are exactly who you would guess, and they are not shy about it:&lt;br&gt;
instagram.com (#11), twitter.com (#16), amazon.com (#25), pinterest.com (#51),&lt;br&gt;
x.com (#53), yahoo.com (#59), msn.com (#60), tiktok.com (#61). Social and&lt;br&gt;
commerce platforms whose content &lt;em&gt;is&lt;/em&gt; the product.&lt;/p&gt;
&lt;h2&gt;
  
  
  Blocking is nearly all-or-nothing
&lt;/h2&gt;

&lt;p&gt;I expected nuance — sites allowing the search-adjacent crawlers and blocking the&lt;br&gt;
training-adjacent ones. That is not what the data shows.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Blocks&lt;/th&gt;
&lt;th&gt;Sites&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;all 4&lt;/td&gt;
&lt;td&gt;119&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3 of 4&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2 of 4&lt;/td&gt;
&lt;td&gt;38&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;exactly 1&lt;/td&gt;
&lt;td&gt;35&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;75% of blockers block three or more.&lt;/strong&gt; The decision is being made once, at the&lt;br&gt;
policy level — "AI crawlers, no" — not crawler by crawler.&lt;/p&gt;

&lt;p&gt;When a site &lt;em&gt;is&lt;/em&gt; selective, one name comes up more than the rest. Of the 35&lt;br&gt;
sites that block exactly one crawler, &lt;strong&gt;19 single out GPTBot&lt;/strong&gt; — more than&lt;br&gt;
ClaudeBot (8), PerplexityBot (5) and Google-Extended (3) combined. GPTBot is&lt;br&gt;
the one people have heard of, so it is the one that ends up in the file.&lt;/p&gt;
&lt;h2&gt;
  
  
  The finding that surprised me: rank does not predict blocking
&lt;/h2&gt;

&lt;p&gt;Top 200 domains: &lt;strong&gt;19.0%&lt;/strong&gt; block at least one crawler.&lt;br&gt;
Everything else in the sample: &lt;strong&gt;19.1%&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;There is no meaningful difference. I expected a strong gradient — big publishers&lt;br&gt;
with legal departments blocking, the long tail leaving defaults alone. The data&lt;br&gt;
says blocking is driven by &lt;em&gt;category&lt;/em&gt;, not by size. A mid-ranked marketplace&lt;br&gt;
behaves like a top-ranked one; a mid-ranked docs site behaves like a top-ranked&lt;br&gt;
docs site.&lt;/p&gt;

&lt;p&gt;Null results are worth publishing. This one kills a plausible assumption.&lt;/p&gt;
&lt;h2&gt;
  
  
  The gap: 136 sites allow in robots.txt and appear to block at the edge
&lt;/h2&gt;

&lt;p&gt;This is the part worth your attention.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;136 domains (8.9% of those with a reachable robots.txt) explicitly allow all&lt;br&gt;
four crawlers in &lt;code&gt;robots.txt&lt;/code&gt;, while the homepage probe suggests the request is&lt;br&gt;
being blocked before it ever reaches that policy.&lt;/strong&gt; WAF rules, bot-management&lt;br&gt;
products, and CDN defaults do not read your &lt;code&gt;robots.txt&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Among them: nytimes.com (#152), cisco.com (#243), ibm.com (#275),&lt;br&gt;
salesforce.com (#288), sourceforge.net (#227), unity3d.com (#120),&lt;br&gt;
launchpad.net (#270).&lt;/p&gt;

&lt;p&gt;I want to be precise about what this is and is not. It is a &lt;em&gt;user-agent probe&lt;br&gt;
from a single vantage point&lt;/em&gt;, not proof. Rate limiting, geography, and transient&lt;br&gt;
edge behaviour can all produce the same signal. But the direction is clear&lt;br&gt;
enough to matter: &lt;strong&gt;for a meaningful slice of the web, &lt;code&gt;robots.txt&lt;/code&gt; and reality&lt;br&gt;
disagree, and the site owner is the last to find out.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you have ever written a permissive &lt;code&gt;robots.txt&lt;/code&gt; and assumed the job was&lt;br&gt;
done — that assumption is worth ten minutes of verification.&lt;/p&gt;
&lt;h2&gt;
  
  
  llms.txt: present on 9.4%, and it correlates with openness
&lt;/h2&gt;

&lt;p&gt;188 of the 2,000 domains scanned (9.4%) serve an &lt;code&gt;llms.txt&lt;/code&gt;. &lt;code&gt;llms.txt&lt;/code&gt; was&lt;br&gt;
fetched independently of &lt;code&gt;robots.txt&lt;/code&gt;, so this percentage is of the full sample,&lt;br&gt;
not the reachable subset. It is far higher than the general web, which is what&lt;br&gt;
you would expect at the top of the ranking.&lt;/p&gt;

&lt;p&gt;More interesting is the correlation. Restricting to the 1,530 domains where&lt;br&gt;
blocking can be determined at all:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sites &lt;strong&gt;with&lt;/strong&gt; &lt;code&gt;llms.txt&lt;/code&gt;: 8.0% block at least one crawler (15 of 188)&lt;/li&gt;
&lt;li&gt;Sites &lt;strong&gt;without&lt;/strong&gt;: 20.6% (277 of 1,342)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sites that publish &lt;code&gt;llms.txt&lt;/code&gt; are roughly &lt;strong&gt;2.6× less likely&lt;/strong&gt; to block AI&lt;br&gt;
crawlers. That is not causation — nobody adds a file and thereby changes their&lt;br&gt;
legal posture. It reads as a marker: teams that have thought about AI access&lt;br&gt;
tend to have decided to allow it, and the file is the visible trace of that&lt;br&gt;
decision.&lt;/p&gt;

&lt;p&gt;Practical implication, though: &lt;strong&gt;lead with &lt;code&gt;robots.txt&lt;/code&gt;, not &lt;code&gt;llms.txt&lt;/code&gt;.&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;llms.txt&lt;/code&gt; is an emerging convention with limited consumption today. &lt;code&gt;robots.txt&lt;/code&gt;&lt;br&gt;
is read by every crawler in this study, right now. Fix the one that is load&lt;br&gt;
bearing first.&lt;/p&gt;
&lt;h2&gt;
  
  
  Method, and its limits
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Source list:&lt;/strong&gt; Tranco top-1M, snapshot 2026-07-13. Top 2,000 taken by rank.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What was fetched:&lt;/strong&gt; &lt;code&gt;robots.txt&lt;/code&gt;, &lt;code&gt;llms.txt&lt;/code&gt;, and one homepage request with
each crawler's user-agent string. Read-only. &lt;strong&gt;Each host contacted once per
run.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scanner:&lt;/strong&gt; the same public CLI used for single-site checks, 16 workers,
12.4 minutes wall clock.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reachability:&lt;/strong&gt; 1,530 of 2,000 returned a usable &lt;code&gt;robots.txt&lt;/code&gt;. The other 470
are unreachable, redirected, or served something that is not a robots file —
they are excluded from percentages rather than counted as "allow".&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What "blocked" means:&lt;/strong&gt; an explicit &lt;code&gt;Disallow&lt;/code&gt; matching the crawler's
user-agent. &lt;code&gt;robots.txt&lt;/code&gt; is a request, not an enforcement mechanism.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What "edge block suspected" means:&lt;/strong&gt; the homepage probe failed or was
refused for a crawler user-agent while &lt;code&gt;robots.txt&lt;/code&gt; allowed it. Heuristic,
single vantage point, no retry across geographies.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One snapshot, one day, 2,000 domains. Treat every number here as a measurement&lt;br&gt;
with a date on it, not a law.&lt;/p&gt;
&lt;h2&gt;
  
  
  What is next
&lt;/h2&gt;

&lt;p&gt;This is month one of a monthly series. A single census is a statistic; twelve&lt;br&gt;
are a time series, and a time series is the only way to answer the question&lt;br&gt;
people actually have: &lt;strong&gt;is AI blocking increasing or decreasing?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The second data point lands in September. I will publish the delta whether it&lt;br&gt;
confirms this snapshot or embarrasses it.&lt;/p&gt;
&lt;h2&gt;
  
  
  Check your own site
&lt;/h2&gt;

&lt;p&gt;If you take one thing from this: the 8.9% gap means a permissive &lt;code&gt;robots.txt&lt;/code&gt; is&lt;br&gt;
not evidence that AI crawlers can read you. The only way to know is to look from&lt;br&gt;
the outside.&lt;/p&gt;

&lt;p&gt;The scanner used for this census is a single open-source Python file with no&lt;br&gt;
dependencies beyond the standard library. It runs locally — nothing to sign up&lt;br&gt;
for, no email wall, no data leaves your machine:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/STARS-BIT-ux/ai-crawler-check" rel="noopener noreferrer"&gt;https://github.com/STARS-BIT-ux/ai-crawler-check&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python ai_crawler_check.py yourdomain.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It checks the four crawlers above plus CCBot (Common Crawl, which feeds most&lt;br&gt;
open datasets), reads your &lt;code&gt;robots.txt&lt;/code&gt; and &lt;code&gt;llms.txt&lt;/code&gt;, and prints what each&lt;br&gt;
user-agent actually gets back. Same fields as this census, so your result is&lt;br&gt;
directly comparable to the numbers above.&lt;/p&gt;

&lt;p&gt;If it disagrees with your &lt;code&gt;robots.txt&lt;/code&gt;, you have just found something worth&lt;br&gt;
fixing before your next content push.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Data collected 2026-08-02. Raw per-domain results and the run manifest are&lt;br&gt;
available on request — the manifest records the list snapshot, worker count,&lt;br&gt;
scanner version and completion time, so the run can be audited or reproduced.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>seo</category>
      <category>ai</category>
      <category>webdev</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
