How to Create an llms.txt File for AI Citations
Direct answer: To create an llms.txt file for generative engine citation optimization, place a Markdown file named llms.txt at your site root. Start with an H1 site name and a one-paragraph summary in a blockquote, then list only your most citation-worthy URLs with a short description for each. That gives ChatGPT, Perplexity, Google AI Overviews, Gemini, and Copilot a clean, structured map of your content.
What is an llms.txt file?
llms.txt is a plain-text Markdown file served at https://yourdomain.com/llms.txt. It follows the emerging llms.txt standard to make web content easier for language models to read, summarize, and cite. An XML sitemap helps traditional search bots discover URLs; llms.txt works as a curated content map instead. It tells an AI which pages matter, what each page contains, and how to describe them.
The file stays intentionally small, human-readable, and machine-friendly. You can also publish an optional /llms-full.txt file with full clean text of your priority pages, but the main llms.txt acts as the citation index.
Why generative engines need a separate file
Generative engines don't need to parse megabytes of HTML, JavaScript, cookie banners, and ad scripts. They need answer-ready claims, definitions, prices, and source URLs. A compact llms.txt reduces token overhead and gives the crawler a clear signal about your most citable pages. For more on the strategic layer behind this, see what is GEO.
A marketing page can exceed 1.5 MB in HTML/CSS/JS before images. A curated llms.txt for a 200-page site can stay under 20 KB. That's roughly a 98% reduction in text the crawler must process, which makes it far more likely your entire priority map gets ingested.
Core structure of an llms.txt file
Use UTF-8 encoding and absolute URLs. A minimal structure looks like this:
# Brand or Site Name
> A two- to three-sentence summary of what the site covers, who it is for, and why it is authoritative.
## Core
- [Pricing](https://example.com/pricing): Current plans, limits, and billing FAQs.
- [API Docs](https://example.com/docs): Endpoint reference with authentication examples.
## Articles
- [2025 Industry Report](https://example.com/reports/2025): Primary data on adoption, spend, and benchmarks.
The H1 is the site name. The blockquote is the summary. The ## sections group URLs by type, and each bullet is a link plus a one-line description.
Key rules
- Use absolute URLs:
https://example.com/pricing, not/pricing. - Keep descriptions under 20 words. Make them factual, not sales copy.
- List only URLs that are useful as citations or answers.
- Place the file at exactly
/llms.txt, not in a subfolder. - Add optional
/llms-full.txtif you want crawlers to access full clean text at scale.
Step-by-step: create and publish an llms.txt
- Audit your top pages. Pull the 20–100 highest-value pages: pricing, docs, case studies, reports, FAQs, and editorial guides. Base the list on analytics, conversions, and existing search rankings.
- Choose citation-worthy URLs. Prioritize pages with unique data, definitions, pricing specifics, or original research. Skip login pages, cart flows, thin category filters, and duplicate legal pages.
- Write one-line descriptions. Say what a reader or model will find instead of repeating the title. For example: “Current pricing tiers, features included, and billing limits,” not “Pricing page.”
- Group URLs under H2 sections. Simple headers like
## Core,## Guides,## API, and## Researchwork well. Three to six sections are easier to parse than 20 flat bullets. - Create the file at root. Save the file as
llms.txtin your domain root, UTF-8 encoded with no BOM. Check that it is served astext/plain; charset=utf-8ortext/markdown. - Validate the syntax. Run a Markdown linter or the llms.txt generator to catch broken links, relative URLs, or malformed bullet lists.
- Allow AI crawlers. In
robots.txt, make sure you are not blocking GPTBot, PerplexityBot, Google-Extended, ClaudeBot, or Copilot. Current bot names and user-agent patterns are listed in an AI crawlers list.
Example section mapping
| Section | What to include | Best for |
|---|---|---|
| ## Core | Pricing, product, docs, API | Brand and tool citations |
| ## Research | Original data, surveys, reports | Stats and evidence citations |
| ## Guides | Tutorials, definitions, comparisons | How-to and explainer answers |
| ## Company | About, methodology, leadership | Source credibility checks |
Common mistakes that reduce citations
- Listing hundreds of URLs. That dilutes priority. A generative engine may treat every page as equally important, or simply skip the file. Curate aggressively.
- Using relative links.
/pricingcannot be cited without a base URL. Always use fully qualified URLs. - Forgetting to update the file. Stale prices or retired pages train models to avoid your site. Add an
Updated: YYYY-MM-DDnote in the summary or descriptions. - Writing ad copy. “Best-in-class platform” is low value. “Pricing starts at $49/user/month for the Pro plan” is citation-ready.
- Blocking AI crawlers in robots.txt. The file is useless if GPTBot, PerplexityBot, Google-Extended, and others cannot fetch it.
Measuring the impact
Set up server-log monitoring for /llms.txt requests. A rise in fetches from GPTBot, PerplexityBot, Google-Extended, ClaudeBot, and Copilot often precedes increases in generative citations. Then track brand mentions in ChatGPT, Perplexity, and AI Overviews for your priority topics. Focus on answer-level metrics: Is your page being cited for queries that matter, and does the citation include your key fact? If not, sharpen the descriptions and reorder your most authoritative URLs under ## Core.
Need to generate and validate a file quickly? Use the llms.txt generator. For a deeper explanation of the strategic layer, read what is GEO.
UpGeo gets your brand cited across ChatGPT, Perplexity and Google AI.
See plans