How to Validate Your llms.txt File
Writing an llms.txt is only half the job. A file that lives at the wrong URL, is served as the wrong content type, or links to pages that no longer exist quietly fails at its one purpose. Validation is the five-minute pass that catches these problems before they matter.
Step 1 — Confirm the URL
Open https://yourdomain.com/llms.txt directly in a browser. The file must live at the root — not in a subfolder, not under a path prefix. You should see your Markdown content rendered as plain text. If you get a 404, the file is either misnamed, in the wrong directory, or being intercepted by your framework's routing before the static file is served.
Step 2 — Check the content type
Confirm the server sends the file as plain text. A quick way is from the command line:
curl -sI https://yourdomain.com/llms.txt | grep -i content-type # You want to see: content-type: text/plain; charset=utf-8
If it comes back as text/html, your server is wrapping the file or routing it through a template. Configure your host to serve the raw file as text — the WordPress and platform guides on this site cover the common fixes.
Step 3 — Validate the structure
Read the file top to bottom against the format conventions. A well-formed file passes all of these:
- Exactly one H1 title on the first line, using your real name
- A blockquote summary immediately after, one or two plain sentences
- H2 headings that group links into honest sections
- Every link followed by a colon and a short description
- Absolute URLs throughout — no relative paths
- A lean overall length — a curated shortlist, not a full index
Step 4 — Test every link
Each URL in the file should return a healthy 200 response and land on the page you intended. You can spot-check by clicking, or verify them in bulk:
# Extract URLs and check each status code
grep -oE 'https?://[^)]+' llms.txt | while read url; do
code=$(curl -s -o /dev/null -w "%{http_code}" "$url")
echo "$code $url"
doneAnything returning 404, 301, or 302 needs attention: fix the destination, update the URL to its final location, or remove the entry.
Step 5 — Sanity-check the content
The final pass is editorial, not technical. Does the summary accurately describe your site today? Are the sections still relevant, or do they reference services you no longer offer? Is anything sensitive linked that should not be public? Remember that llms.txt is advisory and public — it is not access control, so never treat it as a place to hide or expose private material.
Keep expectations honest here too. Validation confirms your file is correct, reachable, and current — it does not confirm that any AI system read or used it. Support varies across platforms and ingestion is not guaranteed as of mid-2026. What you control is the quality and availability of the file; that is exactly what this checklist verifies.
Frequently Asked Questions
Is there an official llms.txt validator?
There is no single authoritative validator the way there is for HTML or XML sitemaps, because the proposal is young and the conventions are still settling. Community tools exist, but the most reliable check is a manual pass against the format conventions plus confirming the file is actually reachable.
What content type should llms.txt be served as?
text/plain (or text/markdown). If your server returns it as text/html, some tools may mishandle it. Serving the raw file as plain text is the safest default.
Do broken links in llms.txt matter?
Yes. A link that 404s or redirects unexpectedly undermines the file's purpose and can mislead a model about what your site contains. Test every URL and fix or remove anything broken.
Should I check llms.txt after every deploy?
At minimum, re-check it whenever you change site structure, rename pages, or migrate hosting. A stale llms.txt pointing at moved pages is worse than none. Automated regeneration on publish is the most robust approach.
How do I know an AI system actually read it?
You largely cannot confirm this directly. Server logs may show requests for /llms.txt from known crawler user-agents, but many systems do not identify themselves, and ingestion is not guaranteed. Validation confirms the file is correct and reachable, not that it was consumed.
Generate a file that passes on the first try
Our generator produces a correctly structured, absolute-URL llms.txt so most of this checklist is green before you start.