llms.txt vs robots.txt: What Each One Controls
Two small files at your site root, two completely different jobs. What robots.txt controls, what llms.txt controls, and why you need to think about both for AI search.
robots.txt and llms.txt sit next to each other at your site root, both are plain text, and both mention AI. That is where the similarity ends. They do opposite jobs, and confusing them is common enough to be worth a short, dedicated explainer. In one line: robots.txt controls who is allowed to fetch your pages, and llms.txt describes what your site is about once they can. This piece untangles the two and shows how they fit together for AI search visibility.
What is the core difference?
Think of it as access versus explanation. robots.txt is a gate: it lists user agents and tells each one which paths it may or may not crawl. llms.txt is a map: it gives an AI assistant a curated, human-readable summary of your site and a list of your most important pages, so a model that reads your site works from a clean overview rather than guessing from your navigation. One is permission, the other is context. Neither replaces the other.
| robots.txt | llms.txt | |
|---|---|---|
| Purpose | Controls crawler access | Summarises your site for AI |
| Format | Plain-text directives | Markdown |
| Controls access? | Yes, allow or disallow paths | No, it is descriptive only |
| Standard maturity | Long-established, widely obeyed | Emerging convention (llmstxt.org) |
| Served at | /robots.txt | /llms.txt |
| Gets you cited? | Only by not blocking crawlers | By giving assistants a clean map |
What does robots.txt actually control?
robots.txt is the long-established file that tells crawlers which parts of your site they may fetch. It is per-user-agent, so you can allow Googlebot, block a scraper, and make a deliberate choice about each AI crawler. For AI search, the rule that matters is not blocking the search and citation agents (OAI-SearchBot, PerplexityBot, Claude-User, and Google-Extended - the last a robots.txt token honoured by Googlebot that also gates Gemini training) by accident, because a Disallow: / under any of them removes you from that engine's answers. Blocking the training crawlers (GPTBot, ClaudeBot, CCBot) is a separate, legitimate licensing choice with no visibility cost. The exact patterns, bucket by bucket, are in the AI crawler access guide.
One important limit: robots.txt is advisory. It tells well-behaved crawlers what to do, but it does not enforce anything. Your CDN or firewall can block an AI bot at the network layer regardless of what robots.txt says, which is why AuditZap checks both the file and the firewall separately.
What does llms.txt actually control?
llms.txt controls nothing about access. It is purely descriptive: a markdown file starting with a # heading that names your site, an optional one-line summary, and a list of your key pages with short descriptions. Its job is to hand an AI assistant a tidy map of what matters on your site instead of leaving it to reverse-engineer your structure from your menus and footer. It is an emerging convention proposed at llmstxt.org, not a settled standard, so publishing one is cheap insurance rather than a guaranteed ranking lever. The full case for whether you need one is in the complete llms.txt guide. The fastest way to get a valid file is the free llms.txt generator, which crawls your key pages and builds one from your titles and descriptions in seconds. It is deterministic, not AI-written, so the output is predictable and yours to edit before you publish.
Do you need both files?
For AI search, yes, and they do not overlap. Get robots.txt right so the crawlers are allowed in (and confirm your CDN is not blocking them anyway). Then add llms.txt so the assistants that get in have a clean summary to work from. Skipping robots.txt risks being invisible; skipping llms.txt just means a slightly less tidy signal. Neither is a substitute for the other, and both are ten-minute jobs. Generate your file with the llms.txt generator, then run a free audit to confirm access, the file, and the rest of your AI Visibility in one pass.
FAQ
Can llms.txt block AI crawlers like robots.txt does?
No. llms.txt is descriptive only and has no access-control directives. If you want to allow or block a crawler, that is robots.txt (and your CDN firewall). Use llms.txt to describe your site, not to gate it.
If I have robots.txt, do I still need llms.txt?
They do different jobs, so having one does not cover the other. robots.txt handles access; llms.txt handles the summary an assistant reads once it is in. For AI search, do both.
Where do both files go?
At your site root, served at yourdomain.com/robots.txt and yourdomain.com/llms.txt. Both are plain text files you upload to your public or static folder, or emit via your CMS's static-file feature.
Is llms.txt an official standard?
Not yet. It is an emerging convention proposed at llmstxt.org with early, uneven adoption across AI vendors. robots.txt, by contrast, is long-established and widely obeyed. Publishing llms.txt is low-cost insurance while the convention matures.
Generate a valid, ready-to-publish llms.txt from your own pages, then run a free audit to confirm crawlers can reach it.
Related guides
AI Visibility explained
How ChatGPT, Claude, and Perplexity read your site, plus the free nine-check scanner.
llms.txt: the complete guide
What llms.txt is, whether you need one, and how to generate a valid file free.
AI crawler access
Which bots to allow in robots.txt, and how a CDN can block them anyway.
How to get cited by AI
Schema, structure, and freshness signals that make your content quotable.
Generate your llms.txt free
Crawl your site and build a valid llms.txt in seconds.
Check your llms.txt
Confirm your file is valid and AI crawlers can reach it.
Best AI website audit tools
How AI-readiness auditors compare, and where AuditZap fits.