<?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: Codevibe Technology</title>
    <description>The latest articles on DEV Community by Codevibe Technology (codevibe-technology).</description>
    <link>https://dev.to/codevibe-technology</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%2Forganization%2Fprofile_image%2F16082%2Fb799764b-c1a7-4702-b733-5982f4b6dcca.png</url>
      <title>DEV Community: Codevibe Technology</title>
      <link>https://dev.to/codevibe-technology</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/codevibe-technology"/>
    <language>en</language>
    <item>
      <title>Can AI Crawlers Read Your Website? robots.txt Is Only Half the Answer</title>
      <dc:creator>Himanshu Patel</dc:creator>
      <pubDate>Fri, 13 Nov 2026 09:35:35 +0000</pubDate>
      <link>https://dev.to/codevibe-technology/can-ai-crawlers-read-your-website-robotstxt-is-only-half-the-answer-3o6f</link>
      <guid>https://dev.to/codevibe-technology/can-ai-crawlers-read-your-website-robotstxt-is-only-half-the-answer-3o6f</guid>
      <description>&lt;p&gt;Probably not all of them, and your robots.txt will not tell you which. A robots.txt file only says what crawlers &lt;strong&gt;may&lt;/strong&gt; read. Your host, CDN and firewall decide what they &lt;strong&gt;can&lt;/strong&gt; read, and they answer first. We learned this on our own site in November 2026: robots.txt welcomed every AI crawler, yet OpenAI's GPTBot could not read a single page.&lt;/p&gt;

&lt;p&gt;This post covers what we found, why it happens to so many sites, and how to check every bot that matters (AI assistants, search engines and the link-preview bots behind LinkedIn and WhatsApp) with &lt;a href="https://codevibe.in/tools/ai-bot-access?utm_source=devto&amp;amp;utm_medium=crosspost&amp;amp;utm_campaign=can-ai-crawlers-read-your-website" rel="noopener noreferrer"&gt;one free command&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why would AI crawlers be blocked if robots.txt allows them?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Because the block happens before your robots.txt is ever read.&lt;/strong&gt; Firewalls and hosts increasingly filter bots by their user agent. Cloudflare, which says it protects traffic for about 20% of the web, made blocking AI crawlers the default for new domains on 1 July 2025, and more than one million of its customers had already switched the block on (&lt;a href="https://www.cloudflare.com/press/press-releases/2025/cloudflare-just-changed-how-ai-crawlers-scrape-the-internet-at-large/" rel="noopener noreferrer"&gt;Cloudflare&lt;/a&gt;, 2025). Shared hosts add their own rate limits on top.&lt;/p&gt;

&lt;p&gt;Nobody notices, because the site looks fine in a browser. A July 2026 study of 2,096 popular domains found 115 sites whose firewall filtered GPTBot while their robots.txt said nothing at all, and by September the count had grown to 178 (&lt;a href="https://hasdata.com/blog/ai-crawler-block-index" rel="noopener noreferrer"&gt;HasData&lt;/a&gt;, 2026).&lt;/p&gt;

&lt;p&gt;The failure modes look like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;403 Forbidden&lt;/strong&gt; for the bot's user agent, from a WAF or host rule&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;429 Too Many Requests&lt;/strong&gt; on the very first request, a rate limit keyed on the user agent rather than on traffic&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A challenge page&lt;/strong&gt; ("verify you are human") that a crawler cannot solve&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A failing robots.txt.&lt;/strong&gt; This one hurts most, because a crawler that cannot fetch robots.txt treats the whole site as disallowed. RFC 9309 asks crawlers to assume complete disallow when robots.txt is unreachable through a server error (&lt;a href="https://www.rfc-editor.org/rfc/rfc9309" rel="noopener noreferrer"&gt;RFC 9309&lt;/a&gt;), and Google treats a 429 as a server error (&lt;a href="https://developers.google.com/search/docs/crawling-indexing/http-network-errors" rel="noopener noreferrer"&gt;Google Search Central&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What did we find on codevibe.in?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Our host answered every request that identified as GPTBot with HTTP 429, including the request for robots.txt.&lt;/strong&gt; Every request we sent as GPTBot got a 429, while the same requests with a browser's user agent got 200. Meta's training crawler, meta-externalagent, got the same 429. Our robots.txt allowed both by name, so a robots.txt checker would have told us we were fine.&lt;/p&gt;

&lt;p&gt;This is the run against our home page with the tool we built afterwards:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnj4xlcf3zqer6ou5k1xh.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnj4xlcf3zqer6ou5k1xh.webp" alt="ai-bot-access output for codevibe.in: GPTBot and meta-externalagent locked out because robots.txt answers them with HTTP 429, bingbot and Applebot marked to confirm, the link-preview bots allowed and the share preview passing." width="800" height="1186"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Two more things showed up when we added search engines. Bingbot and Applebot got a 403. That is not automatically bad news: many firewalls refuse requests that use a search crawler's name from an address the crawler does not use, which is exactly what a test from an office laptop does. So the tool marks those as "to confirm" and we are checking our access log before we call it a problem.&lt;/p&gt;

&lt;p&gt;The good news was on the sharing side. LinkedIn, X, WhatsApp, Facebook and Slack could all read the page, and our share image (1200x630, 289 KB) loaded for every one of them.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codevibe.in/tools/ai-bot-access?utm_source=devto&amp;amp;utm_medium=crosspost&amp;amp;utm_campaign=can-ai-crawlers-read-your-website#video" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqu9f4kb7c1fzvcz4m7el.jpg" alt="95-second video: what ai-bot-access found on codevibe.in and what it checks" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;95-second video: what ai-bot-access found on codevibe.in and what it checks. Click the image to watch it on codevibe.in.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Which bots should be able to read your site?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;It depends on the job each bot does, so decide per bot rather than "AI yes or no".&lt;/strong&gt; Blocking a training crawler keeps your text out of future models. Blocking a search or preview bot costs you visibility today.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Job&lt;/th&gt;
&lt;th&gt;Bots&lt;/th&gt;
&lt;th&gt;If they are blocked&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;AI training&lt;/td&gt;
&lt;td&gt;GPTBot, ClaudeBot, meta-externalagent, CCBot, Bytespider&lt;/td&gt;
&lt;td&gt;Your content is not used to train future models. A fair choice.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI search&lt;/td&gt;
&lt;td&gt;OAI-SearchBot, Claude-SearchBot, PerplexityBot, Amazonbot&lt;/td&gt;
&lt;td&gt;You are less likely to be cited in AI answers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI user fetch&lt;/td&gt;
&lt;td&gt;ChatGPT-User, Claude-User, Perplexity-User, meta-externalfetcher&lt;/td&gt;
&lt;td&gt;The assistant cannot open your page when someone asks about it&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Search engines&lt;/td&gt;
&lt;td&gt;Googlebot, bingbot, Applebot, DuckDuckBot&lt;/td&gt;
&lt;td&gt;You drop out of search, and out of the indexes behind AI Overviews, Gemini and Copilot&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Link previews&lt;/td&gt;
&lt;td&gt;facebookexternalhit, LinkedInBot, Twitterbot, WhatsApp, Slackbot&lt;/td&gt;
&lt;td&gt;Shared links show a bare URL with no title or image&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;On codevibe.in we keep every one of these open. Your answer can differ. What matters is that it is a choice and not an accident of your hosting plan.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do you check every bot in one command?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Run &lt;code&gt;npx ai-bot-access&lt;/code&gt; with your URL.&lt;/strong&gt; It needs Node.js 18.17 or newer and no account or API key:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx ai-bot-access https://your-site.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For each of 24 bots it does two things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Fetches your robots.txt &lt;strong&gt;with that bot's user agent&lt;/strong&gt; and applies the rules the way the bot does (its own group first, then &lt;code&gt;*&lt;/code&gt;, longest matching rule wins).&lt;/li&gt;
&lt;li&gt;Requests your page as the bot and compares the answer with what a normal browser gets: status code, challenge pages, redirects, and &lt;code&gt;noindex&lt;/code&gt; or &lt;code&gt;noai&lt;/code&gt; directives.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Then it checks your share preview (og:title, og:description, og:image and twitter:card, with the image downloaded so a broken or oversized one shows up) and ends with a &lt;strong&gt;How to fix&lt;/strong&gt; list. It recognises 14 hosts and CDNs from the response headers, so on Cloudflare it points at the bot settings in the dashboard and on Hostinger at hPanel and support.&lt;/p&gt;

&lt;p&gt;A full check sends about 50 requests, one at a time with a short pause between them, so it stays gentle on your server. To run one group, add &lt;code&gt;--bots ai&lt;/code&gt;, &lt;code&gt;--bots search&lt;/code&gt; or &lt;code&gt;--bots social&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do you know a request was really GPTBot?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Check the IP address, because the user agent proves nothing.&lt;/strong&gt; Scrapers borrow crawler names all the time. OpenAI publishes the address ranges for GPTBot, OAI-SearchBot and ChatGPT-User (&lt;a href="https://developers.openai.com/api/docs/bots" rel="noopener noreferrer"&gt;OpenAI&lt;/a&gt;), and Anthropic, Perplexity, Google, Microsoft, Apple, DuckDuckGo, Common Crawl and Amazon do the same.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx ai-bot-access verify 20.171.206.10 --ua &lt;span class="s2"&gt;"GPTBot/1.4"&lt;/span&gt;
&lt;span class="c"&gt;# ✓ verified  20.171.206.10 is in OpenAI's published GPTBot range 20.171.206.0/24.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The same check can run inside a Next.js middleware or an Express app to refuse impostors while letting the real crawlers through. Meta, LinkedIn, X, Slack and ByteDance publish no lists, so their traffic can only be reported as unverifiable.&lt;/p&gt;

&lt;p&gt;The most reliable picture comes from your own access log, because it shows what the real crawlers got:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx ai-bot-access logs /var/log/nginx/access.log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It counts hits, refusals and real versus fake requests per bot, lists the pages each one asked for, and counts visitors sent by ChatGPT, Perplexity and other assistants. This is how you settle a "to confirm" result like our Bingbot 403.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do you fix a hidden block?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Make robots.txt answer 200 to everyone, then exempt the bots you want from your host's or CDN's bot rules.&lt;/strong&gt; In order:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;robots.txt first.&lt;/strong&gt; It must return 200 to every user agent and sit outside rate limits and challenges. While it fails, nothing else you do matters to that crawler.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find the rule.&lt;/strong&gt; On Cloudflare, look at the bot settings, AI crawler controls and WAF custom rules. On shared hosting, check the security panel, and if nothing there controls it, ask support. We are doing exactly that with ours.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Allow verified bots, not user agents.&lt;/strong&gt; Most firewalls can allow "verified bots", which checks the IP for you. Allowing a user agent string also lets in everyone who copies it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Watch it.&lt;/strong&gt; Hosting and firewall settings change without notice. A weekly run of &lt;code&gt;npx ai-bot-access&lt;/code&gt; in CI fails the build when a hidden block appears.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The tool is free and open source under the MIT licence: &lt;a href="https://codevibe.in/tools/ai-bot-access?utm_source=devto&amp;amp;utm_medium=crosspost&amp;amp;utm_campaign=can-ai-crawlers-read-your-website" rel="noopener noreferrer"&gt;codevibe.in/tools/ai-bot-access&lt;/a&gt; has the details, and the code is on &lt;a href="https://github.com/codevibe-technology/ai-bot-access" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;. If you would rather we look at your site, our &lt;a href="https://codevibe.in/services/seo?utm_source=devto&amp;amp;utm_medium=crosspost&amp;amp;utm_campaign=can-ai-crawlers-read-your-website" rel="noopener noreferrer"&gt;SEO and AI search team&lt;/a&gt; fixes crawler access, share previews and the rest of technical SEO, or start with a &lt;a href="https://codevibe.in/audit?utm_source=devto&amp;amp;utm_medium=crosspost&amp;amp;utm_campaign=can-ai-crawlers-read-your-website" rel="noopener noreferrer"&gt;free website audit&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://codevibe.in/blog/can-ai-crawlers-read-your-website?utm_source=devto&amp;amp;utm_medium=crosspost&amp;amp;utm_campaign=can-ai-crawlers-read-your-website" rel="noopener noreferrer"&gt;codevibe.in&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

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