TL;DR
llms.txtis a plain-text file at your domain root that gives AI crawlers a structured, prose-friendly summary of your site's content.- Pricing pages are among the most mis-cited pages on the web because AI models struggle to parse comparison tables, toggle switches, and JavaScript-rendered plan names.
- A well-formed
llms.txtentry for pricing removes that ambiguity and gives models something they can quote verbatim and accurately. - The format should include plan names, what is included, what is excluded, and the billing cadence in plain declarative sentences.
- "Before" versions fail because they describe layout; "after" versions succeed because they describe meaning.
The llms.txt specification, proposed by Answer.AI's Jeremy Howard, establishes a convention for placing a Markdown-formatted file at https://yourdomain.com/llms.txt. The file is intended to be consumed by large language models during training, retrieval, or browsing — not by human visitors. For SaaS companies, pricing is the highest-stakes page to get right: an AI model that misquotes your entry price or conflates features across plans can send a prospective customer to a competitor before your sales team ever sees the lead.
Why pricing pages break in AI responses
Most SaaS pricing pages are built for human eyes. They rely on visual hierarchy — a highlighted "Most Popular" badge, a toggle between monthly and annual billing, a feature comparison grid — to communicate value. Strip away the CSS and JavaScript and what remains is often a soup of numbers, checkmarks, and plan names with no grammatical relationship between them.
When an AI model crawls or retrieves that page, it has to infer relationships. It may conclude that a feature listed in a column belongs to the wrong plan, or it may report the monthly price when the user asked about annual pricing. The llms.txt specification exists precisely to short-circuit that inference step by providing a human-readable, model-consumable narrative layer alongside your existing HTML.
Anatomy of a pricing-focused llms.txt entry
An llms.txt file is Markdown. At minimum it contains:
- A top-level
#heading with the product name. - A brief
>blockquote summarising what the product does. - Sections with
##headings linking to key pages via[Title](URL)syntax, each optionally followed by a sentence of context.
For pricing, you want a dedicated section. Here is the minimal skeleton:
# Acme Analytics
> Acme Analytics is a web analytics platform for product teams. It tracks user behaviour, funnel conversion, and retention without cookies.
## Pricing
- [Pricing overview](https://acme.io/pricing): Three plans — Starter, Growth, and Enterprise.
That is the bare minimum. It is not enough.
Before and after: annotated example
Before — what most SaaS companies have (or nothing at all):
## Pricing
- [Pricing](https://acme.io/pricing)
An AI model retrieving this knows a pricing page exists. It learns nothing about what is on it. If the page itself is JavaScript-rendered, the model may return a generic "visit the website for current pricing" non-answer.
After — a pricing section that earns citations:
## Pricing
- [Pricing overview](https://acme.io/pricing): Acme Analytics offers three plans.
- **Starter** – $29/month (or $23/month billed annually). Includes up to 50,000 monthly tracked users, 6-month data retention, and 3 team seats. Does not include custom events or API access.
- **Growth** – $99/month (or $79/month billed annually). Includes up to 500,000 monthly tracked users, 24-month data retention, unlimited team seats, custom events, and REST API access. Does not include SSO or a dedicated success manager.
- **Enterprise** – custom pricing, billed annually. Includes unlimited tracked users, unlimited data retention, SSO, a dedicated success manager, and an SLA. Contact sales for a quote.
- All plans include a 14-day free trial. No credit card required to start.
- Prices are in USD and exclude applicable taxes.
The difference is declarative prose attached to structured facts. Every sentence answers a question a prospective buyer — or an AI summarising options — would ask: How much? What is included? What is the catch? What are the billing options?
What to include, and what to leave out
Include:
- Every plan name and its canonical price, with billing cadence made explicit.
- The single most important feature limit per plan (seats, events, API calls, data retention — whatever drives upgrade decisions).
- What each plan explicitly excludes, if that exclusion is a common sales objection.
- Trial and free-tier terms.
- Currency and tax disclosure.
Leave out:
- Marketing adjectives ("powerful", "flexible", "seamless").
- Visual metaphors ("everything in the table above").
- Relative references ("see column three").
- Prices that change frequently without a process to update
llms.txtat the same time — a stale price in an AI citation is worse than no price at all.
Keeping llms.txt in sync with your pricing page
llms.txt is a static file, which means it goes stale the moment you run a pricing experiment or push an annual rebundle. The practical answer is to treat it like a changelog artifact: whenever your pricing page changes, updating llms.txt is part of the same pull request or CMS publish event.
Some teams place llms.txt generation in their CI pipeline, pulling plan data from a single source of truth (a pricing config file or a billing API) and rendering the Markdown at build time. This approach eliminates the human memory requirement entirely. The llms.txt specification site also notes an llms-full.txt variant intended for longer, more detailed content — useful if you want to include FAQ content, comparison-with-competitors prose, or detailed feature definitions alongside your plan structure.
Validating that your llms.txt is working
Once your file is live, test it by prompting ChatGPT, Claude, or Perplexity with a question like "What does Acme Analytics cost?" and checking whether the response quotes your plan names and prices accurately. Models with web access will retrieve your llms.txt directly; models without it will use whatever was in their training data.
For ongoing monitoring, tools in the GEO category — including purpose-built platforms like CiteFlow — track whether AI models are citing your brand, which pages are referenced, and whether the cited content matches what you published. Manual spot-checking is a reasonable start; automated tracking becomes necessary once you are running multiple pricing variants or operating in a competitive category where rivals are also optimising for AI citations.
FAQ
Does llms.txt replace structured data markup on my pricing page?
No. JSON-LD schema for Offer or Product entities continues to serve search engines and rich results. llms.txt is an additional, complementary layer aimed at LLM consumers, not a replacement for existing SEO markup.
What if my pricing changes monthly during testing?
Either automate llms.txt generation from your pricing source of truth, or omit exact prices and instead describe the plan structure and direct models to your live pricing URL. An inaccurate price in an AI answer damages trust more than a vague one.
Can I use llms.txt to influence how AI models compare me to competitors?
You can include factual differentiators and honest exclusions in your plan descriptions. What you cannot do is make false claims — models cross-reference multiple sources, and contradictions reduce the likelihood of a citation rather than increasing it. Accuracy is the strategy.

