Free tool
llms.txt generator and validator
The llms.txt generator builds an llms.txt file from your sitemap, with a title, a summary and your pages grouped into sections, ready to edit and publish. It also validates an existing llms.txt against the format line by line and says what each problem is. Free, no sign-up, and nothing is stored.
Inputattensira.com/llms.txt
- Size
- 100,331 bytes
- Title and summary
- Present
- ✓ Passes
- Sections
- 23, holding 425 links
- ✓ Passes
- Errors
- 0 (25 on 4 Oct: list items that are not links)
- ✓ Passes
- Warnings
- 0 (39 on 4 Oct: prose inside a section)
- ✓ Passes
7 days free · card required
Build your file
Seconds, on our server · Free, no sign-upFree, no sign-up, and the whole file is shown. Nothing is stored.
Inputattensira.com/llms.txt
- Size
- 100,331 bytes
- Title and summary
- Present
- ✓ Passes
- Sections
- 23, holding 425 links
- ✓ Passes
- Errors
- 0 (25 on 4 Oct: list items that are not links)
- ✓ Passes
- Warnings
- 0 (39 on 4 Oct: prose inside a section)
- ✓ Passes
Where does each line come from?
The links
Your sitemap, grouped into sections by the first path segment, shortest paths first, at most 25 links a section.
The title
Your og:site_name, or your homepage title.
The summary
Your homepage meta description. With none, the line is left blank for you to write, never guessed.
Does our own llms.txt pass?
It does now. On 4 Oct 2026 the validator found 25 errors in attensira.com/llms.txt; we moved the notes it flagged above the first section and ran it again on 5 Oct.
First error on 4 Oct, line 43, verbatim; it now sits above the first H2
- **Project** — one tracked brand and its domain. An API key is scoped to one project.
Our file carried a vocabulary list and notes on how we report numbers as bullets inside sections. The format says sections hold link lists, so the validator was right. The notes now sit above the first H2, where the format allows free text, and each section opens on its hub link instead of a sentence.
The format is a proposal that no major engine has said it follows, so a broken llms.txt costs little, and a correct one buys little. Fix it because it is cheap, not because it moves answers.
The run is the result panel at the top of this page. Read on 5 Oct 2026.
What is llms.txt, and does any engine read it?
llms.txt is a markdown file you publish at the root of your domain (https://example.com/llms.txt) that lists the pages on your site worth reading, with a one-line description of what the site is. It exists because a language model given your rendered HTML has to spend most of its context on navigation, cookie banners and boilerplate before it reaches anything you wanted it to read.
It is a proposal, published at llmstxt.org, not a standard any AI company has committed to honoring. We publish our own llms.txt and a longer llms-full.txt, which is why we built this tool. Being straight about its status matters: adopt it because it costs an hour and makes your site legible, not because someone promised you citations for it.
What does the format require?
The specification is short. A valid file has, in this order:
- An H1 with the name of the site or project. This is the only element the spec requires.
- A blockquote summary: optional, but it is the one line a model reads to decide whether the rest is relevant to the question it is answering. Write it deliberately.
- Optional prose giving more context. No headings in this part.
- H2 sections, each containing a markdown list of links in the form
- [name](url): optional notes. - A final section named
Optional, if you want one. Its links are the ones a model should drop first when it needs a shorter context.
# Attensira > Attensira is software that does your AI-search visibility work. A crew of AI agents > finds gaps, drafts fixes, and ships only what you approve. ## Core pages - [Home](https://attensira.com/) - [Pricing](https://attensira.com/pricing) ## Tools - [Schema markup validator](https://attensira.com/tools/schema-validator) - [XML sitemap validator](https://attensira.com/tools/sitemap-validator) ## Optional - [Glossary](https://attensira.com/glossary)
The validator checks exactly those rules and reports the line number for each failure. It does not score the file: a spec is followed or it is not, and a percentage in between would be a number we invented.
How would the crew ship a fix like ours?
Inside Attensira, a change to a file crawlers read ships as a pull request you approve. GitHub delivery.
llms.txt: move the vocabulary notes above the first section
attensirawaits for your review
public/llms.txt
- unchanged: > For the complete documentation index, see …
- removed: ## Vocabulary
- added: **Vocabulary.** These are the exact nouns Attensira uses in its app, REST API and MCP server. …
- unchanged: - **Project** — one tracked brand and its domain. An API key is scoped to one project.
Web engineer · would hand you a pull request like thisExample · the kind of change this finding calls for, not one that shippedHow does the generator build your file?
Nothing here is written by a model. The generator is deterministic (the same site produces the same file), and every value in the output comes from something it actually read:
- It finds your sitemap: the URL you gave it, or a
Sitemap:line in yourrobots.txt, or/sitemap.xml,/sitemap_index.xmland/sitemap-index.xmlin that order. - If that is a sitemap index, it reads the first five child sitemaps and says so in the result.
- URLs are grouped into sections by their first path segment:
/blog/*becomes a Blog section,/docs/*becomes Documentation. Shortest paths come first, because a section root is usually more useful than a leaf. - Link text comes from the last path segment, de-slugified. The H1 comes from your
og:site_nameor your homepagetitle. The summary comes from your homepage meta description; if you have none, the line is left blank for you to write rather than filled with a guess. - Sections are capped at 25 links so the file stays readable.
Treat the output as a first draft. A generated list of every URL on your site is not an llms.txt worth publishing. The value of the file is in what you leave out.
How do you get the file right?
| What it shows | Why | What to do |
|---|---|---|
| An HTML page instead of the file | Why: The file was never deployed, and a catch-all route answered with a 200. | What to do: Deploy the file and serve it as text/plain. |
| List items that are not links | Why: Notes written as bullets inside a section. Sections hold link lists. It was the error in our own file until 5 Oct 2026. | What to do: Move the notes above the first H2, where the format allows free text. |
| Relative URLs | Why: A model reading the file has no base to resolve them against. | What to do: Use absolute URLs only. |
| No summary, or a generated one | Why: The summary is the highest-leverage line in the file. | What to do: Write one sentence yourself: what the site is and who it is for. |
| Thousands of links, or links that 404 | Why: The file lists everything, or was written once and drifted. | What to do: Curate: twenty pages that answer real questions beat two thousand URLs. Generate the file in your build. |
| Using it to keep crawlers out | Why: llms.txt invites reading; it cannot prevent it. | What to do: Decide which crawlers may fetch your pages in robots.txt. robots.txt generator |
Questions people ask about llms.txt
Do ChatGPT, Claude or Perplexity actually read llms.txt?
None of them has publicly committed to it. Adoption today is on the publishing side (many sites, including this one, ship the file), and support on the consuming side is unannounced. The honest position is that this is a low-cost bet on a format that may become conventional, not a lever with measured returns. We know of no published measurement of a citation uplift from llms.txt, so ask for the source of any figure you are quoted.
How is it different from robots.txt?
robots.txt is permission: which crawlers may fetch which paths. llms.txt is curation: which pages are worth reading and what the site is about. They answer different questions and you want both. Blocking a crawler in robots.txt while listing pages for it in llms.txt is a contradiction.
What is llms-full.txt?
A companion convention: the same index expanded to include the full markdown body of each listed page, so a model can read the content without a second fetch. It is larger and goes stale faster. Start with llms.txt; add the full version only if you can generate it from the same source your pages come from.
Should the file be in my sitemap?
No. It is not a page for human readers and does not need to be indexed. Publish it at the root path and leave it out of the sitemap.
Do you store the sites I run this against?
No. The sitemap is fetched and the file assembled inside the request, then returned to your browser. There is no email field, no account and no saved history. The shareable link just re-runs the same request.
This builds the file. Attensira's crew keeps it valid.
7 days free · card required