Skip to content
DocsGo to Dashboard
Serve an llms.txt

Every audit records whether an llms.txt is reachable and what it contains

Each audit run fetches /llms.txt from your origin and validates it against the emerging community format, so the question "do we even have one?" always has a fresh, evidence-backed answer.

The fetch#

During collection the auditor requests {origin}/llms.txt with a 6-second timeout and the auditor user-agent. Network failures and 404s are not errors — they produce { ok: false, text: "" } and flow into validation as "not found".

The validation#

validateLlmsTxt records { checked, found, valid, issues }, with these exact issues:

  • /llms.txt was not reachable
  • /llms.txt was reachable but empty
  • File does not start with an H1 title line ("# Title")
  • No markdown links ([text](url)) found in any section

A file is valid only when it is reachable, non-empty, starts with # Title, and contains at least one markdown link.

How it scores#

Two catalog signals consume the result: SIG-GEO-01 "llms.txt is present" (severity medium) passes when found; SIG-GEO-02 "llms.txt follows the expected format" (severity low) passes when valid, reports skipped with llms.txt was not found; its format cannot be validated. when absent, and unavailable when no GEO report exists. The same llmsTxt object rides into the AI discovery report and decides whether a publish draft is worth generating (skipped when found and valid) — see Generate a draft.

Back to Serve an llms.txt