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

Enter the domain only. We read /llms.txt and your sitemap; nothing else is crawled or stored.

Try

Six format checks

These run when an llms.txt file is found at the site root

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

The llms.txt structure, in order
PartRequiredWhat it looks like
H1 titleYes# Your site name, once, at the top
Summary blockquoteRecommended> One sentence on what the site offers
Detail paragraphsOptionalPlain Markdown with no headings, for context a model should know
H2 file listsRecommended## Docs followed by - [Name](https://…): note items
Optional sectionOptional## Optional for secondary links an agent can skip
6 of 6complete

Title, summary, sections and absolute links all present, at a sensible size.

4 or 5 of 6usable, incomplete

Usually a missing summary line or no section headings. Functional, but the most useful line is missing.

Not foundno file

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

All 18 free tools

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.