Module 3 · Make your site answerable · Lesson 7

Crawler access: robots.txt, AI user agents and llms.txt

Decide, agent by agent, which AI crawlers may read your site and for what purpose, then check that your CDN and firewall respect that decision.

5 min

Ce cours n'est pour l'instant disponible qu'en anglais. Le reste du site est en français.

In this lesson

  • Separate AI crawlers that fetch for search from those that collect training data
  • Make a deliberate robots.txt decision per user agent
  • Confirm in your logs and CDN settings that the decision is applied

Your robots.txt file tells crawlers which parts of your site they may fetch. AI companies operate several crawlers with different purposes: some collect pages for model training, others fetch pages so an assistant can answer a question with current sources. Decide for each one whether you want it, write that decision in robots.txt, and then check that your CDN or firewall is not silently overriding it.

AI crawlers at the gateEach crawler arrives at the gate formed by robots.txt and the CDN. In the worked example, OAI-SearchBot, PerplexityBot, Googlebot are allowed through to the pages; GPTBot and ClaudeBot are stopped at the gate.ROBOTS.TXT+ CDNYOUR PAGESOAI-SearchBotGPTBotClaudeBotPerplexityBotGooglebotallowed (search)blocked (training)

Search purposes and training purposes

The distinction matters because the trade-off is different. Blocking a crawler that fetches pages for search answers can remove you from those answers. Blocking a crawler that collects training data affects what future models learn from your pages, not today's searched answers. Several operators now document separate user agents for the two purposes, so you can make the decisions independently.

Common AI user agents (check each operator's current documentation)
User agentOperatorPurposeDecision to make
OAI-SearchBotOpenAIFinds pages to show in ChatGPT's search answersAllow if you want to appear as a source in those answers
GPTBotOpenAICollects pages that may be used to train modelsAllow or block based on your stance on training
ClaudeBotAnthropicCollects pages that may be used to train modelsAllow or block based on your stance on training
PerplexityBotPerplexityIndexes pages for Perplexity's answersAllow if you want to appear in those answers
Google-ExtendedGoogleA robots.txt token controlling use of content for Gemini models; it does not change Google SearchDecide on model use separately from Search
GooglebotGoogleCrawls for Google Search, which AI Overviews and AI Mode draw onKeep allowed if you want to be in Google Search

Writing the rules

Each rule names a user agent and the paths it may not fetch. A blanket “disallow everything” for an agent blocks it entirely; an empty disallow allows it. Keep the rules simple and comment why each one exists, so the next person to edit the file understands the decision. After any change, request the live robots.txt from your domain and confirm the server returns exactly what you wrote.

The blocks you did not choose

Many sites block AI crawlers without anyone deciding to. Bot-protection settings on a CDN or web application firewall can challenge or block unfamiliar agents by default, and the crawler gets an error page instead of your content while robots.txt says it is welcome. Check your CDN's bot settings for rules that mention AI crawlers, and confirm with your logs.

Reading your bot logs

Your server or CDN logs record every request, including the user agent and the response code. Filter them for the AI user agents in the table. Requests that receive a success response are reaching your content; challenge pages, forbidden responses or no requests at all point to a block. Be aware that a user agent string can be faked, so treat logs as a signal and use the operators' published verification methods when it matters.

What about llms.txt?

llms.txt is a proposed plain-text file at the root of a site that summarises the site and links to its most useful pages, written for language models. It is easy to publish and does no harm.

Worked example: Northwind Dental

Northwind's robots.txt is a template from its web agency and blocks nothing. Its logs, though, show no requests from OAI-SearchBot or PerplexityBot at all, and a handful of challenge responses for GPTBot. The CDN's bot-protection mode is set to challenge unfamiliar agents. Northwind decides to allow the search crawlers and Googlebot and to block training crawlers, writes that into robots.txt with comments, and adds allow rules for the search agents in the CDN. A week later, the logs show successful requests from both search crawlers.

Key takeaways

  • AI crawlers serve different purposes; decide search access and training access separately.
  • robots.txt states your decision, but CDN and firewall settings can override it, so check your logs.
  • llms.txt is an unproven experiment; it is no substitute for crawlable pages.

Practice task

Adds to your plan: Site fixes

  1. Open your live robots.txt and list every rule that mentions an AI user agent.
  2. For each agent in the lesson's table, write allow or block, the reason and today's date.
  3. Check your CDN bot settings and a week of logs for those agents, and note any block you did not choose.
Ouvrir la fiche de votre plan AEO →

Knowledge check

Three questions. Pick an answer to see whether it is right and why.

1. Why decide search crawlers and training crawlers separately?
2. robots.txt allows a crawler but your logs show challenge pages. What is the likely cause?
3. How should you treat llms.txt today?