How to add llms.txt to Framer
Framer Sites can serve custom files via redirects to a hosted text endpoint, but the cleanest setup uses Cloudflare in front of the Framer domain.
Before you start
- ✓A static host for the file (GitHub Pages, Cloudflare R2, or any CDN)
- ✓Framer Site Settings access for redirects
- ✓Optional: Cloudflare in front of the Framer domain
Install in 3 steps
- 1
Host the file externally
Put llms.txt on any static host (GitHub Pages, Cloudflare R2, Vercel static).
- 2
Add a redirect
In Framer Site Settings → Redirects: /llms.txt → https://your-host.example.com/llms.txt.
- 3
Verify
Curl the canonical URL and confirm the redirect chain ends at 200 + text/plain.
Troubleshooting
Set proper CORS headers on the host serving the file: Access-Control-Allow-Origin: *.
Use Cloudflare to serve the file at the apex domain instead of redirecting.
Common gotchas
- • Framer redirects are 301 — that's fine for AI crawlers but verify in Search Console
- • If you serve from another origin, set CORS and cache headers appropriately
Generate your llms.txt in 30 seconds
Use the free OptimAIze generator, then follow the steps above to deploy on Framer.
Frequently asked questions
Does Framer need both llms.txt and robots.txt?
Yes. robots.txt grants crawler permission; llms.txt curates which pages matter. Together they form the minimum AI-search setup on any Framer site.
Will adding llms.txt slow down my site?
No. It's a tiny static text file fetched once and cached aggressively. Page-load impact is effectively zero.
How often should I update llms.txt?
Whenever your canonical content set changes — new docs section, new product line, new pricing page. A monthly review is a sensible cadence for most sites.
Can I see whether AI engines read my llms.txt?
Check your server logs for user agents like GPTBot, ClaudeBot, PerplexityBot, and Google-Extended hitting /llms.txt. Most sites see traffic within days of publishing.