AI crawlers, robots.txt and llms.txt

What AI crawlers are doing in robots.txt files, how to allow or block them, what llms.txt is and how little it is used, and why raw HTML and crawl load matter.

IntermediateExplainer6 min readUpdated October 30, 2026

In this guide
  1. Two questions, one file
  2. What real sites do
  3. How to write the rules
  4. llms.txt
  5. Make the content easy to read
  6. The load crawlers add
  7. Choosing a policy
  8. Mistakes to avoid
  9. Check your own page
  10. Sources

Two questions, one file

The Almanac frames the change clearly. Site owners used to ask whether a page should be indexed for search. Now they must also ask whether their content should be used to train AI models. These are distinct considerations with different business and ethical implications, it says, and robots.txt has become a dual-purpose control point: visibility in search on one side, protection against large-scale data harvesting on the other.

The first question is covered in robots.txt, noindex and the tags that control search. This guide covers the second, and what to do about the extra visitors that crawlers bring.

What real sites do

The Almanac counted the crawler names in robots.txt files. The catch-all rule for every crawler, *, was in 77% of files. Named AI crawlers have grown quickly from a small base:

Crawler name in the fileDesktopMobileA year earlier
gptbot4.5%4.2%2.9% and 2.7%
claudebot3.6%3.4%1.9% and 1.6%
ccbot3.5%3.2%2.7% and 2.4%
petalbot4.0%4.4%not tracked
amazonbot3.3%3.0%
google-extended3.4%3.0%
perplexitybot2.8%2.7%
chatgpt-user2.8%2.5%
meta-externalagent2.8%2.5%

The Almanac calls the rise of gptbot a roughly 55% increase and says claudebot nearly doubled. Tools that audit sites for search also show up: ahrefsbot is named in about 9% of files and mj12bot in about 7%. The Almanac says this reflects the effort to control SEO tools, which can generate significant crawl activity.

How to write the rules

MDN describes the format. A group starts with a User-agent line that names a crawler, followed by Disallow lines. Here is an example that lets everything in except three named AI crawlers:

# Everything not named below may crawl the whole site
User-agent: *
Disallow:

# Ask these AI crawlers not to fetch anything
User-agent: GPTBot
Disallow: /

User-agent: ClaudeBot
Disallow: /

User-agent: CCBot
Disallow: /

I checked the example with Python's standard robots.txt parser. It said GPTBot, ClaudeBot and CCBot may not fetch a page, and that Googlebot, Bingbot and a crawler it had never heard of may. It also matched gptbot in lower case, in line with the Almanac's note that matching ignores case.

Points to keep in mind:

llms.txt

The llms.txt file is a proposal from llmstxt.org, described as a way to give information that helps language models use a website at the time they answer a question. It is a text file in Markdown that holds a simplified version of the site. The Almanac measured it for the first time in 2025:

So llms.txt is optional, unproven and cheap. If a plugin makes one, check what it says. If you write one, keep it short, accurate and up to date. Do not expect it to change your search results, and do not use it in place of good pages.

Make the content easy to read

The Almanac advises that all key information should be in the initial raw HTML, since AI crawlers do not render JavaScript, according to a source it cites. That is also the rule for search crawlers that read the first response, and for speed. See JavaScript and SEO. The same habits help every kind of reader:

The load crawlers add

Crawlers are visitors, and they cost your server work. The Almanac observes that SEO tools can generate significant crawl activity, and every new AI crawler adds to the traffic. Slow responses hurt crawlers and people alike. See server response time.

Choosing a policy

If you wantThen
Maximum visibility everywhereAllow all crawlers, and keep your content in the raw HTML
Search visibility, but no use for AI trainingName the AI crawlers you do not want, and leave search crawlers allowed
No automated access except to a fewDisallow by default and allow named crawlers. Check each carefully
Protection for private contentA login, not a robots rule

Review the file every few months, because crawler names and behavior keep changing.

Mistakes to avoid

Check your own page

Run the free audit and read the SEO findings, then open /robots.txt on your site. Check that the status is 200, that no group blocks the whole site by accident, and that every crawler you name is one you meant to name.

Sources

Start here

Free website audit

Live Google data for any public page: mobile and desktop.

Mobile + desktop · Lighthouse lab test · Real-user Chrome data when Google has it

Rather have this done for you? Technical SEO · Book a call

Related guides

All guides →