An llms.txt file is one plain-text Markdown file you host at https://yourdomain.com/llms.txt, at the same level as robots.txt. Inside, you put an H1 of your brand, a one-line summary, a short block of core facts, and H2 sections of Markdown links to your most important pages with a description after each. Keep every fact identical to your live site, upload it to your domain root, confirm it loads over HTTPS without a login, then update it whenever pricing or products change. That is the whole job. It does not force any model to use it — it just makes you trivially easy to read correctly.
What does llms.txt actually do, and is it worth doing?
llms.txt is a single Markdown file that hands AI crawlers a curated map of your most important pages and facts, so they do not have to reconstruct your brand from messy HTML, nav menus, and cookie banners. It is the practical companion to the concept piece — if you are still deciding whether you need one at all, start with what is llms.txt and do you need it, then come back here to build it.
It is worth doing for a specific reason: most sites are genuinely hard for crawlers to read cleanly, which is the exact problem behind why AI crawlers can't see your website. A clean llms.txt sidesteps that by giving the crawler your facts in the simplest possible format. It is a low-effort, low-risk file — it costs you an afternoon and breaks nothing — so the honest framing is "cheap insurance," not "magic ranking lever."
Step 1 — What exactly do I put inside the file?
Write it in Markdown, in this order: an H1 with your brand name, a one-line blockquote summary, a short paragraph of the core facts a model would need to describe you correctly, then one or more H2 sections containing a bulleted list of Markdown links to your key pages, each with a short description after the link. That structure is the whole spec — readable by a human, parseable by a machine.
Here is a real skeleton you can adapt line for line:
Two rules make this work. Keep it short — link to depth instead of pasting whole pages — and keep every fact identical to what is on the live page it links to. A model that finds your price as one number here and a different number on the page will trust neither.
Step 2 — Where exactly do I upload it?
Upload it to the root of your domain so it resolves at https://yourdomain.com/llms.txt — the same place robots.txt lives. It must be one plain-text file, served over HTTPS, reachable with no login or paywall in front of it. The mechanics depend on your stack:
- Static sites (Astro, Hugo, plain HTML): drop
llms.txtinto your public/static folder and redeploy. - Cloudflare Pages / Workers: put it in the build output root, or serve it as a static asset route.
- WordPress / hosted CMS: upload it to the web root via your file manager or a plugin that allows root-level files.
Then verify by loading the URL in a private browser window. You want to see raw text, a 200 status, and a content type of text/markdown or text/plain — not an HTML page, not a redirect, not a 404. If your server returns it as text/html, add a small header rule so the file is served as plain text.
Step 3 — Should I also publish an llms-full.txt?
Optionally, yes. Some sites publish a second file, llms-full.txt, also at the root, that contains the actual content of their key pages as one long Markdown export rather than just links. The lean llms.txt is the index; llms-full.txt is the full text for a crawler that wants to ingest everything in one fetch.
Keep it simple: most brands only need llms.txt. Add the full version only if you have a documentation-heavy or knowledge-base site where handing over the complete corpus in one file is genuinely useful. If you do publish it, link to it from your main llms.txt so it is discoverable, and hold it to the same identical-facts standard.
Step 4 — How do I keep it from going stale?
Treat llms.txt as a source-of-truth file, not a set-and-forget artifact. The failure mode is not a broken file — it is a true-but-outdated file that now contradicts your live site, because contradictions are exactly what make a model distrust you. Build a tiny maintenance loop:
- Update on change: whenever pricing, products, or positioning move, edit llms.txt in the same commit.
- Quarterly link check: click every link in the file so none 404 after a URL change.
- Diff against live: compare the facts in the file to the live pages on a schedule so drift is caught before a crawler sees it.
This is the same discipline as keeping your structured data honest — llms.txt and schema are two formats saying the same true thing, and our guide to schema markup, the language AI actually reads, covers the other half. Use both; they reinforce each other.
What llms.txt will not do
It will not force any AI model to read or obey your file, and it is not yet a universally honored standard — adoption is uneven across crawlers. So do not expect a citation bump from the file alone. What it reliably buys you is removed ambiguity: when a crawler does fetch it, your facts are clean, consistent, and easy to lift, which removes a class of "the model got my brand wrong" errors. It is a foundation, not a finish line — the real wins still come from extractable on-page answers and consistent facts everywhere.
How does this fit the rest of the work?
llms.txt is one tile in a larger system. We run a single AI-visibility engine across more than 10 brands, and the file is step one of grounding: make your facts machine-readable, then make every page answer-first, then keep all of it consistent. On its own it is a 20-minute task; inside a real engine it is the clean handshake that makes everything downstream easier to read. If you want to know whether AI engines are even reading your site cleanly today — and where your facts conflict — a baseline audit is the fastest way to find out.
Questions people ask
Put it at the root of your domain so it resolves at https://yourdomain.com/llms.txt — the same level as robots.txt. It must be a single plain-text file, served as text/markdown or text/plain over HTTPS, reachable without a login. If you also publish a fuller export, name it llms-full.txt and host it at the root too, then link to it from llms.txt.
Use Markdown. Start with an H1 of your brand name, a one-line blockquote summary, a short paragraph of the core facts (what you do, who you serve, key numbers, pricing), then H2 sections containing bulleted Markdown links to your most important pages with a short description after each link. Keep facts identical to what is on your live pages so nothing conflicts.
Treat it like any other source-of-truth file: update it whenever pricing, products, or positioning change, and re-check the links quarterly so none 404. The fastest way to keep it honest is to generate it from the same facts your pages use, then diff it against the live site on a schedule so drift gets caught before a crawler sees a contradiction.
Want this done for you?
Not sure if AI engines read your site cleanly — or where your facts conflict? Start with an AI visibility audit.
Get a free AI Visibility Audit →