Free tool

Validate llms.txt

Point it at a domain, or at a subpath file such as example.com/docs/llms.txt, and we fetch it the way a crawler would; or paste the text before you publish. You get two verdicts: spec validity, and a quality grade with the arithmetic behind it, every finding carrying its rule id and line.

Checked against llmstxt.org v2 (August 10, 2026) · All rules and deductions

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.

Spec validity

Is this a valid llms.txt at all? Any of these failing makes the verdict “invalid”. Nothing here moves the quality score.

RuleWhat it checksBasisEffect
E1No file at the given pathv2: the file lives at /llms.txt or at a subpath such as /docs/llms.txt and covers the pages under it.spec invalid; quality not assessable
E2Not served as text, or larger than 1 MBv2 says the file must stay small enough to fit in context and is markdown; the text/* content type and the 1 MB bound are Studio limits.spec invalid
E3No H1 titlev2: an H1 with the project or site name is the only required section. A leading byte-order mark is allowed.spec invalid
E4Line inside an H2 section is not a file-list entryv2: H2 sections hold file lists — list items with a required [name](url) link and optional notes after a colon. Prose belongs above the first H2.spec invalid
E5HTML page served instead of the fileThe response is a web page, not a markdown file — usually a catch-all route or a soft 404.spec invalid; quality not assessable
Quality recommendations

Studio's recommendations, scored 0–100 from a start of 100. None of these is required by the spec.

RuleWhat it checksBasisEffect
W1No blockquote summary (recommended)v2 describes a blockquote summary after the H1 but does not require it. Studio quality check.−10 each, max −10
W2No H2 sections (recommended)v2 allows zero or more H2 file-list sections. Without any, the file gives an agent nothing to follow. Studio quality check.−20 each, max −20
W3Dead linkv2: links should point to LLM-friendly content. A link that does not resolve points nowhere. Sample of 20 links.−4 each, max −24
W5More than 200 linksv2 sets no count, only that the file stays small enough to fit in context. 200 is a Studio threshold.−5 each, max −5
W6Duplicate URLNot in the spec. Duplicate entries waste the context the file is meant to save. Studio quality check.−2 each, max −10
Information

Facts worth knowing. They change neither verdict.

RuleWhat it checksBasisEffect
I1robots.txt blocks documented AI crawler tokensWhich documented crawler tokens, including control-only tokens like Applebot-Extended, robots.txt disallows at /. Blocking is a choice, never scored.none
I2llms-full.txt presencellms-full.txt is not part of the llmstxt.org proposal; it is a convention some sites use for inlined content. Reported, never scored.none
I3File age (Last-Modified)How old the served file is, from the Last-Modified header when present.none
I4rel="describedby" discoveryv2 recommends a <link rel="describedby"> element or an HTTP Link header pointing pages at the llms.txt that covers them.none
I5Share of links resolving to markdownv2: links should point to LLM-friendly content such as .md / .html.md versions. Share of sampled links that resolve as text/markdown or use a .md URL.none
I6External links notedv2 explicitly welcomes links to other sites; its own example links to GitHub. Listed for awareness, never scored.none

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.