Free tool · no signup · instant result

llms.txt Validator — Check Your llms.txt Against the Spec

Paste a URL. This llms.txt validator fetches /llms.txt, parses it against the published format — required H1, summary blockquote, H2 file lists, link syntax — samples the listed URLs for dead links, and returns a structure score with the exact fix for every failure.

Reads only /llms.txt and HEAD-samples up to 10 of the URLs it lists. Nothing is stored. The score measures structural conformance to a community proposal — not AI visibility.

What this llms.txt validator checks

The tool inspects the file and the URLs inside it. It does not and cannot check whether an AI engine reads your file, because no major vendor publishes that behaviour. A result here means the file is structurally correct, and nothing more.

  • Whether /llms.txt exists and returns 200
  • Whether it is Markdown rather than an HTML fallback page
  • The required H1, and whether it comes first
  • The blockquote summary and its position
  • H2 file-list sections and whether they are populated
  • Markdown link syntax on every list item
  • Absolute vs relative URLs, and duplicates
  • Link notes after the : separator
  • Broken links across a sample of up to 10 URLs
  • Presence of a companion /llms-full.txt
  • Whether any AI engine reads your file (no vendor publishes this)
  • Whether the linked pages are good (see the AI Visibility Audit)
  • Crawler access rules (see the AI Crawler Checker)
  • Schema markup on the linked pages (planned)
  • Every listed URL (a sample of 10 is checked, not the full list)

How the score is calculated

Ten weighted checks. Any structural failure caps the score below 50, so a passing number never hides a broken file. Link reachability is scored but never flips conformance — a dead URL is a content defect, not a format violation.

PointsCheckWhat has to be true
20File served as MarkdownA 200 response at /llms.txt that is Markdown, not an HTML fallback page.
15H1 present and firstThe site or project name — the only element the format requires.
12Populated H2 file listsAt least one ## section containing an actual list of links.
10Valid link syntaxEvery list item carries a real [name](url) hyperlink.
10Blockquote summaryThe > line under the H1 that frames the rest of the file.
8Absolute URLsFull https:// URLs a reader can resolve without your site as context.
8Link descriptionsNotes after the : separator saying what each URL covers.
7Sampled links resolveUp to 10 listed URLs are HEAD-checked for 4xx/5xx responses.
5No duplicate URLsThe same page is not listed twice.
5Sane size and heading depthNot a stub, not a sitemap dump, no headings deeper than H2.

The llms.txt format, section by section

The structure below is the one documented at llmstxt.org. Only the H1 is required; everything else is optional but is what makes the file useful. Sections appear in this order.

# Example CompanyH1 — required. The project or site name. The only element the format mandates.
> Example Company does X for Y.Blockquote — optional. A short summary carrying the key information needed to understand the rest of the file.
Free-form paragraphs…Detail sections — optional. Markdown of any type except headings, for context that does not fit the summary.
## DocsH2 file list — optional, repeatable. Each H2 opens a list of URLs. This is the mechanism that hands over your pages.
- [Name](https://…): notesList item. A required Markdown hyperlink, then optionally a : and notes about the file.
## OptionalSpecial section. URLs here may be skipped when a shorter context is needed. Use it for secondary material.

What llms.txt actually is — and what it is not

llms.txt is a community proposal, not a standard. It was published by Jeremy Howard of Answer.AI in September 2024 and is documented at llmstxt.org. It has no standards body behind it, unlike robots.txt, which is specified in RFC 9309. No major AI search vendor has published a commitment to read llms.txt as a retrieval or ranking input, and Google has stated that its search systems do not use it. Where the file is demonstrably consumed today is narrower: documentation platforms generate it, and AI developer tools read it when pointed at the file. So the honest case for publishing one is that it costs almost nothing, carries no downside, forces you to decide which pages actually matter, and leaves you positioned if adoption grows. It is not a ranking factor, it cannot block a crawler, and it does not remove or add anything to any index.

Common llms.txt errors and how to fix them

Ranked roughly by how often they turn up. The first two account for most files that look published but are not.

  1. llms.txt returns your homepage HTML. A framework catch-all route answers /llms.txt with the app shell, so a 200 status hides a file that does not exist. Fix: Put the file in the static assets directory (public/, static/, wwwroot/) so it is served before the router sees it.
  2. The file 404s but your CMS shows it. The file was created inside the CMS rather than at the domain root, so it lives at a path like /pages/llms-txt. Fix: Serve it at exactly https://yourdomain.com/llms.txt — root path, lowercase, no extension change.
  3. No H1. The file opens with a paragraph or a list. The H1 naming the site is the one element the format requires. Fix: Make `# Your Site Name` the first line.
  4. Headings used as the file list. Each page gets its own H3 heading instead of being a list item, so nothing parses as a file list. Fix: Use `##` for the section and Markdown list items for the pages inside it.
  5. Relative URLs. Links written as `/docs/start` cannot be resolved by anything reading the file outside your domain context. Fix: Write full absolute URLs including the scheme and host.
  6. Links with no notes. A bare list of URLs forces a reader to fetch every page to learn what it covers, which defeats the purpose of the file. Fix: Append `: one clause about what this page covers` to each link.
  7. The whole sitemap pasted in. Several hundred URLs turn a curated map into a dump that is more likely to be truncated than read. Fix: Keep llms.txt to the pages that matter and move bulk listings to llms-full.txt or the XML sitemap.
  8. The file is never updated. URLs drift after a migration or a restructure, and the file quietly fills with 404s. Fix: Regenerate it in the build, or re-run this validator whenever URLs change.

llms.txt templates you can copy

Four starting points, all structurally valid. Replace the URLs and notes, save as llms.txt in your static assets directory, deploy, then re-run the validator above to confirm it is served correctly.

Minimal — any site
# Example Company

> Example Company does one specific thing for one specific audience. State it here in a sentence.

## Core pages

- [What we do](https://example.com/services/): the service, who it is for, what it costs
- [About](https://example.com/about/): who runs the company and their background
- [Contact](https://example.com/contact/): how to reach us
Agency / services site
# Example Agency

> Example Agency runs technical SEO and content programmes for B2B SaaS companies in the EU. Founded 2019, team of 12.

Our methodology pages are the canonical source for how we work. Case studies carry real client numbers.

## Services

- [Technical SEO](https://example.com/services/technical-seo/): audits, migrations, crawl and index management
- [Content strategy](https://example.com/services/content/): topical maps, briefs, editorial operations

## Methodology

- [How we audit](https://example.com/method/audit/): the 47-check process and what each check means
- [Reporting](https://example.com/method/reporting/): the metrics we report and why

## Case studies

- [SaaS migration](https://example.com/cases/saas-migration/): 340 URL migration, traffic recovered in 6 weeks

## Optional

- [Blog](https://example.com/blog/): weekly notes on search and AI visibility
- [Team](https://example.com/team/): who works here
SaaS with documentation
# Example API

> Example API is a REST and webhook API for payment reconciliation. This file points to the canonical docs in Markdown.

## Getting started

- [Quickstart](https://example.com/docs/quickstart.md): authenticate and make your first call in 5 minutes
- [Authentication](https://example.com/docs/auth.md): API keys, OAuth scopes, rotation

## Reference

- [Endpoints](https://example.com/docs/api.md): every route with request and response schemas
- [Webhooks](https://example.com/docs/webhooks.md): event types, retry behaviour, signature verification
- [Errors](https://example.com/docs/errors.md): every error code and how to resolve it

## Optional

- [Changelog](https://example.com/changelog.md): versioned release notes
- [Status](https://status.example.com/): live uptime and incident history
E-commerce
# Example Store

> Example Store sells workwear and safety equipment to trade customers in Ukraine. Around 4,300 SKUs across six brands.

## Buying information

- [Shipping and delivery](https://example.com/shipping/): carriers, timelines, costs by region
- [Returns](https://example.com/returns/): the 14-day policy and how to start a return
- [Payment methods](https://example.com/payment/): accepted cards and cash-on-delivery terms

## Categories

- [Boots](https://example.com/boots/): sizing guidance and the brands stocked
- [Outerwear](https://example.com/outerwear/): seasonal ranges and material specifications

## Optional

- [About us](https://example.com/about/): company registration and warehouse location

llms.txt vs robots.txt vs sitemap.xml

Three root-level files, three different jobs. They are complements, not alternatives — and only one of them controls anything.

llms.txtrobots.txtsitemap.xml
JobPoint readers at your key pages, with notesTell crawlers which paths they may requestList every URL you want crawled
StatusCommunity proposal (2024)Standard — RFC 9309Long-established protocol
FormatMarkdownPlain text directivesXML
Controls access?No — no blocking syntax existsYes, for compliant crawlersNo
Selective or complete?Selective — curatedRules, not a page listComplete — inventory
Documented consumersDocs platforms and AI dev tools; no major AI search vendor commitmentAll mainstream crawlersAll mainstream search engines
Affects ranking?No documented effectIndirectly — blocked pages cannot rankAids discovery, not ranking

Publishing llms.txt does not replace either of the other two. Check crawler access with the AI Crawler Checker, and read the format background in the llms.txt guide and the glossary entry.

Does a valid llms.txt guarantee AI visibility?

No. A perfect score here means the file is structurally correct — nothing else. Whether an AI engine cites you depends on whether its crawlers can reach you, whether your pages are indexed, and on content quality, topical relevance, authority, structure and each engine's own retrieval. A valid llms.txt is a low-cost, low-risk piece of housekeeping, not a visibility mechanism. The gap between "technically correct" and "actually cited" is what the AI Visibility Audit measures and what AEO and GEO work on.

llms.txt validator — FAQ

What is an llms.txt validator?

An llms.txt validator fetches a website’s /llms.txt file and checks it against the published structure: a required H1, an optional blockquote summary, H2-delimited file lists, and list items carrying valid Markdown links. This one also samples the listed URLs for broken links and returns a 0–100 structure score. It validates format only — it cannot measure whether any AI engine reads the file.

What is llms.txt?

llms.txt is a proposed Markdown file placed at a site’s root that points AI tools to the pages worth reading, with a short note on what each one covers. It was proposed by Jeremy Howard of Answer.AI in September 2024 and documented at llmstxt.org. It is a curated map of your key content, not an access-control file and not a ranking mechanism.

Is llms.txt an official standard?

No. llms.txt is a community proposal, not an IETF or W3C standard, and it has no formal standards body behind it. That distinguishes it from robots.txt, which is standardised as RFC 9309 and honoured by mainstream crawlers. Treat llms.txt as an emerging convention that costs little to publish.

Does Google use llms.txt?

No. Google has stated publicly that its search systems do not read or act on llms.txt, and Google Search Central documentation lists no support for it. Publishing the file does not affect Google Search rankings or AI Overview eligibility. Googlebot access, governed by robots.txt, is what determines whether Google can crawl your pages.

Do ChatGPT, Claude or Perplexity read llms.txt?

No major AI search vendor has published a commitment to read llms.txt automatically as a retrieval or ranking input. Where the file demonstrably gets used today is narrower: documentation platforms generate it, and AI developer tools consume it when a user or an integration points at the file directly. Anyone claiming a specific engine ranks you higher for having one is asserting something no vendor has documented.

Where should the llms.txt file be located?

At the root of the domain — https://yourdomain.com/llms.txt — in lowercase, served with a 200 status and a text content-type. The proposal also permits the file at subpaths, but the root location is the one anything looking for it will try first.

What is the required structure of llms.txt?

In order: an optional byte-order mark; an H1 with the project or site name; an optional blockquote holding a short summary; zero or more Markdown sections of any type except headings; and zero or more H2-delimited sections containing file lists. Each file-list item is a Markdown list entry with a required [name](url) hyperlink, optionally followed by a colon and notes.

Is the H1 the only required part of llms.txt?

Yes. The proposal names the H1 with the project or site name as the only required section; everything else is optional. In practice a file with just an H1 hands over nothing useful, so the summary and at least one populated file-list section are what make it worth publishing.

What is the blockquote summary for?

The blockquote directly under the H1 carries a short summary of the project containing the key information needed to understand the rest of the file. It is the highest-value line in the file, because it is the part most likely to be read in full rather than skimmed for links.

What does the ## Optional section mean in llms.txt?

It is a specially named H2 section whose URLs can be skipped when a shorter context is needed. Use it for secondary material — changelogs, archives, team pages — so a reader working within a tight context budget can drop those without losing your core pages.

What is the difference between llms.txt and llms-full.txt?

llms.txt is the compact index: a curated list of links with short notes. llms-full.txt is the companion convention holding the expanded content itself, concatenated into one file. The index is the part meant to be read first; the full file exists for tools that want the whole corpus in one request. Neither is a standard.

What is the difference between llms.txt and robots.txt?

robots.txt controls access: it tells compliant crawlers which paths they may request, and it is standardised as RFC 9309. llms.txt suggests content: it points AI tools at pages you consider important. robots.txt is honoured by mainstream crawlers; llms.txt has no committed consumers among the major AI search vendors. Only robots.txt can restrict crawling.

Is llms.txt the same as a sitemap?

No. An XML sitemap is a machine-readable inventory of every URL you want crawled, built for completeness. llms.txt is a short curated map of your most important pages with human-written notes, built for selectivity. A sitemap answers "what exists"; llms.txt answers "what matters and why".

Can llms.txt block AI crawlers?

No. llms.txt has no blocking syntax and no enforcement behind it — it cannot restrict access to anything. Crawler access is controlled by robots.txt for compliant bots and by your WAF or CDN for everything else. To check which AI bots your robots.txt currently allows, use the AI Crawler Checker.

Does publishing llms.txt improve AI search rankings?

There is no documented evidence that it does, and no major AI search vendor has published it as a ranking or retrieval input. The honest case for publishing one is that it is cheap, carries no downside, forces you to articulate which pages matter, and positions you if adoption grows. Treat any promised ranking lift as unsubstantiated.

A valid llms.txt is one line item of 47.

The full AI Visibility Audit scores your crawler access, schema, entity signals and live AI citations — a 0–100 report emailed in under a minute.

Run the free AI Visibility Audit