AumCreate

Comparison

How four WordPress plugins produce llms.txt

Two write a real file into your site root. Two answer the request from PHP. That difference decides which one wins when you have more than one, and it is not a matter of which is better.

PluginVersion readHow it serves the fileOn by default?
Yoast SEO28.6Writes a real file into the site root with WP_Filesystem, rebuilt on a cron schedule, with a site-health check reporting on it.NoOff until you switch it on.
All in One SEO5.0.3Writes a real file into the site root, scheduled through Action Scheduler and regenerated when you publish.NoOff until you switch it on.
Rank Math1.0.280Serves it from PHP: registers a rewrite rule on init so the request is a real route, then answers it on template_redirect.Could not determineNot determinable from the shipped source. The module list has no default key for it; the real state lives in a stored option, so reading the code cannot answer it.
AumVisoours2.0.19Serves it from PHP on template_redirect, matching the path directly without registering a rewrite rule.YesOn from activation. It is the only one of the four that is.

Rank Math: the default is stored in an option rather than declared in code, so the shipped source does not answer it.

Limitations of serving from PHP

A physical file beats anything served by PHP.

If Yoast or All in One SEO is switched on, the file they write sits in your site root, and your web server returns it before WordPress loads. Nothing a PHP-based plugin does can take that request back — not AumViso, not Rank Math. If you want a dynamic one to answer, turn the file-writing one off and delete the file it left behind.

Precedence between two dynamic plugins is not determined here.

Rank Math and AumViso both answer on template_redirect at the default priority, so the order depends on which callback was registered first — which depends on plugin load order. Reading the source cannot settle it; only a runtime test on the site in question can.

2 of the 4 write a file to disk; AumCrawl does not.

Two dynamic implementations, two different problems

Rank Math

Because the path is a registered route, WordPress would otherwise redirect it to a trailing-slash form; the plugin removes redirect_canonical for that request (class-llms-txt.php:47). If your rewrite rules have never been flushed, the query variable is never set and nothing answers.

AumViso

Because no rewrite rule matches the path, WordPress has already queued a 404 by the time template_redirect fires. The status has to be reset before output, or the file is served with a 404 and crawlers discard the body.

Both of these surface as something a site owner will search for — “my llms.txt returns 404”, “my llms.txt redirects with a trailing slash”. They come from the same decision made two different ways.

Which one should answer

  • If you already run Yoast or All in One SEO and have switched their llms.txt on, you are served by a static file. That is the fastest possible answer, and nothing else you install will override it.
  • If you want the file to reflect a change the moment you publish, a dynamic one has no rebuild step to wait for — there is no file to regenerate.
  • If you are not sure whether anything is serving it at all, fetch /llms.txt and check the status code before changing any setting. A 404 after enabling a dynamic plugin usually means permalinks, not the plugin.
  • If two plugins are both set to serve it, decide which one deliberately rather than letting load order decide for you.

Where each line came from

Yoast SEO 28.6 — downloads.wordpress.org/plugin/wordpress-seo.28.6.zip
src/llms-txt/infrastructure/file/wordpress-file-system-adapter.php:23 — put_contentsinc/options/class-wpseo-option-wpseo.php:152 — enable_llms_txt => false
All in One SEO 5.0.3 — downloads.wordpress.org/plugin/all-in-one-seo-pack.5.0.3.zip
app/Common/Llms/Llms.php — generateLlmsTxt(), $fs->putContents($file, $content)app/Common/Options/Options.php:192 — llms.enable default false
Rank Math 1.0.280 — downloads.wordpress.org/plugin/seo-by-rank-math.1.0.280.zip
includes/modules/llms/class-llms-txt.php:33-34 — init → add_rewrite_rule, template_redirect → maybe_serve_llms_txtincludes/modules/llms/class-llms-txt.php:86 — add_rewrite_rule('^llms\.txt$', 'index.php?llms_txt=1', 'top')
AumViso 2.0.19 — downloads.wordpress.org/plugin/aumviso.2.0.19.zip
includes/adv/class-llms.php:35 — add_action('template_redirect', …)includes/adv/class-llms.php:44 — defaults: enabled => 1

Read . These are other people’s products and they change without telling us; the date is part of the claim.