AI builder5 min read·826 words

How to publish an llms.txt manifest for AI search

Overview & Key Takeaways

What the manifest is, what it is derived from, and why publishing — not writing it — is the whole procedure.

An llms.txt manifest is a Markdown file that tells an answer engine what a site is and what it contains, in a form the engine can read without crawling the whole site. This is how to publish one.

The short version: you publish, and it is generated

There is no file to write. The manifest is derived from the published site, so the procedure is the same as the procedure for publishing anything else:

  1. Publish your site. The manifest is generated from the live, published

version of the site — the same version a visitor gets. A draft page is not in it, because it is not in the site.

  1. Fetch /llms.txt on your domain. It is served there, and it is

served to everyone, with no login and no gate.

  1. Fetch /llms-full.txt for the longer form. The short form is a

directory; the full form adds the section-level detail.

That is the whole procedure, and it is deliberate: a manifest that can be edited by hand is a manifest that can disagree with the site, and a document that disagrees with the site is worse than no document.

What the manifest contains

  • The site name as an H1, and a blockquote summary taken from the site's

tagline.

  • A page directory. Every published page with its title, its URL, and its

description — the same description the page carries.

  • The FAQs, collected from the FAQ sections across the site, each as a

question with its answer. This is the highest-signal part of the file, and it is only there if the site actually has FAQ sections.

  • Pricing and plans, when the site has pricing sections, with each tier,

its price, its period and its features.

  • Contact details and social links, when the site has them.
  • The site's own MCP endpoints, declared as tools.

What the file looks like

A small practice, published:

markdown
# Portland Family Dental > Gentle dentistry for families in Southeast Portland. ## Pages - [Home](https://yourbrand.com/): Family dentistry in Southeast Portland — same-week appointments, most insurance accepted. - [Our Team](https://yourbrand.com/team): The dentists and hygienists behind the practice. - [Book an Appointment](https://yourbrand.com/book): Request an appointment and the practice will call you back. ## Frequently Asked Questions ### Do you take new patients? Yes. Call the practice on (503) 555-0142 and we will find you a slot, usually within the week. ### How often should a child see a dentist? Every six months, the same as an adult. Children's teeth move and cavities form faster. ## Pricing & Plans ### Payment options - **Most insurance accepted** - We bill your insurer and you pay the copay - An estimate before any treatment begins ## Contact & Links - Email: hello@yourbrand.com - Facebook: https://facebook.com/yourbrand ## AI Agent Interface (Model Context Protocol) This site exposes a native MCP server for autonomous AI agents, tool invocation, and direct factual querying: - **MCP Endpoint**: [https://yourbrand.com/api/mcp](https://yourbrand.com/api/mcp) (JSON-RPC 2.0 / HTTP) - **Discovery**: [https://yourbrand.com/.well-known/mcp](https://yourbrand.com/.well-known/mcp) - **Protocol Version**: `2024-11-05` - **Available Tools**: - `search_content(query)`: Keyword and semantic search across all pages - `get_faqs(topic?)`: Retrieve verified question & answer pairs - `get_offerings()`: Retrieve pricing tiers, packages, and services - `get_contact_info()`: Retrieve official communication channels - `submit_inquiry(name, email, message)`: Submit verified customer inquiries

Every line of it came from something on the site. The H1 is the site's name, the summary is its tagline, the page list is its navigation, the questions are the ones the FAQ section already answers, and the prices are the prices the pricing section already shows. The file adds no claims of its own, which is the point of generating it.

What it does not do

  • It does not make a site rank. It is not a ranking signal, and no engine

has said it is one.

  • It does not replace a sitemap, a crawlable HTML page, or structured data.

It is a readable summary of a site that already has all three.

  • It does not include drafts, private pages, or anything the site does not

serve publicly.

How to check it is right

  1. Fetch it and read it as an answer engine would. If a sentence in the file

would be a bad answer, it is a bad answer.

bash
$ curl -s https://yourbrand.com/llms.txt | head -6 # Portland Family Dental > Gentle dentistry for families in Southeast Portland. ## Pages
  1. Compare the page list against your own navigation. A manifest missing a

page you care about usually means that page is not published.

  1. Check the FAQ section against your live FAQ. It is generated from the

FAQ sections, so a stale answer here is a stale answer on the site.

  1. Check the canonical host. The manifest is served on the site's own

domain; a copy on another domain is a copy that will drift.

Experience edge-native speed on your domain

Sub-50ms TTFB, Anycast BGP routing, and automatic Let's Encrypt certificates across 330+ locations.

Deploy in 60 seconds

Related guides & connected surfaces