How to Write an llms.txt File (Free Generator + Examples)
AIClicks Research · October 8, 2026
There's a file you can add to your website in about ten minutes that makes your entire site legible to AI systems. It's called llms.txt — a plain markdown file at your domain root that says, in structured form: here's what this site is, here's what's on it, and here are the pages worth reading.
The idea is simple. Large language models have finite context windows, and websites are messy: navigation chrome, JavaScript-rendered content, cookie banners, infinite scroll. An llms.txt file cuts through all of that with a curated, machine-friendly index of your site — the pages you want AI systems to know about, described the way you'd describe them.
This guide covers the spec (it's short), a complete annotated example you can adapt, the five mistakes that make most llms.txt files useless, how to validate yours, and how to generate one in about a minute with our free tool. No fluff — just the file format and how to get it right.
What llms.txt is and why AI systems read it
llms.txt is a proposed convention — published in September 2024 — for a markdown file served at the root of a website (yourdomain.com/llms.txt). Its purpose is to give large language models clean, structured context about a site: what the site is, and links to the important pages, each with a short description. Think of it as a README for your website, written for machines instead of developers.
Why does this matter? When an AI system needs background on a topic, it can either crawl your site the hard way — fetching pages, executing JavaScript, stripping navigation and ads, guessing which pages matter — or it can read one small markdown file that tells it directly. The first path is expensive and error-prone; the second is exactly what llms.txt provides. As AI assistants increasingly browse the web on users' behalf, a clean machine-readable summary is the difference between being understood and being skipped.
A note on status: llms.txt is not an official web standard. No standards body has ratified it, and no AI company is contractually obligated to read it. But conventions don't need ratification to be useful — robots.txt started the same way. AI tooling increasingly checks for llms.txt, and adding one costs you ten minutes. The asymmetry is absurd: tiny effort, real upside.
The spec: H1, blockquote, sections, links
The spec is deliberately minimal. Two elements are required. First, an H1 with your site or project name: '# Acme Analytics'. Second, a blockquote containing a short summary: '> Acme Analytics is a privacy-friendly web analytics platform for independent publishers.' That's the entire mandatory core — name and description.
Everything else is organized under H2 sections. Each section groups related links, and each link is standard markdown — [Page Title](https://example.com/absolute/path) — optionally followed by a one-line description. Typical sections: '## Documentation', '## Blog', '## API Reference'. The descriptions matter: they're what the AI system uses to decide whether a link is relevant, so write them as you'd describe the page to a smart colleague.
Three rules the spec cares about. One: links must be absolute URLs, including the https:// — a crawler reads llms.txt as a standalone document, so relative paths are meaningless. Two: keep it concise. This is a curated index, not a sitemap dump; link the pages that define your site, not every page that exists. Three: there's an optional companion convention, /llms-full.txt, for sites that want to provide fuller content in one file — but for most sites, the short index file is the right starting point.
A complete annotated example
Here's a complete llms.txt for a fictional company, Acme Analytics, a privacy-friendly analytics platform. I'll walk through it line by line — by the end you'll be able to write your own from scratch.
The file opens with the two required elements. Line one is the H1: '# Acme Analytics'. This must be the name of the site or project — it's how the AI system identifies whose content it's reading. Line two is a blockquote: '> Acme Analytics is a privacy-friendly web analytics platform for independent publishers. Docs, guides, and API reference below.' The blockquote is the summary the system reads first, so make it a genuine description, not a tagline. 'The best analytics ever!' tells a machine nothing; what the product does and who it's for tells it everything.
Then come the H2 sections, each grouping related links. '## Documentation' holds the core product links: '[Getting started](https://acme.example/docs/getting-started): Install the tracker and see your first dashboard in five minutes.' followed by '[API reference](https://acme.example/docs/api): Every endpoint, parameter, and response code.' Notice three things: absolute URLs (the https:// is mandatory), a human-readable label, and a one-line description written for relevance matching. A second section, '## Guides', links the high-value content: '[Cookieless tracking explained](https://acme.example/guides/cookieless-tracking): How tracking works without third-party cookies.' A third, '## Company', holds '[About](https://acme.example/about): Team, mission, and contact.' and '[Pricing](https://acme.example/pricing): Plans and limits.'
What's deliberately left out: the changelog archive, the 400 old blog posts, the careers page, the legal boilerplate. llms.txt is a curated index — every link should earn its place by being something an AI system would genuinely want to read to understand or cite your site. Ten excellent links beat a hundred indifferent ones. Our pillar guide to llms.txt at aiclicks.net/llms-txt-guide goes deeper into section strategy if you want more.
Five mistakes that make llms.txt useless
Mistake 1: relative URLs. The most common error, and it silently breaks everything. Writing '[Docs](/docs)' instead of '[Docs](https://yoursite.com/docs)' produces a file that reads fine to you and resolves to nothing for a machine. An AI system fetches llms.txt as a standalone document — there is no page context for a relative path to resolve against. Every link must be absolute, every time.
Mistake 2: keyword stuffing. Some sites treat llms.txt as a place to cram search terms: fifty links titled 'best cheap analytics software 2026 buy now'. This misunderstands what the file is for. It's a machine-readable index, not a ranking trick — stuffing it with keywords doesn't improve visibility and makes the file less useful to the systems you're trying to help. Write for clarity, not for algorithms you imagine.
Mistake 3: the 10,000-word dump. Auto-generating llms.txt from your sitemap and pasting in every URL on the site defeats the entire purpose. The value of the file is curation — a human (or a thoughtful process) deciding which pages define the site. A dump of 2,000 links is just a worse sitemap. If your file is longer than a couple of hundred lines, you're not curating.
Mistake 4: writing it once and forgetting it. Sites change; llms.txt files don't, unless someone updates them. A file linking to pages that 404'd two redesigns ago, describing a product you discontinued, or missing your flagship new guide is worse than no file — it actively misinforms the systems reading it. Put llms.txt in your launch checklist: new section, new product, major restructure — update the file in the same PR.
Mistake 5: blocking AI crawlers while writing llms.txt. This is the contradiction we see most often: a careful, well-written llms.txt sitting on a site whose robots.txt disallows GPTBot, ClaudeBot, and PerplexityBot. The file is an invitation; the robots.txt is a locked door. Decide on a coherent policy — if you want AI visibility, allow the crawlers and write the file; if you don't, skip the file. Our free AI crawler check at aiclicks.net/tools/ai-crawl-check shows you exactly what AI bots are allowed to see, so you can spot the contradiction in seconds.
How to test and validate your llms.txt
Validation is refreshingly low-tech. First, fetch it the way a machine would: curl yourdomain.com/llms.txt and confirm it returns HTTP 200 with a text content type (text/markdown or text/plain both work). If it 404s, it's not deployed — check that the file is at the domain root, not in a subdirectory.
Second, click every link. Every one should resolve to a live page over HTTPS — no redirect chains, no 404s, no relative paths that only worked in your editor. Third, read it cold: hand the file to someone unfamiliar with your site and ask what the site does and where they'd find pricing. If they can't answer in thirty seconds, your descriptions need work.
Finally, verify the surrounding setup. Your robots.txt should permit the AI crawlers you care about (see mistake 5 above), and the pages you link should be crawlable without JavaScript — an llms.txt link to a page no crawler can render is a dead end. Our AI crawler checker tests all of this in one pass: robots.txt AI rules, llms.txt presence, and whether key pages actually render for bots.
Generate yours in 60 seconds
You can write llms.txt by hand — the spec is small enough. But getting the details right (absolute URLs, clean descriptions, valid markdown) is fiddly, so we built a free generator. Enter your domain and it prefills your site name and description from your homepage; add your key pages one per line; it outputs a spec-valid llms.txt with a live preview.
Then copy it or download the .txt file, drop it at your domain root as llms.txt, and validate with the steps above. Sixty seconds of form-filling, ten minutes total including deployment and testing.
One honest caveat, repeated from our FAQ below: llms.txt helps AI systems understand your site. It does not guarantee citations, rankings, or traffic. It's one layer of AI visibility — the others are crawlable content, structured data, and original material worth citing. But it's the cheapest layer, so start here.
How AIClicks helps
LLMs.txt generator
Free generator — enter your domain, get a spec-valid llms.txt with copy and download.
AI crawler checker
Free check of robots.txt AI rules, llms.txt presence, and crawler accessibility.
llms.txt complete guide
The pillar guide: syntax reference, section strategy, and common mistakes.
Full site scan
AI visibility is one module of the complete evidence-backed report.
FAQ
Is llms.txt an official web standard?
No. It's a proposed convention published in September 2024, not ratified by any standards body. That hasn't stopped adoption: AI tooling increasingly checks for it, and it follows the same path robots.txt and sitemap.xml took from convention to universal practice. Treat it as an emerging best practice, not a compliance requirement.
Will llms.txt make ChatGPT cite my website?
Not by itself, and anyone promising that is selling something. llms.txt helps AI systems understand what your site is and find your important pages. Whether you get cited depends on the underlying content: is it original, verifiable, well-structured, and trustworthy? Think of llms.txt as removing a barrier, not granting a reward.
Where exactly do I put the file?
At the root of your domain: yourdomain.com/llms.txt. Serve it with a text content type (text/markdown is ideal; text/plain works). It must be publicly fetchable without authentication or JavaScript — if curl can't retrieve it, neither can a crawler.
Does llms.txt replace robots.txt or my sitemap?
No — the three do different jobs. robots.txt tells crawlers what they're allowed to fetch. sitemap.xml lists every URL for search engines. llms.txt tells AI systems what your site is and which pages matter most. They complement each other; a complete AI-visibility setup has all three, and they shouldn't contradict each other.
How often should I update llms.txt?
Whenever your site's important pages change: new product, new documentation section, major restructure, discontinued offering. A stale llms.txt with dead links actively misinforms AI systems, so treat updates as part of your launch checklist rather than a periodic chore. Quarterly reviews catch the drift.
The bottom line
llms.txt is that rare web convention: ten minutes of work, zero downside, genuine upside. Name, description, curated links, absolute URLs — that's the whole spec. The sites that get it right treat the file as a living document: updated with every launch, validated like any other production asset.
Write yours today — by hand using the example above, or with the generator. Then check that AI crawlers can actually reach it. Future you, answering questions through an AI assistant that read your site correctly, will be glad you did.
Generate your llms.txt in 60 seconds
Free generator — spec-valid markdown, live preview, copy or download. No signup.
Generate my llms.txt freeMore from the blog
Why Your Website Gets Zero AI Citations (And How to Fix It)
ChatGPT, Perplexity, and Google AI Overviews cite a tiny fraction of the web. Here's how AI citation actually works, why most sites are invisible, and a 30-day plan to change that.
DMARC p=reject: The 10-Minute Setup That Stops Email Spoofing
Anyone can send email 'from' your domain today. DMARC at p=reject fixes that. Here's the exact setup — SPF, DKIM, and DMARC in the right order, without breaking legitimate mail.
Security Headers: The 6 That Matter Most (And How to Fix Them)
Six HTTP response headers block entire classes of attacks — clickjacking, XSS, SSL stripping, MIME sniffing — with a few lines of server config. Here's what each one does, with copy-paste snippets for Nginx and Apache.
