llms.txt Generator & Validator
llms.txt is the emerging standard AI agents (ChatGPT, Claude, Perplexity) check for a clean index of your site. Generate yours in a minute — or validate the one you already have.
Prefill from your sitemap (optional)
Your llms.txt
# Your Site
Upload it to your site root so it’s live at https://yoursite.com/llms.txt
llms.txt that maintains itself
A hand-written llms.txt goes stale on your next publish. Every site on Quillly serves an auto-updated llms.txt (and llms-full.txt) for all its content — plus schema, meta tags and submission to 8 search engines, on every publish.
Get cited by AI on autopilotRelated free tools
Browse all toolsPaste any URL and find out why it isn’t ranking: meta tags, content quality, AI-agent readiness, robots/sitemap, and Domain Rating — with a copy-paste diagnosis.
Check any domain’s authority score (DR by Ahrefs) free, see what it means for your rankings, and learn the fastest free ways to grow it.
Count words, characters, sentences, and paragraphs instantly with reading time estimate.
Notify Bing, Yandex, Seznam and Naver about new or updated pages instantly. Generate a key, verify it, and submit up to 100 URLs.
Quillly checks titles, metas, structure and snippets on every page, and tells you what to fix.
What is llms.txt?
llms.txt is a plain-markdown file you publish at the root of your site, at /llms.txt, that hands an AI assistant a clean index of what is worth reading on it. The convention is defined at llmstxt.org, and the shape is deliberately simple: an H1 with your site name, an optional one-line summary as a > blockquote, then ## sections grouping link lines written as - [Title](https://…): description.
It exists because an assistant asked about your product does not want your navigation, your cookie banner or your footer — it wants a short list of the pages that answer questions, with enough description to pick the right one. The companion file, llms-full.txt, goes the other way: instead of an index it contains the full markdown text of your content, for an assistant that would rather read everything in one request than crawl page by page.
How to use the generator and validator
- On the Generate tab, enter your domain and press Load pages. The tool reads your robots.txt for a declared sitemap, falls back to
/sitemap.xml, follows a sitemap index to its first child, and fills the table with up to 50 URLs - Add your site name and a one-line summary — these become the H1 and the blockquote
- Give each row a title and a short description, and delete the rows that do not earn a place. An index that lists everything is a sitemap, not an llms.txt
- Copy the output or download it, then upload it to your site root as
llms.txt - Switch to the Validate tab and enter any domain to check a file that is already live
What the validator checks
| Check | Severity | Why it matters |
|---|---|---|
| Missing H1 title | Error | The file has to open with # Your Site Name so a reader knows whose index it is |
| No link lines at all | Error | The link lines are the content — without them there is nothing to act on |
| A link without an absolute https:// URL | Error | Nothing can resolve a relative path from a plain text file |
| The file is HTML | Error | Usually a catch-all route serving your 404 page; llms.txt must be plain markdown |
| More than one H1 | Warning | The convention expects exactly one |
| H1 is not the first non-empty line | Warning | A reader that truncates keeps the beginning, so the title has to be in it |
No > summary blockquote | Warning | One line saying what the site is orients an assistant before it reads a single link |
No ## sections | Warning | Grouping links under headings like Docs or Blog is what makes the index skimmable |
| File larger than 50KB | Warning | llms.txt is an index; that much text belongs in llms-full.txt |
| No descriptions on any link | Info | Descriptions let a reader pick the right page without fetching every one |
How Quillly's own llms.txt is built
Nothing in it is typed by hand. The marketing pages come from a build-time page manifest, so a new or renamed page appears without anyone remembering to add it. The blog, docs and changelog entries are read live from the database. The list of what the product can do is generated from the tool registry, which means a retired tool cannot linger in the file as an instruction that then fails. It is rendered on request and cached for an hour.
The order matters as much as the contents: the file opens with what an agent needs — what the product does, when to reach for it, how to connect — before any page listing, because a reader that runs out of room keeps the beginning. That is the part a hand-written llms.txt usually gets backwards.
Frequently Asked Questions
Do AI assistants actually read llms.txt?
It is a convention rather than a ratified standard, and no major assistant has committed publicly to fetching it on every request. What it reliably does is give any agent that looks — and anyone who points one at your site — a clean, current index instead of raw HTML. The cost is one small text file.
What is the difference between llms.txt and llms-full.txt?
llms.txt is an index: a title, a summary, and grouped links with short descriptions. llms-full.txt is the content itself, the complete markdown text of your pages in one file. Keep the index small and put the bulk in the full variant.
Does llms.txt replace robots.txt or my sitemap?
No. robots.txt controls which crawlers may fetch what, and sitemap.xml is the machine list of every URL for search engines. llms.txt is a curated summary for a reader with a limited context window. Publish all three.
Where exactly does the file go?
At the root of your domain, so it resolves at https://yoursite.com/llms.txt. Serve it as plain text. If your host returns your HTML 404 page for unknown paths, the validator will flag it as an error rather than letting you believe it is live.
How often should I update it?
Whenever the set of pages worth reading changes — a new product page, a docs section, a cornerstone post. A hand-written file goes stale the next time you publish, which is the argument for generating it from your own content rather than maintaining it by hand.