llms.txt checker

Enter a domain and this llms.txt checker fetches its /llms.txt the way a tool would, then checks it against the format published at llmstxt.org: whether it answers 200, whether it is really a text file and not an HTML page, whether it has the title, summary and sections the format describes, and whether the links in it work.

Fetches public files only. The domain and result are kept for 10 minutes, then discarded.

What the llms.txt checker looks at

  • The status code. The file has to answer 200 at the root of the domain. A redirect to another URL is followed, up to three hops.
  • Whether it is a text file at all. Many sites answer every unknown path with their homepage or a styled 404 page, and send 200 with it. That looks like a file to a careless check. Here it is a failure.
  • The Content-Type and charset. text/plain or text/markdown, and a declared charset=utf-8 when the file contains anything beyond plain ASCII.
  • The structure. An H1 title on the first line, a one-paragraph summary as a blockquote below it, and links grouped under ## section headings.
  • The links. The first five Markdown links are requested one at a time. Any that do not return 200 are listed.
  • llms-full.txt. Reported as present or not. It is optional.

What it does not tell you

A valid llms.txt is a well-formed file and nothing more. It does not make any AI system read your site, cite it or rank it, and nobody can honestly promise that it will. What a correct file does is remove one reason for a tool to get your site wrong.

It also does not tell you whether crawlers can reach the rest of your site. A file can pass every check here while a CDN rule turns GPTBot away from every other page.

How the request is made

From this site’s server, in a datacenter in the United States, with the user agent visibleorigin-check/0.3 and the rules on How I measure: requests in series, with a pause between them, and nothing beyond public files. A check makes at most eight requests.

Some sites refuse datacenter addresses whatever the request says. When the file answers 401, 403, 429 or 503, the checker asks for the homepage as a control. If that is refused too, the result says the file is not measurable from here instead of reporting a block that may only apply to this server. Why that control matters.

The domain and the result are cached for ten minutes so repeated checks do not hit your server, then discarded. Nothing is logged. Each visitor can run six checks every ten minutes.

Further reading

If you want the rest of your site read the same way, crawler by crawler, that is what the free check is for.