Free tools / llms-txt-checker
FREE TOOL · RUNS ON OUR SERVER
llms.txt Validator
The generator writes a file. This reads the one you already have and tells you what is wrong with it: the structure, the sections, the links that do not resolve, and the handful of mistakes that leave a file present but useless.
Check a file
example output
not measured · nothing has been checked yet
| Level | Checked against | Line | Finding |
|---|---|---|---|
| error | spec | L1 | No H1. The specification names a single “# Title” heading as the one required element, and it is what tells a reader whose site this is. |
| warning | spec | L3 | This is a bullet, but not in the form the specification gives for a section list. A consumer looking for links will not find one here. |
| note | spec | L4 | No description after this address. The specification marks the details half optional, so this is not an error. |
| error | mechanical | L4 | The linked page answered HTTP 404. The file points at a page that is not there. |
| error | spec | L5 | A list item in link form with an empty address between the parentheses. |
| warning | spec silent | L6 | A relative address. The specification does not state whether links must be absolute, and no consumer has published what base it resolves against. |
| note | house | L7 | The same address appears twice. Our preference, not a rule. |
| warning | house | L9 | This section holds no links. Our preference, not a rule: a section that lists nothing is a heading a reader has to skip. |
This check runs on our server, and it has to. Your browser is not allowed to read a file from another website — that is a rule browsers enforce, not a choice we made. So your domain goes to our server, our server fetches your llms.txt and the pages it links to, and the result comes back. Any tool offering to check your site’s file privately inside your browser is either using a server it is not telling you about, or not reading your file at all. The generator is the opposite case and says so on its own page, because it only ever transforms what you typed. What our server keeps of a run is set out on the privacy page.
This reads the file on your own domain, from our server. A browser cannot fetch llms.txt from another site — there are no CORS headers on it — so the domain you type is sent to api.answermend.com, which fetches the file and reports what is wrong with it. If a domain has no such file, that is what it says: an absent file is a finding, not an error. The example below stays on the page so you can see the shape of a verdict before running one.
READ THIS BEFORE THE FINDINGS
llms.txt is a young convention, so every finding says what it is checked against
The convention was published at llmstxt.org by Jeremy Howard of Answer.AI in September 2024. It is one short page, and it settles far less than a validator could pretend to check. So each finding carries its basis, and the basis caps how loudly it can complain.
Spec
The specification states it, and you can go and read the sentence. A missing title is the clearest case: it is the one element the convention actually requires.
can be an errorMechanical
Not an opinion at all. The file did not parse, or a page the file itself points at answered with an error. No specification is needed to call a dead link dead.
can be an errorSpec silent
The specification does not settle it. We report what we saw and why it might matter to a reader, and we do not tell you it is wrong, because nobody has said it is.
never above a warningHouse preference
Our own opinion, named as ours. A section with no links in it is a heading a reader has to skip — that is a judgement about writing, not a rule.
never above a warningThe cap is in the code, not in a review habit
A house preference printed in the same red as a real rule is how one vendor’s taste turns into “the standard” in somebody else’s head, and then into an argument with their developer. So the downgrade is structural: the function that emits findings refuses to let a spec-silent or house-preference finding leave as an error, whatever level it was written at. You cannot ship one by mistake.
The practical consequence is the one that matters to you: if this page shows an error, something is either against the written convention or plainly broken. Everything softer is labelled, and you are free to disagree with it.
WHAT IT LOOKS AT
Structure, required sections, links that resolve
In the order the file is read, with the basis for each in the right-hand column of the output above.
Structure
- specA single
# Titleheading. The convention names it the one required element, and a file without it does not say whose site it is. - specThe
>summary line under the title. Explicitly optional, so its absence is reported as a note, never as a failure. - specSection list items in the form
- [Title](url): details. The: detailshalf is optional; a bullet that is not a link at all is not what a consumer will be looking for. - specThe
## Optionalsection, which the convention describes as the part a reader may skip when it needs a shorter file. - spec silentMore than one
#heading, headings deeper than##, relative addresses, prose inside a section, a byte order mark. All reported, none called wrong.
The mistakes that leave a file present and useless
- mechanicalAn HTML page answering as your llms.txt. The file does not exist, the site serves its normal catch-all page, and the server returns 200 rather than 404 — so anything that only checks the status code reports the file as present. This is the single most common broken llms.txt, and it is checked on the bytes, not on the content type.
- mechanicalLinks that do not resolve. Every address in the file is fetched, up to a stated cap. A page that answers 404 is an error: the file is pointing somewhere that is not there.
- mechanicalLinks that redirect. Reported as a note with the address the reader actually lands on, because the file and the destination have drifted apart.
- specAn empty address between the parentheses, and a link with no title between the brackets.
- houseA file with no links at all, and sections holding none. Valid under the convention, which requires only the title. Useless in practice, which is our opinion and is why it is a warning.
What it does not do, said out loud
A link the fetch could not reach — a timeout, a refusal, a link past the cap — comes back as not measured. It is never counted as working and never counted as broken, and the summary line says how many were left unchecked, because a clean count over a partial check reads exactly like a clean file.
Relative addresses are deliberately not resolved against your domain. The convention does not say relative links are allowed, and no consumer has published what base it would resolve them against — so guessing one and then reporting the guess as a result would be us inventing the behaviour we were supposed to be testing.
It does not read llms-full.txt, and it does not judge whether the linked pages are any good or say what their descriptions claim.
THE THING A CLEAN RESULT DOES NOT MEAN
A valid file is not a visibility result
This is the sentence most llms.txt tools leave out, and it is the one that decides whether the hour you spend on the file was worth it.
What a clean result tells you
That the file parses, matches the written convention, and points at pages that exist. That is a real thing to know, and it is genuinely worth fixing when it is wrong.
What it does not tell you
No major AI vendor has confirmed reading llms.txt. A file that passes every check on this page may be read by nothing at all. It is a checkbox that customers and developers ask for, described here as a checkbox.
The things an assistant demonstrably does read are your robots.txt, the HTML your server hands back with no JavaScript, and the schema on the page. Those have checkers of their own.
If you have an hour, spend it on the AI Readiness Score first and on this file second.
QUESTIONS
What people ask before they run it
How is this different from the llms.txt generator?
The generator writes a new file from answers you type, entirely inside your own browser tab. This one reads a file that already exists on your domain, which a browser is not permitted to do, so it goes through our server. Different job, different privacy story, and both are stated on their own pages rather than shared.
What exactly does it validate against?
The convention published at llmstxt.org in September 2024, which is one short page. Every finding names its basis: spec, mechanical, spec silent, or house preference. Only the first two can ever be reported as an error, and that limit is enforced in the code rather than left to whoever writes the copy.
My file scored clean. Am I in AI answers now?
No, and nothing on this page will tell you that you are. No major AI vendor has confirmed reading llms.txt, so a clean result describes the file and says nothing about your visibility. The visibility question is a different tool and a different measurement.
Why is a broken link an error but a missing summary only a note?
Because one of them is a fact and the other is a preference. A page that answers 404 is broken whatever anyone thinks about llms.txt. A missing summary line is explicitly optional in the convention, so calling it a failure would be us inventing a rule and then marking you down against it.
What happens if a link cannot be checked?
It comes back as not measured, with the reason, and the summary says how many were left unchecked. A timeout from our server is a fact about our server, not about your link, and reporting it as either working or broken would be a guess dressed up as a result.
THE FILES THAT ARE ACTUALLY ENFORCED
Check the ones an assistant
demonstrably reads.
Your robots.txt is enforced by every well-behaved crawler, and the HTML your server returns is what a non-rendering one gets. The AI Readiness Score takes both apart, finding by finding.