llms.txt is the short summary of your site. llms-full.txt is the longer index that sits beside it — the place for everything worth citing that did not fit in the summary.

The obvious way to build it is to list everything. That is also the wrong way, and working out why took longer than writing the file.

Our site has 485 blog posts and 38 standalone pages. The llms-full.txt we published lists 54 links. Across our five sites the files run between 34 and 76 lines. Every one of them leaves out the overwhelming majority of what the site contains, on purpose.

The case against listing everything

Three reasons, in increasing order of how much they cost you.

There is already a file that lists everything. It is called a sitemap, machines have understood it for two decades, and yours is at /sitemap-index.xml. A second list of the same URLs in a different format adds nothing. If completeness were the goal, the file would not need to exist.

Anything reading it has a budget. A system pulling in your file to answer a question has a limit on how much it takes. Spend that limit on 400 blog posts from 2019 and it never reaches your services. Ordering and length are not tidiness — they decide what gets read at all.

A long list dilutes the signal you are trying to send. This is the one that actually costs money. If you list every post you have ever published, you are telling a machine that a 400-word note from 2021 and your main e-commerce service page are equally representative of your business. They are not, and you are the only one who knows that. The list is where you say so.

What we actually included

Five sections, in this order.

Company facts. Home, about, contact, FAQ, portfolio, phone number, parent company. The things someone asking “who are these people” needs.

Every commercial page. All of them, with no exceptions. These are the pages that exist to win work, and if a machine is going to name one page of ours in an answer, we would like it to be one of these.

Suburb service pages. We serve the Hills District and Western Sydney, and local intent is most of our search demand. Leaving these out would be leaving out the geography.

Cornerstone and case-study posts. This is the selective section, and the rule we settled on is narrow: a post makes the list if it describes something we actually did, found or measured. A real defect on a real site. A comparison we ran. A checklist we use on live work.

Generic advice does not make it, however well written. There are thousands of posts explaining what a 301 redirect is. There is one explaining the redirect chain we found on our own site and what it cost. Only the second is worth a machine citing us for, because only the second is ours.

A pointer to the rest. One line at the end: the full archive, and the sitemap. Anything that wants everything knows where to find it.

★ Insight ───────────────────────────────────── The selection rule — did we do this, or are we describing it — is doing double duty. It picks entries for the file, and it is a hard test of whether a post was worth publishing. Running it over 485 posts and finding that roughly one in ten qualified was uncomfortable and more useful than the file itself. ─────────────────────────────────────────────────

The rule that made the decisions easy

Everything above comes down to one question, asked per page:

If something answered a question by citing this page, would that be a good outcome for us?

Not “is this page good”. Not “did this take effort”. Would a stranger arriving at this page, from an answer that named us, find what the answer promised and think better of the business.

For a service page the answer is yes almost always. For a suburb page, yes. For a post describing work we did, yes. For a thin post written years ago to fill a content calendar, no — and it does not matter that it is still technically accurate. It would be a bad outcome for us, which means it does not belong in a file whose entire purpose is to nominate pages for exactly that.

That question also settles the arguments this exercise tends to generate. Somebody always wants their post in the list. The question is not whether it is a good post; it is whether you want it to be the page that represents you to someone who has never heard of you.

What it changed about the site itself

Two things, neither of them the point when we started.

We found commercial pages with almost nothing pointing at them. Listing every page that exists to win work meant writing them all out in one place for the first time, and the list was longer than anyone’s mental model of it. Several had no internal links from any post on the blog. The file did not cause that problem, it just made it impossible not to see.

We found the ratio. 54 links out of more than 500 pages. That is not a failure — most sites’ archives are like this, and a lot of those posts did a job at the time. But knowing the number changes what you commission next. The last four posts we planned were all things we had done rather than things we could explain, and that is a direct consequence of having counted.

If you do one thing

You do not need to publish the file to get most of the value.

Open a blank document and list every page on your site that exists to win work. Then, for each post on your blog, ask whether you would be glad to have it cited by name to a stranger.

Whatever comes out of that is your llms-full.txt. It is also your internal linking plan, your navigation audit and your content brief for next quarter, because those four things have always been the same list and nobody writes it down.

The shorter summary file that sits alongside this one is covered in What Belongs in a Real llms.txt.


Cosmos Web Tech does SEO and web design for Western Sydney and Hills District small businesses. Managed IT comes from Cloud Geeks, mobile apps from Awesome Apps, and we are part of Ganda Tech Services.