Free tools

llms.txt validator: check your file's format and links, with a fix for each error

Enter your site's address and this validator reads its llms.txt and llms-full.txt, checks them against the llmstxt.org format, tests up to 15 links and gives a fix for each problem. The rest of the AI visibility report follows: robots.txt rules for AI crawlers, your home page's structured data and your sitemap.

Get a proposal

We read only public files: your home page, robots.txt, llms.txt, llms-full.txt and sitemap, and up to 15 links your llms.txt lists. Nothing is stored.

On this page

How to use the llms.txt validator

  • Enter your site's address. The validator reads /llms.txt and /llms-full.txt at the root of wherever your home page ends up after redirects, so a site that sends visitors from http to https, or to its www address, is checked where it actually lives.
  • Read the llms.txt findings first. Each is marked to fix, to review, a note or OK, and every problem comes with its fix. If you have no llms.txt, or the address returns a web page, the report drafts a starting file: your site's name as the H1, your meta description as the summary and up to eight pages from your sitemap.
  • Then read the rest: the table of AI crawlers your robots.txt allows or blocks, your home page's indexing and structured data, and your sitemap.
  • Fix, publish and check again. Keep the report as a Markdown file or on your clipboard, or hand it to us through the contact form at the end; nothing is sent until you press Send.

What the validator checks

Each row is one check, in the order the report shows them. The rules come from version 2 of the llms.txt proposal.

What the validator checks
CheckWhat passesCommon errorFix
The file answersStatus 200 with a text file at /llms.txt, or a 404 if you don't publish oneA single-page app answers every address, /llms.txt included, with its home page and a 200Serve the Markdown file, or return 404 at that address
Content typeServed as text/plain or text/markdownServed as text/html or another typeSet the Content-Type header to text/plain or text/markdown with charset=utf-8
H1One H1, on the first line, with the site's or project's nameNo H1 at all (the file starts with an H2), text before the H1, or comment lines starting with a hash that Markdown reads as extra H1sKeep one H1 at the top; delete the comments or turn extra H1s into H2 sections
SummaryA blockquote right after the H1Missing, or placed after a paragraph, where it no longer counts as the summaryOne or two sentences: what you do, for whom and where
H2 sectionsAt least one H2 section, each with a list of linksNo H2 sections, empty sections, or H3 headings the format doesn't useGroup pages under H2 headings; turn H3s into H2s or into text above the first H2
List itemsEach item is a hyphen, a Markdown link and, optionally, a colon and a noteBare addresses or sentences without a link under an H2Link each item to the page it describes; move facts into the text above the first H2
LinksThe first 15 links answer without an errorPages renamed or removed after the file was writtenUpdate or remove those links, or generate the file from the same source as your pages
llms-full.txtAbsent (it's optional), or a text file that starts with an H1The address returns your home page as HTMLReturn 404 if you don't publish one; start it with an H1 if you do

A missing llms.txt is only a note, because the file is optional. Links that take more than 8 seconds are listed as unanswered rather than broken, and links after the 15th aren't tested.

The llms.txt format in short

llms.txt is a plain Markdown file, and the proposal fixes the order of its parts so that a script can parse it, not only a model. First an H1 with the site's or project's name, the only required part. Then a blockquote with a short summary. Then, optionally, paragraphs or lists without headings. Then H2 sections, each a list of links. A byte-order mark at the very start is allowed.

A minimal file that passes every check needs five lines, with blank lines between the parts:

  • An H1 with your site's name.
  • A blockquote with one or two sentences on what you do, for whom and where.
  • An H2 naming a group of pages, such as Services.
  • A list item for one page: a hyphen, the page's name in square brackets, its full address in parentheses, then a colon and a few words on what the page covers.
  • A second item in the same form, for example your contact page.

Version 2, published in August 2026, kept that format. It defined files at other paths (a file covers the pages under its path, and the most specific one applies), accepted page.md as well as page.html.md for Markdown copies of pages, added link relations so a page can point to its Markdown copy and to the llms.txt that covers it, and dropped the special meaning of an H2 named Optional, which is still the usual home for links an agent can skip. The choices behind our own file are in what an agent-ready website needs.

llms.txt vs robots.txt vs sitemap.xml

The three files answer different questions, and none replaces the others.

llms.txt vs robots.txt vs sitemap.xml
FileWhat it doesWho reads itStatus
robots.txtSays which paths crawlers may fetchSearch engine and AI crawlers, before they crawlIETF Proposed Standard (RFC 9309)
sitemap.xmlLists the pages you want crawled, with optional details such as the date of the last changeSearch enginessitemaps.org protocol
llms.txtGives agents a short, curated guide to the pages that matterAgents that fetch it when they need information about a siteInformal proposal, version 2

robots.txt grants or refuses access; llms.txt grants nothing. Allow and Disallow lines written into llms.txt have no effect, and listing a page in it doesn't unblock that page in robots.txt. A sitemap lists every page you want indexed, while the proposal describes llms.txt as a curated overview small enough for a model's context. Which AI crawlers to let in is a separate decision, covered in our guide to blocking or allowing AI crawlers.

What the check can't see

  • Who reads your file. No AI company reports which agents fetched it or what they did with it. Your server logs show requests to /llms.txt, which is the closest evidence you'll get.
  • Files at other paths. Version 2 allows files such as /docs/llms.txt; the validator reads only the one at your site's root.
  • Whether the facts are right. It checks structure, not truth. Compare the summary and notes with your pages, because an agent will repeat what the file says.
  • What the links lead to. It tests whether the first 15 links answer, not whether they point to Markdown copies or to the right pages, and it doesn't read the link relations in your pages.
  • The whole of llms-full.txt. It reads the start of the file to confirm it's text that begins with an H1, not everything in it.
  • Bot protection. If a firewall or bot rule refuses our checker, the report shows the error; a clean result doesn't prove that AI agents get past the same rules.

If you'd rather have your llms.txt, robots.txt and structured data audited and fixed together, that's part of our AI search optimization work.

Questions before you choose

Do I need an llms.txt?

No. It's optional, and Google says Search ignores it. Publish one if agents need accurate facts about your product, such as documentation, plans or limits, or if your platform generates it for you. If you don't publish one, make /llms.txt return a 404 rather than your home page.

Why does the validator say my llms.txt is a web page?

Because that address returned HTML. Many sites, single-page apps in particular, answer any unknown address with their home page and a 200 status, so /llms.txt seems to exist but holds HTML. Serve a real Markdown file there, or return 404.

Can I block or allow AI crawlers in llms.txt?

No. llms.txt is a guide, not a set of rules: Allow and Disallow lines in it have no effect. Crawler access is set in robots.txt, and a page blocked there stays blocked even if llms.txt links to it.

Will a valid llms.txt get my site cited by ChatGPT or Google?

Nothing documents that. Google says Search ignores the file, and the crawler pages of OpenAI, Anthropic and Perplexity don't say their crawlers read other sites' llms.txt. Citations come from pages their search crawlers index. A valid file does help the agents that read it.

Is llms.txt an official standard?

No. Jeremy Howard published it on 3 September 2024 and revised it as version 2 in August 2026; it lives in a public GitHub repository, and neither the IETF nor the W3C has adopted it. robots.txt, by contrast, is an IETF Proposed Standard (RFC 9309).

Does the validator check llms.txt files at other paths, like /docs/llms.txt?

No. It reads /llms.txt and /llms-full.txt at the root of the address your home page answers at. Version 2 lets a file cover the pages under its own path; to check one of those, open it and apply the same rules: one H1, a summary and lists of links under H2 headings.

Do you store the sites I check?

No. The files are fetched when you run the check, the results go straight to your browser and nothing is kept on our side. There's a per-connection limit on checks to prevent abuse.

Sources & further reading

Sources behind this page, with further detail from the original publishers.

From a valid file to the full picture

Run the full AI visibility check, read how llms.txt is used in practice, or ask us to fix what the report found.