Free · No signup · Runs in your browser

llms.txt validator

Paste your llms.txt and check it against the llmstxt.org proposal: structure, link format, sections, URLs and size, with line numbers and a cleaned copy. Only the H1 is required, and that is the standard the validator holds you to.

    The cleaned copy reorders the file into spec order, turns stray headings into H2 sections, normalises list items, drops duplicate links and empty sections. It cannot invent missing URLs or make relative links absolute.

    01 How to use it

    4 steps, no signup

    1. 01

      Paste your llms.txt

      Open yourdomain.com/llms.txt, copy the whole file and paste it in. Or load the sample to see how the checks work.

    2. 02

      Read errors first

      Errors break the format defined at llmstxt.org, such as a missing H1 or a link that is not in [name](url) form. Each one names its line.

    3. 03

      Then the warnings

      Warnings are legal but probably unintended: relative URLs, duplicate links, empty sections, an oversized file.

    4. 04

      Copy the cleaned version

      The tool rebuilds the file in spec order with the safe fixes applied. Review it, then upload it to your web root.

    Short answer: an llms.txt validator checks your /llms.txt file against the proposed spec at llmstxt.org: one H1 title, an optional blockquote summary, then H2 sections of Markdown links. Paste the file above to see errors, warnings and a cleaned copy. A valid file isn't proof that any AI engine reads it.

    What this llms.txt validator checks

    An llms.txt validator should hold a file to the format that actually exists, not to one a tool vendor imagined. The format is a proposal by Jeremy Howard, published at llmstxt.org in September 2024. It is short. The file is Markdown, and its parts come in a fixed order:

    1. An H1 with the name of the project or site. The proposal calls this "the only required section."
    2. A blockquote with a short summary.
    3. Zero or more detail sections of any Markdown type except headings: paragraphs, lists, notes.
    4. Zero or more H2 sections holding "file lists": Markdown list items with a required [name](url) link, optionally followed by a colon and notes.

    By convention, an H2 called ## Optional marks links an agent may skip when it needs a shorter context. That is the whole specification. Everything else this tool reports is a warning, a judgement about what is likely to go wrong, and it is labelled as one.

    Errors vs. warnings

    LevelCheckWhy
    ErrorNo H1, or H1 not the first contentThe H1 is the one required element, and it comes first.
    ErrorMore than one H1The format has a single title.
    ErrorH3 or deeper headings; any heading before the H1Detail sections allow any Markdown "except headings"; file lists are H2.
    ErrorA list item in an H2 section without a [name](url) linkThe link is required in every file-list entry.
    ErrorEmpty link name or empty URLBoth halves of the link are required.
    WarningNo blockquote, or blockquote not straight after the H1Recommended, not required.
    WarningRelative or non-HTTP URLsThe file is often read away from your domain.
    WarningDuplicate linksWastes the context the file exists to save.
    WarningEmpty H2 sections; prose inside a file-list sectionProbably a leftover or a mistake.
    WarningNotes not separated by : The proposal's form is [name](url): notes.
    Warning## Optional not last, or repeatedConvention puts secondary links at the end.
    WarningOver 50 KB or 200 linksNo limit in the spec; a long file defeats its purpose.

    Why the blockquote is only a warning. Several online checkers fail a file with no blockquote or no H2 section. The proposal treats both as optional, so a file that is just # Acme is technically valid. It is also nearly useless, which is why the tool still nudges you.

    What the cleaned version changes

    The fix is conservative. It keeps your H1 (or inserts a placeholder you must replace), moves the blockquote directly under it, keeps your detail paragraphs, converts any H3 or deeper heading into an H2 section, rewrites list items as - [name](url): notes, removes exact duplicate URLs after their first appearance, drops empty sections, and moves ## Optional to the end. It never guesses a domain for a relative link or a URL for an entry that has none: those remain warnings for you to fix by hand.

    The honest part: does a valid llms.txt do anything?

    No one has shown that it does. In this site's own llms.txt log study, the file was requested only a handful of times in three months, almost all by SEO audit tools and generic scanners; the study records which bots fetched it and which did not. Google's own guidance on AI features and your website says you do not need to create "new machine readable files, AI text files, or markup" to appear in AI Overviews or AI Mode. On the site's GEO tactic evidence scoreboard the effect on citation is still an open question.

    So treat validation as housekeeping. If you publish the file, it should be correct, because a broken file is worse than none for any tool that does parse it. But passing this validator is not a signal to any AI system, and no checker, including this one, can tell you otherwise. The file costs a few minutes; spend those minutes, not a budget.

    Validator vs. generator

    If you are starting from nothing, use the llms.txt generator: it writes a file in spec order from a list of pages. Use this validator when you already have a file, hand-edited, produced by a CMS plugin, or generated by another tool, and want to know whether it matches the proposal. Plugin output is a common source of H3 sections and relative links.

    Common llms.txt mistakes

    • Starting with a comment or a blank heading. The H1 has to be the first content. A YAML front-matter block or an HTML comment above it breaks that.
    • Nesting H3 sections under an H2. It reads naturally to a human, but the format has only one level of sections.
    • Bare URLs in lists. - https://example.com/docs has no link name. Write - [Docs](https://example.com/docs).
    • Notes with a dash instead of a colon. [Docs](url) - setup is readable but is not the proposal's form.
    • Copying the whole sitemap. Hundreds of links turn a curated map into a crawl list. Keep the pages that answer the questions people ask about you.
    • Serving it with the wrong content type or behind a redirect. This tool cannot see how your server delivers the file. Check that /llms.txt returns 200 and plain text.

    What this validator cannot check

    It works only on the text you paste. It does not fetch your site, so it cannot check that links resolve, that the file is served at the root, or that AI crawlers request it. For that last question, your own server logs are the only reliable source; the AI crawler log analyzer will show you whether any bot ever asked for /llms.txt.

    Last checked and updated: . Everything on this page runs in your browser; nothing you enter is sent anywhere.

    FAQ

    Frequently asked questions

    How do I validate my llms.txt file?
    Paste the file into the box above. The validator checks it against the llmstxt.org proposal line by line: an H1 first, an optional blockquote summary, no headings except H2 file-list sections, and list items in the form - [name](url): notes. Errors and warnings show their line numbers.
    What is the correct llms.txt format?
    A Markdown file with, in order: an H1 with the site or project name (the only required part), an optional blockquote summary, optional paragraphs or lists with no headings, then zero or more H2 sections that each hold a list of links. A section called ## Optional holds links an agent can skip.
    Is the blockquote required in llms.txt?
    No. The proposal lists the H1 as the only required section. The blockquote summary is recommended, so this validator reports a missing one as a warning, not an error. Some checkers mark it as a failure; the spec does not.
    Can llms.txt use H3 headings?
    Not under the proposal as written. The detail area may hold any Markdown except headings, and the file-list sections are H2. An H3 is reported as an error, and the cleaned version turns it into an H2 section.
    What does the Optional section in llms.txt mean?
    By the proposal's convention, links under ## Optional are secondary: an agent that needs a shorter context can skip them. Put changelogs, archives and nice-to-have references there, not your main docs.
    Do llms.txt links need to be absolute URLs?
    The proposal does not say so explicitly, but the file is often read out of context by tools that never saw your domain, so a relative path like /docs may not resolve. This validator warns on relative links and the cleaned version cannot fix them without your domain.
    Does llms.txt actually work?
    It is unproven. In this site's own log test, the file was requested only a handful of times in three months, almost all by SEO audit tools and scanners; see the study linked on this page. Validating it costs nothing, but a valid file is not evidence that any AI system reads it.
    Does Google use llms.txt?
    Google says no special file is needed. Its Search Central page on AI features states you do not need to create new machine-readable files or AI text files to appear in AI Overviews or AI Mode. Treat any claim that llms.txt affects Google as unsupported.
    How big should an llms.txt file be?
    The proposal sets no limit. The point of the file is a short, curated map that fits easily in a model's context, so this validator warns above 50 KB or 200 links. Long content belongs in llms-full.txt or in .md versions of pages.
    What is the difference between llms.txt and llms-full.txt?
    llms.txt is an index of links with short notes. llms-full.txt is a community convention, not part of the core proposal, that puts the full text of key pages in one file. This validator checks the index format only.