Structure
One H1 name, a blockquote summary before any section, and links grouped under ## headings.
Free tool · No signup
This llms.txt validator fetches the file from your domain root and checks it against the llmstxt.org format, with a line number for every finding.
VALIDATION REPORT
FINDINGS
STRUCTURE
FILE
NO FILE YET?
The llms.txt Generator builds a starting file from the pages your site actually serves, skipping anything that redirects or carries noindex.
VALIDATING MORE THAN ONE SITE?
Agencies and platform teams check llms.txt across many sites. The Web Scraping API fetches any file as structured data, so the same validation runs in your own pipeline.
WHAT THIS VALIDATOR CHECKS
One H1 name, a blockquote summary before any section, and links grouped under ## headings.
Absolute URLs, titles present, duplicates flagged, and how many carry the short description that makes the file useful.
Whether the file is actually served at the root as text, rather than a redirect or an HTML page pretending to be one.
LLMS.TXT VALIDATOR GUIDE
The format is short enough that people write it by hand, which is exactly why it goes wrong. This guide covers what the llms.txt validator checks, what counts as an error rather than a preference, and how to fix each finding.
The llmstxt.org proposal describes a short Markdown document:
# Site name
> One sentence describing what the site is and who it is for.
## Docs
- [Quickstart](https://example.com/start): How to begin.
- [Reference](https://example.com/ref): Every endpoint. An H1 giving the name, a blockquote summary, then sections of links each followed by a short note. That is the whole format. Its looseness is deliberate, which is why a validator has to be careful about what it calls a mistake.
Only things that stop the file doing its job.
Without a name, a reader has no idea whose file this is. It is the one genuinely required element.
A file that points nowhere gives a model nothing to follow. If you have nothing to list yet, publishing an empty file is worse than publishing none.
The file is read away from your site, so /docs/start has nothing to resolve against. Every link needs the full https:// URL.
If the response contains HTML tags, the file is almost certainly not being served: you are looking at a 404 page or a redirect to the homepage. This is the most common problem after publishing.
These are conventions rather than rules, and reasonable people ignore some of them.
No blockquote summary. The summary is the first thing read and the cheapest sentence in the file to get right, but a file without one still works.
No sections. A flat list is fine on a small site. On a large one, grouping under ## headings tells a reader which part of the site each link belongs to.
Links without descriptions. This is the warning worth taking seriously. The note after each link is the part that saves a model from opening every page to learn what it holds. A file of bare links is barely better than a sitemap, which the site already has.
Duplicates. Usually a copy-paste artefact rather than a decision.
Put it at the domain root so it resolves at https://yourdomain.com/llms.txt, served as text/plain. On a static site that is the public directory. On WordPress, put it in the web root rather than inside a theme, because themes are replaced on update.
Then open the URL directly in a browser. If you see your site's design, you are looking at a redirect or a 404 page, not the file. That single check catches most problems, and it is the one this llms.txt validator performs first.
Subdomains are separate. A file on example.com does nothing for docs.example.com, which needs its own.
That the file exists at the root and is served as plain text, opens with a single H1, carries a summary, groups links under sections, and uses absolute URLs. It also flags duplicates and links with no description.
At the domain root, reachable at https://example.com/llms.txt and served as text/plain. A file that returns HTML or redirects home is not being served correctly.
The format is a community proposal, not an enforced standard. This validator marks only the things that stop the file being usable as errors, and treats the rest as warnings.
The file is read away from your site, so a relative path has nothing to resolve against.
Not strictly, but it is the part that saves a model opening every page. A file of bare links adds little over the sitemap you already publish.
A valid file that nothing can fetch helps nobody. This llms.txt validator reports how the file was served alongside what it contains.
Structure is one half. Whether crawlers may read your site at all is the other.
Draft one from your live pages with the llms.txt Generator.
See which AI crawlers your robots.txt allows with the AI Crawler Access Checker.
Our AI search guide covers access, structure, and content together.