llms.txt checker

llms.txt is the emerging manifest that points AI assistants at your most important, clean content. Check whether your site has one, and see the rest of your AI crawlability setup.

Measuring rankings in

Runs the full audit on your live site. Your report opens in your dashboard.

What this checks

This requests /llms.txt on your domain and reports whether a real file comes back, alongside the two files that do the same job for classic crawlers: robots.txt and your XML sitemap. Together those three answer the discovery question. A server that returns your homepage for every unknown path will appear to have an llms.txt when it does not, so the check reads what actually came back rather than trusting the status code alone.

Why it matters

llms.txt is a proposed convention, not a ratified standard, and adoption across assistants is uneven. We say that plainly because the honest case for it does not need inflating: the file is a few hundred bytes of markdown listing your best pages in plain language, it costs an hour to write, and if it is read at all it is read at the moment an assistant is deciding which of your pages to quote. The asymmetry between the cost and the upside is the whole argument.

How to read a bad result

A missing llms.txt is scored as a warning rather than a failure, because a site can be cited perfectly well without one. Treat it as the last thing you add once crawler access, rendering and structured data are right, not the first. If robots.txt or the sitemap is also missing, fix those first: they are read by everything, today, with no ambiguity about whether they count.

This is the last thing on the list rather than the first, and the audit is what tells you whether the things ahead of it are done. Crawler access, rendering and structured data all sit above llms.txt in the order that decides whether you get quoted, and all three are in the same report.

A failing result, and what it costs

A site that appears to have an llms.txt and does not. This is a single-page application whose fallback route answers every unknown path with the app shell.

A 200, so any checker that reads the status code and stops reports a pass. What came back is the homepage. The content-type is the tell: a file that has to be markdown is being served as HTML, which means the path is being handled by the application rather than by a file on disk. The same fallback makes every other probe of your domain look successful too, which is why this check reads the body rather than trusting the code.

$ curl -sI https://example.com/llms.txt
HTTP/2 200
content-type: text/html; charset=utf-8

$ curl -s https://example.com/llms.txt | head -3
<!DOCTYPE html>
<html lang="en">
  <head>

How to fix it

  1. Serve it as a file, not a route.Put llms.txt in the directory your static assets are served from, so the request never reaches the application router. Confirm the content type comes back as text/plain or text/markdown.
  2. Write the four parts.An H1 with your name, one blockquote saying what you do, then plain markdown sections of links with a sentence each. Nothing else has a defined meaning.
  3. Put the facts next to the things they describe.A price belongs beside the plan it prices. The file exists to be quoted, and a marketing sentence a reader has to unpick will be quoted wrong or not at all.
  4. Regenerate it on every deploy.A hand-maintained list of your best pages is accurate for about a month. Generate it from the same source your sitemap comes from.

Questions people ask

Does llms.txt actually do anything yet?

Adoption is partial and no assistant guarantees it reads the file. What is certain is that it costs almost nothing to publish and it forces you to write down which of your pages matter, which is a useful exercise regardless of who reads the result.

What goes in an llms.txt?

A heading with your name, one blockquote summarising what you do, then plain markdown sections of links with a sentence each. Write it as flat quotable statements: prices next to the thing they price, no marketing sentence a machine has to unpick. Ours is at /llms.txt if you want a worked example.

Is llms.txt a replacement for robots.txt?

No. robots.txt controls access and is enforced. llms.txt is a suggestion about what is worth reading. Publishing one while robots.txt blocks the crawler achieves nothing.

Check another dimension

More free tools in ai visibility, and the rest of the set at all free tools.

Run the llms.txt checker
on your own URL

Free account, no card. Paste your URL and get a real, scored report of your AI and search visibility.

Measuring rankings in