llms.txt generator and validator
This llms.txt generator and validator checks whether your site publishes an llms.txt file and whether it follows the proposed format: one H1 title, a summary line, section headings and Markdown links. If you have no file, it drafts a starter llms.txt from your sitemap that you can edit, then upload to your site root.
- Checks
- 6 format checks
- Starter from
- up to 40 sitemap URLs
- Cost
- free, no signup
Six format checks
These run when an llms.txt file is found at the site root
-
Not runSingle H1 title—
Why it mattersThe proposal starts the file with one H1 naming the site or project; it is the only required section. Zero leaves the file unnamed, and several make it unclear which is the title.
How to fixKeep exactly one line that starts with "# ", at the top. The check counts every line starting "# ", including inside code samples, so avoid those too.
-
Not runSummary blockquote—
Why it mattersA one-line summary in a blockquote under the title is the quickest way to tell a model what the site offers and who it is for.
How to fixAdd a line starting "> " directly under the title, describing the site in one plain sentence.
-
Not runSection headings—
Why it mattersH2 sections group links the way a person would ask about the site, such as Docs, Products or Guides.
How to fixAdd at least one "## " heading and group your links under headings that match how buyers ask.
-
Not runMarkdown links—
Why it mattersLinks are what the file is for. The check counts links written as [text](https://…) with an absolute address.
How to fixWrite each entry as a list item: - [Page name](https://yourbrand.com/page/): a short note on what it covers. Use full URLs, not relative paths.
-
Not runReasonable size—
Why it mattersThe file is meant to be a curated short list. One that runs to hundreds of kilobytes is a sitemap under another name.
How to fixStay under 500,000 bytes. A few dozen annotated links is usually enough; move secondary pages to an Optional section.
-
Not runServed as text/plain—
Why it mattersThe file should be served as plain text at the root, like robots.txt.
How to fixThis check always passes once the file is read; it does not inspect your Content-Type header. Check that header yourself in the browser's network panel.
Informational only: the tool does not read the Content-Type header.
Your file and a starter draft
The first 1,200 characters of your llms.txt and a starter built from your sitemap
Nothing to show yet. After a check, the start of your current llms.txt appears here, followed by a starter file drafted from your sitemap with copy and download buttons.
What a valid llms.txt contains
The format was proposed by Jeremy Howard on 3 September 2024 at llmstxt.org. It is plain Markdown in a fixed order. Only the H1 is required; everything else is recommended structure that makes the file useful.
| Part | Required | What it looks like |
|---|---|---|
| H1 title | Yes | # Your site name, once, at the top |
| Summary blockquote | Recommended | > One sentence on what the site offers |
| Detail paragraphs | Optional | Plain Markdown with no headings, for context a model should know |
| H2 file lists | Recommended | ## Docs followed by - [Name](https://…): note items |
| Optional section | Optional | ## Optional for secondary links an agent can skip |
Title, summary, sections and absolute links all present, at a sensible size.
Usually a missing summary line or no section headings. Functional, but the most useful line is missing.
Nothing at /llms.txt. Use the starter draft, edit the summary and sections, and upload it.
The file goes at the site root (/llms.txt). The proposal also allows files in subpaths, such as /docs/llms.txt, but this tool checks the root only. A response counts as found only if it returns HTTP 200 and is not an HTML page.
How to create and publish llms.txt
Ten minutes for a small site. The draft is a starting point; the summary and grouping need a human.
-
Step 1
Check the domain
Enter your domain. If an llms.txt exists, you see the six checks and the first 1,200 characters. Either way, the tool reads /sitemap_index.xml or /sitemap.xml.
-
Step 2
Take the starter draft
From the first 40 page URLs in your sitemap, the tool drafts a file with your domain as the title, a placeholder summary and a Key pages list named from each URL slug. If your sitemap only lists other sitemaps, add pages by hand.
-
Step 3
Write the summary line
Replace the placeholder with one plain sentence on what the site offers and who it is for. If this is hard to write, the problem is positioning, not the file.
-
Step 4
Group and annotate the links
Split Key pages into H2 sections such as Services, Guides and Research, cut low-value pages, fix the names, and add a short note after each link. Check that the Contact link in the draft exists on your site.
-
Step 5
Upload and re-check
Save the file as llms.txt at your site root, served as plain text, then run the check again to confirm all six checks pass.
Why publish llms.txt, and what it will not do
A language model answering a question pulls a handful of pages and assembles an answer. Without guidance it infers how your site is organised from navigation labels and page titles, and tag archives or thin pages compete with your best work. llms.txt makes the hierarchy explicit: one summary of what you do, and a curated, annotated list of the pages worth reading.
It does a different job from robots.txt. robots.txt restricts what crawlers may read; llms.txt points to what is worth reading. The two should agree, so check your AI crawler access as well: an llms.txt listing pages that robots.txt blocks helps no one.
It is a young convention, not a ranking factor. Adding it does not make a page rank or guarantee a citation, and anyone selling it as a ranking lever is overstating it. It is still worth ten minutes: it costs almost nothing, it is easy to reverse, and writing it forces you to say clearly what your site is for.
What the tool does
- Fetches /llms.txt from the site root and runs six format checks
- Shows the first 1,200 characters of the current file
- Reads up to 40 URLs from your sitemap
- Drafts a starter file you can copy or download
What it does not do
- Check llms.txt files in subfolders
- Inspect the Content-Type header
- Check that the linked pages exist or load
- Read sitemaps nested inside a sitemap index
- Write your summary or page notes for you
Review the file before publishing?
Check the proposed file against your canonical pages and publishing setup before you add it to the site.
llms.txt, answered plainly
Short, standalone answers. Email editorial@moxseo.com if any of them is wrong.
What is llms.txt?
llms.txt is a proposed Markdown file, published at a site's root, that tells language models what the site is and which pages are worth reading. It starts with an H1 title and usually has a one-line summary in a blockquote and H2 sections of annotated links. It was proposed by Jeremy Howard in September 2024 at llmstxt.org.
Where does the llms.txt file go?
At the root of your site, served as plain text, for example yourdomain.com/llms.txt, the same location convention as robots.txt. The proposal also allows files in subpaths such as /docs/llms.txt, but this tool checks only the root.
What does the validator check?
It checks for exactly one H1 line, a summary line starting with a blockquote marker, at least one H2 section, at least one Markdown link with an absolute http or https address, and a size under 500,000 bytes. A sixth check, served as text/plain, always passes once the file is read and does not inspect the Content-Type header.
Does llms.txt replace robots.txt?
No. They do opposite jobs. robots.txt tells crawlers what they may not read, and llms.txt points them to what is worth reading. You can have both, and they should not contradict each other.
My CMS or plugin generates llms.txt automatically. Is that enough?
Usually not on its own. Generated files often list every URL without grouping or notes and leave out the summary line. Treat a generated file, including this tool's starter, as a draft that needs a human pass.
How large should llms.txt be?
Curated, not exhaustive. A few dozen well-annotated links is more useful than hundreds of bare URLs. This tool flags files of 500,000 bytes or more, but a good file is usually a small fraction of that.
Does llms.txt improve rankings or AI citations?
There is no evidence that it improves rankings, and it does not guarantee citations. It is a low-cost way to state your positioning and point models to your best pages, which is useful whether or not any given system reads it.
How often should I update llms.txt?
Whenever your site structure changes meaningfully. A file that lists pages you deleted months ago misleads the systems reading it, so re-check after any redesign or content clean-up.
Run the next check
All 18 free tools- AI Crawler Access CheckerMake sure robots.txt lets AI crawlers read the pages you list.
- OKF Bundle GeneratorTurn one page into a Markdown knowledge bundle.
- Agentic Resource Discovery CheckerCheck for a machine-readable AI catalogue on your domain.
- AI Answer Extractability CheckerCheck that the pages you list are easy to quote.
- Common Crawl Visibility CheckerSee whether your domain is in recent open web crawls.
Hard to write the summary line?
That is a positioning question.
A good llms.txt reflects a well-structured site rather than replacing one. Book a free 30-minute call with Sakshi Kumari or Ashish Khan, or see our AI SEO services.
A call is not an engagement. We never guarantee rankings or AI citations.




