Opens in a new tabSkip to content
Agent LighthouseAgent Lighthouse

    Searches the text of every published page. The evidence sources themselves are not in this index — search all of them on the trusted sources page.

    GitHub ↗
    Browse checks and page contents
    machine-discovery/llms-txt-structure

    llms.txt is well-formed

    What it checks

    One root file, two structural elements, fenced code blocks excluded from both:

    Element Detected as
    Blockquote summary a line starting with > among the first 3 non-blank lines after the H1
    H2 sections lines matching ## + non-hash + content, outside fenced blocks

    Result semantics:

    State Result
    both elements present pass
    exactly one missing pass, missing element named
    both missing pass, both named
    /llms.txt absent or non-200 na — that is llms-txt-exists’ signal
    200 with no # heading at all (soft-404 / HTML) na — the body is not a markdown llms.txt

    scoreDisplayMode: 'informative' with weight: 0 keeps every outcome out of the category score, the readiness vitals and the top-fails list.

    Why it matters

    No AI vendor documents reading llms.txt or llms-full.txt from a website at runtime. An Ahrefs study of 137,210 domains (verified 2026-10-18) found that 97% of llms.txt files received no requests in a month. AI tools never asked for a missing file. Tools a user points at the file, such as documentation helpers in coding agents, can still read it. Chrome Lighthouse (verified 2026-10-18) is the one shipping checker of the file.

    Its audit source (verified 2026-10-18) flags a file with no H1 heading or no links; the documentation page does not list those checks. Lighthouse is a checker, not a consumer, so it does not change the grade. It does not check the blockquote summary or H2 sections that this audit reports.

    Evidence

    Blockquote summary (from 1.2, grade C)

    • The llms.txt specification lists the blockquote as an element of the format — “A blockquote with a short summary of the project, containing key information” — while stating the H1 “is the only required section” — llmstxt.org (verified 2026-08-21)
    • The reference implementation parses the blockquote into a named summary field: summ_pat = (?:^>\s*(?P<summary>.+?$)$)?, returned alongside title, info and sections — a real, inspectable consumer — raw.githubusercontent.com/…/core.py (verified 2026-08-21)
    • That parser ships as a published package with the llms_txt2ctx CLI that turns the file into LLM context — pypi.org/…/llms-txt (verified 2026-08-21)

    H2 sections (from 1.3, grade C)

    • The spec defines “Zero or more markdown sections delimited by H2 headers, containing ‘file lists’”. It attaches behaviour to exactly one heading: the “‘Optional’ section is used, by convention, for secondary information: links an agent can skip when a shorter context is needed”. That is the only agent-visible semantics the format assigns to a heading — llmstxt.org (verified 2026-08-21)
    • The reference implementation returns sections as a dict mapping section names to their parsed link lists, so an H2 heading is a real addressable key — raw.githubusercontent.com/…/core.py (verified 2026-08-21)
    • Chrome ships an agentic-browsing Lighthouse audit for llms.txt, giving the format vendor-tool recognition — developer.chrome.com/…/llms-txt (verified 2026-08-21)

    Limits

    Chrome’s own Lighthouse llms.txt audit validates only an H1, one markdown link and a 50-character minimum — it does not check for a blockquote (github.com/…/llms-txt.js, verified 2026-08-21). Google states Search “ignores” llms.txt entirely (developers.google.com/…/ai-optimization-guide, verified 2026-08-21).

    “Zero or more” makes a section-free llms.txt fully conformant, so the v1 “at least one ##” bar was stricter than the standard it cited. No source claims a measured difference in agent behaviour between a sectioned and an unsectioned file. Two months of measured server logs recorded only 37 of ~770 llms.txt/llms-full.txt fetches coming from named AI assistants (evilmartians.com/…/which-ai-actually-reads-your-sit…, verified 2026-08-21). OpenAI’s (developers.openai.com/…/bots) and Perplexity’s (docs.perplexity.ai/…/perplexity-crawlers) crawler pages mention llms.txt only as the index of their own documentation. Neither says its crawlers read another site’s llms.txt (both verified 2026-10-18).

    How it scores

    Informative, weight 0. Every result carries an unconsumed notice: no AI vendor documents reading this file. The audit never warns or fails. An absent file is not applicable. A file that is present passes, and a missing blockquote summary or missing H2 sections are named in the pass message, with the note that it does not affect AI agents.

    Sources