DEV Community

Cover image for What Actually Goes In an llms.txt
Lucas Fernández Díaz
Lucas Fernández Díaz

Posted on Originally published at contento.solutions AI-assisted

What Actually Goes In an llms.txt

Originally published on Contento Solutions, where I write about SEO and AI visibility for service businesses.

An llms.txt file is a plain text summary of your site. It is written for language models, not for crawlers. It is also a proposal rather than a standard (Jeremy Howard published it in September 2024), and no major AI company has confirmed that it reads one. Write it anyway. The reason is not the file.

The honest version of what this file is

Somebody proposes a convention. A few thousand sites adopt it. Nobody who runs a large model says whether they use it. That is roughly where llms.txt sits today, and any article that tells you otherwise is selling something.

So the useful question is not whether assistants read it. It is whether writing one is worth an hour of your time given that they might not.

It is. Here is the part that gets left out of most explanations: the file is a forcing function. To write it you have to state, in fewer than a thousand words and without marketing cover, what your business does, who it is for, who it is not for, what it charges, and what it refuses to claim. Most businesses have never written that down anywhere. The ones that have tend to have a clearer website, because the same clarity leaks into every page.

The file is the cheap part. The decision is the asset.

Where it sits next to the files you already have

Four files describe your site to machines, and they answer four different questions. Confusing them is the most common mistake in this area.

File Who reads it The question it answers Honored?
robots.txt Any crawler that chooses to May you fetch this path? Yes, by long convention
sitemap.xml Search crawlers What exists here, and when did it change? Yes
Schema, as JSON-LD Search engines and assistants What is this page, expressed as data? Yes, where the type is supported
llms.txt Proposed for language models What is this business, in prose? Unconfirmed

Notice that only one of the four is prose. That is the whole idea. Schema is excellent at facts with a fixed shape, and useless for the things that do not have one: judgement, scope, refusals, the difference between two services that look identical on a price list. An entity map handles the structured half. This file handles the half that only survives in sentences.

What actually goes in it

The convention asks for Markdown at /llms.txt, opening with an H1 that names the business and a blockquote that summarises it. After that the format is loose, which is where most files go wrong. Loose does not mean write whatever you want. It means the discipline has to come from you.

Six things earn their place.

One sentence that survives paraphrase. Assume a model will compress everything you wrote into two lines and hand those to somebody who has never heard of you. Write that compression yourself. If your summary only makes sense with the rest of the page attached, it is not a summary.

The boundary of what you do. Not the list of services. The edge. A sentence like "this is not a general agency and does not sell rankings, packages or volume" tells a model more than six bullet points of capability, because it can be used to rule you out. Being ruled out correctly is not a loss. It is the only way being ruled in means anything.

Who the buyer is, in their words. Sector, size, situation. A therapist opening a second practice is a different reader from a firm of nine accountants, and if your file cannot tell them apart, neither can anything reading it.

Names, spelled the way people get them wrong. If the founder's name carries an accent, write the unaccented spelling too and say it refers to the same person. This sounds small. It is the difference between a model resolving you to one entity and resolving you to two half entities that never accumulate.

Your citation terms. Say plainly whether an assistant may quote you, at what length, and with what attribution. Most sites are silent here, and silence is the least useful answer. If you want to be cited, saying so costs nothing.

A contact route that is not a form. An address a system can read and repeat. Forms are drawn by JavaScript on most platforms, which means a machine reading your page may find no way to reach you at all.

What to leave out, and this is the harder half

The failure mode is not omission. It is writing the file as a pitch.

Leave out adjectives that cannot fail. Leading, innovative, trusted, results driven. Every one of them is true of every competitor, which means none of them separate you, which means a model summarising ten businesses in your category will produce ten identical sentences and pick on some other basis.

Leave out numbers you cannot stand behind in public. A percentage with no method attached is worse than no percentage, because the first person to ask where it came from finds out that nobody knows. If a number matters, say how it was measured. If it cannot be measured honestly with the tools you have, say that instead. We do exactly this on our own file, and it is not modesty, it is that the alternative is a claim we would have to defend.

Leave out anything the site itself contradicts. A file that says pricing is transparent, on a site where pricing is on request, has told a reader something more damaging than either statement alone. This is the cheapest audit in the whole exercise: read the file, then read the site, and fix whichever one is lying.

And leave out the entire sitemap. A list of every URL is what sitemap.xml is for. Six or eight pages that matter, each with a line saying why it exists, is worth more than eighty links with no explanation.

How to check it did anything

You mostly cannot, and pretending otherwise is how this field earns its reputation.

There is no report for this. No console panel, no impression count, no line in analytics that says an assistant read your file. Anyone offering you a dashboard for llms.txt performance has invented the numbers on it.

What you can do is sample. Ask four or five assistants the questions a buyer would actually ask, in a fresh session with no history: who does this kind of work for this kind of business, what does it cost, who is it not for. Record the answers verbatim, with the date. Repeat in a month. You are not measuring a metric, you are watching a description of your business drift toward or away from the one you wrote. That is a slower and less satisfying instrument than a chart, and it is the honest one. The same sampling discipline is what makes Search Console useful after AI Overviews, where the temptation to read a number that does not mean what it looks like is even stronger.

One more check, and it takes a minute. Fetch your own file with a plain request and read it end to end as a stranger would. If you finish it and could not say who this business turns away, the file is not finished.

The order to do this in

Write the file last, not first.

An llms.txt that describes a site a model cannot fetch, or cannot parse, or finds contradicts itself page to page, is a well written summary of a problem. The sequence that works is unglamorous: make the pages readable without JavaScript, make the structured data say what the page says, make the site agree with itself, and then write the file that summarises all of it. We wrote about the first three as making a site citable, and the order matters more than any individual step.

Then the hour you spend on the file is spent describing something true, which is the only version of this work that survives contact with a reader who checks.

Questions people ask about this

Do ChatGPT, Claude, Gemini or Perplexity actually read llms.txt?

None has confirmed it. Treat any claim that they do, or that they do not, as unverified. The case for writing one rests on the clarity it forces and its near zero cost, not on a confirmed behaviour.

Is llms.txt a replacement for schema markup?

No. They do different jobs. Schema states facts in a form machines parse reliably. llms.txt states judgement, scope and boundaries in prose, which schema has no way to express. A site that needs one usually needs both.

Does adding llms.txt affect Google rankings?

There is no evidence that it does, and no reason to expect it. It is not a ranking file. Anybody selling it as one is describing a mechanism that has never been shown to exist.

How long should it be?

Long enough to state what you do, who for, who not for, and how to reach you. Ours runs about seven thousand characters and that is on the generous side. Under a thousand words is a reasonable ceiling for most businesses.

Where does the file go, and how do I add one on a hosted platform?

It belongs at the root, as yourdomain.com/llms.txt. Platforms that do not let you place arbitrary files at the root make this awkward, and the workaround varies by platform. If yours will not allow it, the schema and page level work still stands on its own.

The short version

Write the file because writing it makes you decide what your business is. Keep it true, keep it specific, keep it consistent with the site it describes. If assistants turn out to read it, you were ready. If they never do, you still ended up with the clearest paragraph anyone in your company has written about what you sell.

If you want a second read on whether your site says the same thing to a person, a crawler and an assistant, that is a reasonable thing to bring to a call. How this practice works and what gets reported is on the services page, with more detail on the FAQ page. The call is thirty minutes.

If you already have an llms.txt, drop the URL in the comments and tell me what you decided to leave out. That choice says more about a business than anything that made it into the file.

Top comments (0)