What makes llms.txt work? Rebuilding our own
We rebuilt the llms.txt our site serves to AI engines — from 3.7 KB of placeholder page lists into twelve sections of fact. Here is what was wrong, the new structure, four rules we write by, and how to tell whether it works.
First, what llms.txt is not
robots.txt controls whether crawlers may read your site. sitemap.xml lists what pages exist. llms.txt answers a different question: how should I be described?
It is a statement of fact for AI engines. When ChatGPT Search, Perplexity or Google's AI Overviews needs to introduce a company, this file is the most direct, most structured version of the answer available to it.
That distinction determines how you should write it. Plenty of sites simply list their page titles, which adds almost nothing — the model could already reach those pages. What llms.txt should actually answer are the facts that are hard to read off a page at a glance, but that a model needs most:
- What you actually do
- Who you are a fit for
- Who you are not a fit for
- Why anyone should believe you
- How to work with you
With that in mind, we looked at our own llms.txt — and the problems were obvious.
What ours looked like before
The file was 3.7 KB across four sections: Pages, Key Detail Pages, English Site, Sitemap. The structure was not wrong, but three real issues sat underneath it.
Issue one: the English section was a placeholder
All of the detail went to our Chinese pages. The English section was four lines of filler:
- Home: Homepage
- Services: Service modules
- FAQ: Questions and answers
- Cases: Proof of results
Our English site is where most of our business comes from — most of our clients are in the US, Europe and Australia. Writing the English section that way meant handing over our main market.
Issue two: the facts AI actually needs were missing
Nowhere in the file did we state our service region, who we are and are not right for, how engagement works, or a single reason to trust us.
A model will need all of that the moment someone asks a follow-up question. With nothing to draw on, it either guesses — or quotes a competitor who answered properly.
Issue three: news items were crowding out the core pages
We had three recent news posts sitting in the Key Detail Pages section. News is time-sensitive: three months later it has no citation value, and it was occupying space that should belong to pages that stay relevant — services and case studies.
Time-sensitive content should not compete with core pages for position.
The rebuilt structure: twelve sections
We reorganised the whole file. It went from 3.7 KB to roughly 7.6 KB, with twelve sections, mirrored between Chinese and English:
| Section | What goes in it |
|---|---|
| About | Service region, working languages, years of experience, contact |
| What we do | The service range, in plain language rather than jargon |
| How we differ | Four-dimension audit, verifiable data, dual engine, results-first payment, no low-end outsourcing |
| Who it is for / who it is not for | Two explicit lists |
| Verifiable results | Specific cases and numbers, with the source and how to check them |
| Free tool | Our free site speed check |
| Pages · Chinese | The Chinese page list |
| Pages · English | The English page list, equally detailed |
| Key pages | Only pages that stay commercially relevant |
| Latest updates | Its own section, clearly labelled as time-sensitive |
| Sitemap | Where to find the sitemap |
| Citation note | Asking for attribution and the page title |
Two changes look minor but affect citation behaviour noticeably: pulling news out of Key Pages into its own section, and using English page names in the English section (Home, Case Studies, Services) instead of leaving Chinese labels in place.
Four rules we write by
One: facts first, adjectives out
Words like professional, efficient and experienced carry no information — every competitor writes them. If you can put a number on something, put the number on it.
Ours reads: one Shopify mousepad brand grew organic traffic 317% in 43 days, with the data taken from the client's Search Console dashboard and verifiable with client consent (the full case study is public).
Two: state who you are not for
This is the paragraph models need most when someone asks "should I hire them" — and the one almost no site includes.
Saying who you turn down is a credibility signal, not a weakness. It shows you filter clients rather than accepting everything that moves.
Three: English should not be the short version
If most of your customers are outside your home market, the English section should be at least as complete as your own language. Writing it shorter is the most common and most expensive mistake in a bilingual llms.txt.
Four: write to the point where it can be checked
"Verifiable data" means nothing on its own. "Data from the client's dashboard, verifiable with client consent" does.
A claim only counts as a claim if someone can verify it. Otherwise it is just another adjective.
How to tell whether it works
Three checks, no tooling required.
Ask a model directly. Give ChatGPT or Perplexity your URL and ask what the company does and who it suits. Whether the key facts in the answer match your llms.txt is the clearest signal you will get.
See who is reading it. Some AI engines identify themselves in their User-Agent. A look at requests for llms.txt tells you roughly who is picking it up.
Interrogate every line. Open your llms.txt and ask of each sentence: could a model already read this on my homepage? If yes, that sentence is wasted — it adds nothing.
One warning: do not turn it into keyword stuffing
llms.txt is not a new SEO battlefield. It is a competition over clarity.
A keyword-stuffed llms.txt is as unconvincing as a keyword-stuffed landing page, because the model judges whether a passage answers the question — not how often a term appears in it.
If your site does not have this file yet, or you renamed your sitemap and called it done, it will most likely change nothing.
Last
Our own llms.txt is public — open it alongside this article and read the twelve sections for yourself.
If your site does not have one yet, or you want to know how your current version reads: run our free speed check to see whether the technical foundation is healthy, or talk to us for a fuller diagnosis. We will give you an honest read before we discuss working together.
