AI search / crawler controls

Do You Need llms.txt? AI Crawler Controls Explained

Most small-business websites do not need an llms.txt file. It can provide optional context, but it does not grant crawler access, block model training, improve rankings, or guarantee an AI citation.

A florist reviewing crawler access routes where search paths pass and a training path stops at a separate control

Direct answer: publish /llms.txt only if you maintain a documentation-heavy or structured knowledge site and can keep a curated machine-readable map accurate. For an ordinary service business, prioritize crawlable pages, internal links, a clean sitemap, correct structured data, and explicit crawler rules.

The distinction matters because llms.txt and robots.txt solve different problems. The llms.txt proposal describes a Markdown overview for use at inference time. Its own specification says it complements existing standards. It does not define access permission or an opt-out mechanism.

Use the control that matches the job

ControlActual jobWhat it cannot promise
robots.txtTell compliant crawlers which paths they may requestRemoval from search, privacy, or universal enforcement
llms.txtOffer a curated Markdown description and linksCrawler access, training opt-out, ranking, or citation
sitemap.xmlList preferred indexable URLs for search discoveryIndexing or selection in an AI answer
noindex and snippet controlsControl indexing or how much Google may show from a pageA safe result when the crawler is blocked from reading the directive
CDN or WAF rulesPermit or deny requests at the infrastructure layerCorrect intent if rules rely only on a spoofable user-agent string

Do not treat a public text file as a privacy boundary. Never list private dashboards, customer portals, staging hosts, unpublished documents, or sensitive paths in llms.txt. Protect them with authentication and access controls.

What llms.txt is

The proposal places a Markdown file at /llms.txt. It starts with one required H1, may include a short summary and explanatory text, and can group useful links under H2 headings. The specification also proposes optional Markdown versions of detailed pages.

That can be useful for a software library, API, public knowledge base, or complex documentation set. A maintainer can point an agent toward a stable quick start, current reference, examples, and known limitations without asking it to infer the hierarchy from navigation and decorative HTML.

The proposal does not specify how an AI provider must discover, fetch, or use the file. It explicitly leaves processing decisions to each application. That is why publishing the file is an experiment, not an access-control project.

Why most small-business sites do not need it

A typical service site has a homepage, service pages, a few decision guides, contact information, and perhaps a local profile. Those pages should already explain the business clearly in rendered HTML. Adding another summary file creates a second place where services, locations, prices, policies, and URLs can become stale.

Google's official guidance is especially direct. Pages need normal Search eligibility for AI Overviews and AI Mode, and Google says no new machine-readable file, AI text file, or special markup is required. Googlebot access, indexability, internal discovery, visible text, page experience, and accurate structured data remain the foundation.

Site situationRecommendationReason
Local or service businessSkip it for nowImprove the actual service pages and crawler access first
Small editorial siteUsually skip itThe sitemap, hubs, and contextual links already express the library
Large public documentation setConsider a testA curated route can reduce ambiguity for tools that choose to read it
API or developer productConsider a generated fileVersioned references and examples may benefit from a concise machine-readable index
Site with weak crawlabilityFix access firstAn optional file cannot repair blocked pages, bad status codes, or a hostile WAF

Separate search retrieval from model training

There is no single universal "AI bot" switch. Vendors document separate agents for different jobs, and a site owner may want search visibility without allowing potential training use.

ProviderSearch or user retrievalSeparate control
GoogleGooglebot controls Search, including AI Overviews and AI ModeGoogle-Extended controls certain Gemini training and grounding uses outside Google Search
OpenAIOAI-SearchBot supports ChatGPT search discoveryGPTBot is the published control for potential training
AnthropicClaude-SearchBot and Claude-User support search and user-directed retrievalClaudeBot is used for content that could contribute to model training
PerplexityPerplexityBot supports search results; Perplexity-User supports user-requested fetchesPerplexity says these two agents are not used to train foundation models

Google states that blocking Google-Extended does not affect inclusion or ranking in Google Search. OpenAI's publisher guidance similarly separates OAI-SearchBot from GPTBot. Anthropic documents three distinct agents so publishers can make separate choices.

Build the policy before editing robots.txt

Write the business decision first. Otherwise a copied rule can quietly block the exact search surface you intended to keep.

  1. List the public content: decide which pages may be retrieved by search and user-directed agents.
  2. Separate model development: decide whether to block training-specific agents where a vendor provides that control.
  3. Protect private content properly: use authentication, authorization, network restrictions, or removal. Do not rely on crawler courtesy.
  4. Inspect the whole delivery path: robots.txt, CDN, WAF, hosting firewall, rate limits, JavaScript challenges, and origin responses can disagree.
  5. Record an owner and review date: crawler names, IP ranges, and product behavior change.

The AI search citation guide covers content eligibility and evidence after access is working. The technical SEO fixes guide covers infrastructure problems that ordinary content edits cannot solve.

A cautious robots.txt example

This example expresses one specific policy: allow documented search agents, block documented training controls, and leave normal search crawling open. It is not a universal recommendation. Read every vendor's current documentation and your existing robots file before adapting it.

User-agent: *
Allow: /

User-agent: OAI-SearchBot
Allow: /

User-agent: GPTBot
Disallow: /

User-agent: Claude-SearchBot
Allow: /

User-agent: ClaudeBot
Disallow: /

User-agent: PerplexityBot
Allow: /

User-agent: Google-Extended
Disallow: /

Sitemap: https://example.com/sitemap.xml

This does not remove a page from search. A robots disallow can prevent a crawler from seeing a noindex directive on the blocked page. If removal is the goal, follow the search engine's documented removal or indexing controls instead of combining random directives.

It also does not create a hard security block. Robots rules are instructions for compliant agents. A scraper can ignore them, and a legitimate agent can still be stopped by an overly broad firewall rule.

Check the CDN and WAF separately

Allowing a crawler in robots.txt is only the first gate. OpenAI and Perplexity both tell publishers to check CDN, WAF, bot mitigation, response codes, and published IP ranges when access fails. Perplexity recommends combining the expected user agent with its current IP list rather than trusting the header alone.

A safe validation sequence is:

  1. Request the live /robots.txt and confirm the deployed file matches the policy.
  2. Request representative public URLs with the documented user-agent token.
  3. Confirm a successful response, useful HTML, and no challenge page.
  4. Inspect CDN and origin logs for 401, 403, 429, redirect loops, and unusually large responses.
  5. Where the vendor publishes IP ranges, verify both the header and source range before creating an allow rule.
  6. Recheck after deployment because caches and crawler processing can delay the observed change.
curl -I -A "OAI-SearchBot" https://example.com/important-page
curl -I -A "Claude-SearchBot" https://example.com/important-page
curl -I -A "PerplexityBot" https://example.com/important-page

A forged user-agent can pass this simple request test. Use it to find obvious blocks, not to authenticate crawler identity.

When an llms.txt test is worth maintaining

Consider a limited test when all of these conditions are true:

If you publish it, keep the file concise. Name the project, explain the scope, link only to preferred public resources, and record how it is generated. Do not paste your sitemap into Markdown or duplicate full pages into a second unmanaged content layer.

What not to do

FloxoLab's current decision

FloxoLab does not need llms.txt to make its guides eligible for Google AI features or ChatGPT Search. The current priorities are a crawlable public library, one canonical URL per task, accurate metadata, responsive media, contextual links, and explicit crawler access.

A generated file may become worth testing after the SEO guide library expands and the filterable hub is stable. If that happens, the file should be derived from the content manifest, not maintained as another hand-written index. The topic-cluster guide explains why one source of truth matters when a library grows.

Decision checklist

For most small businesses, the right answer is simple: skip llms.txt for now, make the real pages easy to crawl and understand, and control each crawler according to the job it performs.

Sources checked

Behavior and crawler names were verified from primary or official documentation on August 2, 2026.

Need a crawler-access review?

I can review robots rules, CDN and WAF behavior, indexability, structured data, and AI-search access without selling an experimental file as a ranking shortcut.

Request an SEO audit