Journal llms.txt 6 min read
Shipping llms.txt on a 200-page B2B SaaS site: what changed in 60 days
We shipped llms.txt and llms-full.txt on a Series B B2B SaaS site as part of a Technical SEO Sprint. Here's the deployment, the measurement, and what moved across ChatGPT, Perplexity, and Google AI Overviews in the 60 days that followed.
In this article
This is the case study for a Citable engagement that ran from late February through April 2026. The client is a Series B B2B SaaS company in the developer tooling category, with 200+ pages, English-only, mature SEO program, no prior AI search work. We have permission to publish the methodology and aggregate metrics. The brand name is anonymized at their request.
The starting point
The client came in with the symptom we hear most often. Their organic SEO was healthy — top 3 rankings for most category keywords, 400k organic monthly visits. Their AI search presence was not. Their head of growth had run informal ChatGPT queries and found that across “best [category] tool” prompts, two competitors were named consistently and their brand was either absent or mentioned only as an also-ran in the fourth or fifth slot.
We started where every Citable engagement starts: a documented baseline. The AI Visibility Audit ran 50 prompts across ChatGPT, Perplexity, Gemini, and Google AI Overviews. The output was a 30-page report with three findings that mattered for this case study.
- Schema was incomplete.
Organizationwas present but minimal.Servicewas missing.Personfor the founder was absent. The site was largely invisible to the structured-data extractors that Google AI Overviews and Perplexity rely on. - The site had no llms.txt. Robots.txt allowed all crawlers, including ChatGPT-User and PerplexityBot, but there was no editorial signal pointing models at what to read first.
- Pillar content was buried. Three excellent long-form articles were getting cited by Perplexity already, but they were three clicks deep in the IA. Models were finding them despite the structure, not because of it.
The Technical SEO Sprint that followed had three workstreams. Schema overhaul was one. llms.txt was the second. Pillar content surfacing was the third. We deployed all three in parallel, which means the case study below cannot isolate llms.txt as the sole cause of the lift. We can, however, show what we shipped, when, and what changed.
What we shipped for llms.txt specifically
The llms.txt file was 38 lines. The structure followed the canonical spec exactly:
- H1 with the brand name (anonymized here as
Acme). - One blockquote, three sentences, plain prose. No tagline. No “trusted by 5,000 teams.” Just: what Acme is, who it serves, where.
- Four H2 sections: Product, Documentation, Pricing & comparison, Pillar content.
- 18 links total. Each with a one-line description of what is at the URL.
- An
## Optionalsection at the bottom with three more links — about page, careers, security.
We also shipped llms-full.txt — 84KB of concatenated canonical page text, served at the root. We chose 18 priority pages to include in full text. Marketing landing pages were excluded. Documentation, methodology, and pillar articles were included.
Then we tightened the schema. The Organization JSON-LD now matches the llms.txt blockquote almost word for word — same description, same areaServed, same knowsAbout. We added Service schema to each of the four product pages with prose descriptions that echo the llms.txt link descriptions. We added Person schema for the founder.
This lexical consistency between llms.txt, schema, and on-page H1/H2 turns out to matter — not because any model has confirmed they cross-reference, but because the same brand summary appearing in three independent surfaces makes the brand harder to misidentify or skip.
What we measured at days 30 and 60
The same 50-prompt audit ran at days 30 and 60. Same models. Same prompt set. Same researcher. The aggregate Share of Answer numbers, rounded:
- Day 0 baseline. Cited in 12 of 50 prompts (24%) across the four models combined.
- Day 30. Cited in 19 of 50 prompts (38%). The lift was concentrated in Perplexity and Google AI Overviews.
- Day 60. Cited in 26 of 50 prompts (52%). ChatGPT and Gemini caught up. Two of the three “buried” pillar articles were now being cited verbatim in Perplexity answers.
A breakdown by model at day 60:
- Perplexity: 16 of 50 (32%, up from 6 at baseline). The biggest single mover. Perplexity surfaces source URLs in its UI, and we could see llms-full.txt content paraphrased back in answers.
- Google AI Overviews: 8 of 50 (16%, up from 3). Schema improvements likely the dominant cause; AI Overviews leans heavily on
OrganizationandArticlemarkup. - ChatGPT: 14 of 50 (28%, up from 4). The slowest to move and the one with the least transparency. The lift correlated with Anthropic and OpenAI both publishing site content from third-party publications that had quoted Acme — suggesting digital PR matters more here than llms.txt directly.
- Gemini: 9 of 50 (18%, up from 2). Tracked Google AI Overviews closely.
The competitor citation map shifted too. The two competitors that had been dominating the category prompts at baseline lost ground in 8 of 30 prompts where Acme was now cited alongside or instead of them. Total competitor mentions dropped 18 percent in the prompt set.
What llms.txt probably did and didn’t do
We are not going to claim llms.txt did all of this. The schema overhaul, the pillar content surfacing, and one third-party feature in a developer-tooling newsletter all happened in the same window. What we can say with reasonable confidence:
- llms.txt almost certainly contributed to Perplexity’s lift. Perplexity is the most transparent about which sources it consumes. The day-30 report showed Perplexity citing pages from the llms.txt priority list at three times the rate of pages not on the list, controlling for organic visit rank.
- llms.txt probably contributed to ChatGPT’s lift, but indirectly. Our hypothesis: ChatGPT did not parse
/llms.txtdirectly, but the lexical consistency between llms.txt, schema, and on-page content made the brand summary cleaner and easier to retrieve from the model’s training-time corpus and live web fetch. - llms.txt did not move Google AI Overviews much on its own. AI Overviews appears to weight schema and traditional ranking signals far more heavily. The schema overhaul did the heavy lifting here.
- llms.txt cost almost nothing. Two days of authoring, half a day of deployment, one quarterly review on the calendar. The ROI in our measurement was high not because the lift was enormous in isolation, but because the lift compounded with the rest of the sprint and the input cost was negligible.
What we would do differently next time
Two things.
First, we would ship llms.txt before the schema overhaul, not in parallel. Splitting the variables would have given us cleaner attribution. The client had a deadline, so we shipped everything at once. If you have the luxury of staging, stage.
Second, we would version llms.txt explicitly. Our file did not include a Last updated line or a version comment. By day 60 the priority list was already stale — two of the original 18 URLs had been deprecated, and two new pillar pieces had been published. We caught it on the quarterly review, but we should have caught it sooner. We now ship every llms.txt with a comment header that includes the last-update date.
What this means for your engagement
If you are a B2B brand whose buyers research with AI, llms.txt is part of a Citable Technical SEO Sprint by default. We do not charge separately for it. The work is two days inside a six-week sprint. The measurement framework above — baseline at day 0, re-measure at days 30 and 60, attribute carefully — is how we report on it.
If you want the full audit before committing to a sprint, the AI Visibility Audit (1,200 EUR) is the diagnostic this case study started with. You leave with the same 50-prompt baseline whether or not you ever work with us again.
Frequently asked
Questions buyers ask before booking
Can you isolate how much of the lift was from llms.txt versus schema?
Not cleanly. The schema overhaul, llms.txt, and pillar content surfacing all shipped in parallel because the client had a deadline. We can say with confidence that Perplexity citations of llms.txt-listed pages tripled relative to non-listed pages, controlling for organic visit rank — that is the strongest causal signal we have for llms.txt directly.
Why was Google AI Overviews the slowest mover?
Google AI Overviews appears to weight schema and traditional ranking signals more heavily than the AI-native surfaces. The schema overhaul did most of the AI Overviews lift; llms.txt contributed less because Google's extractor likely does not read it as a primary signal yet.
What size of company does this case study generalize to?
Best fit is a Series A through Series C B2B SaaS with 100–500 indexed pages, mature SEO, and active competitor pressure in AI search. Smaller companies see proportionally smaller absolute movement; enterprise-scale sites need additional infrastructure work first.
Would you ship llms.txt and schema in parallel again, knowing the attribution problem?
For a client with a deadline, yes. For a client willing to stage, no — we would ship llms.txt first, measure for 30 days, then ship schema. Cleaner attribution is worth the extra month if the engagement allows it.
Six weeks, three deploys, one structural change
How we shipped llms.txt as part of a Technical SEO Sprint
-
Week 1 — Audit and content map
5 daysCrawled the site, mapped 200+ URLs, ran the AI Visibility Audit (50 prompts × 4 models) to baseline Share of Answer. Identified 18 priority URLs across services, docs, methodology, and pillar content.
-
Weeks 2–3 — Authoring
10 daysWrote the llms.txt blockquote summary with the founder. Drafted one-line descriptions for each of the 18 URLs. Generated llms-full.txt by concatenating the canonical text of each priority page. Reviewed both with legal.
-
Week 4 — Deploy and signal alignment
3 daysShipped /llms.txt and /llms-full.txt at the root. Cross-referenced from robots.txt. Confirmed Content-Type text/plain on both. Tightened Organization and WebSite schema to be lexically consistent with the llms.txt summary.
-
Weeks 5–6 — Measurement and iteration
10 daysRe-ran the 50-prompt AI Visibility Audit at days 30 and 60. Tracked Share of Answer delta per model. Iterated llms.txt to remove two underperforming links and add two pillar pieces published during the engagement.