Free tool

Validate llms.txt

Point it at a domain and we fetch /llms.txt the way a crawler would, or paste the text before you publish. You get a letter grade, the arithmetic behind it, and every finding with its rule id and line.

Fetches https://<domain>/llms.txt, checks structure against the llmstxt.org format, samples up to 20 links for liveness, and reads robots.txt for crawler directives. Free: one generate and one validate per day.

Rule reference

What we check

Errors are format violations a crawler would trip on. Warnings are things that make the file less useful. Info is context that never changes the score.

RuleSeverityWhat it checksScore
E1errorNo file at /llms.txtscore = 0
E2errorNot served as text, or larger than 1 MB−40 each, max −40
E3errorNo H1 title−25 each, max −25
E4errorMalformed line inside a section−5 each, max −25
E5errorHTML page served instead of the filescore = 0
W1warnNo blockquote summary−10 each, max −10
W2warnNo H2 sections−20 each, max −20
W3warnDead link−4 each, max −24
W4warnLink points off-domain−2 each, max −10
W5warnMore than 200 links−5 each, max −5
W6warnDuplicate URL−2 each, max −10
I1inforobots.txt blocks major AI crawlers0 (info)
I2infollms-full.txt presence0 (info)
I3infoFile age (Last-Modified)0 (info)

Link checks. URL mode and paste mode both sample up to 20 links, HEAD first then GET, same etiquette as the generator. A dead link is any 4xx/5xx or a connection failure; a redirect that lands is fine.

Off-domain links (W4). Links to another registrable domain are flagged, except well-known documentation hosts (readthedocs, GitHub Pages, GitBook, Mintlify, Notion, ReadMe).

robots.txt (I1). We list GPTBot, ClaudeBot, Google-Extended and PerplexityBot when they are blocked at the root. That is your call; the note is there so nobody expects a blocked crawler to read the file.

No file yet? Generate one.