llms.txt Generator + Validator

Free, no signup. Build a clean llms.txt that points LLMs at your key pages, or paste one you already have and check that it's well-formed.

llms.txt structural rubric
CheckStatus when healthy
H1 One site-name H1
Summary A short blockquote is recommended
Links Grouped, absolute HTTPS URLs
Size Keep the map concise (under ~20 KiB)

Source: llmstxt.org proposal; not a crawler-consumption guarantee

Heads up: llms.txt is a community proposal (llmstxt.org), not an official standard. No major AI crawler is documented to read it today. Treat it as low-effort, low-risk housekeeping — not a ranking lever. If you want to influence what AI systems can access, that's robots.txt and your on-page content, not this file. More on how AI crawlers actually work →
Want evidence instead of assumptions?

Upload your own access log to the Log File Analyzer. Its browser-local /llms.txt report distinguishes verified AI crawler requests, unverifiable crawler claims, spoofed claims, other traffic, and no observation in the supplied period. A request is retrieval evidence only—not proof of rankings, citations, or broad provider adoption.

The Optional section (a crawler may skip it) is emitted last automatically — just name a section “Optional”.

Output — llms.txt

Runs entirely in your browser — nothing you paste is uploaded or stored. Anonymous run-level outcome counters may be used for aggregate research; URLs, domains, IPs, and identifiers are never included, and no statistic is released below 100 runs.

Where this is heading: serving Markdown to LLMs

Looking ahead — not something to do today. llms.txt and per-page Markdown are proposals no major AI crawler is documented to consume yet.

llms.txt is a directory — one file pointing at your key pages. The more interesting idea, once AI clients adopt it, is content negotiation: same URL, two representations. Serve HTML to browsers and a clean Markdown rendering to LLM clients, and decide which at the edge.

A Cloudflare Worker picks the representation from the request — either Accept: text/markdown or a known AI user-agent — and emits Vary: Accept (or Vary: User-Agent) so shared caches don't hand the wrong variant to the wrong client.

It's exactly the move behind this site's hybrid /robots.txt — same bytes, only the Content-Type label negotiated — just extended to actual content, and to a real body difference rather than only a header.

This tool does two jobs: it generates a well-formed llms.txt from a simple form (or a sitemap you upload), and it validates one you paste or fetch from a live domain. Both run entirely in your browser. For context on why this file is optional housekeeping rather than a ranking move, see how AI crawlers actually work and the llms.txt explainer.

What the results mean

The validator groups findings into three severities, shown as pills:

  • The file breaks the proposal's shape — no # title, a malformed list item that isn't a [title](url) link, a relative (non-absolute) URL, or an empty file.
  • Well-formed but not ideal — no > summary, an http:// link, a duplicate URL, a second # H1, or links that appear before any ## section.
  • Advisory only — a summary placed somewhere other than right after the title, an off-site link, a deep ### heading that isn't part of the structure, or a file large enough (past 20 KiB) to have stopped being a concise map.

A green result means the file is well-formed against the proposal. The result summary is deliberately blunt that this validates form only and cannot guarantee any AI system consumes the file.

How it works

The generate/parse/validate engine (src/lib/tools/llms-txt.ts) is pure TypeScript with no DOM and no network calls, so everything you do in the Generate and paste flows happens locally in your browser — your draft never leaves the page.

The parser reads line by line: it recognises the # title, a > blockquote summary, ## section headings, and Markdown link list items, while skipping the insides of fenced ``` code blocks so they aren't misread as directives. It then runs file-level checks — required title, recommended summary, duplicate URLs, absolute-URL and HTTPS rules, and size — and rolls everything into the error/warning/info tally.

The one server touch is Fetch by URL: browsers can't fetch another site's /llms.txt because of CORS, so a small SSRF-guarded, cached proxy (/api/llms-fetch) pulls only that exact path — nothing else on the domain — and hands the body back for validation.

Features

  • Form-based generator with add/remove sections and link rows, live output, and self-validation as you type.
  • Prefill from sitemap.xml — upload a sitemap and it buckets URLs by first path segment into ready-to-edit sections.
  • Automatic handling of the Optional section (always emitted last).
  • Copy, download, and a share link that packs your draft into the URL fragment (compressed, never sent to a server).
  • Validator with paste or live Fetch /llms.txt by domain, an error/warning/info tally, per-line findings, and a parsed-structure preview.
  • Runs client-side; the only server call is the CORS-bypassing llms.txt fetch.

Limitations

It validates the form of the file against the community proposal — it cannot tell you whether any AI crawler reads it, because none is documented to. It checks link syntax (absolute, HTTPS, well-formed Markdown) but does not crawl the links to confirm they resolve or return the content you claim. The sitemap prefill is a starting point, not a curation step — an llms.txt is only useful if you trim it to your genuinely important pages. And this is not a lever for AI visibility: what AI systems can access is governed by your robots.txt and your on-page content.

Frequently asked questions

Do AI crawlers actually read llms.txt?

Not in any documented way. llms.txt is a community proposal from llmstxt.org, not an official standard, and no major AI crawler (OpenAI, Google, Anthropic, Perplexity) has published support for reading it. Treat it as low-effort, low-risk housekeeping — a tidy map of your best pages — not a ranking lever. What AI systems can actually reach is governed by your robots.txt and your on-page content.

What goes in an llms.txt file?

One required "# " H1 title (your site name), a recommended "> " blockquote one-line summary right after it, then "## " section headings (Docs, Guides, Blog) each containing Markdown link list items in the form "- [title](url): optional notes". A special "## Optional" section holds links a crawler may skip. Every link URL should be an absolute https:// address the LLM can fetch directly.

Where does the llms.txt file go on my site?

At the root of your domain, served at https://site.example/llms.txt — the same location convention as robots.txt. This validator can fetch that exact path for any domain (via a small server-side proxy, because browsers cannot fetch cross-origin) so you can check a live file without pasting it.

What does the validator check?

The form of the file against the proposal, not whether anything reads it. It flags a missing H1 title (error), missing summary (warning), malformed or relative link URLs, http:// links, duplicate URLs, links that appear before any section, deep "### " headings that are not part of the structure, off-site links, and files large enough to have stopped being a concise map. It cannot and does not guarantee any AI system consumes the file.

How big should llms.txt be?

Small. It is a directory of links, not a copy of your content. The validator raises an informational note once a file passes about 20 KiB, because at that size it has usually stopped being a concise map and started duplicating pages. If you want to serve full clean content to LLMs, that is per-page Markdown and content negotiation, not a bigger llms.txt.

Next stepAI Search Volume Estimator — score it against a calibrated model.

Feature requests for Llms Txt

Upvote what you want most. New ideas can be submitted from the floating Feedback menu; requests appear here once approved, and the most-wanted rise to the top.

Loading…

➕ Request a feature

New requests are reviewed before they appear here.

Sobre a ferramenta

Grátis, sem cadastro. Build um clean llms.txt que points LLMs em seu chave páginas, ou paste um você já têm e verificação que it's well-formed.

Build um well-formed llms.txt pointing LLMs em seu chave páginas, ou paste um você têm e verificação seu structure — gratuito, e honesto it's não um standard ainda.

Recursos

  • Copy, download, e um participação link que packs seu draft em o URL fragment
  • Este ferramenta faz dois jobs: isso generates um well-formed llms.txt de um
  • ( llmstxt.org ), não um official standard .
  • well-formed against o proposal. O resultado summary é deliberately blunt que este valida

Como funciona

O form de o file against o proposal, não whether anything reads isso. Isso flags um ausente H1 título (Erro), ausente summary (aviso), malformed ou relative link URLs, http:// links, duplicate URLs, links que aparecer antes qualquer seção, deep "### " headings que são não part de o structure, off-site links, e files grande suficiente para têm stopped being um concise mapa. Isso cannot e faz não garantia qualquer AI system consumes o file.

Limitações

  • Heads up: llms.txt é um community proposal
  • Não em qualquer documentado way. llms.txt é um community proposal de llmstxt.org, não um official standard, e Não major AI rastreador (OpenAI, Google, Anthropic, Perplexity) tem publicado sustentam para reading isso. Trate isso como low-effort, low-risk housekeeping — um tidy mapa de seu best páginas — não um classificação lever. O que AI systems pode actually reach é governed por seu robots.txt e seu on-page conteúdo.

Perguntas frequentes

Do IA rastreadores na verdade leitura llms.txt?

não em qualquer documentdo way. llms.txt é a communidade proposal de llmstxt.org, não um oficial padrão, e não major IA crawler (OpenAI, Google, Anthropic, Perplexity) tem publicado suporte para readndo ele. Treat ele como low-effort, low-risk housekeepndo — a tidy mapa de seu best páginas — não a ranqueamento lever. What IA sistemas pode na verdade reach é governdo por seu robots.txt e seu on-page conteúdo.

What goes em um llms.txt arquivo?

um obrigatório "# " H1 título (seu site nome), a recommenddo "> " blockquote one-line summary right depois ele, então "## " seção títulos (Docs, Guides, Blog) cada containndo Markdown link lista items em o formar "- [título](url): opcional notes". A special "## opcional" seção holds links a crawler may skip. cada link URL should be um absolute https:// address o LLM pode buscar diretamente.

onde faz o llms.txt arquivo go em my site?

em o root de seu domain, servdo em https://site.example/llms.txt — o mesmo locação convenção como robots.txt. esta validator pode buscar que exatos path para qualquer domain (via a pequeno server-side proxy, porque browsers não pode buscar cross-origin) so você pode verificar a ao vivo arquivo sem pastndo ele.

What faz o validator verificar?

o formar de o arquivo contra o proposal, não whether anythndo lê ele. ele sinaliza a ausentes H1 título (erro), ausentes summary (aviso), malformdo ou relative link URLs, http:// links, duplicate URLs, links que aparecem antes qualquer seção, deep "### " títulos que are não part de o structure, off-site links, e arquivos grande suficiente para têm stoppdo bendo a concise mapa. ele não pode e faz não garantir qualquer IA sistema consumes o arquivo.

como big should llms.txt be?

pequeno. ele é a directory de links, não a copy de seu conteúdo. o validator raises um informational note once a arquivo passa sobre 20 KiB, porque em que size ele tem normalmente stoppdo bendo a concise mapa e startdo duplicatndo páginas. se você want para serve completo clean conteúdo para LLMs, que é per-page Markdown e conteúdo negotiação, não a bigger llms.txt.