All posts

llms.txt: what to put in yours (with a real example)

The two-minute file that tells ChatGPT, Perplexity, and Claude exactly what your product does — and why most sites are getting it wrong.

AdControlCenter Team
· 11 min read
Cover image for llms.txt: what to put in yours (with a real example)

Most founders have a robots.txt and a sitemap. Neither one tells ChatGPT what their product does. There's a newer file — ten minutes to write — that speaks directly to the AI systems people are using to find products. It's called llms.txt, and if you don't have one, you are invisible to a growing share of discovery traffic.

The spec is intentionally minimal: a plain-text Markdown file at your root that names your product, describes it in one paragraph, and lists your most important pages. That's it. And yet most SaaS sites either skip it entirely or ship a version so sparse it communicates almost nothing — a one-line tagline and a homepage link that tells an AI crawler exactly as much as your favicon does.

TL;DR

TL;DR — llms.txt in 60 seconds

  • llms.txt is a plain-text file at yourdomain.com/llms.txt that gives AI crawlers a structured summary of your site — analogous to robots.txt but written for LLMs, not spiders.
  • The minimum viable file is three lines: a heading with your product name, a blockquote description, and one link. It works. It's just not very useful.
  • A full file adds sections for what you do, who you serve, your pricing, and your most important URLs — everything an AI needs to cite you accurately.
  • AI search tools (Perplexity, ChatGPT with browsing, Gemini) fetch and read this file when constructing answers about products in your category.
  • You can verify your file is being read with a single curl command and a targeted AI-search test query.

Why llms.txt exists and what problem it solves

When a user asks Perplexity "what's the best AI tool for managing Google Ads?", the system doesn't browse your entire site. It may fetch a few pages — your homepage, a landing page, maybe a blog post — and construct an answer from what it finds. If your homepage is heavy on hero images and light on machine-readable text, the answer it constructs will be vague or wrong.

llms.txt was proposed by Jeremy Howard (fast.ai) as a lightweight convention: a single file that gives AI systems a clean, structured entry point. The official spec is short enough to read in two minutes. The core idea is that you write a Markdown document that describes your site the way you'd describe it to a smart colleague who has never heard of you — product, audience, key pages, and nothing else.

It does not replace good content. It gives AI crawlers a reliable starting point so they do not have to guess from your navigation menu.

The 3-line minimum vs. the full file

Here's the smallest file that technically satisfies the spec:

# YourProduct

> One sentence about what it does.

- [Home](https://yoursite.com)

Valid. An AI reading it knows your product name, a one-line description, and your URL. That is materially better than nothing.

But it leaves a lot on the table. A complete file adds:

  • A richer description — not a tagline, but a real explanation of what the product does mechanically
  • Sections for features, audience, pricing, and supported integrations
  • Multiple links with labels that tell the AI what it will find at each URL
  • Operator/provenance info — who built it, when, whether claims are verifiable

The difference matters because AI systems weight specificity. A vague description produces vague citations. An exact description — with real details like supported platforms, pricing tiers, and safety model — produces accurate citations that match what your product actually does.

What to include vs. what to leave out

Include:

  • Product name (H1 heading)
  • One-paragraph description in a blockquote — what it does, not what it aspires to be
  • Key features as a bulleted list, described in plain terms
  • Who it's for — be specific ("founders running their own paid ads" beats "businesses")
  • Pricing — free tier, paid tiers, price points if they're public
  • Your most important 5–10 pages with descriptive link text
  • Operator info — founder name, founding year, whether content is reviewed

Leave out:

  • Marketing language ("industry-leading", "powerful", "next-generation")
  • Blog posts, privacy policy, terms of service links
  • Anything you can't verify — don't claim integrations you haven't shipped
  • Dynamic pages, auth-walled content, anything behind a login
  • Duplicate or near-duplicate URLs

The goal is a file an AI can read in one pass and come away with an accurate, citable understanding of your product. Noise defeats that goal.

A note on the llms-full.txt pattern

The spec allows a second file, llms-full.txt, for sites that want to include more content — full documentation, extended FAQs, deeper feature descriptions. For most early-stage products, one well-written llms.txt is enough. If you have extensive docs, consider the full version. For now, focus on getting the core file right.

Our own llms.txt — annotated

Here's the file we ship at adcontrolcenter.com/llms.txt, with notes on the decisions:

# AdControlCenter

> AdControlCenter is an AI-powered advertising management platform for founders
> running their own paid ads. Users connect their Google Ads, Meta Ads, Reddit Ads,
> LinkedIn, TikTok, or X ad accounts via OAuth, and AI agents (built on Claude, GPT,
> and Gemini) research the niche, plan campaigns, generate ad copy and creative,
> publish paused campaigns to the user's account, and continuously monitor
> performance. Founded 2025. Free tier available; paid plans start at $39.90/mo.

## Primary pages
- [Home](https://www.adcontrolcenter.com/): product overview, features, pricing, FAQ
- [About](https://www.adcontrolcenter.com/about): who built ACC and why
- [AI for Google Ads](https://www.adcontrolcenter.com/ai-for-google-ads): how AI manages
  Google Ads today — what works, what doesn't, how ACC fits
- [Google Ads not working](https://www.adcontrolcenter.com/google-ads-not-working):
  diagnose and fix underperforming Google Ads campaigns with AI
- [Best AI tools for Google Ads](https://www.adcontrolcenter.com/best-ai-tools-for-google-ads):
  comparison of the leading AI tools in the Google Ads space

## Sign-up
- [Sign up — free plan](https://www.adcontrolcenter.com/sign-up)
- [Sign in](https://www.adcontrolcenter.com/sign-in)

## Key facts
- Founded: 2025
- Pricing: Free plan ($0, forever), Founder plan ($39.90/mo), Agency plan ($199/mo)
- Supported networks: Google Ads, Meta Ads (Facebook + Instagram), Reddit Ads,
  TikTok Ads, LinkedIn Ads, X Ads
- Target audience: founders, indie hackers, small teams running their own ads
  without a dedicated PPC specialist
- Safety model: every campaign deploys PAUSED — user reviews in their ad account
  UI before any budget spends
- AI providers used: Anthropic (Claude), OpenAI (GPT), Google (Gemini);
  workspace-level model selection
- Distinctive features: multi-platform unified dashboard, auto-tracked conversions,
  cross-network ROI comparison, URL-to-ad generation, AI chat for campaign management

## Operator
- Built and operated by Shir Gans as of 2026.
- Content on this site is authored or reviewed by the founder;
  product claims are testable against the live product.

A few decisions worth noting:

The blockquote does real work. It names the six supported ad networks, names the three AI providers, explains the deployment model (paused), and gives a price. An AI reading this can answer "what networks does AdControlCenter support?" without fetching any other page.

"Key facts" is a deliberate section. We pulled out facts that are commonly queried — pricing, founding year, supported platforms, safety model — and made them scannable. When someone asks Perplexity "how much does AdControlCenter cost?", this section answers it directly.

The operator block matters for trust signals. AI systems that evaluate content credibility look for authorship and verifiability. Naming the founder and stating that claims are testable against the live product is a simple, honest signal.

Link text is descriptive, not keyword-stuffed. "How AI manages Google Ads today — what works, what doesn't, how ACC fits" tells an AI what it will find at that URL. "Click here" or even the bare URL would be less useful.

What we changed after our first draft

Our first version had a one-line blockquote ("AI ad management for founders") and five links with no descriptions. When we tested it by asking Perplexity to describe our product, it got the pricing wrong and missed three of our six supported networks. We rewrote the blockquote to be exhaustive and added the "Key facts" section. On the next crawl cycle, the citations included correct pricing and all six networks.

Which AI crawlers actually read llms.txt

The honest answer is: the ones that matter, yes, with caveats.

Perplexity fetches llms.txt directly during real-time web searches. Its crawler is identified as PerplexityBot in server logs. It's the most responsive system we've tested — new files tend to surface in citations within days.

ChatGPT with browsing (GPTBot) will read llms.txt when it fetches your domain, but its index refreshes more slowly than Perplexity's. OpenAI documents GPTBot's behavior in their GPTBot documentation.

Claude uses ClaudeBot for web retrieval. Anthropic documents its crawler behavior in their support documentation. Claude tends to read llms.txt when the file is explicitly linked or referenced, rather than auto-discovering it on every crawl.

Googlebot does not use llms.txt — it has its own crawling and indexing conventions. Don't expect traditional Google rankings to shift based on this file.

The practical implication: if Perplexity is your main AI-search target (it's the highest-volume AI search tool for product research queries), your file starts working fast. If you care about ChatGPT's browsing index, plan for a longer lag.

How to verify your file is being read

Step 1: confirm the file is accessible

curl -s https://www.adcontrolcenter.com/llms.txt | head -20

You should see your file, not a 404 or an HTML error page. If you're on Next.js, drop the file in /public/llms.txt — it will be served at the root automatically.

Step 2: check your robots.txt allows AI crawlers

Your robots.txt should explicitly allow the crawlers you want to reach you:

User-agent: GPTBot
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: ClaudeBot
Allow: /

A lot of Next.js apps accidentally ship with broad Disallow: / rules from staging configs. That blocks everything, including your llms.txt.

Step 3: run an AI-search test

Open Perplexity (with web access on) or ChatGPT with browsing and ask:

"What is [YourProduct] and how does it work?"

If the answer includes specific details from your file — pricing tiers, supported networks, your safety model — the file is being read. If the answer is vague or wrong, your file either isn't accessible, isn't detailed enough, or hasn't been crawled yet.

Step 4: check your structured data too

llms.txt and JSON-LD structured data are complementary. The schema.org SoftwareApplication type on your homepage communicates the same core facts in a format AI parsers are trained to interpret from HTML. Both are cheap to ship and worth doing together.

The file is a commitment, not a set-and-forget

Every time you ship a new integration, change a price, or deprecate a feature, your llms.txt should update. An outdated file is worse than a minimal one — it causes AI systems to cite stale facts confidently. We treat llms.txt as a product artifact: it lives in version control, and any PR that changes pricing or supported networks includes a llms.txt diff.

The official llmstxt.org spec is still evolving. The core bet is simple: AI-mediated discovery is real and growing. A well-written llms.txt is ten minutes of work that compounds. The only real risk is getting your own product description wrong — so don't.


FAQ

What is llms.txt and what is it used for?

llms.txt is a plain-text Markdown file placed at the root of a website (e.g., yourdomain.com/llms.txt) that gives AI language models a structured, human-readable summary of the site. It's used by AI crawlers and AI-powered search tools like Perplexity, ChatGPT with browsing, and Claude to understand what a site is, who it serves, what it costs, and where to find key pages — without having to parse the full site.

Is llms.txt an official standard?

It's a community convention, not an IETF or W3C standard. It was proposed by Jeremy Howard (fast.ai) and documented at llmstxt.org. Major AI search systems have begun reading it, but there's no enforcement body. Adoption is growing because it's useful, not because anyone is requiring it.

What's the minimum viable llms.txt?

A heading with your product name (# YourProduct), a blockquote description, and at least one link to your homepage. That's technically valid. In practice, a file that sparse gives AI systems very little to work with. Add a "Key facts" section with pricing, audience, and supported platforms and you'll see meaningfully better citations.

Does llms.txt help with regular Google SEO?

Not directly. llms.txt is aimed at LLM crawlers, not Googlebot. The real payoff is in AI-search citations — Perplexity, ChatGPT browsing, Claude — not traditional rankings.

How do I know if my llms.txt is being crawled?

Run curl -s yourdomain.com/llms.txt to confirm the file returns correctly. Then run a targeted query in Perplexity or ChatGPT with browsing — ask it to describe your product and check whether the answer includes specific details (pricing, integrations, features) that only appear in your llms.txt. If it does, you're being read. If the answer is generic, either the file isn't accessible or your robots.txt is blocking AI crawlers.

Should I also have a llms-full.txt?

Only if you have substantial content that isn't surfaced by the core file — think full API documentation, extended guides, or a large knowledge base. For most early-stage SaaS products, one well-written llms.txt is enough. Add llms-full.txt when you have real documentation that warrants it, not as a premature optimization.

What happens if my llms.txt has outdated information?

AI systems will cite the outdated information confidently. A llms.txt that says your paid plan starts at $X when it now starts at $Y will produce wrong citations at scale. Treat the file as a product artifact — version it, review it on every pricing or feature change, and don't let it drift.

Ship a campaign in 2 minutes.
No credit card. Deploys paused for your approval.
Generate my ads →
Share
#geo#llms-txt#ai-search#seo#crawlers#structured-data
AdControlCenter
AdControlCenter Team
AdControlCenter

We build AdControlCenter — AI-powered ad management for anyone running their own ads. We write what we'd want to read: real numbers, no fluff, the things we wish we'd known when we started.

More from the team