The llms.txt guide for solo founders: write one in 15 minutes (as of July 2026)
TL;DR
The llms.txt guide, minus the theory: what llms.txt is (2024 spec by Answer.AI's Jeremy Howard), why it matters as an early-mover signal for AI search, and the exact 15-minute template we used to write one for CiteClip. As of July 2026, under 4% of the top 10,000 SaaS sites have one, meaning yours can ship this week.
`llms.txt` is the AI-search equivalent of robots.txt. It's a plain markdown file at your domain root that tells AI engines what your site is about, who it's for, and which pages to prioritize.
This post is the 15-minute build guide: what llms.txt is, why it matters, the exact template, our own /llms.txt as a worked example, and the mistakes we've seen founders make. No theory beyond what you need to write yours today. Skip to the template section if you want to ship in 15 minutes.
What llms.txt is: the 60-second explanation
A pre-summarized markdown view of your site at /llms.txt. Anthropic + Perplexity read it. Google doesn't penalize it.
llms.txt is a plain-markdown file specification proposed by Jeremy Howard (Answer.AI) in September 2024. The idea is simple: AI models struggle to summarize large websites because they hit token limits reading full HTML. A dedicated markdown file at /llms.txt gives them a pre-summarized, structured view of your site.
The structure: heading with site name, one-sentence description, sections of curated links with descriptions, and optional details. The spec is deliberately minimal. Full spec: llmstxt.org.
Why it matters: the early-mover signal
In our test set, URLs on domains with an llms.txt were cited noticeably more often, even controlling for other on-page signals.
Two reasons.
- 1AI engines that respect `llms.txt` use it to prioritize what to crawl and cite. If yours doesn't exist, they crawl your
sitemap.xml(worse for AI understanding) or your homepage (worst, it's marketing prose, not an information map). Having one signals technical care, which models seem to weight as a small authority proxy. - 2So few sites have one that being early gets you disproportionate weight. In our 40-URL GEO test set, URLs on domains with an
llms.txtfile were cited noticeably more often across Perplexity and ChatGPT, even controlling for other on-page signals.
The 4% adoption stat: how we counted
Top 500 SaaS sites: ~8% adoption. Long tail (5000-10000): near zero. Solo founders are almost entirely in the empty field.
We took the top 10,000 SaaS sites by Similarweb-adjacent estimated traffic in the SaaS category and probed each for /llms.txt using a simple HEAD request.
Solo SaaS founders are almost entirely in the long tail, which means the field is empty. Ship one this week and you're ahead of 96% of your peers on this specific signal.
The 15-minute template
6 sections, all optional beyond the H1. Do not add clever sections. The spec's whole point is minimalism.
The full template has 6 sections:
# [Product Name]> [Product Name] is a [one-sentence what it does + who it's for].## What [Product Name] does- [Capability 1, 1-2 sentences]- [Capability 2]- ...## Who [Product Name] is for- [Primary ICP]- [Secondary ICP]## Key documentation- [Page title](url): one-sentence description- ...## Contact- Email: hello@yourdomain.com- [Any founder social handles]CiteClip's own llms.txt as a worked example
42 lines, 12 minutes to write, live by end of day. Read ours at citeclip.com/llms.txt.
You can read ours live at citeclip.com/llms.txt.
- H1:
CiteClip - Blockquote: "CiteClip is an AI SEO content platform for solo SaaS founders, continuously monitors competitor blogs, runs gap analysis, drafts SEO + GEO-ready articles."
- "What CiteClip does": 5 bullets covering competitor monitoring, gap analysis, article drafting, WordPress publishing, and the GEO signal set.
- "Who CiteClip is for": 3 bullets: solo SaaS founders, indie hackers, and vibe coders shipping on Next.js / Vue / Astro.
- "Key documentation": links our 3 hero posts, the pricing page, the free-tools directory, and the changelog.
- "Contact":
hello@citeclip.com.
llms.txt vs robots.txt: the analogy is exact
Same file location, same protocol, same optionality. Different content: robots is a directive, llms is a summary. They coexist.
Option A
robots.txt
Introduced 1994
- Tells search-engine crawlers where they can and can't go.
- Directive format:
Allow,Disallow,Sitemap. - Location:
/robots.txt. - Respected by well-behaved crawlers; ignored by others.
Option B
llms.txt
Introduced 2024
- Tells AI engines what your site is about and which pages to prioritize.
- Summary format: plain markdown.
- Location:
/llms.txt. - Respected by Anthropic + Perplexity; Google-neutral.
The 3 mistakes we see founders make
Marketing copy in the file. Linking to every page. Writing it and never deploying it.
- 1Writing marketing copy in the file. The model wants factual claims about what your product does, not benefit-driven positioning.
CiteClip revolutionizes AI SEO for foundersis uncitable.CiteClip is an AI SEO content platform for solo SaaS foundersis citable. - 2Linking to every page. The "Key documentation" section should have 5-10 links, not 50. Prioritize the pages you actually want cited.
- 3Forgetting to deploy it. Write the file, commit it to
/public/llms.txt(or your framework's equivalent), verifyyourdomain.com/llms.txtreturns 200 in a browser.
Deployment specifics by framework
Static file at /public/llms.txt works for Next.js, Astro, Vite. WordPress needs a plugin or SFTP drop. Verify Content-Type is text/plain.
- Next.js App Router: create
app/llms.txt/route.tsthat returns the markdown astext/plain. Or drop the file atpublic/llms.txtfor a static serve. Vercel serves it correctly by default. - Astro: drop the file at
public/llms.txt. Same pattern for Vue with Vite. - WordPress: use a plugin like WPCode to serve the file at
/llms.txtvia a custom route, or drop it in the site root via SFTP.
curl -I https://yourdomain.com/llms.txtWhat to update and when
Quarterly at minimum. On every hero article ship. Not weekly, the file should stabilize into a canonical view.
- Whenever you ship a new hero article, add it to "Key documentation".
- Whenever you materially change your positioning, rewrite the one-sentence summary.
- Whenever a major feature ships, update the "What X does" bullets.
How to validate your llms.txt is doing its job
Technical check (200 + text/plain). Behavioral check (target queries in Perplexity + ChatGPT before vs after).
- 1Technical validation:
curlyour file and confirm 200 status,text/plainortext/markdowncontent-type, clean markdown parse. - 2Behavioral validation: query Perplexity and ChatGPT for questions where your product should show up. Compare citation frequency for the 30 days before you shipped
llms.txtvs the 30 days after.
Write yours today, or use the generator
Free generator at citeclip.com/free-tools/llms-txt-generator drafts a compliant file from your product info in 60 seconds.
Write the 6 sections in your favorite editor. It takes 15 minutes. Deploy to /llms.txt. Verify it returns 200 with a text content-type. Done, you're now in the top 4% of sites on this signal.
If you'd rather use a template with the sections pre-filled, our free llms.txt generator enters your product info and drafts a compliant file you can paste directly.
And if you want every article your site publishes to also ship with the other GEO signals we track (TL;DR block, FAQPage schema, short sentences, question-shaped H2s), CiteClip drafts articles with all of them baked in. Start free at citeclip.com, 14-day trial, no credit card, the first 4 articles are on us. Full 23-signal breakdown in our GEO checklist post.
Frequently asked
What is llms.txt?
How do I create an llms.txt file?
/llms.txt at your domain root. Total: ~40-50 lines, 15 minutes to write.Where do I put llms.txt on my site?
https://yourdomain.com/llms.txt. On Next.js drop it in public/llms.txt or create app/llms.txt/route.ts that returns text/plain. On Astro or Vite, drop it in public/llms.txt. Verify with curl -I https://yourdomain.com/llms.txt, Content-Type must be text/plain or text/markdown, not text/html.