SaaS · September 2026

llms.txt for SaaS: Which Pages to List

Most verticals have one reader in mind. A SaaS site has two: the buyer comparing plans, and the developer or agent trying to finish an integration task. Here is the page list that serves both, drawn from the files Vercel, Supabase and Resend ship today.

One File, Two Indexes

A local business llms.txt points at services and a booking page. A SaaS file has to carry a marketing index — what the product is, who it is for, what it costs — and a technical index — docs, API reference, SDKs — without becoming a dump of the whole documentation tree. The files that do this well share one structural habit: the marketing half gets prose, the technical half gets links to machine-readable assets.

Resend's file shows the pattern in its opening lines. Beside a one-sentence summary it lists concrete things an agent can do — send a transactional email with POST https://api.resend.com/emails, batch up to a hundred messages, manage contacts and segments — phrased as capabilities rather than navigation. That is the difference between a table of contents and a briefing.

The Eight Buckets Every SaaS File Needs

Sitemap imports produce alphabetical chaos. Group instead into these buckets, in this order, and the file reads like a product brief:

Bucket Typical targets Question it answers
Product overview /product, /why-us What is this, in one page?
Docs index /docs/llms.txt or /docs/sitemap.md How do I do the task?
API contract /openapi.json, SDK pages What are the exact request shapes?
Pricing /pricing or /pricing.md What does it cost?
Changelog /changelog Is this current?
Integrations /integrations, /mcp Does it connect to my stack?
Trust /security, /enterprise, /status Will procurement sign off?
Self-serve onboarding /signup, CLI token docs How does a user start in five minutes?

The last two rows are the ones most SaaS files skip, and they are the ones that turn a read into an action. Vercel's file dedicates a section literally called Self-serve onboarding to domain search, the Hobby plan and CLI tokens — all public, all unauthenticated. Resend devotes separate sections to Enterprise (SLAs, security and compliance, contacting sales) and Support.

Instruction Slots Beat Navigation

Vercel and Resend both open with a When to use section, and Vercel adds a second one describing how agents should use the site. These are not marketing copy — they are usage instructions that survive being quoted. For a SaaS product with a specific job, an instruction slot answers the question an agent cannot infer from your feature list: which of the fifty things this platform does should it reach for right now. Both files use the summary blockquote for the one-sentence pitch; Supabase, in the version checked, omits it entirely and gets straight to links, which is legal but throws away the cheapest prose slot in the file.

Write each link annotation as the question the page answers, the same discipline used in the description rules.

Pricing Is the Volatile Section

Supabase handles pricing the way an index should: one link, no numbers. Its entire pricing section is a single line pointing at the pricing page's Markdown twin. That is the right call for a live pricing table and the wrong place to be clever.

Three rules keep this section from rotting: link the pricing URL, never restate amounts or plan names, and treat any pricing change as a trigger to re-check the file. That last part is how a file goes quietly wrong — see the maintenance system for a ten-minute quarterly pass that catches it.

Split the Docs, Link the Twins

Documentation is where a SaaS file wants to grow, and where growth hurts most. The spec supports subpath files, and a client uses the most specific file covering the URL it is working in — so keep /llms.txt as the company-level index and put the dense subtree at /docs/llms.txt, linked from the root file like any other page. Product documentation with no marketing half — the kind covered in the API docs playbook — can live entirely in that subpath file.

Point at Markdown twins wherever they exist. Supabase links the .md version of every guide and product page; Resend appends .md to pricing, enterprise and changelog links and documents that Accept: text/markdown works too. When clients should receive whole page text rather than an index, that is a separate file with its own budget — Vercel and Supabase both point at llms-full.txt from the top of the index.

What Never Goes In

Verify It in Three Commands

# status and delivery
curl -sI https://example.com/llms.txt | grep -iE "^(HTTP|content-type)"

# size sanity — a SaaS index should be low single-digit KB
curl -s https://example.com/llms.txt | wc -c

# find links that 404, including your .md twins
curl -s https://example.com/llms.txt | grep -oE "https://[^)]+" | while read u; do
  printf "%s %s\n" "$(curl -s -o /dev/null -w '%{http_code}' -L "$u")" "$u"
done | grep -v "^200"

Run the same URL through the llms.txt checker to confirm the structure held after whatever generated it, or start from the generator with your sitemap and delete the dashboard and archive noise it cannot judge. A SaaS file earns its keep when it gives an agent the price page, the docs root, the API contract and the signup path in one fetch — everything else is decoration.

Files referenced were fetched on September 30, 2026: Supabase 3,242 bytes, Vercel 4,766 bytes, Resend 7,521 bytes, Stripe documentation index 92,181 bytes. Sizes change as these companies edit their indexes.