My llms.txt file isn't validating — troubleshooting
Published 7/24/2026
CrawlPact’s llms.txt validator checks a small set of structural properties. Here’s what each issue means.
“No top-level Markdown heading found near the start of the file”
The validator looks for a line starting with # (a single #, a space, then text) within the
first five lines of the file. A file that starts with plain text, an H2 (##), or a heading
further down the file will trigger this. Fix: add # Your Site Name as the very first
substantive line.
“The file is empty”
The file exists (CrawlPact received a response) but has no content. Fix: add actual content, or
remove the file entirely if you don’t intend to publish one — an absent llms.txt is treated as
informational, not an error.
No linked resources detected
The validator counts Markdown links in the form [label](url). If your file describes resources
in plain text or a different format, they won’t be counted as linked resources. Fix: use standard
Markdown link syntax for anything you want recognised as a linked resource.
The file returns a non-2xx status code
If your server returns an error status (404, 500, or similar) for /llms.txt, CrawlPact reports
it as not found, the same as if the file didn’t exist. Confirm the file is actually deployed at
the domain root and returns a normal 200 response.
Checking llms-full.txt separately
/llms.txt and /llms-full.txt are checked and reported independently — an issue with one
doesn’t imply an issue with the other, and you don’t need to publish both.
See How to publish an llms.txt file for the full step-by-step guide.
Related guides
A crawler shows 'Resource unavailable' — troubleshooting
What it means when CrawlPact can't determine a crawler's access result because robots.txt itself couldn't be fetched, and how to fix it.
My Policy Health Score dropped between scans — troubleshooting
What causes a saved domain's score to change on a scheduled re-scan, and how to find exactly what changed.
My robots.txt rule isn't blocking a crawler — troubleshooting
Common causes when a Disallow rule doesn't appear to take effect against a specific AI crawler, and how to check each one.
See how this applies to your own site
Run a free audit to check your declared AI crawler policy against your own domain.
Audit a domain