Back to BlogAEO

    How to Create an llms.txt File (Guide + Generator)

    A practical walkthrough of llms.txt — what it is, why ChatGPT, Claude, and Perplexity read it, and how to write one that gets your site cited.

    7/7/2026·6 min read
    llms.txt
    AEO
    AI search
    ChatGPT
    Claude
    Perplexity

    If you want ChatGPT, Claude, or Perplexity to cite your site — not just crawl past it — you need an llms.txt file. It is the simplest, highest-leverage AEO (Answer Engine Optimization) move you can make in 2026, and most sites still do not have one.

    This guide explains what llms.txt is, the exact format the spec requires, what to put in yours, and how to publish it in under 10 minutes.

    What is llms.txt?

    llms.txt is a plain Markdown file placed at the root of your domain (e.g. https://yoursite.com/llms.txt). It tells large language models — the engines behind ChatGPT search, Claude, Perplexity, Copilot, and Gemini — what your site is about and which pages are worth reading.

    It is not the same as robots.txt. robots.txt tells crawlers what they can fetch. llms.txt tells AI models what they should read first to understand you.

    The format was proposed at llmstxt.org and is now widely supported by AI crawlers and developer tooling.

    Why it matters

    Modern AI assistants do not have time (or context budget) to render your JavaScript shell, follow every internal link, and figure out which pages are canonical. When they hit llms.txt, they get:

    • A one-line summary of who you are
    • A curated list of the pages that best represent your product, docs, and content
    • Clear hints about what is "core" vs. "optional"

    The result: when a user asks ChatGPT or Claude a question your site answers, you are far more likely to be the source it cites.

    The llms.txt format

    The spec is intentionally strict. Keep it flat — no nested headings beyond ##, no HTML.

    # Site name
    
    > One-line summary of what the site does.
    
    A short paragraph (optional) with more context — who it's for, what's unique.
    
    ## Docs
    
    - [Getting Started](/docs/getting-started): How to set up your first project
    - [API Reference](/docs/api): Full endpoint documentation
    
    ## Pages
    
    - [Pricing](/pricing): Plans and pricing
    - [About](/about): Company background
    
    ## Optional
    
    - [Changelog](/changelog): Release notes
    - [Press kit](/press): Logos and media assets
    

    Required:

    • # Site name (H1) — exactly one
    • Link sections under ## Headings (H2) with bulleted - [Title](/path): description lines

    Recommended:

    • A blockquote > summary directly under the H1
    • An ## Optional section at the end for nice-to-have links the crawler can skip when context is tight

    What to put in your llms.txt

    Walk your site map and ask: "If a model only read 10–20 pages, which ones would let it accurately answer questions about us?" Typical sections:

    • Docs — product documentation, KB articles, integration guides
    • Pages — pricing, features, about, contact
    • Blog — your best evergreen posts (not every post)
    • Examples — case studies, demos, templates
    • Optional — changelog, legal, press

    Exclude: admin pages, auth flows (/login, /signup), per-user dashboards, API endpoints, webhooks, and anything behind a login. Models do not need them, and listing them can leak surface area.

    Publishing the file

    The file is served as a static asset at the root of your domain. On most stacks:

    • Vite / React / Next.js: drop the file in public/llms.txt. It will be served at /llms.txt.
    • WordPress: upload to the site root via FTP, or use a plugin that maps custom files.
    • Webflow / Framer / Shopify: use the platform's "custom code" or "static files" feature, or proxy through a redirect.

    Verify by visiting https://yourdomain.com/llms.txt in a browser — you should see your raw Markdown, not a 404.

    A real example

    Here is a trimmed version of what Next Day Sales ships at /llms.txt:

    # Next Day Sales
    
    > Interactive pricing pages, proposals, and AI-ready answer search for service businesses.
    
    Next Day Sales helps agencies and service businesses turn quote requests into closed deals — with hosted pricing calculators, unbranded Reps, AI-powered site search, and a single inbox for every lead.
    
    ## Product
    
    - [How it works](/how-it-works): Tour of pricing pages, proposals, and Insights
    - [Features](/features): Full feature list
    - [Pricing](/pricing): Plans and per-site pricing
    
    ## For agencies
    
    - [Agencies](/agencies): Manage many client sites under one workspace
    
    ## Guides
    
    - [llms.txt guide](/blog/llms-txt-guide): How to write an llms.txt file
    - [Get cited by ChatGPT, Claude, Perplexity](/blog/meet-insights-aeo-seo-cro-audits)
    
    ## Optional
    
    - [Blog](/blog): All posts
    - [Changelog](/changelog): Recent updates
    

    Generate yours in one click

    Writing llms.txt by hand is fine for small sites, but if you have more than a handful of pages, use a generator. Inside Next Day Sales, every site gets an Insights tab that:

    1. Crawls your published pages and groups them by section
    2. Drafts a spec-compliant llms.txt you can edit
    3. Flags missing pieces (no summary, no Docs section, links that 404)
    4. Tells you when AI crawlers like GPTBot, ClaudeBot, and PerplexityBot actually fetch the file

    If you are not a customer, you can still copy the example above as a starting point — it works for any site.

    Common mistakes

    • Treating it like a sitemap. A sitemap lists every URL. llms.txt is curated. Be picky.
    • Linking gated pages. If a page requires login, leave it out.
    • Nested headings. ### is not in the spec. Stick to # and ##.
    • Forgetting the summary. The > blockquote is what models quote when they introduce you. Write it carefully.
    • Set-and-forget. Update llms.txt whenever you ship a major feature or new pillar content.

    What it does not do (yet)

    llms.txt is a hint, not a contract. It does not:

    • Force a model to cite you
    • Block training (use robots.txt for that)
    • Replace structured data (JSON-LD for Organization, FAQ, Product still matters)

    Pair it with robots.txt rules that allow GPTBot, ClaudeBot, PerplexityBot, and Google-Extended, plus FAQ and Organization JSON-LD on your key pages, and you are doing the AEO basics better than 95% of sites.

    TL;DR

    1. Create public/llms.txt
    2. Add # Site name, a > summary, and 2–5 ## sections of curated links
    3. Deploy and verify at yourdomain.com/llms.txt
    4. Update it when you ship something important

    That is the whole job. Most sites are still ignoring it, which is exactly why doing this today is one of the highest-ROI 10 minutes you can spend on AI search visibility.

    Next step

    Turn what you just read into something running on the site.

    The Rep installs the conversion mechanics this post describes — question capture, grounded answers, click-to-call, booking and lead capture — and measures every one of them.