How to create an llms.txt file
llms.txt is a short Markdown file at your site root that gives AI tools a clean, structured summary of your site — a table of contents written for AI. Cheap to publish, low-risk, and mostly useful today for AI coding tools and as forward-looking infrastructure for the agentic web — not (yet) a proven citation lever for ChatGPT, Claude, or Perplexity.
What this article covers
By the end, you'll know what an llms.txt file is, what it seems to do (and what it probably doesn't do yet), and you'll be able to write and publish one for your site in under an hour.
What is an llms.txt file?
An llms.txt file is a simple text file, written in Markdown, that you place at the root of your website (at yoursite.com/llms.txt). Its job is to give AI tools a clean, structured summary of your site and links to your most important pages — think of it as a table of contents written for AI.
Quick clarification: llms.txt is not robots.txt. robots.txt tells crawlers what they're allowed to access. llms.txt tells AI models what's worth reading and how to find it. They solve different problems, and you can have both.
The idea is similar to a sitemap. A sitemap (sitemap.xml) helps search engines understand your site's structure. An llms.txt file aims to do something comparable for large language models (LLMs) like ChatGPT, Claude, and Perplexity. The difference is that a sitemap just lists URLs, while an llms.txt file gives short, plain-language descriptions of what each page is about, with the clutter (navigation, ads, scripts) stripped away.
The format was proposed by Jeremy Howard of Answer.AI in September 2024\. It was meant to solve a specific problem: AI models can only read a limited amount of text at once, and raw web pages are full of menus, JavaScript, and styling that eat up that limited space. A Markdown file gives the model just the useful content in a format it reads easily.
One important nuance up front. llms.txt is what you might call a proposed standard, not yet an industry standard, and the difference matters.
A proposed standard is an idea that someone publishes and invites others to adopt. Anyone can write one. It only becomes an industry standard once the major players who would actually use it agree to support it. Think of robots.txt: it works because every major crawler agreed, years ago, to read and respect it. llms.txt is at the earlier stage. The format exists and is well documented, but the big AI companies haven't formally agreed to use it. So when you create one today, you're adopting a convention that may or may not become widely supported. That's worth knowing before you invest time in it.
What an llms.txt file is not
This is the part most guides skip, so it's worth being careful here.
It probably isn't a switch for AI citations. Placing an llms.txt file at your root doesn't appear to guarantee, or even reliably improve, how often AI tools cite or recommend you. There's currently no strong evidence that it boosts citations in ChatGPT, Claude, or Perplexity.
Google Search doesn't seem to use it. Google has indicated as much publicly. In 2025, Google's Gary Illyes said Google doesn't support llms.txt and has no plans to, and John Mueller compared it to the old "keywords" meta tag that search engines stopped trusting long ago.
No major AI provider has committed to using it. As of early 2026, OpenAI, Google, Anthropic, Meta, and Mistral have not publicly committed to reading or acting on llms.txt in their production search systems. Early observations point the same way: multiple large-scale log studies found that AI search crawlers rarely request the file, and one analysis of 137,000 sites found that 97% of published llms.txt files received no requests at all in the month studied.
There's an important clarification inside that finding. When llms.txt files do get fetched, the requests tend to come from AI training and agent bots rather than the search bots that actually drive live citations. In other words, the file is mostly being picked up by crawlers gathering data or by coding agents, not by the systems answering a user's question in real time. So even where there's activity, it may not be the kind of activity that affects how you show up in AI answers.
It isn't a blocking tool. That's what robots.txt is for. llms.txt is meant to offer content to AI tools, not to restrict any crawler.
So why create one? Because there does seem to be one real use case, plus a reasonable bet on the future.
The use case that holds up best is developer and agent tooling. AI coding assistants like Cursor, Claude Code, GitHub Copilot, and Windsurf appear to fetch llms.txt files to pull the right documentation with less wasted text. In the log studies, these agentic tools are the ones fetching llms.txt far more than search crawlers do. If your customers use AI coding tools to work with your product or docs, this could genuinely help them.
The reasonable bet is the agentic web. As AI agents increasingly browse and act on websites on a user's behalf, a clean machine-readable summary at a predictable address may turn out to be useful infrastructure. It's low-effort and low-risk to publish, so the downside is small even if adoption never takes off.
A fair way to think about it: this is a low-cost, forward-looking file, not a proven ranking or citation lever. Be skeptical of anyone selling it as an SEO shortcut. (For a sense of how these things go, earlier conventions like RSS and Schema.org caught on largely because platforms agreed to use them. llms.txt doesn't have that agreement yet, which is exactly why its payoff is still uncertain.)
If that honest picture still makes sense for you, and for many documentation-heavy or developer-facing sites it will, here's how to build one.
How to create your llms.txt file
The official specification lives at https://llmstxt.org/. Keep it open as a reference. The format below follows it.
Step 1 — Understand the Markdown you'll need
Markdown is a plain-text way of formatting documents using simple symbols. It's the same format used in GitHub README files, and it's all you need here. The only pieces you'll use:
- \# creates a top-level heading (H1), used once, for your site name.
- \> creates a blockquote, used once, for your one-line summary.
- \#\# creates a section heading (H2), used to group your links.
- \- \Link text\: note creates a link in a list, with an optional description after the colon.
That's the entire toolkit.
Step 2 — Write your title and summary
Start with your site or project name as an H1, followed immediately by a blockquote summarizing what it is in one or two sentences. The title is the only required part of the whole file.
# GetMint
> GetMint helps brands measure and improve how they appear in AI search engines and assistants like ChatGPT, Claude, Perplexity, and Gemini.
After the blockquote, you can add a short paragraph or two of plain context, anything that helps an AI understand your site. Keep it factual and free of marketing language.
Step 3 — Add your important links, grouped by section
Use H2 headings to group links, then list your most important public pages. Each link gets a short description after a colon explaining what the page covers. Link to the cleanest version of each page you have. If you publish Markdown versions of pages, link those.
## Documentation
- [Getting Started](https://getmint.ai/docs/start): How to set up your first AI visibility dashboard.
- [Prompt Methodology](https://getmint.ai/docs/prompts): How GetMint builds and structures tracking prompts.
## Product
- [How It Works](https://getmint.ai/how-it-works): Overview of the platform and what it measures.
- [Pricing](https://getmint.ai/pricing): Plans and what each includes.
Step 4 — Add an "Optional" section for lower-priority links
The spec includes one special section. Any H2 heading named exactly \#\# Optional marks links that an AI can safely skip when it needs a shorter summary. Use it for secondary or supplementary pages.
## Optional
- [Blog](https://getmint.ai/blog): Articles on AI search and GEO.
- [Changelog](https://getmint.ai/changelog): Recent product updates.
That's a complete file. Here's how the whole thing reads together:
# GetMint
> GetMint helps brands measure and improve how they appear in AI search engines and assistants like ChatGPT, Claude, Perplexity, and Gemini.
GetMint tracks brand visibility, share of voice, and sentiment across major AI models, and turns that into actionable optimization recommendations.
## Documentation
- [Getting Started](https://getmint.ai/docs/start): How to set up your first AI visibility dashboard.
- [Prompt Methodology](https://getmint.ai/docs/prompts): How GetMint builds and structures tracking prompts.
## Product
- [How It Works](https://getmint.ai/how-it-works): Overview of the platform and what it measures.
- [Pricing](https://getmint.ai/pricing): Plans and what each includes.
## Optional
- [Blog](https://getmint.ai/blog): Articles on AI search and GEO.
- [Changelog](https://getmint.ai/changelog): Recent product updates.
Step 5 — Save it and publish it at your root
Save the file as llms.txt (exact lowercase name) with UTF-8 encoding. Upload it so it's reachable at https://yoursite.com/llms.txt, the same root level where your robots.txt and sitemap.xml live. It needs to be publicly accessible.
How you do this depends on your stack:
- Webflow / Framer / Wix / Squarespace: look for a "custom files" or "hosted files" setting that serves a file at the root. If there's no native option, your developer can add it.
- WordPress: drop the file in your site's root directory via FTP or a file manager, or use an SEO plugin (Yoast SEO and Rank Math both added native
llms.txtsupport in 2025) that supports custom root files. - Custom / developer-managed site: ask your developer to serve a static
llms.txtfrom the web root.
Step 6 — Check that it works
Open https://yoursite.com/llms.txt in a browser. You should see your plain Markdown text, not a download prompt or a 404\. If you see your file, you're done.
Tips for writing one faster
- Need a Markdown editor? A free tool like Dillinger or StackEdit shows your formatting live as you type. A plain text editor (VS Code, Notepad, TextEdit in plain-text mode) works fine too, since the file is just text.
- Keep it short and honest. List only pages you'd genuinely want represented. Don't stuff it with promotional language. The whole point is clean, factual context.
- Don't create separate Markdown copies of every page just for this. If those copies get indexed, you can create duplicate-content problems. Link to your real pages, or to Markdown versions you already maintain.
- On a CMS? Many platforms now generate the file for you. WordPress plugins like Yoast SEO and Rank Math added automatic llms.txt generation in 2025, and documentation hosts like Mintlify generate it automatically. Check whether your platform already offers this before building by hand.
- There's also llms-full.txt. This optional companion file contains your full content in one Markdown document, for AI tools that want everything at once. Most sites only need llms.txt. Add the full version only if you have heavy documentation and a reason to.
- Want to know if anything reads it? Check your server logs (or Cloudflare bot analytics) for requests to /llms.txt from agents like GPTBot, ClaudeBot, Claude-Code, or PerplexityBot. This keeps your expectations realistic and shows whether the file is doing anything.
The honest bottom line
Creating an llms.txt file takes well under an hour, shouldn't hurt your site, and may genuinely help AI coding tools and agents that fetch it. What it likely won't do, at least today, is guarantee you more AI citations or better Google rankings. Think of it as cheap infrastructure for a possible agentic future rather than a visibility hack, and you'll have the right expectations.