llms.txt on WordPress: Plugin vs Static File (2026)

There are three ways to get an llms.txt onto a WordPress site: let an SEO plugin generate one, serve one from a plugin that handles the URL dynamically, or upload a file to your web root yourself. They are not equivalent, and the differences are not visible from the settings screen. Yoast SEO, for example, writes a real file to your web root and refreshes it on a weekly schedule — not when you publish — and includes only the five most recently updated items per content type. That is a perfectly reasonable default, but it is not what most people picture when a plugin says it generates the file automatically. This page covers what each approach actually does so you can pick deliberately.

WordPress · Via plugin

No core WordPress support. Yoast SEO generates an llms.txt as a built-in feature you enable; dedicated plugins serve it via rewrite rules; or you upload a static file yourself. All three work — they fail differently.

Where it lives
https://yoursite.com/llms.txt. Physically, either a real file in the web root — the folder containing wp-config.php — or a virtual URL handled by a plugin's rewrite rule with no file on disk.
How it works
Three options: (1) Yoast SEO writes a physical file to the web root on a weekly scheduled action; (2) a dedicated plugin registers a rewrite rule and renders the file on request, typically with its own cache; (3) you upload a static file over SFTP.

Platform behaviour verified against primary documentation on August 15, 2026. This is a fast-moving area — if you are reading long after that date, re-check the sources at the end.

Before you start

  • Admin access to WordPress if you are using a plugin, or SFTP/file-manager access to the web root if you are uploading a file yourself.
  • A decision about who owns the file's accuracy — the plugin's selection rules, or you. This is the actual choice being made here.

Implementation on WordPress

  1. 1.Check whether you already have one

    Before installing anything, open https://yoursite.com/llms.txt. An SEO plugin you already run may have generated one, and a file you forgot about may be sitting in the web root. This matters more on WordPress than elsewhere, because a physical file on disk takes precedence over a plugin's rewrite rule — so an old upload can silently shadow a plugin you later enable.

    curl -sI https://yoursite.com/llms.txt | grep -iE "^(HTTP|content-type)"
    curl -s  https://yoursite.com/llms.txt | head -n 30
  2. 2.Option A — enable it in Yoast SEO

    Yoast SEO includes llms.txt generation for free and premium users; you enable it in the site feature settings and it needs no other setup. Understand what you are getting: Yoast writes a physical file into the web root, resolving the path via get_home_path() and falling back to the server document root. It then refreshes that file on a weekly scheduled action rather than on publish, so newly published content can take up to a week to appear.

  3. 3.Option B — use a dedicated plugin if you want dynamic behaviour

    Plugins built specifically for this, such as the LLMs.txt Builder plugin on WordPress.org, take a different approach: they register rewrite rules and render the response on request, usually with their own cache layer — a 24-hour cache in that plugin's case — and often generate an llms-full.txt with excerpts alongside it. That suits sites with a lot of content or custom post types you want represented. It also means the file exists only as a route, which is worth knowing when you go looking for it on disk.

  4. 4.Option C — write the file yourself and upload it

    Upload an llms.txt to the web root — the same folder as wp-config.php — over SFTP or your host's file manager. This is the only option that gives you full editorial control over what the file says, which for a business site is usually the thing that matters: a curated twenty-line file that states who you are, what you sell and what it costs beats an auto-generated list of your five most recent blog posts. The cost is that nothing updates it but you.

  5. 5.Fix the facts the file is generated from

    Whichever route you take, the generated file can only restate what your site already says. If your homepage does not name what you sell, your pricing lives only in a PDF, and no page states your service area, then a perfectly formatted llms.txt will not make an assistant able to describe you. On most WordPress sites this is where the real work is.

Example

A hand-written llms.txt for a WordPress business site. Short and specific beats long and generated.

# Example Plumbing Co.

> Licensed plumbing contractor serving Laval and the North Shore since 2009.

Service area: Laval, Blainville, Terrebonne (Quebec, Canada)
Phone and emergency hours are published on the contact page.

## Services

- Emergency repairs — 24/7 callout — https://example.com/emergency
- Drain cleaning — from $150 CAD — https://example.com/drains
- Water heater replacement — quoted on site — https://example.com/water-heaters

## Key pages

- [About and licensing](https://example.com/about)
- [Service area](https://example.com/service-area)
- [Contact](https://example.com/contact)

What catches people out

Yoast refreshes the file weekly, not when you publish

Yoast's llms.txt is generated once and then updated by a weekly scheduled action. That is fine for a stable business site and misleading if you assumed 'automatic' meant 'on publish'. If you have just launched a page you want represented, it will not appear immediately — and if your WP-Cron is unreliable, as it is on sites with little traffic or with DISABLE_WP_CRON set, the refresh may not run when you expect at all.

Yoast will not overwrite a file on disk — but it does outrank a plugin

Two different situations get conflated here, and they resolve in opposite directions. If a physical llms.txt already sits at the web root, Yoast leaves it alone — its spec says it makes sure not to overwrite it — so you can enable the feature, see the setting switched on, and watch /llms.txt never change. But if another plugin is serving llms.txt dynamically, there is no file on disk for Yoast to respect: it writes its own physical file, and that file is what visitors get. Yoast's spec states this outright — the generated file 'has higher prio, it will be displayed'. The mechanism is the web server, not WordPress: under the standard configuration an existing file at the document root is served before the request is ever handed to PHP, so the other plugin's rewrite rule never runs. That is a server-configuration behaviour, not a WordPress rule — a host that routes every request through PHP unconditionally would invert it — so check what is actually being served rather than reasoning from which plugin you enabled last.

Only the five most recent items per content type are included

Yoast selects the top five most recently updated posts, pages or custom post type entries published within the last twelve months, prioritising cornerstone content, plus the top five categories or tags by attached content. That is a curation strategy, not an index. Your best-performing guide from two years ago will not be in the file, which is a good reason to mark it as cornerstone or to maintain the file by hand.

There is a short 404 window right after you enable it

For roughly the first five minutes after activation the View button points at a 404 while the file is generated. People assume the feature failed and start uninstalling. Wait, then re-check.

A physical file at the web root sits outside WordPress caching

Because the Yoast and manual-upload approaches write a real file, your WordPress caching plugin has nothing to purge — the file is served by the web server directly, and any CDN in front of it caches it on its own terms. Purging WordPress cache after editing the file does nothing; purge at the CDN instead.

Custom post types need to be visible in search to be eligible

Yoast only considers custom post types with 'Show in search results' enabled, and custom taxonomy terms only when 'Show terms in search results' is on. If a post type you care about is missing from the file, that setting is the first place to look.

Verify it worked

  1. 1.Confirm the endpoint and content type

    You want HTTP 200 and a plain-text content type. An HTML content type usually means WordPress is routing the request to a page or a 404 template rather than serving a file, which tells you the rewrite rule is not registered or the file is not where you think it is.

    curl -sI https://yoursite.com/llms.txt | grep -iE "^(HTTP|content-type)"
  2. 2.Determine whether it is a real file or a plugin route

    This tells you which system owns the file, which is the thing you need to know before editing anything. Check the web root over SFTP: if llms.txt is there on disk, it is a physical file — Yoast's or your own upload. If it is not on disk but the URL still returns content, a plugin is rendering it through a rewrite rule and editing files will achieve nothing.

  3. 3.Confirm it reflects your current content

    Compare the pages listed against what you have published recently. If the file names content from months ago and misses your newest pages, you are looking at either the weekly refresh lag or a stale plugin cache — and on a low-traffic site, possibly a WP-Cron job that is not firing.

What this will not do

  • Plugin-generated files reflect the plugin's selection rules, not your editorial judgement. Five recent posts is rarely the best twenty lines you could write about your business.
  • A static uploaded file has no update mechanism at all. It is correct the day you write it and drifts from then on, which is the trade you are making for control.
  • Serving the file requires access to the web root or a plugin with rewrite permissions. Some managed hosting plans restrict one or both, and hosts with aggressive edge caching may serve a stale copy after you change it.
  • llms.txt is a proposed convention, not a standard any engine is obliged to honour. Google's John Mueller has publicly questioned the proposal and noted that LLMs are not actively looking for these files — worth keeping in view before paying for a plugin on the strength of ranking claims.

See what an answer engine can actually tell about your site

Publishing the file is the easy half. Our free checker reads your site the way an assistant would and reports which facts are missing — owner, pricing, service area, contact route — because those are what stop you being described accurately, with or without an llms.txt.

Sources

Platform facts on this page come from the documentation below, checked on August 15, 2026.

Other platforms

Written and technically verified by Jaeden Doody, founder of StillAwake Media, who builds and maintains the WordPress implementations described here. Implementation verified August 15, 2026.