09/27/2026
llms.txt: "File does not appear to contain any links"
Lighthouse's llms-txt audit reports "File does not appear to contain any links." when your /llms.txt has no Markdown link in the form [name](url). Bare URLs, <https://...> autolinks and HTML anchors don't count. Rewrite each entry as - [Page name](https://example.com/page/): short note and the audit passes.
Why Lighthouse says there are no links
The check is a regular expression, not a Markdown parser. The audit's source, core/audits/agentic/llms-txt.js in the Lighthouse repository, fetches /llms.txt from the page's origin and runs three tests on the text:
const hasH1 = /^\s*#\s+.+/m.test(content);
const hasLink = /\[.+\]\(.+\)/.test(content);
const isTooShort = content.length < 50;
Any failure scores the audit 0 and adds a row to its details table. The summary line only says "llms.txt does not follow recommendations", so the real reason is one click deeper.
Three things look like links to a person and fail that pattern:
- a bare URL:
- https://example.com/pricing/ - Pricing - an autolink:
- <https://example.com/pricing/> - a Markdown link broken across two lines, because
.in that pattern doesn't match a newline
The llms.txt specification asks for the bracketed form anyway: each file-list entry contains "a required markdown hyperlink [name](url)".
The fix
Put every URL inside a Markdown link. A small file that passes all three checks:
# Example Co
> Example Co makes widgets for small workshops.
## Pages
- [Home](https://example.com/): what we make
- [Pricing](https://example.com/pricing/): plans and costs
- [Contact](https://example.com/contact/): how to reach us
Keep the H1. A file without a # Title line fails with a different message, "File is missing a required H1 header", and one under 50 characters fails as "suspiciously short".
How to verify
Check the file your server actually serves, not the copy in your repository:
curl -s https://example.com/llms.txt | grep -cE '\[.+\]\(.+\)'
That's the same pattern Lighthouse uses. 0 means the audit will still fail. Then rerun just this audit:
npx lighthouse https://example.com/ --only-audits=llms-txt
If /llms.txt returns a 4xx such as 404, the audit is marked Not Applicable rather than failed, and Chrome's llms.txt audit page notes the file is optional for now. A 5xx response does fail it.
The rest of the Agentic Browsing category, and how three of my sites failed this at once, is in Lighthouse now grades your site for AI agents.
Questions this raises
Does Lighthouse follow the links in llms.txt?
No. The audit only tests the file's text: an H1, at least one [name](url) link, and a length of 50 characters or more. It doesn't fetch the URLs the file lists.
Do relative links like [Docs](/docs/) pass?
They pass this audit, because the pattern only needs square brackets followed by parentheses. Full URLs are still the safer choice for tools that read the file outside your site.
My file has links and an H1. Why does it still fail?
Check what the server returns for /llms.txt. A stale cache, a file deployed to the wrong folder, or an HTML page served with a 200 status will all fail, usually on the H1 check first.
Does a missing llms.txt lower my Lighthouse score?
No. A 4xx response, including 404, marks the audit Not Applicable. Only a file that exists and fails the checks, or a 5xx error, scores 0.