Missing llms.txt
Your site has no /llms.txt file, so AI agents have to guess which pages matter most.
llms.txt is a plain-text manifest at the root of your site (https://example.com/llms.txt) that lists the canonical URLs you most want AI agents to read. When it is missing, agents fall back to crawling your sitemap, your homepage, and whatever links they happen to find, which often means they index marketing copy and ignore your docs, pricing, and product pages.
AI agents have small attention budgets. ChatGPT, Claude, Perplexity and emerging shopping agents typically fetch only a handful of pages per domain before answering a user. llms.txt lets you put your best content first: the pages that explain what you do, what you charge, and how to take action. Without it, agents read whatever a crawler happened to surface, which is rarely the page you would have chosen.
When agents cite competitors instead of you in answers, you lose the impression entirely. There is no second-page result to recover from. Sites with a curated llms.txt see meaningfully higher citation rates in agent answers (because the agent ingested the right pages) and faster onboarding for AI shopping agents that need to identify your primary offering. Cost to add: ~15 minutes. Cost of not adding: every agent query that picks the wrong page or no page at all.
Open https://your-domain.com/llms.txt in a browser. If you see a 404, the file is missing. If you see HTML (your homepage), the file is missing and your server is misrouting. The file should return HTTP 200 with content-type text/plain and a body that starts with "# Site Name" followed by markdown-style sections.
Create a plain-text file at the root of your site called llms.txt. Open it with "# <Your site name>", a one-paragraph description of what you do, then sections (## Docs, ## Pricing, ## Blog, …) listing the canonical URLs you most want agents to read. Keep it under 50 KB, since long manifests get truncated.
The reference snippet above is platform-agnostic. Below are the concrete steps for the four most common stacks plus a generic fallback for any other host.
Next.js
Add a route handler at app/llms.txt/route.ts that returns the manifest as text/plain. Next.js will serve it directly under /llms.txt with no rewrite needed. If you want the file to update without a rebuild, mark the route dynamic; otherwise it ships as a static asset at build time.
WordPress
WordPress does not serve plain-text files at the root by default. The simplest path: upload llms.txt to your server root via SFTP (same place wp-config.php lives). Make sure your .htaccess does not rewrite the request into index.php; add an explicit allow rule if it does. Alternatively, use a snippet plugin (e.g. WPCode) to register a virtual route.
Shopify
Shopify does not let you upload arbitrary files at the root. The official workaround is to create a page template that returns text/plain and a redirect. Create a new page template "page.llms-txt.liquid", set its content type via the layout, and either (a) point /llms.txt → /pages/llms-txt with a 301 in your store settings, or (b) host the file on a subdomain you control via Cloudflare Worker / Netlify and add the URL to your Search Console.
Webflow
Webflow hosting does not allow custom files at the root, so the cleanest fix is to put llms.txt behind a CDN proxy (Cloudflare Worker is the usual choice) and rewrite /llms.txt to a Worker that returns the manifest. If you cannot run a Worker, host the file on a separate subdomain (e.g. agents.your-site.com/llms.txt) and submit it via your tooling. Agents that follow the spec will check the apex first, but several major crawlers also read subdomain manifests.
Static HTML / any stack
Drop llms.txt into the same directory as your index.html. Most static hosts (Netlify, Vercel, GitHub Pages, S3, Cloudflare Pages) will serve it as text/plain automatically. If your host serves it as application/octet-stream, add an explicit content-type header in your hosting config.
- Returning HTML or a 200 page that says "Not Found." Agents follow the HTTP status, not the body. The file must be a real 404 or a real 200 with text/plain.
- Putting llms.txt under /docs/ or /public/ instead of the site root. Agents only check the apex.
- Listing every URL on the site. The manifest is a curated guide, not a sitemap. 20–50 high-value links beats 500 noisy ones.
- Embedding rich HTML or JavaScript. The format is plain text with markdown-style links, and anything else gets stripped.
- Setting cache-control to no-store, which forces every agent to re-fetch on every query. 1 hour is the sweet spot.
After deploying, visit https://your-domain.com/llms.txt in a private browser window. It should render as plain text and the network tab should show 200 with content-type text/plain. Then run a fresh AgentSpeed scan. The "llms.txt present" check should flip from fail to pass within ~30 seconds; the overall score will tick up by the check's rubric weight.
Is llms.txt an official standard?
It is a community proposal (llmstxt.org) adopted by enough crawlers and agents that maintaining one is a high-leverage, low-effort win. It is not yet an IETF or W3C standard.
Will this hurt my SEO?
No. Search engines ignore llms.txt; they read robots.txt and sitemap.xml. llms.txt is read by AI agents in addition to (not instead of) the existing files.
How often should I update it?
Whenever your top pages change. For most sites that is quarterly. The file is small and cheap to redeploy, so erring on the side of fresh is fine.
Free scan, no signup. The score page is permanent and citable, so you can link it from your team's remediation ticket alongside this guide for “Missing llms.txt”.