AI Discoverability

llms.txt: What It Is, What It Is Not, and How to Create One

llms.txt is a proposed Markdown index for LLM-friendly website context. It can be a useful map, but it is not access control, a guaranteed crawler directive, or a shortcut around good site architecture.

5 min read916 words

Key takeaways

  • Treat llms.txt as an optional, emerging navigation aid—not an official universal standard.
  • Keep the file concise, factual, public, and linked to canonical source pages.
  • Do not expect llms.txt to override robots rules, access controls, indexing decisions, or content quality.
  • Publish llms.txt through the same reviewed release path as robots.txt, sitemaps, and other root-level discovery files.

What llms.txt is

The llms.txt proposal places a Markdown-formatted file at the root of a website, usually /llms.txt. It gives a short explanation of the site and a curated list of important resources. An optional llms-full.txt can provide expanded context when a concise index is not enough.

The useful mental model is a guided map for tools that choose to read it. It can summarize what the organization does, point to canonical documentation, and make high-value resources easy to locate without interpreting a complex navigation system.

What llms.txt is not

It is not the same as robots.txt. It does not provide authentication, grant a content license, or universally control training and search crawlers. It is also not a confirmed ranking factor across AI or traditional search systems. Provider support and behavior can vary.

Do not let the file become a substitute for crawlable pages, a valid sitemap, clear navigation, structured data, or helpful content. If the linked pages are blocked, vague, stale, or contradictory, a perfect index cannot repair them.

FilePurposeAuthority
llms.txtCurated LLM-friendly site mapOptional proposal; support varies
robots.txtCrawler access preferencesRecognized by compliant crawlers
sitemap.xmlCanonical URL discovery inventoryEstablished search discovery mechanism
llms-full.txtExpanded readable contextOptional companion convention

A practical llms.txt structure

Begin with one H1 containing the site or product name, followed by a short blockquote that explains the primary purpose. Add one or two paragraphs of factual context. Then create H2 sections with Markdown links to important pages and a plain-language description after each link.

Prefer canonical public pages: product overview, documentation, API reference, key guides, pricing, company information, contact, and policies. Keep the list intentionally small. A dump of every URL recreates the sitemap in a less structured format.

  • # Example Product
  • > Example Product helps engineering teams monitor public APIs.
  • ## Documentation
  • - Getting Started - Install and configure the product.

How to create and maintain the file

Build the file from the same content registry or CMS that produces navigation and the XML sitemap. Validate URLs during the build, use absolute HTTPS links, and deploy it with a text/plain or Markdown-compatible content type. Keep it outside authentication and redirect loops.

Assign an owner and update the file when products, documentation paths, pricing, or policies change. A stale AI context file can be worse than no file because it creates a confident path to obsolete information.

  • Request /llms.txt and confirm a 200 response.
  • Check every link for status, canonical destination, and public access.
  • Compare the descriptions with visible page content and structured data.
  • Avoid secrets, internal instructions, customer data, and unsupported marketing claims.

Where llms.txt fits in an optimization backlog

Publish llms.txt after the technical and editorial foundation is sound. Fix unintended blocking, inaccessible content, ambiguous brand identity, thin documentation, missing author information, and broken internal links first. Those improvements help humans, search engines, and multiple AI systems regardless of llms.txt support.

For a documentation-heavy product with an existing content registry, generating the file can be a low-effort enhancement. For a five-page brochure site with unclear copy, rewriting the core pages is more valuable than adding another discovery file.

Serve llms.txt from S3 and CloudFront

A static llms.txt file fits naturally in S3 behind CloudFront, but the operational details still matter. Serve it from the canonical hostname at `/llms.txt`, use a plain-text content type, keep the body human-readable, and make the cache lifetime short enough that important documentation changes propagate predictably. Publish a more detailed companion only when the site can maintain it accurately.

Use a private S3 bucket with CloudFront origin access control for production rather than a public website bucket. Deploy the file with infrastructure or content releases, verify the public object after upload, and alert when it becomes missing or unexpectedly empty. The cost-conscious AWS web architecture shows how static delivery and a serverless backend can remain cleanly separated.

The file should point to useful canonical pages, not attempt to replace crawlable navigation. Include the homepage, documentation or product overview, important policies, and a few durable knowledge hubs. Revisit the selections during the AI visibility audit, and remove destinations that redirect, disappear, or no longer represent the best source.

  • Return 200 and `text/plain` from the canonical HTTPS hostname.
  • Keep every listed destination indexable, stable, and self-canonical.
  • Automate a public fetch check after deployment.
  • Treat llms.txt as a maintained guide, not a guarantee of inclusion.

Common questions

Frequently asked questions

Is llms.txt an official web standard?

No. It is an emerging proposal and convention. Support is not universal, so publish it as an optional aid rather than a guaranteed optimization.

Does llms.txt improve Google rankings?

There is no basis for treating llms.txt as a ranking switch. Google guidance emphasizes established SEO and helpful content and says unnecessary AI text files can be ignored for its generative search features.

What is the difference between llms.txt and llms-full.txt?

llms.txt is intended as a concise overview and curated link index. llms-full.txt is an optional expanded context file for sites with deeper documentation or product information.

Go deeper

Tools and related resources

Continue the topic