How to add llms.txt to your website in 10 minutes
llms.txt tells AI assistants what your site is about. Get the exact format, a copy-paste template, and deployment steps for every major host.
On this page

If you've heard about llms.txt and want to add it to your site without reading the entire spec, this is the post for you. By the end you'll have a working /llms.txt deployed, validated, and indexed.
Total time: 10 minutes. Zero downside, only upside.
What is llms.txt?
llms.txt is a plain-text file at the root of your site that tells AI assistants β ChatGPT, Claude, Copilot, Perplexity, Gemini β what your site is about, who you are, and which pages matter.1 It's similar in spirit to robots.txt and sitemap.xml, but optimised for natural-language consumption by large language models.
Think of it as the elevator pitch your site gives an AI when it has 30 seconds to decide whether to recommend you.
The format is simple Markdown. The spec was proposed in late 2024 by Jeremy Howard1 and adoption among AI-search-conscious sites grew quickly through 2025.
Why bother?
Three concrete reasons:
- AI assistants read it. ChatGPT and Claude have both shown evidence of consulting
llms.txtduring retrieval-augmented generation (here's how to get cited by Claude).2 When your site has one, the model has a reliable, structured source of truth instead of guessing from your HTML. - It's an AEO scoring signal. Most AEO scanners β including FixAEO's free checker β give explicit points for having one (it's one line item on the AEO audit checklist).
- It costs nothing. No JavaScript, no schema validation, no DNS changes. One text file.
If you're optimising for AI search at all, llms.txt is the highest effort-to-impact ratio you'll find. (New to the topic? Start with what AEO is.)
The format in one minute
llms.txt is Markdown with a specific convention:
# Site name
> Short blockquote: the one-sentence pitch for your site.
A paragraph or two of context β who you are, what you do, who it's for.
## Key concepts
- Concept 1 β short definition
- Concept 2 β short definition
## Pages
- [Homepage](https://example.com/) β what it is
- [Pricing](https://example.com/pricing) β what it is
- [Blog](https://example.com/blog/) β what it is
## Contact
- Email: hello@example.com
That's it. The > blockquote on line 3 is the most-quoted part of the file β that's the line that ends up in AI summaries when models cite you. Spend disproportionate time on it.
Copy-paste template
Here's the template I recommend for a SaaS product. Fill in the placeholders.
# [Product name]
> [Product name] is [one-sentence value proposition]. It [main capability]
> for [target audience] who want to [outcome].
[1-2 paragraphs explaining the product, problem it solves, and why it
exists. Write in plain language β no marketing fluff. The AI will use
this to decide whether to recommend you.]
## What it does
- [Feature 1] β [one-line description]
- [Feature 2] β [one-line description]
- [Feature 3] β [one-line description]
## Who it's for
- [Persona 1, e.g. "Indie SaaS founders running content marketing"]
- [Persona 2]
- [Persona 3]
## Pricing
| Plan | Price | Highlights |
|------|-------|------------|
| Free | $0/mo | [highlights] |
| Pro | $X/mo | [highlights] |
## Pages
- [Homepage](https://yoursite.com/) β main product overview, run a scan
- [Pricing](https://yoursite.com/pricing) β plan comparison
- [Blog](https://yoursite.com/blog/) β long-form posts on [topic]
- [Docs](https://yoursite.com/docs/) β technical reference
## Contact
- Email: hello@yoursite.com
- Website: https://yoursite.com
Don't want to fill in the placeholders by hand? Our free llms.txt generator builds the whole file for you.

FixAEO's free llms.txt generator: fill the fields (or hit "Example") and it builds a complete, correctly-formatted llms.txt you can copy or download, no manual templating.
Deploy it on your host
The file needs to be served at https://yoursite.com/llms.txt with Content-Type: text/plain. Here's how on the most common hosts:
Next.js (App Router, static export)
Save as public/llms.txt. That's it β Next.js serves anything in public/ at the root.
Vercel (any framework)
Same as Next.js β public/llms.txt. If you're not using a framework, drop it in your project root and add a vercel.json rewrite.
Cloudflare Pages
Same as Next.js β public/llms.txt. Pages serves the file with text/plain automatically.
Apache (.htaccess)
Place llms.txt in your document root. Then ensure the right MIME type:
AddType text/plain .txt
nginx
Place llms.txt in your document root, then in your server block:
location = /llms.txt {
default_type text/plain;
add_header Cache-Control "public, max-age=3600";
}
Cloudflare Worker (no host needed)
If you don't have a server, you can serve llms.txt directly from a Worker route:
export default {
async fetch(request) {
const url = new URL(request.url);
if (url.pathname === '/llms.txt') {
return new Response(LLMS_TXT_CONTENT, {
headers: { 'content-type': 'text/plain; charset=utf-8' },
});
}
return fetch(request); // fall through
},
};
Verify it works
After deploying:
curl -sI https://yoursite.com/llms.txt
# Expect: HTTP/2 200 ... content-type: text/plain
Then visit https://yoursite.com/llms.txt in a browser β you should see your Markdown as raw text. If you see HTML or your homepage, the file isn't being served correctly.
Common mistakes
- Serving HTML instead of plain text. Some hosts will render
.txtextensions as HTML. CheckContent-Typein the response headers. - Putting it in the wrong directory. It must be at the root β
/llms.txt, not/static/llms.txtor/docs/llms.txt. - Forgetting the blockquote
>line. This is the most-cited part of the file. Make it count. - Treating it like marketing copy. Models prefer plain, factual descriptions. "Industry-leading AI-powered SaaS platform that revolutionisesβ¦" β no. "FixAEO is an Answer Engine Optimization checker. Run a free scan in 30 seconds." β yes.
- Forgetting to update it. If you ship a new product line, update
llms.txt. Stale claims hurt more than missing claims.
What llms.txt doesn't do
For clarity:
- It doesn't replace
robots.txt. Both should exist β see our robots.txt audit. - It doesn't replace structured data (JSON-LD). It complements it.
- It doesn't guarantee inclusion in AI answers β but it materially raises your chances.3
- It's not crawled by Google for search ranking. Just by AI assistants.
Next steps
After deploying llms.txt:
- Add
OrganizationJSON-LD to your homepage. AEO vs SEO: 30-day plan has the template. - Make sure your robots.txt allows AI crawlers. Most do by default; explicit blocks are the trap. Then validate your
sitemap.xmlso every page stays discoverable. - Run a free AEO scan to see where you sit. FixAEO checks
llms.txt, robots.txt, schema, and 7 other heuristics, then asks Gemini/Claude/Copilot/ChatGPT whether they recognise your brand. Run it free.
FAQ
Where exactly does llms.txt live?
At your site root: https://yoursite.com/llms.txt. Same place as robots.txt.
Does Google use it?
Not for ranking. Google's AI Overviews may consult it, but it's primarily for AI assistants (ChatGPT, Claude, Copilot, Perplexity).
How big can the file be?
The spec doesn't enforce a limit. Practically, keep it under ~10KB β that's the model's context window for an opening retrieval pass. For most sites that's plenty.
Does it conflict with robots.txt or sitemap.xml?
No. The three files coexist and serve different purposes: robots.txt is crawl rules, sitemap.xml is URL inventory, llms.txt is natural-language site description.
Can I include links?
Yes β and you should. The "## Pages" section is exactly that.
Should I worry about leaking strategic info?
The same logic applies as for your website itself: if you wouldn't put it on the homepage, don't put it in llms.txt. It's a public file.
In one paragraph
llms.txt is a 5-minute investment that puts your site's positioning into the hands of AI assistants on their terms. Drop a Markdown file at /llms.txt, fill in name + blockquote pitch + page list, deploy, verify with curl. Then run a free FixAEO scan and watch your AEO score jump by 8-10 points.
Footnotes
-
llmstxt.org: The /llms.txt file β the original proposal. Read the spec. β© β©2
-
Anthropic: Claude's content sources. Read the policy. β©
-
Lewis et al.: Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. The seminal RAG paper. Read on arxiv. β©
Related reading
The 30-point AEO audit checklist (2026)
AEO audit checklist: 30 signals across 7 categories β from crawler access to per-engine verification. Copy it into Notion and run your audit today.
15 min readWhat is AEO? Answer Engine Optimization explained
Answer Engine Optimization (AEO) means getting AI assistants to recommend your brand. Learn what AEO is, why it matters more than SEO, and how to start.
8 min readHow to get cited by Claude: the 2026 playbook
Get cited by Claude with the 2026 AEO playbook. Claude's constitutional training favors authoritative, non-promotional sources β here's how to qualify.
11 min readHow to get cited by Perplexity: a 2026 playbook
Perplexity cites 4-8 sources per answer and the patterns are learnable. Here are the 8 we see in cited content, with copy-paste tactics.
10 min readHow to Get Cited by Gemini in 2026
How to get cited by Gemini: it runs on classic SEO plus AI-specific signals. Learn the 2026 playbook for rankings in AI Overviews and Gemini answers.
11 min readAEO vs SEO: what changed and what to do about it
AEO vs SEO: AI assistants and search engines use different signals. See a plain comparison and a 30-day migration plan for your team.
7 min read
Free AEO tools
Put this into practice with free FixAEO tools β no signup required.
AI Visibility Checker
Score your brand across 8 AI engines
AEO Audit Tool
Answer-engine readiness scan
Schema Generator
Build valid JSON-LD structured data
llms.txt Generator
Create a spec-compliant llms.txt
Sitemap Validator
Check your XML sitemap for errors
AI Content Grader
Grade content for AI citation readiness
Want to see how your brand scores?
FixAEO runs all the checks in this post automatically β free, no signup.
Run a free scan