llms.txt

llms.txt is a proposed Markdown file at /llms.txt for guiding AI systems. Google ignores it, 97% of files get zero requests, and Claude Code is the real reader.

First published: Jun 24, 2026 · Last updated: Jul 15, 2026 · Advanced
demand #8 in Optimization#18 in AI Search#181 on the site
1 evidence signal on this page

llms.txt is a proposal by Jeremy Howard (Answer.AI) for helping AI agents navigate sites — 97% of published files get zero requests, Google ignores it, and Claude Code is the primary consumer, not search bots.

The specification describes a voluntary LLMA large language model (LLM) is a deep-learning model trained on massive text corpora to predict the next token and generate human-like text. LLMs use the transformer architecture and power AI search features like Google's AI Overviews (Gemini) and Bing Copilot (GPT-4).-friendly site summary; it does not establish crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. compliance or indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. behavior. Evidence for this claim llms.txt is a community proposal for a Markdown file at /llms.txt that offers LLM-friendly site information; it is not a web standard. Scope: The proposal's own specification and stated purpose. Confidence: high · Verified: llms.txt proposal OpenAI currently documents named bots and independent robots.txt settings instead. Evidence for this claim OpenAI documents robots.txt controls for its declared crawlers and does not list llms.txt as a crawler control. Scope: OpenAI's published crawler controls; absence is not proof that no internal system ever fetches the file. Confidence: high · Verified: OpenAI: Crawlers

TL;DR — llms.txtllms.txt is a proposed (not adopted) Markdown file at /llms.txt that gives AI systems a curated map of a site's most important pages. Proposed by Jeremy Howard in 2024, it's read mostly by coding agents like Claude Code — not search crawlers — and Google ignores it. is a proposal (Jeremy Howard, Answer.AI, Sept 3, 2024), not an adopted standard. It’s a curated Markdown index at /llms.txt, with an optional full-content /llms-full.txt. The bots people hope are reading it for AI searchAI search uses large language models and retrieval-augmented generation (RAG) to synthesize an answer from multiple sources rather than returning a ranked list of links. Examples include Google AI Overviews, ChatGPT Search, and Perplexity. — OAI-SearchBot, PerplexityBot — barely register; the dominant consumer is Claude Code and other coding agents. Google ignores it (Illyes confirmed; Mueller compared it to the keywords meta tagThe meta keywords tag — <meta name=\"keywords\" content=\"...\"> — is a mid-1990s HTML head element meant to let a page declare its own topic keywords to search engines. Google has publicly ignored it for ranking since 2009, and no major search engine uses it as a ranking signal today. It's dead as SEO, and a populated one only leaks your target keywords to anyone who views your source.). In Ahrefs’ 137K-site study, 97% of files got zero requests, and SE Ranking foundA 302 (\"Found\") is a temporary redirect: it forwards users to a new URL while telling search engines the original URL should stay in the index. It's a weak canonicalization signal, not the zero-equity dead end of SEO folklore. that removing llms.txt from a citation model improved its accuracy. It’s worth adding for developer docs consumed by coding agents; for GEOGenerative Engine Optimization (GEO) is the practice of optimizing content and brand presence so AI-powered search engines and assistants — Google AI Overviews, ChatGPT, Perplexity — cite, recommend, or mention you when generating answers. Google's position is that it's still SEO./AEOAnswer Engine Optimization (AEO) is the practice of structuring content so engines deliver it as a direct answer — featured snippets, voice assistants, and AI search — rather than just a ranked link. Coined for voice search in 2018 and revived for the LLM era. Google's position is that it's still SEO. on a normal site, the data doesn’t support it. There’s also a real prompt-injection risk.

What llms.txt actually is

llms.txt is a proposalllms.txt is a proposed (not adopted) Markdown file at /llms.txt that gives AI systems a curated map of a site's most important pages. Proposed by Jeremy Howard in 2024, it's read mostly by coding agents like Claude Code — not search crawlers — and Google ignores it. — I want to lead with that word because it’s the whole story. There’s no RFC, no W3C blessing, no IETF process. It’s one well-reasoned suggestion from Jeremy Howard (co-founder of Answer.AI and fast.ai), published September 3, 2024, that caught on hard in the developer-documentation world and got grafted onto SEO by a community hungry for an AI-visibility shortcut.

The design problem it targets is legitimate. As the spec puts it, “Large language models increasingly rely on website information, but face a critical limitation: context windows are too small to handle most websites in their entirety.” And converting HTML to clean, LLM-friendly text is, in the spec’s words, “difficult and imprecise.” Howard’s fix is to let the site author pre-flatten the content they want models to see into curated Markdown.

The format

/llms.txt is an ordered Markdown document:

  1. H1 (required) — project or site name.
  2. Blockquote — a short summary with the key information.
  3. Optional prose/lists — paragraphs or bullets, but no headings here.
  4. H2-delimited link lists- [name](url): optional notes.
  5. An ## Optional section — secondary links a model can skip when context is tight.

A minimal example, from the spec:

# FastHTML

> FastHTML is a python library which brings together Starlette, Uvicorn, HTMX,
> and fastcore's FT...

## Docs

- [FastHTML quick start](url): A brief overview of many features

## Optional

- [Starlette documentation](url): A subset useful for FastHTML development.

Two companion conventions exist:

  • /llms-full.txt — the entire site content flattened into one Markdown file. Anthropic, Perplexity, and Stripe publish both this and the short form.
  • The .md URL convention — offering page.md versions of individual pages so they’re LLM-ready without the full dump.

A newer variant skips the static files entirely: edge-served Markdown via content negotiation. Cloudflare’s Markdown for Agents converts any HTML page to clean Markdown on the fly when a client sends Accept: text/markdown — no per-page .md files, no /llms-full.txt to regenerate, no template changes, because the CDN does the conversion at the edge (Cloudflare cites ~80% fewer tokens for the agent). It’s a paid feature — Pro plan and up, not the free tier — so on this site it’s one Cloudflare upgrade away from being switched on rather than something I’ve hand-built. Whether it’s worth switching on is the same open question that hangs over llms.txt itself: serving crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. a parallel Markdown copy of every page is convenient, but it’s another representation to keep in sync, and Bing’s Fabrice Canel has flagged the doubled crawl load and cloaking-adjacent risk of edge-served alternate content. Check your logs for real agent demand before flipping it.

llms.txt vs robots.txt — they are not the same thing

The single most common misconception is that llms.txt is “robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. for AI.” It isn’t, and conflating them leads to bad decisions.

robots.txtllms.txt
PurposeAccess control — what crawlers can fetchContent guidance — what’s useful to read
FormatDirectives (User-agent:, Disallow:)Markdown links + descriptions
Enforced?Yes, by compliant crawlersNo — advisory only
TimingCrawl time, before fetchingInference time, assembling context
A standard?Yes, decades old, universalNo — a proposal
Can it block?YesNo

robots.txt is a real, enforced standard. llms.txt is a suggestion box that most systems aren’t reading yet. If you want to control AI crawler access — which is a separate, legitimate goal — that lives in robots.txt and AI crawlersAI crawlers are bots from AI companies that fetch web pages to train language models, build AI-search indexes, or answer live user questions. They come in three categories, each with its own user-agent tokens and its own robots.txt controls., not here.

Who actually reads it

This is the section that matters, because it’s where the data diverges hardest from the hype. In Ahrefs’ study of 137,210 domains (May 2026 traffic):

  • 97% of published llms.txt files received zero requests. Only ~3% (about 1,100 domains) saw any traffic at all.
  • Of the files that did get requested: 96% of requests came from bots, 4% from humans.
  • Of the bot requests, 77% came from non-AI tools — SEO auditors (Ahrefs itself among them), anonymous crawlers, tech-profiling bots. The SEO irony writes itself.
  • Only ~19.5% came from AI tools, and once you break that down it gets worse for the GEOGenerative Engine Optimization — visibility inside AI answer engines. theory:
    • AI agents & infrastructure (coding agents): ~10.5%
    • Training crawlers (GPTBot led at 4.51%): ~5.3%
    • AI assistants: ~2.5%
    • AI retrieval bots — the ones that build citation indexes: 1.1%.

Read that last line twice. The bots most people add llms.txt for — OAI-SearchBot, PerplexityBot — “barely registered.” The dominant AI consumer is Claude Code, Anthropic’s coding agent, which the study found “outfetched every AI retrieval bot, assistant, and training crawler except GPTBot.” And GPTBot is a training crawler that crawls everything regardless — its presence isn’t evidence of intentional llms.txt parsing.

Other independent measurements land in the same place. OtterlyAI watched one site for 90 days: of 62,100+ AI bot visits, exactly 84 hit /llms.txt — about 0.1%, performing “3x worse than average pages.” A separate analysis of 515M+ LLM bot events over 90 days found 408 requests total targeting /llms.txt — “statistically negligible.”

The takeaway is the developer-docs-vs-GEO split: llms.txt works for what Howard built it for (coding agents navigating API docs), and it largely doesn’t get touched by the search-citation bots the SEO community wants it to reach.

What the providers have said

Google — no, and no plans. Gary Illyes confirmed at Search Central Live (July 2025) that Google doesn’t support llms.txt and isn’t planning to. John Mueller, the most-quoted voice here, compared it to the keywords meta tag (April 2025) and called it a “temporary crutch, perhaps to save some tokens” for AI coding tools — explicitly not a search-visibility mechanism. Google’s May 2026 guidance stated machine-readable files like llms.txt aren’t necessary for AI OverviewsAI Overviews are the AI-generated summary box Google shows above or within its regular search results, written by Gemini models from pages retrieved out of Google's normal Search index. It's a Search feature, not a separate platform or index. or AI Mode, which “continue to rely on traditional SEO signals.” (Google did briefly publish an llms.txt on its dev docs on December 3, 2025, then pulled it the same day — later attributed to a CMSA content management system (CMS) is software that lets users create, manage, and publish digital content — like blog posts and pages — without writing raw code. WordPress, Drupal, and Joomla are the most common open-source CMS platforms. update, not a strategy shift.)

OpenAI — nothing. No announcement that ChatGPT, GPTBot, or OAI-SearchBot parse it. Server logs contradict meaningful usage; OAI-SearchBot “barely registered.” OpenAI points people to robots.txt for crawler control.

Anthropic — the interesting one. Anthropic publishes both llms.txt and llms-full.txt at docs.anthropic.com/llms.txt, and Claude Code demonstrably fetches other sites’ llms.txt files — it’s the largest AI consumer in the data. But that’s a coding-tool story. There’s no confirmation that Claude.ai’s search or citation layer honors llms.txt. “Anthropic’s coding agent reads it” and “Anthropic’s search index trusts it” are different claims, and only the first is supported.

Perplexity — claims yes, data says rarely. Perplexity has stated it retrieves llms.txt and uses it to “prioritize page selection.” But proactive fetching is the catch: PerplexityBot “barely registered” in the request data, and there’s “almost zero activity from PerplexityBot requesting llms.txt files proactively.” Paste an llms.txt URL into Perplexity and it reads it fine; autonomous, proactive use is the gap between policy and practice.

Bing/Microsoft, Apple, Meta — no public position. Treat as unconfirmed.

Does it move AI citations?

No demonstrated benefit. SE Ranking modeled 300,000 domains with an XGBoost regression + SHAP analysis and found that removing llms.txt from the model improved its accuracy — their conclusion: “LLMs.txt doesn’t seem to directly impact AI citation frequency. At least not yet.” A Search Engine Land 10-site, 180-day study saw 8 of 10 sites show no measurable change, and the two “winners” had confounding changes (PR coverage, new FAQ pages, technical fixes) you can’t separate from the llms.txt itself.

The meta-keywords comparison — fair or not?

Mueller’s keywords-meta-tag analogy holds on the points that matter: both are site-owner self-descriptions, neither is verified, and both are open to gaming/cloaking — you could show one thing in llms.txt and another on the page. That manipulability is exactly why a serious AI searchAI search uses large language models and retrieval-augmented generation (RAG) to synthesize an answer from multiple sources rather than returning a ranked list of links. Examples include Google AI Overviews, ChatGPT Search, and Perplexity. product won’t trust a self-description over the actual pages. The counter-argument (Carolyn Shelby) is that llms.txt at least points to real URLs that have to deliver — it’s “a spotlight, not a wish list.” Both are right, and the practical result is the same: AI search systems don’t lean on it.

When it’s worth adding — and when to skip it

Add it if you run developer documentation or an API reference whose primary audience is AI coding agents (Claude Code, Cursor, Copilot, Codeium). That’s the use case it was built for, and it works.

Skip it — or at least don’t expect AI-visibility returns — for content sites, media, ecommerce, and ordinary business sites. The cost is ~20 minutes; the GEO benefit today is near-zero; and that 20 minutes is better spent on content structure, FAQ coverage, and the AI search optimizationAI search uses large language models and retrieval-augmented generation (RAG) to synthesize an answer from multiple sources rather than returning a ranked list of links. Examples include Google AI Overviews, ChatGPT Search, and Perplexity. fundamentals that actually move AI visibility. The high adoption headlines (BuiltWith’s 844K+ figure) are inflated by platform auto-deployment — Mintlify rolled llms.txt out to all its hosted docs sites at once. Adoption is not usage; 97% of files get zero requests.

The security angle

This is underreported and real: because AI agents are designed to trust what’s in llms.txt, the file is a natural attack surface. The Ahrefs study flagged bad actors probing llms.txt files for prompt-injection vulnerabilities. If you do publish one, treat it as security-sensitive: keep it in version control, alert on unauthorized changes, and never put anything in it you wouldn’t show publicly.

Implementing it (if you decide to)

  • Placement: /llms.txt at the domain root, served as text/plain or text/markdown, HTTP 200.
  • Curate, don’t dump: 20–50 of your most important links. If you list everything, a model might as well crawl directly — curation is the entire point.
  • Optionally serve /llms-full.txt for contexts that want all your content.
  • Validate: load the file into Claude, ChatGPT, or Perplexity and ask it to summarize your site; then check server logs after a few weeks for real requests.
  • Generators exist for VitePress (vitepress-plugin-llms), Docusaurus (docusaurus-plugin-llms), WordPress (“Website LLMs.txt”), Drupal, plus a Python CLI (llms_txt2ctx).

The bottom line: low cost, currently near-zero GEO benefit, genuinely useful for the coding-agent use case it was born for. Check your own server logs before you decide — if you’re seeing Claude-Code/Cursor traffic, llms.txt may help them; if you’re chasing OAI-SearchBot and PerplexityBot, it isn’t the lever.

TIP

Validate the file's proposed Markdown structure and catch references an agent cannot fetch directly with my free llms.txt Generator & Validator Free

  1. Paste or generate the curated file and run the structural checks.
  2. Replace relative or inaccessible references with public absolute URLs an external client can fetch directly.
  3. Verify the deployed response and linked resources separately; valid form does not mean any AI provider will read the file.
A structurally useful file needs directly fetchable references. Passing this check still does not show that an AI system discovers or uses the file.

The focused validator finding reports an error on line six: the link URL slash-private is not absolute, and llms.txt links should use absolute URLs an LLM can fetch directly.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.