llms.txt authoring
llms.txt is a proposed convention, not a standard anyone must honor. It costs almost nothing and some crawlers already look for it. Treat it as a cheap, clearly-labeled bet rather than a ranking mechanism.
Use when you want to tell assistants which of your pages are authoritative, and be honest with yourself about what that does and does not achieve.
The skill file
What you need first
- Your canonical page list
- A one-sentence description of what the site is
Method
- 01 Open with the site name and a single sentence stating what it is, in plain language rather than marketing copy.
- 02 List only pages you would want quoted. A dump of every URL defeats the purpose, which is signalling priority.
- 03 Give each entry a descriptive title rather than a slug, since the title is the context an assistant reads.
- 04 Use absolute URLs. Relative paths are ambiguous once the file is read out of context.
- 05 State attribution preferences plainly if you have them. There is no enforcement, but the statement is free.
- 06 Publish at the site root, then verify it is publicly reachable and served as plain text, not HTML.
What this produces
A short llms.txt at the root naming the pages you want cited, with titles and absolute URLs.
Where this goes wrong
- Believing it is a standard with guaranteed effect - it is neither
- Listing every URL, which signals nothing
- Serving it with an HTML content type, which some fetchers reject
Use this skill in your own AI
The download is a plain markdown file with the name and trigger in its frontmatter. Where an assistant supports skills it can load itself, that frontmatter is what it reads to decide this one applies.
Questions about this skill
When is publishing llms.txt worth doing at all?
When you want to state which pages you would rather be quoted from, and you can accept that nothing obliges anyone to read it. It is a proposed convention, not a standard, and it replaces neither your sitemap nor your robots rules. Treat it as a cheap bet placed alongside the real work, not instead of it.
What do I need before writing it?
Your canonical page list and one plain sentence saying what the site is. The page list is the part that takes thought, because the value here is entirely in the selection. Start without deciding which pages you would actually want quoted and you produce a URL dump, which signals nothing and duplicates the sitemap you already publish.
What do I end up with?
A short plain-text file at the site root naming the pages you want cited, each with a descriptive title and an absolute URL. The titles do the work, since they are the context a fetcher reads before deciding whether a page is worth taking. Absolute URLs matter because the file gets read out of context, where a relative path resolves against nothing.
What ruins this most often?
Believing the file has guaranteed effect, then measuring GEO progress by whether you published it. Nothing enforces it, adoption is uneven, and no citation is owed to you. The practical failure is smaller and easily missed: serving it with an HTML content type, which some fetchers reject, so verify it comes back as plain text after publishing.
More in AI search (GEO)
Answer extractability pass
Use when a page ranks well but is never quoted by AI assistants, and you need to make its claims...
AI citation monitoring
Use to find out whether assistants actually cite you, since this traffic is largely invisible in...
Entity consistency check
Use when assistants describe your company inaccurately, conflate you with another brand, or stat...
Quotable statistic sourcing
Use when your content makes claims no assistant will repeat because nothing in it is specific en...