Skip to content

Free tool · Free, no signup

llms.txt checker and validator

Enter your site and the checker reads its /llms.txt the way an assistant would, then tests it against the llmstxt.org proposal: one H1, a summary line, sections of links in the right form, links that answer, and a file that is really text rather than your homepage. Free, no signup.

Reads /llms.txt, /llms-full.txt and up to eight of the linked pages. A few seconds. Free, no signup.

How it works

Free, no signup. A few seconds.

  1. Enter your site

    Your domain, or the full URL of an llms.txt that lives elsewhere, like docs.example.com/llms.txt.

  2. We read the file and open its links

    The file, the llms-full.txt beside it, and up to eight of the pages it links to, fetched the way a crawler fetches them.

  3. Fix what fails

    Each check says what we found and how to fix it. If the file is missing and we can tell your site builder, the fix is written for it.

A real run

Example result

llmstxt.org, the proposal’s own site, checked on 9 October 2026. Its file is 637 bytes, about 160 tokens: an H1, a one-line summary, and one section of 3 links, all of which answer. Short is fine. The shape matters more than the length.

Result · https://llmstxt.org/llms.txt

All 9 checks pass.

Size
637 bytes, ~160 tokens
Sections
1
Links
3
llms-full.txt
Not found

Served at the URL

Pass

The file answers with HTTP 200.

Plain text, not a web page

Pass

Served as plain text.

  • Content-Type: text/plain; charset=utf-8

Starts with an H1 naming the site

Pass

Opens with one H1.

  • # llms.txt

A summary in a blockquote

Pass

Has a blockquote summary under the H1.

  • > A proposal that those interested in providing LLM-friendly content add a /llms.txt file to their site. This is a markdown file that provides brief background information and guidance, along with links

H2 sections with link lists

Pass

1 of 1 sections list links.

  • ## Docs (3 links)

List items in "[name](url): notes" form

Pass

All 3 items in the link lists open with a markdown link.

Links are full URLs

Pass

All 3 links are full URLs.

Linked pages answer

Pass

We opened all 3 distinct links and every one answered.

Small enough to read in one go

Pass

A size an assistant can read whole.

  • 637 bytes, about 160 tokens

What the file points at

# llms.txt · A proposal that those interested in providing LLM-friendly content add a /llms.txt file to their site. This is a markdown file that provides brief background information and guidance, along with links to markdown files providing more detailed information.

  • ## Docs3 links

Links we opened

  • 200https://llmstxt.org/index.md
  • 200https://llmstxt.org/intro.html.md
  • 200https://llmstxt.org/ed.md
The file as served
# llms.txt

> A proposal that those interested in providing LLM-friendly content add a /llms.txt file to their site. This is a markdown file that provides brief background information and guidance, along with links to markdown files providing more detailed information.

## Docs

- [llms.txt proposal](https://llmstxt.org/index.md): The proposal for llms.txt
- [Python library docs](https://llmstxt.org/intro.html.md): Docs for `llms-txt` python lib
- [ed demo](https://llmstxt.org/ed.md): Tongue-in-cheek example of how llms.txt could be used in the classic `ed` editor, used to show how editors could incorporate llms.txt in general.

What the checker tests

  1. Served at the URL. An assistant asks for /llms.txt by name. Anything but a 200 means there is no file to read.
  2. Plain text, not a web page. Site builders often answer every path with the site’s own page, so /llms.txt opens in a browser and contains no llms.txt at all.
  3. Starts with an H1 naming the site. The H1 is the one section the llmstxt.org proposal requires. It is how a reader knows whose file this is.
  4. A summary in a blockquote. The line under the H1 is the first sentence an assistant reads about you, and often the one it repeats.
  5. H2 sections with link lists. The point of the file is to point at the pages worth reading, grouped so an assistant can pick the right ones.
  6. List items in “[name](url): notes” form. Tools that parse llms.txt read a list item as a markdown link with optional notes after a colon.
  7. Links are full URLs. The file is often pasted into a model on its own, with no address to resolve a relative link against.
  8. Linked pages answer. A link that 404s sends an assistant to nothing, usually after a docs move nobody updated the file for.
  9. Small enough to read in one go. The index should fit in a model’s context with room to spare. The full text belongs in llms-full.txt.

The trap the proposal does not mention

A common failure is not a malformed file but a missing one that the site hides. A site builder that answers every unknown path with its own page returns HTTP 200 and an HTML document for /llms.txt, so a quick look in the browser shows something and every assistant that asks for the file gets your homepage instead. The checker reads the content type and the first bytes, and calls that a missing file rather than grading your homepage as markdown.

The second is a file that was right when it was written. Docs move, and the links in llms.txt rarely move with them, which is why the checker opens up to eight of them.

Writing one from scratch

The llms.txt generator builds a valid file from your product name, a summary and the pages you want read. Publish it at the root of your domain, then run this checker on the live URL: the generator cannot see how your server serves it, and that is where most files fail.

Every day, not once

The GEO audit

The free check runs once, on one URL. The GEO audit keeps the results for your site, turns failures into To-dos, and rechecks a page after you fix it.

Questions

What is llms.txt?

A markdown file at the root of a site, /llms.txt, that tells an AI assistant what the site is and which of its pages are worth reading. It was proposed at llmstxt.org in 2024. It is a convention rather than a standard: nothing requires it, and adoption is uneven.

What does a valid llms.txt look like?

An H1 with the site’s name on the first line, then a one-line summary that starts with “>”, then optional paragraphs, then sections under ## headings. Each section is a list of links written as “- [Page name](https://full-url): notes”. A section called “Optional” holds links an assistant can skip when it is short on room.

Why does the checker say my llms.txt is an HTML page?

Because the server answered /llms.txt with a web page, usually your homepage or a 404 page dressed as one. Webflow and Squarespace, for example, serve HTML for every path, so the file looks present in a browser and is not there. If we can tell your platform, the result says how to get a real text file onto it.

What is llms-full.txt?

A companion file with the full text of your docs in one place, for tools that want everything at once. The checker looks for it next to your llms.txt and reports its size. It is optional; llms.txt is the index, llms-full.txt is the book.

Do the links have to be full URLs?

The proposal’s own examples use them, and they matter in practice: the file is often pasted into a model on its own, and a relative link like /pricing cannot be followed without the site address. The checker flags each relative link it finds.

How long should an llms.txt be?

There is no limit in the proposal. The checker warns above 100 KB, about 25,000 tokens, because by then the file is doing llms-full.txt’s job. Small files are fine: the proposal’s own llms.txt is 637 bytes.

Do ChatGPT and Google read llms.txt?

None of the big answer engines has said it uses the file to decide what to cite. Developer tools and some assistants do read it when pointed at a site. It costs an hour to write, which is why it is worth doing right, and why it is one check of eight in the AI readiness checker rather than the whole story.

Track it every day instead of once

CueScout runs these checks on a schedule and turns the gaps into To-dos.