llms.txt is a Markdown file that lists a site's most useful pages for AI tools. This free llms.txt checker and validator fetches yours and tests it against the current v2 spec, then shows a pass, a warning, an error or an info note for each check, with the fix.
Updated
First, the checker fetches the file and makes sure it's actually an llms.txt file. This catches a pretty common problem: some sites return their normal HTML page, or a "not found" page, at /llms.txt with a 200 status. Then it reads the file line by line:
- [Name](url): notes.Errors mean the file won't work as an llms.txt. Warnings mean it works, but there's a problem worth fixing. Info items are optional extras from the v2 spec.
| Check | Result | Fix |
|---|---|---|
| File at /llms.txt | Error on a 404, a redirect loop or an HTML page | Save a plain text file at the root of the site, or at the path it should cover |
| H1 at the top | Error if missing | Start the file with # Your site name |
| Summary | Warning if missing | Add one line starting with > that says what the site is |
| Headings | Warning on H3 or lower, or on an H2 that isn't a link list | Use H2 only for link lists, and put any notes above the first H2 without headings |
| Link list format | Warning on list items without a link | Write each item as - [Name](url): notes |
| Broken links | Warning for each link that returns an error | Fix the link or remove it |
| Content type | Warning if it's text/html | Serve .txt files as text/plain or text/markdown |
| Link relations | Info | Add <link rel="describedby" href="/llms.txt"> to your pages any time, and rel="alternate" links once you have Markdown versions |
In general, fix the errors first, then the warnings.
llms.txt was first proposed by Jeremy Howard of Answer.AI in September 2024. The current version, v2, was last updated on 10 August 2026. The file itself barely changed: it's still Markdown with an H1, a summary, optional notes and H2 link lists. Most of v2 is about how AI agents find and use the file:
.md added (page.html.md), or, new in v2, with the extension replaced (page.md).rel="alternate" type="text/markdown" and to its llms.txt with rel="describedby", either as an HTML link tag or in an HTTP Link header.The checker tests the v2 rules, and reports the new link relations as optional.
Here's a small file for a made-up invoicing product that passes every check:
# Acme
> Acme is invoicing software for freelance designers, with plans from $12 a month.
Acme sends invoices, tracks payments and reminds late clients by email.
## Product
- [Pricing](https://acme.io/pricing.md): Plans, limits and what each includes
- [Features](https://acme.io/features.md): What the product does
- [Docs](https://acme.io/docs/index.md): Setup and API
## Optional
- [Changelog](https://acme.io/changelog.md): Release notes by monthKeep it short. It's basically a list of your most useful pages, with one line on each. Link to the Markdown versions of your pages if you have them, and to the normal pages if you don't.
In short, it's a map for the AI agents and tools that read it. The proposal is written for agents that read a site on someone's behalf, and v2 describes them reading the file and then following its links to the right pages. There aren't any published numbers yet on how many tools actually do this, or on whether having a file changes which pages AI engines cite.
Peak Answer's crawler access study recorded what came back at /llms.txt on the tech sites ChatGPT and Google cite. A plain fetch couldn't tell a real file from other text, so Peak Answer ran this checker on the same 887 sites in November 2026: 58% had a real llms.txt, and 2% returned a web page at /llms.txt instead. The llms.txt adoption study has the full breakdown.
So think of llms.txt as a small extra. It only takes a few minutes to write, and writing it makes you spell out what you sell and which pages matter, but it won't get a page cited on its own. Crawler access matters a lot more. OpenAI says sites that block OAI-SearchBot won't be shown in ChatGPT search answers, and the AI crawler checker tests that part.
# Name. A byte-order mark before it is fine.## Optional.All three files sit at the root of your site, but they do different jobs:
| llms.txt | robots.txt | sitemap.xml | |
|---|---|---|---|
| Job | Describes the site and points to its key pages | Tells crawlers what they may fetch | Lists the URLs you want indexed |
| Format | Markdown | Plain text rules | XML |
| Who reads it | AI agents and tools that support it | Crawlers that follow it | Search engines |
| Required | No | No, but every site should have one | No, but most sites should have one |
You can check the other two with the robots.txt checker and the sitemap checker.
Peak Answer runs checks like these every week, then writes the content and gets the placements.