What Is llms.txt? The Complete 2026 Guide, with a Working Example
llms.txt is a plain Markdown file at the root of a website that tells large language models what the site is and where its most useful content lives. It sits at /llms.txt, next to robots.txt and sitemap.xml, and it is written for a reader that has a limited context window and no patience for navigation menus, cookie banners or JavaScript. This guide covers where the format came from, the exact structure, a full example you can adapt, the companion llms-full.txt file, and an honest account of what it does and does not do for you in 2026.
Key facts
- 2024 — Year the llms.txt proposal was published by Jeremy Howard of Answer.AI
- 1 file — Plain Markdown at /llms.txt, no special software needed
- H1 + blockquote — The only two parts the proposal treats as required
- 0 — Guarantees: no AI provider is obliged to read it
Where llms.txt came from
The proposal was published in September 2024 by Jeremy Howard, co-founder of Answer.AI and fast.ai, at llmstxt.org. The problem it describes is simple: a website is built for people with browsers, and a language model reading it has to wade through navigation, scripts, adverts and layout to find the few paragraphs that matter. Context windows are finite, so that waste costs accuracy.
The idea was to give models a short, curated, Markdown summary of a site, written by the people who know it best, with links to the pages worth reading. Documentation sites adopted it first because developers were already pasting docs into AI assistants. Since then it has spread to SaaS products, agencies, publishers and local businesses, and several SEO plugins and site builders now generate one automatically.
The exact structure
The format is deliberately small. In order, an llms.txt file contains:
- An H1 with the name of the site or project. This is the only element the proposal treats as strictly required.
- A blockquote with a short summary containing the key information needed to understand the rest of the file.
- Optional free text (paragraphs or lists, but no headings) with more detail on how to interpret the site.
- Zero or more H2 sections, each a list of links in the form
- [Title](url): optional note. - An optional section literally titled
## Optional, for links a model can skip when it is short on context.
That is the whole specification. Because it is plain Markdown, a person can read it too, which is a useful test: if a new employee could not understand your business from your llms.txt, a model will not either.
A working example for a small business
Here is a complete file for a fictional roofing company. Adapt the facts, keep the shape:
# Peak Roofing
> Family-run roofing contractor in Jupiter, Florida, serving Palm Beach
> and Martin counties since 2009. Licensed and insured. Free written
> estimates within 48 hours. Phone: 561-555-0101.
We repair and replace shingle, tile and metal roofs for homes and small
commercial buildings. We do not do gutters or solar installation.
Opening hours: Monday to Friday 7am-5pm, Saturday 8am-12pm.
## Services
- [Roof repair](https://example.com/roof-repair/): leaks, storm damage, flashing
- [Roof replacement](https://example.com/roof-replacement/): tile, shingle, metal
- [Inspections](https://example.com/inspections/): insurance and pre-sale
## Company
- [About us](https://example.com/about/): history, licences, team
- [Service area](https://example.com/areas/): every town we cover
- [Contact](https://example.com/contact/): phone, form, address
## Optional
- [Blog](https://example.com/blog/): maintenance guides and storm adviceNotice what is in the summary: what the business is, where, since when, the one action a customer takes, and a phone number. Notice what is in the free text: what you do not do. Negative facts stop an assistant from recommending you for work you will turn down.
llms.txt vs llms-full.txt
The proposal also suggests that sites can offer Markdown versions of individual pages, and a common companion convention has grown up around it: /llms-full.txt, a single file containing the full text of the important pages, concatenated. The split works like this:
- llms.txt is the map. It is short, curated and links outward. A model reads it to decide what to fetch.
- llms-full.txt is the territory. It contains the content itself, so a model (or a developer pasting into a chat) gets everything in one request.
For a small site, llms-full.txt can be a few thousand words. For a large one, keep it to the pages that answer real questions; a 5 MB file defeats the point. We publish both on this site; you can see how they are put together on our agent-ready page.
How it differs from robots.txt and sitemap.xml
The three files are often confused, because they live side by side and all three are read by machines. They do different jobs:
- robots.txt is about permission. It tells crawlers which paths they may fetch. It says nothing about what the site is. (See our guide to robots.txt for AI crawlers.)
- sitemap.xml is about completeness. It lists every URL you want indexed, with last-modified dates. It is exhaustive and unranked.
- llms.txt is about understanding. It is selective, it is written in prose, and it tells a model what matters and why.
You want all three. A sitemap with 28,000 URLs is the right thing to give a search engine and the wrong thing to give a model that has to answer one question.
Who actually reads llms.txt?
This is where honesty matters. As of October 2026, no major AI company has published a commitment that its crawlers or assistants use llms.txt when answering questions, and Google representatives have publicly said Google Search does not use it. What we can say with confidence is narrower:
- Agents and developer tools fetch it. Coding assistants, documentation tools and agent frameworks increasingly look for
/llms.txtwhen pointed at a site, and some MCP-based tools read it directly. - People paste it. Asking an assistant to "read example.com/llms.txt and summarise this business" works today, with every assistant that can browse.
- Server logs show requests. On our own site, AI user agents request llms.txt and llms-full.txt; the full numbers are in our agent-readiness experiment.
So treat llms.txt as cheap insurance and a good discipline, not a ranking lever. It takes an hour to write well, it costs nothing to serve, and writing it forces you to state your business clearly, which helps every other channel too.
Writing a good one: seven rules
- Lead with facts, not slogans. "Award-winning solutions" tells a model nothing. "Roofing contractor in Jupiter, FL since 2009" tells it three things.
- Use absolute URLs. Relative links break when the file is pasted elsewhere.
- Link to pages that answer questions: services, pricing, areas, FAQs, contact. Skip tag archives and legal boilerplate.
- Say what you do not do.
- Keep it current. A wrong phone number in llms.txt is worse than none. Regenerate it when your site changes.
- Serve it as
text/plainortext/markdownin UTF-8, with a 200 status and no redirect chain. - Link it from the page head if you like (
<link rel="alternate" type="text/markdown" href="/llms.txt">is a common convention), and mention it in robots.txt comments so humans find it.
Generating it automatically
Hand-written files go stale. The better approach is to generate llms.txt from the same source as your pages, so a price change on the site is a price change in the file. That is how we do it:
- Every site published on AIWebBuilding gets an llms.txt generated from its own content, rebuilt on every publish.
- The AI Indexing Pack ships llms.txt, agents.txt and agent cards for any PHP site, and the WordPress edition builds them from your posts and pages.
- WebAgentScan checks whether yours exists, parses, and links to live pages, as part of its score out of 100.
Product facts: the AI Indexing Pack
Stated plainly, so it can be checked against the product page:
- What it is: the AI Indexing Pack is a set of files you upload to your own website. It is sold by Built2WinWeb as a one-time purchase, with no subscription.
- What it ships: (1) a working MCP server using the Streamable HTTP transport, with typed output schemas and tool annotations; (2) Markdown content negotiation, so agents can request a clean text version of each page; (3) llms.txt, agents.txt and agent cards; (4) the full
/.well-known/discovery tree; (5) OAuth protected-resource metadata; (6) bot access control that verifies crawler identity; (7) a README with a verification checklist. - Requirements: PHP 7.4 or newer, Apache or LiteSpeed with
.htaccesssupport, FTP access, and a domain you control. Installation takes about 30 minutes. - What it is not: it is not a WordPress plugin (that is the separate WordPress edition, which needs WordPress 6.0+ and PHP 8.0+), it does not write content for you, it does not guarantee rankings or citations, and it is not a managed service.
- Free routes in: sites built on AIWebBuilding get the core built in, and a 50-day streak on FreeAIBoost unlocks the pack for one domain. Current prices are on the product pages.
Related reading
Frequently asked questions
What is llms.txt?
llms.txt is a Markdown file served at the root of a website (/llms.txt) that gives large language models a short, curated summary of the site and links to its most useful pages. It was proposed by Jeremy Howard of Answer.AI in September 2024.
Is llms.txt an official standard?
No. It is a community proposal published at llmstxt.org. It is not an IETF or W3C standard, and no AI provider is obliged to read it.
Does Google use llms.txt?
Google representatives have said publicly that Google Search does not use llms.txt. It will not change your Google rankings.
What is the difference between llms.txt and llms-full.txt?
llms.txt is a short index that links to pages. llms-full.txt is a companion convention that contains the full text of the important pages in one file, so a model can read everything in a single request.
Where does llms.txt go?
At the root of your domain, so it loads at https://yourdomain.com/llms.txt, served with a 200 status as plain text or Markdown in UTF-8.
Can llms.txt hurt my site?
Only if it is wrong. An outdated price or phone number can be repeated by an assistant. Generate it from your site content or review it whenever the site changes.
How do I check my llms.txt?
Open it in a browser, confirm every link returns 200, and run a scan on WebAgentScan, which checks llms.txt as part of its AI-readiness score.
Want this done for your site?
Score your site on WebAgentScan, or ask us to set up the AI Indexing Pack for you.
Get a free quote