The llms.txt generator: write it yourself, or let WordPress keep it current
An llms.txt is a text file in the root of your domain in which you write, in plain language, what you do, which pages matter and what a language model may quote from you. There are two routes and both are on this page. The complete template is written out below, so you can write and upload the file yourself in ten minutes. Run WordPress and you can download the plugin instead: it builds the file from your settings, so you never have to drag anything over FTP again.
manage_options, so an administrator account.llms.txt next to robots.txt and sitemap.xml: three files, three different readers
This is not a setting and not a plugin. It is a text file in a fixed place. That place is the root of your domain, next to two neighbours that are probably already there. One folder deeper does not work, and that is the mistake people make most often. We have seen it happen with a perfectly written file sitting in /docs/.
yourdomain.com/
Below sits the complete structure of an llms.txt. Replace everything between brackets with your own details, save it as llms.txt and put the file in the root of your domain, so at yourdomain.com/llms.txt. There is nothing more to it: it is an ordinary text file.
# (Name of your website) > (One sentence explaining what your business does, for whom, where and since when.) Key facts: - Services: (what you offer, separated by commas) - Service area: (city, region or country) - Contact: (email address, phone number, opening hours) ## Most important pages - [(Page title)](https://yourdomain.com/path/): (half a line on what is there) - [(Page title)](https://yourdomain.com/path/): (half a line on what is there) - [(Page title)](https://yourdomain.com/path/): (half a line on what is there) ## Optional - [(Blog or knowledge base)](https://yourdomain.com/path/): (what it covers) ## Citation preference (Pick one and delete the other two:) Definitions, checklists and step-by-step guides on these pages may be quoted verbatim, with attribution to the page they came from. Only short excerpts and summaries may be quoted, with attribution to the page they came from. Summaries in your own words only, no verbatim quotes. ## Less important (Paths you would rather not see cited, one per line, for example /basket/ or /thank-you/. This is a hint, not a block.)
Two things to know before you start. The citation preference is not an enforceable rule: llms.txt is a proposal aimed at the model, not a technical block like robots.txt is for crawlers. And the list of your most important pages does most of the work, so put the pages you want to be found for there, not your entire menu.
What an llms.txt does
This page belongs to the tools and plugins from TheSEO and exists to make AI visibility concrete. With the template above you write an llms.txt that describes your own site clearly. Whether ChatGPT, Perplexity or Gemini actually fetch that file has not been established, and according to their own documentation they do not at the moment. If you want to see what a filled-in file looks like, ours is at theseo.nl/llms.txt. That is not an example we invented for this page, it is the file we use ourselves.
An llms.txt file is comparable to robots.txt, but made for AI systems. It gives AI crawlers information about your main subjects, your context, your priorities and which content may or may not be quoted. Language models crawl websites differently from search engines: they analyse meaning, connections and semantic patterns. What you get is a tidy, curated table of contents for your site in plain text, useful for you and for any agent you send there yourself. It gives no guarantee at all of visibility or citations: no major provider has committed to fetching the file from external sites.
What belongs in each part
The template above has fixed parts. This is what belongs in each one, in the order they appear in the file:
- The name of your website, as the heading at the top of the file, for example TheSEO
- Underneath it one sentence explaining what your business does, for whom, where and since when
- Key facts: your services, your service area and how to reach you, each on its own line
- Most important pages: three to five full web addresses, each with half a line about what is there. This part does most of the work, so put the pages you want to be found for here
- Optional: your blog or knowledge base, if you have one, with half a line on what it covers
- Your citation preference: pick one of the three and delete the other two. Definitions, checklists and step-by-step guides quoted verbatim with attribution, only short excerpts and summaries, or summaries in your own words only
- Less important: paths you would rather not see cited, one per line, for example your basket or your thank-you page. Not a hard block, but a hint
Once you have filled in every part, you have a file that states what has priority, which pages matter and what a language model may quote. Save it as llms.txt and put it in the root of your domain, so at yourdomain.com/llms.txt.
Who this is useful for
The template works for every website, including WordPress, Shopify, Webflow and custom builds. As long as the file sits in the root of your domain, anyone who requests it can read it, human and machine alike. On WordPress you put it in the same folder as your robots.txt, through your hosting panel or over FTP.
Would you rather not drag files around? The plugin above is the shorter route. It builds the file on every request from what you fill in on the settings screen, so you change it the way you change a page. What comes out is the same kind of file as the template above, you just do not have to lay it out yourself.
What the plugin does, part by part
The plugin catches the request to /llms.txt before your theme gets a turn, and writes the file that follows from your settings. Nothing is written to disk, so nothing gets in the way when you change something later. This is what is in it, part by part.
- The file at /llms.txt: a title line with your site name, a quote line with your summary, your key facts as free text, and then the sections Most important pages, Optional, Citation preference and Less important.
- Two buttons that take over the typing: one that pulls in your published pages as a link list and one that does the same with your latest posts. They only add what is not there yet, and nothing is stored until you press save yourself.
- A check panel that reports what is still missing, whether a physical llms.txt file on the server is standing in the way of the plugin, whether WordPress is running in a subfolder, and whether your permalinks are on the default setting.
- A preview of the complete file at the bottom of the settings screen, so you see what you are publishing before you publish it.
- Three extras that are off by default: a comment line with the address of your llms.txt in the robots.txt that WordPress serves, an attribution line at the bottom of the file, and a small link to TheSEO in your footer. You switch them on yourself or leave them off.
One thing worth knowing about the previous version. Version 1.x put a block of links to other projects at the top of every generated file, and that could not be switched off. That block was removed in 2.0.0, and the output now follows the structure of the standard at llmstxt.org instead of a format of its own.
Installing it, in four steps
You do not need to be a developer. It is an ordinary plugin zip that you upload like any other. Allow ten minutes, most of which goes into writing your summary.
Use the download button above. You get theseo-llms-txt-generator-2.0.0.zip, 26 KB. Do not unzip it: WordPress wants the zip itself.
In WordPress go to Plugins, then Add New Plugin, then Upload Plugin. Choose the zip file, click Install Now and then Activate Plugin.
Go to Settings, then llms.txt generator. Fill in the name and the summary and press the button that pulls in your published pages. Save.
Open yourdomain.com/llms.txt in your browser. What you see there is exactly what an agent will see, and that is the whole check.
If something other than what you expected comes out, it is almost always one of these three things, and the check panel on the settings screen tells you which. There was already a physical llms.txt file on your server: your web server then serves that one and the plugin never gets a turn, so remove the old file. Your WordPress runs in a subfolder: the file then lands in that subfolder while the standard expects it in the root of the domain. Or your permalinks are on the default setting: that still works, because the plugin also looks at the requested path itself, but the screen reports it so you know.
A form on the left, the file that rolls out on the right
After activation there is a line called llms.txt generator under Settings. That screen has two halves: the fields you fill in, and the preview of the file as it would be served at that moment. Here is how it is built up.
llms.txt generator
The file is built on every request from the fields below.
Preview of the current llms.txt
# Northfield Roofing
> Fits and repairs flat roofs across West Yorkshire, since 2009, with its own fitting teams.
## Most important pages
- [Flat roof replacement](https://.../flat-roof-replacement/): How we work, lead times and guarantee
- [Request a quote](https://.../request-a-quote/): What we need before we can price a job
## Citation preference
Definitions, checklists and step-by-step guides may be quoted verbatim, with attribution to the page they came from.
- A request comes in on /llms.txtThe plugin catches it before your theme gets its turn and builds the file from your fields. Nothing is written to your disk.
- ✓ The file has been servedTitle line, quote line, key facts and then your pages. What you see at yourdomain.com/llms.txt is exactly what an agent sees there.
- ○ The summary is still emptyNot an error, but a gap: the quote line under the title is missing. The check panel says so and the rest of the file still goes out.
- ! There is already a physical llms.txt on the serverThen your web server serves that old file and the plugin never gets its turn. Remove it and the screen above works again.
What it does, and what it does not do
llms.txt is one of the few subjects where expectations run harder than the facts. So both lists are here, so that you install the plugin with the right expectation rather than the wrong one.
- A file that follows the llms.txt standard, built from your settings, without FTP and without a file on your disk.
- Two buttons that pull in your page list, so the typing does not start from zero.
- A check panel that warns you about the three things that make this piece of plumbing fail quietly.
- A preview of the whole file on the screen itself, before you publish anything.
- English labels on an English site, and a clean uninstall: removing it leaves nothing behind in your database.
- No ranking and no guarantee of visibility. No major AI provider has committed to reading this file from external sites, and Google has said publicly that it does not use it for AI Overviews.
- No block. The citation preference is a request. If you want to keep crawlers out, you do that with robots.txt or at server level.
- No text that writes itself. The summary and the descriptions come from you; the plugin has no language model and asks for no API key.
- No llms-full.txt. Several other generators also produce a second file containing the full text of your pages. This plugin delivers the overview file only, not a shadow copy of your whole site.
- No priority over an existing file. If a physical llms.txt is already on your server, that one wins and the plugin never gets a turn.
Privacy: what the plugin stores
Short paragraph, and that is precisely the point. The plugin measures nothing about your visitors. No script is loaded into your pages, no cookie is set, nothing is written to browser storage, and no request goes to a server of ours or of anyone else.
What ends up in your database is two options: the text you type on the settings screen, and the version number of the plugin. Delete the plugin through the admin screen and both are removed, on multisite as well. Deactivating leaves them in place, so your settings are still there when you switch it back on.
One thing to keep in mind deliberately, because it is the nature of this file: /llms.txt is public. Everything you put in the fields is readable by anyone on your domain. So put your general email address and phone number in there if you want to, and no staff names, no home addresses and no details you would rather not have floating around. What we put in our own file is at theseo.nl/llms.txt, and why we record as little as possible on this site is set out in our privacy statement.
llms.txt alongside robots.txt and other AI traffic
Robots.txt is meant for traditional search engines such as Google and Bing. Language models process content differently, and llms.txt is aimed at them. Both have their own job, and together they form a foundation for classic SEO and for AI visibility alike.
Want to keep a grip on how AI handles your content elsewhere too? See how to protect your SEO traffic from AI, or how a heatmap and scrollmap plugin shows you how visitors actually use your pages. That way you combine AI structure with insight into real visitor behaviour.
Keep the proportions honest while you do it. What this file is, who actually reads it, what its status is and what it demonstrably does not do, is written out in llms.txt explained. Whether a model names your company at all is a separate question with a separate measurement, and that is the service AI visibility.
What AI may and may not do with your content
llms.txt is a proposal aimed at the model, not a technical block. What a crawler may fetch is settled in robots.txt; what a model may do with what it has fetched has been covered since September 2025 by the Content Signals Policy and is currently being standardised in the IETF working group AIPREF. You can write down what you would like in your llms.txt, but nobody is obliged to follow it.
AI systems favour websites with a clear structure. That is why the same work pays off twice: a page that is easy for a person to read is easy for a model to summarise. To see how your page comes out the other side, the AI snippet previewer shows what a model makes of it, and technical SEO covers the structure underneath.
