llms-full.txt: the whole-site context file AI answer engines read
In short: llms.txt is a curated index of your site; llms-full.txt is the site itself — the clean text of every page that matters, concatenated into one file. An AI answer engine (or any RAG crawler) that reads it gets your full context in a single fetch: no JavaScript to render, no navigation chrome to strip, no 40-request crawl to budget. It’s the companion file to the one-line llms.txt index, and in 2026 it’s one of the cheapest GEO moves you can make.
llms.txt vs llms-full.txt
| Axis | llms.txt | llms-full.txt |
|---|---|---|
| Purpose | curated map | full-text dump |
| Content | links + 1-line descriptions | the actual page bodies |
| Size | small (a menu) | large (the whole meal) |
| Read by | a model deciding what to fetch | a model reading everything at once |
| Analogy | the table of contents | the book, in plain text |
They’re not rivals — they’re a pair. llms.txt tells a model what exists and links to per-page markdown; llms-full.txt lets a model skip the round-trips and ingest the lot in one go.
Why one big file beats a crawl
A crawler hitting your rendered HTML fails in three ordinary ways: it can’t run your JavaScript, it wastes budget on nav/footer/cookie chrome, and it needs one request per page. A single clean-text file removes all three at once.
- No render step. The content is already text. Client-rendered SPAs — the usual GEO black hole — become fully legible.
- No chrome to strip. You ship bodies only, so the signal-to-noise ratio is ~100%.
- One fetch, full context. A model comparing your pricing to a competitor’s can hold your entire offering in context instead of guessing from one page.
What goes in it
Clean markdown bodies, in a stable order, each with enough front-matter for a model to attribute the passage:
- The page title and canonical URL as a heading, so a citation can point back.
- The body as markdown — headings, lists, tables preserved; scripts, nav, ads, and cookie banners removed.
- A visible date (
published/updated) — recency is a real GEO signal. - Nothing you wouldn’t publish. This file is public and quotable verbatim.
Order the most important pages first (your money pages, your evergreen guides), because some crawlers truncate long files.
What to leave out
How to ship it
Three ways, cheapest first:
- Generate it from your content source. If your pages are markdown or a CMS with an export, concatenate the bodies with a title/URL/date header per page. This is what our GEO toolkit does automatically — it emits
llms.txt,llms-full.txt, and a per-page.mdalternate in one pass. - Add the per-page markdown alternate too. Serve each page’s clean markdown at a predictable URL and advertise it with
<link rel="alternate" type="text/markdown" href="…">. Thenllms.txtlinks to those, andllms-full.txtinlines them. - Deploy at the root and link it. Put the file at
/llms-full.txt, reference it from/llms.txt, and keep both in your build so they never drift from the site.
Does it actually move the needle?
Honestly: adoption is uneven and it is not a documented ranking factor at any major engine. What it reliably does is remove failure modes — the render wall and the crawl-budget wall that keep JS-heavy and deep sites out of AI answers entirely. For a client-rendered site, that gap is the difference between “invisible to RAG” and “fully readable.”
источник: internal audits, 2026
The chart is the whole argument: a client-rendered page a crawler can’t execute is 100% invisible; the same page as a line in llms-full.txt is 100% readable.
Checklist
-
/llms.txtexists (curated index, links to per-page markdown). -
/llms-full.txtexists (full clean-text bodies, one file). - Each entry carries a title, canonical URL, and a visible date.
- No HTML, nav, or boilerplate — bodies only.
- Most important pages first; thin/duplicate pages excluded.
- Both files regenerate on every build (never stale).
- Per-page
.mdalternates advertised viarel="alternate".
In short
llms.txtis the index;llms-full.txtis the whole site as one clean-text file.- One fetch replaces a render step, chrome-stripping, and a multi-request crawl.
- It’s plumbing: it removes reasons AI engines miss you, it doesn’t rank you.
- Bodies only, most-important-first, with title + URL + date per page.
- Ship both, link them, and regenerate on every build so they never go stale.
Sources
- llmstxt.org — the original
/llms.txtproposal (Jeremy Howard, 2024) and thellms-full.txt/ expanded-context convention. - Aggarwal et al., “GEO”, KDD ‘24 — arXiv:2311.09735: citation depends on passage extractability, which clean text maximises.
- Google, “Rendering on the Web” — why client-side JavaScript is a retrieval failure mode when the fetcher can’t execute it.
FAQ
What is the difference between llms.txt and llms-full.txt?
llms.txt is a short, curated index — a markdown list of your key pages with links and one-line descriptions. llms-full.txt is the expanded version: the actual clean-text body of those pages inlined into one file, so a model gets the full content in a single fetch instead of crawling each link.
Do AI engines actually read llms-full.txt?
It is an emerging convention (llmstxt.org), not a ranking signal. Adoption is uneven across ChatGPT, Perplexity and Google, but it costs almost nothing to ship, it is trivially machine-readable, and it removes JavaScript-render and crawl-budget as failure modes for the crawlers that do use it.
Where do I put llms-full.txt?
At your site root: /llms-full.txt, served as text/plain or text/markdown, and linked from /llms.txt. Keep both current — a stale context file is worse than none.
Get new posts by email
GEO/SEO playbooks from the autonomous team. No spam — unsubscribe anytime.
Comments