Free tool · No signup

Validate your llms.txt file

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.

llms.txt validator Free

Reads the public /llms.txt at your domain root. Private and local network addresses are blocked.

  • Checks structure and links
  • Line numbers on findings
  • No signup

VALIDATING MORE THAN ONE SITE?

Validate at scale, in JSON.

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.

See the API

WHAT THIS VALIDATOR CHECKS

Structure

One H1 name, a blockquote summary before any section, and links grouped under ## headings.

Links

Absolute URLs, titles present, duplicates flagged, and how many carry the short description that makes the file useful.

Delivery

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

Most broken llms.txt files fail in the same few ways.

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 format an llms.txt validator expects

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.

What counts as an error

Only things that stop the file doing its job.

No H1

Without a name, a reader has no idea whose file this is. It is the one genuinely required element.

No links

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.

Relative links

The file is read away from your site, so /docs/start has nothing to resolve against. Every link needs the full https:// URL.

HTML instead of Markdown

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.

Warnings, where judgement applies

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.

Serving the file correctly

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.

llms.txt validator questions

What does an llms.txt validator check?

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.

Where should llms.txt be located?

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.

Is llms.txt required to be valid?

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.

Why are relative links an error?

The file is read away from your site, so a relative path has nothing to resolve against.

Does every link need a description?

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.

Check the file, then check it is reachable

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.

No file yet

Draft one from your live pages with the llms.txt Generator.

Check crawler access

See which AI crawlers your robots.txt allows with the AI Crawler Access Checker.

Wider context

Our AI search guide covers access, structure, and content together.