FREE TOOL / NO ACCOUNT / RUNS ON THE PAGE YOU GIVE IT

Validate your llms.txt

Paste your domain. We fetch /llms.txt, check every structural rule in the spec at llmstxt.org, tell you which line each problem is on and what to change, then fetch your links to see whether they still answer.

Free, no account. We fetch /llms.txt, check it against the spec at llmstxt.org, and fetch the first 10 links to see whether they still answer.

What a valid llms.txt looks like

The spec is short, and the order is part of it. This is the whole shape:

# Your project name

> One sentence a model reads before deciding
> which of your links are worth opening.

Any extra prose can go here, as long as it is
not a heading.

## Docs

- [Getting started](https://example.com/start): what a new user does first
- [API reference](https://example.com/api): every endpoint and its shape

## Optional

- [Changelog](https://example.com/changelog): version history

The H1 is the only part the spec calls required. Everything else is what makes the file worth reading. Do not have one yet? Our generator drafts it from your sitemap.

QUESTIONS ABOUT THIS TOOL

What does this validate against?
The spec published at llmstxt.org. It defines a specific order: an optional byte-order mark, then an H1 with the name of the project, which the spec calls the only required section, then a blockquote with a short summary, then zero or more markdown sections of any type except headings, then zero or more sections delimited by H2 headers containing file lists. Each file list item must be a markdown hyperlink, optionally followed by a colon and notes.
What is the Optional section for?
It is a convention rather than a rule. The spec describes it as secondary information: links an agent can skip when a shorter context is needed. If some of your links are nice to have rather than essential, putting them under an H2 called Optional tells a model which ones to drop first when it is short on room.
Why do you fetch the links in my file?
Because a link list that points at moved or deleted pages is worse than no file at all: a model follows one, gets a 404, and has learned nothing about you. We fetch the first ten absolute URLs and report the status each returned. Ten is a cap, not a sample size we think is enough, and it exists so one validation cannot be turned into a flood of requests at somebody else's server.
My file returns 200 but you said it is HTML. What happened?
Almost always a single-page app or a framework router answering every unknown path with the app shell. The file looks published because the URL does not 404, but what a crawler gets is your HTML page, not your markdown. Serving it as a real static file fixes it.
Do AI models actually read llms.txt?
It is an emerging convention, not an official standard, and no model is required to honour it. We say that plainly because the honest reason to publish one today is that it costs an hour and states your own map of your own site. Treat it as cheap insurance, not as a ranking factor.
Does this cost anything or need an account?
No. It is our own HTTP request to your public file and our own parsing of what comes back. No third-party data provider is involved, so there is nothing to bill. It is rate limited to 10 checks an hour per address.

A TOOL CHECKS ONCE. SEOBUILDER KEEPS WATCH.

We can watch this for you.

A link list goes stale the moment someone moves a page, and nothing tells you: the file keeps returning 200 while every URL in it 404s. We re-check yours on a schedule, tell you the day a link dies, and measure the part this page cannot: whether AI answers actually name you, and who they name instead.

START FREE, NO CARD