{"id":215992,"date":"2025-01-04T16:22:27","date_gmt":"2025-01-04T16:22:27","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/website-llms-txt\/"},"modified":"2026-03-13T18:44:39","modified_gmt":"2026-03-13T18:44:39","slug":"website-llms-txt","status":"publish","type":"plugin","link":"https:\/\/ast.wordpress.org\/plugins\/website-llms-txt\/","author":23194161,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"8.2.7","stable_tag":"8.2.7","tested":"6.8.5","requires":"5.8","requires_php":"7.2","requires_plugins":null,"header_name":"Website LLMs.txt","header_author":"Ryan Howard","header_description":"Manages and automatically generates LLMS.txt files for LLM\/AI consumption and integrates with SEO plugins (Yoast SEO, RankMath)","assets_banners_color":"666666","last_updated":"2026-03-13 18:44:39","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/completeseo.com\/author\/ryan-howard\/","rating":4.8,"author_block_rating":0,"active_installs":30000,"downloads":374931,"num_ratings":12,"support_threads":4,"support_threads_resolved":2,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.0.0":{"tag":"2.0.0","author":"ryhowa","date":"2025-01-04 16:32:20"},"3.0.0":{"tag":"3.0.0","author":"samsonovteamwork","date":"2025-02-19 16:06:11"},"4.0.0":{"tag":"4.0.0","author":"samsonovteamwork","date":"2025-02-20 15:26:55"},"4.0.1":{"tag":"4.0.1","author":"samsonovteamwork","date":"2025-02-21 19:46:18"},"4.0.2":{"tag":"4.0.2","author":"samsonovteamwork","date":"2025-02-22 14:24:50"},"4.0.3":{"tag":"4.0.3","author":"samsonovteamwork","date":"2025-02-22 18:44:02"},"4.0.4":{"tag":"4.0.4","author":"samsonovteamwork","date":"2025-02-22 19:02:44"},"4.0.5":{"tag":"4.0.5","author":"samsonovteamwork","date":"2025-02-23 17:39:02"},"4.0.6":{"tag":"4.0.6","author":"samsonovteamwork","date":"2025-02-27 20:26:06"},"4.0.7":{"tag":"4.0.7","author":"samsonovteamwork","date":"2025-03-15 12:45:08"},"4.0.8":{"tag":"4.0.8","author":"samsonovteamwork","date":"2025-03-15 13:16:00"},"4.0.9":{"tag":"4.0.9","author":"samsonovteamwork","date":"2025-03-20 09:25:26"},"5.0.0":{"tag":"5.0.0","author":"samsonovteamwork","date":"2025-03-20 09:25:26"},"5.0.1":{"tag":"5.0.1","author":"samsonovteamwork","date":"2025-03-26 10:01:36"},"5.0.2":{"tag":"5.0.2","author":"samsonovteamwork","date":"2025-03-27 19:18:52"},"5.0.3":{"tag":"5.0.3","author":"samsonovteamwork","date":"2025-04-03 10:35:02"},"5.0.4":{"tag":"5.0.4","author":"samsonovteamwork","date":"2025-04-03 12:40:52"},"5.0.5":{"tag":"5.0.5","author":"samsonovteamwork","date":"2025-04-08 08:33:58"},"5.0.6":{"tag":"5.0.6","author":"samsonovteamwork","date":"2025-04-12 10:08:06"},"5.0.7":{"tag":"5.0.7","author":"samsonovteamwork","date":"2025-04-12 16:05:54"},"5.0.8":{"tag":"5.0.8","author":"samsonovteamwork","date":"2025-04-14 18:28:33"},"6.0.0":{"tag":"6.0.0","author":"samsonovteamwork","date":"2025-04-28 19:38:31"},"6.0.1":{"tag":"6.0.1","author":"samsonovteamwork","date":"2025-04-28 19:38:31"},"6.0.2":{"tag":"6.0.2","author":"samsonovteamwork","date":"2025-04-29 18:12:42"},"6.0.3":{"tag":"6.0.3","author":"samsonovteamwork","date":"2025-04-29 19:18:03"},"6.0.4":{"tag":"6.0.4","author":"samsonovteamwork","date":"2025-04-29 19:56:39"},"6.0.5":{"tag":"6.0.5","author":"samsonovteamwork","date":"2025-04-30 09:47:10"},"6.0.6":{"tag":"6.0.6","author":"samsonovteamwork","date":"2025-05-04 18:55:37"},"6.0.7":{"tag":"6.0.7","author":"samsonovteamwork","date":"2025-05-18 08:56:52"},"6.0.8":{"tag":"6.0.8","author":"samsonovteamwork","date":"2025-05-20 15:08:21"},"6.0.9":{"tag":"6.0.9","author":"samsonovteamwork","date":"2025-05-22 20:47:45"},"6.1.0":{"tag":"6.1.0","author":"samsonovteamwork","date":"2025-05-23 15:17:34"},"6.1.1":{"tag":"6.1.1","author":"samsonovteamwork","date":"2025-05-30 11:46:50"},"6.1.2":{"tag":"6.1.2","author":"samsonovteamwork","date":"2025-06-08 10:35:28"},"7.0.0":{"tag":"7.0.0","author":"samsonovteamwork","date":"2025-06-10 13:28:58"},"7.0.1":{"tag":"7.0.1","author":"samsonovteamwork","date":"2025-06-11 15:18:09"},"7.0.2":{"tag":"7.0.2","author":"samsonovteamwork","date":"2025-06-18 20:22:22"},"7.0.3":{"tag":"7.0.3","author":"samsonovteamwork","date":"2025-06-26 10:45:01"},"7.0.4":{"tag":"7.0.4","author":"samsonovteamwork","date":"2025-06-27 19:54:20"},"7.0.5":{"tag":"7.0.5","author":"samsonovteamwork","date":"2025-07-02 15:36:50"},"7.0.6":{"tag":"7.0.6","author":"samsonovteamwork","date":"2025-07-02 15:59:17"},"7.0.7":{"tag":"7.0.7","author":"samsonovteamwork","date":"2025-07-02 16:08:00"},"7.0.8":{"tag":"7.0.8","author":"samsonovteamwork","date":"2025-07-02 16:18:49"},"7.0.9":{"tag":"7.0.9","author":"samsonovteamwork","date":"2025-07-04 09:18:40"},"7.1.0":{"tag":"7.1.0","author":"samsonovteamwork","date":"2025-07-04 16:39:52"},"7.1.1":{"tag":"7.1.1","author":"samsonovteamwork","date":"2025-07-04 16:49:58"},"7.1.2":{"tag":"7.1.2","author":"samsonovteamwork","date":"2025-07-04 17:05:43"},"7.1.4":{"tag":"7.1.4","author":"samsonovteamwork","date":"2025-07-07 19:09:17"},"7.1.5":{"tag":"7.1.5","author":"samsonovteamwork","date":"2025-07-08 11:44:17"},"7.1.6":{"tag":"7.1.6","author":"samsonovteamwork","date":"2025-07-08 16:19:13"},"8.0.0":{"tag":"8.0.0","author":"samsonovteamwork","date":"2025-07-14 15:57:12"},"8.0.1":{"tag":"8.0.1","author":"samsonovteamwork","date":"2025-07-14 18:39:40"},"8.0.2":{"tag":"8.0.2","author":"samsonovteamwork","date":"2025-07-15 09:57:05"},"8.0.3":{"tag":"8.0.3","author":"samsonovteamwork","date":"2025-07-15 11:55:02"},"8.0.4":{"tag":"8.0.4","author":"samsonovteamwork","date":"2025-07-15 15:41:18"},"8.0.5":{"tag":"8.0.5","author":"samsonovteamwork","date":"2025-07-22 10:17:39"},"8.0.6":{"tag":"8.0.6","author":"samsonovteamwork","date":"2025-07-23 17:43:49"},"8.0.7":{"tag":"8.0.7","author":"samsonovteamwork","date":"2025-07-24 16:42:32"},"8.0.8":{"tag":"8.0.8","author":"samsonovteamwork","date":"2025-07-27 10:19:27"},"8.0.9":{"tag":"8.0.9","author":"samsonovteamwork","date":"2025-07-31 18:32:04"},"8.1.0":{"tag":"8.1.0","author":"samsonovteamwork","date":"2025-08-03 19:22:33"},"8.1.1":{"tag":"8.1.1","author":"samsonovteamwork","date":"2025-08-04 08:53:44"},"8.1.2":{"tag":"8.1.2","author":"samsonovteamwork","date":"2025-08-07 20:36:51"},"8.1.3":{"tag":"8.1.3","author":"samsonovteamwork","date":"2025-08-09 12:28:10"},"8.1.4":{"tag":"8.1.4","author":"samsonovteamwork","date":"2025-08-17 14:54:12"},"8.1.5":{"tag":"8.1.5","author":"samsonovteamwork","date":"2025-08-19 13:01:36"},"8.1.6":{"tag":"8.1.6","author":"samsonovteamwork","date":"2025-08-21 16:07:15"},"8.1.7":{"tag":"8.1.7","author":"samsonovteamwork","date":"2025-08-29 14:01:09"},"8.1.8":{"tag":"8.1.8","author":"samsonovteamwork","date":"2025-09-05 10:49:59"},"8.1.9":{"tag":"8.1.9","author":"samsonovteamwork","date":"2025-10-03 14:24:45"},"8.2.0":{"tag":"8.2.0","author":"samsonovteamwork","date":"2025-10-14 11:05:00"},"8.2.1":{"tag":"8.2.1","author":"samsonovteamwork","date":"2025-10-20 15:20:16"},"8.2.2":{"tag":"8.2.2","author":"samsonovteamwork","date":"2025-10-23 10:12:02"},"8.2.3":{"tag":"8.2.3","author":"samsonovteamwork","date":"2025-10-24 10:12:33"},"8.2.4":{"tag":"8.2.4","author":"samsonovteamwork","date":"2026-01-14 16:57:39"},"8.2.5":{"tag":"8.2.5","author":"samsonovteamwork","date":"2026-01-17 13:37:34"},"8.2.6":{"tag":"8.2.6","author":"ryhowa","date":"2026-02-11 11:25:05"},"8.2.7":{"tag":"8.2.7","author":"ryhowa","date":"2026-03-13 18:44:39"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":1,"4":1,"5":10},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3322182,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3322182,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3322182,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3322182,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.0.0","3.0.0","4.0.0","4.0.1","4.0.2","4.0.3","4.0.4","4.0.5","4.0.6","4.0.7","4.0.8","4.0.9","5.0.0","5.0.1","5.0.2","5.0.3","5.0.4","5.0.5","5.0.6","5.0.7","5.0.8","6.0.0","6.0.1","6.0.2","6.0.3","6.0.4","6.0.5","6.0.6","6.0.7","6.0.8","6.0.9","6.1.0","6.1.1","6.1.2","7.0.0","7.0.1","7.0.2","7.0.3","7.0.4","7.0.5","7.0.6","7.0.7","7.0.8","7.0.9","7.1.0","7.1.1","7.1.2","7.1.4","7.1.5","7.1.6","8.0.0","8.0.1","8.0.2","8.0.3","8.0.4","8.0.5","8.0.6","8.0.7","8.0.8","8.0.9","8.1.0","8.1.1","8.1.2","8.1.3","8.1.4","8.1.5","8.1.6","8.1.7","8.1.8","8.1.9","8.2.0","8.2.1","8.2.2","8.2.3","8.2.4","8.2.5","8.2.6","8.2.7"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[2353,226124,174174,186,2227],"plugin_category":[55],"plugin_contributors":[236404,240081],"plugin_business_model":[],"class_list":["post-215992","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-llm","plugin_tags-rankmath","plugin_tags-seo","plugin_tags-yoast","plugin_category-seo-and-marketing","plugin_contributors-ryhowa","plugin_contributors-samsonovteamwork","plugin_committers-ryhowa","plugin_committers-samsonovteamwork","plugin_support_reps-samsonovteamwork"],"banners":{"banner":"https:\/\/ps.w.org\/website-llms-txt\/assets\/banner-772x250.png?rev=3322182","banner_2x":"https:\/\/ps.w.org\/website-llms-txt\/assets\/banner-1544x500.png?rev=3322182","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/website-llms-txt\/assets\/icon-128x128.png?rev=3322182","icon_2x":"https:\/\/ps.w.org\/website-llms-txt\/assets\/icon-256x256.png?rev=3322182","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Website LLMs.txt<\/strong> generates and manages an <code>llms.txt<\/code> file, a structured, AI-ready index that helps large language models like ChatGPT, Claude, and Perplexity understand your site\u2019s most important content.<\/p>\n\n<h3>How llms.txt works<\/h3>\n\n<p>Traditional sitemaps and robots files guide search engines. But as AI-driven systems such as ChatGPT, Claude, and Perplexity increasingly ingest web content, they benefit from a clear, structured list of a site\u2019s most important URLs.\n    llms.txt offers that: a plain-text or Markdown list of essential public URLs, optionally annotated with titles, descriptions, and grouping, designed for AI consumption rather than general web crawling.<\/p>\n\n<h3>Key benefits<\/h3>\n\n<p>\u2705 <strong>AI discovery readiness<\/strong> \u2014 future-proof your site for AI indexing and content retrieval.\n\u2705 <strong>Fully automatic<\/strong> \u2014 the plugin builds and updates your <code>llms.txt<\/code> file on its own schedule.\n\u2705 <strong>SEO plugin integration<\/strong> \u2014 works seamlessly with Yoast SEO, Rank Math, SEOPress, and AIOSEO, automatically excluding content marked as <em>noindex<\/em> or <em>nofollow<\/em>.\n\u2705 <strong>Advanced controls<\/strong> \u2014 choose post types, customize file titles or descriptions, attach optional Markdown files, and trigger manual regeneration.\n\u2705 <strong>Developer-friendly<\/strong> \u2014 includes filters such as <code>llms_generator_get_post_meta_description<\/code> for description logic, performance tuning, and custom indexing behavior.\n\u2705 <strong>AI crawler detection<\/strong> \u2014 opt in to track whether GPTBot, ClaudeBot, or PerplexityBot are actually reading your site\u2019s <code>llms.txt<\/code>.\n\u2705 <strong>WooCommerce &amp; multisite ready<\/strong> \u2014 respects product visibility rules and scales easily across large or networked sites.\n\u2705 <strong>Privacy-first experiment<\/strong> \u2014 anonymous, encrypted telemetry helps reveal which bots are accessing <code>llms.txt<\/code> files across the web.<\/p>\n\n<h3>Activation &amp; setup<\/h3>\n\n<ol>\n<li>Activate the plugin.<\/li>\n<li>Visit <em>Settings \u2192 LLMs.txt<\/em> to configure post types, update frequency (immediate, daily, or weekly), and optional crawler logging.<\/li>\n<li>The plugin generates <code>llms.txt<\/code> (and optionally <code>llms-full.txt<\/code>) and serves it from your site root.<\/li>\n<li>Content updates trigger automatic regeneration. All noindex\/nofollow rules from your SEO plugin are respected.<\/li>\n<li>If you enable AI crawler logging, local and global logs record each visit from known AI bots \u2014 viewable right inside your WordPress dashboard.<\/li>\n<\/ol>\n\n<h3>Use cases for llms.txt<\/h3>\n\n<ul>\n<li>Publishers, SaaS companies, developers, and documentation sites that want to make their content easier for AI systems to interpret.<\/li>\n<li>SEO-driven websites teting AI engine optimization tactics.<\/li>\n<li>Agencies and site owners preparing for the next phase of AI search and retrieval.<\/li>\n<\/ul>\n\n<h3>The llms.txt experiment &amp; further reading<\/h3>\n\n<ul>\n<li><a href=\"https:\/\/completeseo.com\/are-ai-bots-actually-reading-llms-txt-files\/\">Are AI bots actually reading llms.txt files?<\/a><\/li>\n<li><a href=\"https:\/\/completeseo.com\/everything-we-know-about-llms-txt\/\">Everything we know about llms.txt<\/a><\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/website-llms-txt<\/code><\/li>\n<li>Activate the plugin through the <em>Plugins<\/em> screen in WordPress<\/li>\n<li>Go to <em>Settings \u2192 LLMs.txt<\/em> to configure options and generate your file<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20is%20llms.txt%3F\"><h3>What is llms.txt?<\/h3><\/dt>\n<dd><p>llms.txt is a plain-text or Markdown file placed at the root of your domain (for example <code>https:\/\/example.com\/llms.txt<\/code>) that lists your site\u2019s most important public URLs. It helps large language models (LLMs) like ChatGPT, Claude, and Perplexity better understand your site\u2019s structure and priority content.<\/p><\/dd>\n<dt id=\"how%20does%20the%20website%20llms.txt%20plugin%20work%3F\"><h3>How does the Website LLMs.txt plugin work?<\/h3><\/dt>\n<dd><p>The plugin automatically generates and maintains your <code>llms.txt<\/code> file based on published content. It pulls titles and descriptions from your site, respects SEO plugin settings (Yoast SEO, Rank Math, SEOPress, and AIOSEO), and excludes anything marked as <em>noindex<\/em> or <em>nofollow<\/em>. The file is then served from your site root, ready for AI crawlers to read.<\/p><\/dd>\n<dt id=\"how%20often%20is%20llms.txt%20updated%3F\"><h3>How often is llms.txt updated?<\/h3><\/dt>\n<dd><p>You can set the update frequency in the plugin settings \u2014 immediate, daily, or weekly. You can also click \u201cGenerate Now\u201d in the admin panel to rebuild the file at any time.<\/p><\/dd>\n<dt id=\"does%20this%20guarantee%20visibility%20in%20chatgpt%2C%20claude%2C%20or%20perplexity%3F\"><h3>Does this guarantee visibility in ChatGPT, Claude, or Perplexity?<\/h3><\/dt>\n<dd><p>No. There\u2019s no guarantee that any AI model will immediately use <code>llms.txt<\/code>, but it\u2019s clear that several systems \u2014 including GPTBot, ClaudeBot, and PerplexityBot \u2014 are already crawling these files. Using <code>llms.txt<\/code> positions your site ahead of the curve as AI indexing becomes more structured.<\/p><\/dd>\n<dt id=\"what%E2%80%99s%20the%20difference%20between%20llms.txt%20and%20llms-full.txt%3F\"><h3>What\u2019s the difference between llms.txt and llms-full.txt?<\/h3><\/dt>\n<dd><p>llms.txt is a concise, curated list of key URLs.\n    llms-full.txt is an optional extended file generated by the plugin that includes a more comprehensive export of your site\u2019s content. It\u2019s useful for documentation sites, developer platforms, or large content hubs that want to expose additional structure to AI systems.<\/p><\/dd>\n<dt id=\"what%20if%20my%20host%20doesn%E2%80%99t%20allow%20writing%20to%20the%20root%20directory%3F\"><h3>What if my host doesn\u2019t allow writing to the root directory?<\/h3><\/dt>\n<dd><p>The plugin includes fallback logic for environments such as WordPress VIP or read-only hosting. In those cases, it serves <code>llms.txt<\/code> virtually through WordPress rewrite rules, so the file is still accessible at <code>https:\/\/example.com\/llms.txt<\/code>.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20seo%20plugins%20like%20yoast%20or%20rank%20math%3F\"><h3>Does it work with SEO plugins like Yoast or Rank Math?<\/h3><\/dt>\n<dd><p>Yes. It automatically integrates with Yoast SEO, Rank Math, SEOPress, and AIOSEO. Pages marked as <em>noindex<\/em> or <em>nofollow<\/em> in any of those plugins will be excluded from your <code>llms.txt<\/code> file automatically.<\/p><\/dd>\n<dt id=\"can%20i%20track%20which%20ai%20bots%20visit%20my%20llms.txt%20file%3F\"><h3>Can I track which AI bots visit my llms.txt file?<\/h3><\/dt>\n<dd><p>Yes. When crawler logging is enabled, visits from AI crawlers such as GPTBot, ClaudeBot, and PerplexityBot are recorded. You can view these visits in your WordPress dashboard. If you opt into the global experiment, your data is anonymized and encrypted before contributing to a shared dataset that tracks AI bot behavior across thousands of sites.<\/p><\/dd>\n<dt id=\"will%20it%20conflict%20with%20sitemap.xml%20or%20robots.txt%3F\"><h3>Will it conflict with sitemap.xml or robots.txt?<\/h3><\/dt>\n<dd><p>No. <code>llms.txt<\/code> complements your sitemap and robots file. Sitemaps tell search engines what to crawl; <code>llms.txt<\/code> helps AI systems understand what\u2019s most valuable. They work together without overlap or conflict.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20what%20appears%20in%20llms.txt%3F\"><h3>Can I customize what appears in llms.txt?<\/h3><\/dt>\n<dd><p>Yes. You can include or exclude specific post types, add a custom title or description, and even attach Markdown (<code>.md<\/code>) files to individual posts or pages. The plugin provides a straightforward settings panel and per-page controls for fine-tuning output.<\/p><\/dd>\n<dt id=\"i%E2%80%99m%20a%20developer.%20are%20there%20filters%20or%20hooks%20available%3F\"><h3>I\u2019m a developer. Are there filters or hooks available?<\/h3><\/dt>\n<dd><p>Yes. Filters such as <code>llms_generator_get_post_meta_description<\/code> and others allow you to modify how descriptions are generated or extend what metadata appears in the file. Developers can also adjust caching behavior, database queries, and output formatting.<\/p><\/dd>\n<dt id=\"is%20any%20personal%20data%20shared%20when%20i%20enable%20crawler%20logging%3F\"><h3>Is any personal data shared when I enable crawler logging?<\/h3><\/dt>\n<dd><p>No. All telemetry is privacy-first. Local logs remain on your site. If you opt into the public experiment, only anonymized data (bot name, timestamp, and a hashed version of your domain) is shared. No content, user, or identifiable data is ever transmitted.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>8.2.7<\/h4>\n\n<p>\ud83d\udd12 Security: Hardened admin interface against potential XSS vectors<\/p>\n\n<p>\u2022 Improved sanitization and escaping for dynamic post type labels used in admin form fields.\n\u2022 Replaced label-based array keys with post type slugs to prevent attribute injection risks.\n\u2022 Ensures all dynamic values used in HTML attributes are properly escaped with esc_attr().\n\u2022 Prevents potential stored XSS scenarios caused by maliciously registered custom post type labels.\n\u2022 Minor stability improvements to avoid PHP notices when settings values are missing.<\/p>\n\n<h4>8.2.6<\/h4>\n\n<p>\ud83d\udee0 Fix: Correct WPML slugs and duplicate URLs in llms.txt<\/p>\n\n<p>\u2022 Fixed an issue where original language slugs (e.g. .de) were duplicated and appeared for both original and translated pages.\n\u2022 The generator now resolves the real WPML permalink for each language, instead of reusing the source language slug.\n\u2022 Each language entry is now written with its own correct localized URL (no mixed or duplicated slugs).\n\u2022 Prevents cases where translated pages were listed with the original language URL.\n\u2022 Ensures llms.txt contains only valid, language-correct links for all WPML translations.<\/p>\n\n<h4>8.2.5<\/h4>\n\n<p>\ud83d\udee0 <strong>Fix: Multilingual llms.txt generation with WPML<\/strong><\/p>\n\n<p>\u2022 The generated <code>llms.txt<\/code> file now contains <strong>all WPML language versions at once<\/strong>.\n\u2022 Each language is rendered with its <strong>correct localized permalink<\/strong> (<code>\/en\/<\/code>, <code>\/ro\/<\/code>, etc.).\n\u2022 The output is <strong>no longer dependent on the currently viewed language<\/strong>.\n\u2022 This ensures that a single <code>llms.txt<\/code> file always exposes <strong>all valid multilingual URLs<\/strong>, regardless of which language version is accessed.<\/p>\n\n<p>Result:<\/p>\n\n<ul>\n<li>One unified <code>llms.txt<\/code><\/li>\n<li>All WPML languages included<\/li>\n<li>All links resolve correctly<\/li>\n<li>No missing or fallback-to-default-language URLs<\/li>\n<\/ul>\n\n<h4>8.2.4<\/h4>\n\n<p>\ud83d\udee0 Improvement: Gravity Forms exclusion control<\/p>\n\n<p>\u2022 Added an option to exclude Gravity Forms form fields from the generated llms.txt output.\n\u2022 When disabled, all Gravity Forms markup (<code>&lt;form id=\"gform_...\"&gt;<\/code>, wrappers, and fields) is completely removed before file generation.\n\u2022 Prevents unintended exposure of form structure and field labels in llms.txt.<\/p>\n\n<h4>8.2.3<\/h4>\n\n<p>\ud83d\udcdd Update: README.txt improvements\n\u2022 Updated the link for \u201cAll websites counter &amp; experiment details\u201d to the new, correct URL.\n\u2022 Minor text adjustments for clarity and consistency within the documentation.<\/p>\n\n<h4>8.2.2<\/h4>\n\n<p>\ud83d\udee0 Fix: PHP Fatal Error (ArgumentCountError)\n\u2022 Fixed the issue: Fatal error: Uncaught ArgumentCountError: 5 arguments are required, 3 given in admin-page.php:356<\/p>\n\n<h4>8.2.1<\/h4>\n\n<p>\ud83d\udee0 Fix: PHP Fatal Error (ArgumentCountError)\n\u2022 Fixed the issue: Fatal error: Uncaught ArgumentCountError: 5 arguments are required, 3 given in admin-page.php:356\n\u2022 The error occurred because printf() was used with a translatable string that expected more placeholders than arguments provided.\n\u2022 Replaced it with a safe sprintf() and wp_kses_post() implementation to properly escape HTML and ensure compatibility with PHP 8.x.<\/p>\n\n<h4>8.2.0<\/h4>\n\n<p>\ud83e\udde9 New: LLMs.txt Reset Block\n\u2022 Added a new \u201cLLMs.txt Reset\u201d section in the settings panel.\n\u2022 Allows safely deleting and recreating the llms.txt file.\n\u2022 Clears any related transient cache entries.\n\u2022 Automatically rebuilds a fresh version of llms.txt based on current settings and published content.<\/p>\n\n<p>\ud83d\udcdd Improved Field Descriptions for Custom LLMs.txt Content\n\u2022 Updated admin field labels and descriptions for better clarity:\n\u2022 Title: manually define the title for the generated file.\n\u2022 Description: add an introductory section before URLs.\n\u2022 After Description: insert optional text before the list of links.\n\u2022 End File Description: append footer text (e.g., disclaimer or contact info).<\/p>\n\n<p>\u2699\ufe0f Enhancement:\n\u2022 Improved layout consistency and help text readability across the settings panel.<\/p>\n\n<h4>8.1.9<\/h4>\n\n<p>\u2728 New: SEOPress Support\n\u2022 Added compatibility with SEOPress plugin for meta data handling.<\/p>\n\n<p>\u2728 Improvement: Title Generation\n\u2022 Refactored title generation \u2013 titles are now fetched dynamically from the actual page to ensure accuracy.<\/p>\n\n<p>\u2728 Enhancement: Admin Panel UX\n\u2022 Added a progress bar for the \u201cGenerate Now\u201d process in the admin panel for better visibility of ongoing tasks.<\/p>\n\n<h4>8.1.8<\/h4>\n\n<p>\u2728 Improvement: Hidden Posts Exclusion\n\u2022 Posts and products marked with WooCommerce catalog visibility settings \u201cexclude-from-catalog\u201d or \u201cexclude-from-search\u201d are now excluded from being listed in llms.txt.\n\u2022 Ensures that items set to Hidden, Shop only, or Search results only do not appear in the generated llms.txt file.\n\u2022 Aligns llms.txt output with WooCommerce visibility rules for better consistency and control.<\/p>\n\n<h4>8.1.7<\/h4>\n\n<p>\ud83d\udc1e Fixed: XML Sitemap Stylesheet Issues\n\u2022 Fixed an issue where llms-sitemap.xml displayed a blank page in Chrome\/Edge or the error Parsing an XSLT stylesheet failed in Firefox.\n\u2022 Added a check to ensure the stylesheet file (main-sitemap.xsl) exists before including it. If missing, the XML now loads correctly without the XSL.\n\u2022 Improved cross-browser compatibility for displaying XML sitemaps.<\/p>\n\n<p>\u2728 New: Post Type Customization in llms.txt\n\u2022 Added support for customizing post type display names in the llms.txt file.\n\u2022 Developers can now provide more descriptive or human-friendly titles for each custom post type section, improving clarity for both search engines and users.<\/p>\n\n<h4>8.1.6<\/h4>\n\n<p>\ud83d\udee0 Improved: Extensibility &amp; Performance\n\u2022 Added filter llms_generator_get_post_meta_description to make it easier to extend or replace the logic for retrieving page\/post descriptions (e.g. integrating with Yoast, RankMath, or custom SEO functions).\n\u2022 Added new filter to control which database index\/field is used when building the llms.txt file, giving developers more flexibility for performance tuning and custom setups.<\/p>\n\n<h4>8.1.5<\/h4>\n\n<p>\ud83d\udcdd New: Custom Description Field per Page\/Post\n\u2022 Added a new \u201cDescription\u201d textarea field to the llms.txt metabox on individual pages\/posts.\n\u2022 This allows site admins to manually override the default description shown in the llms.txt output.\n\u2022 Useful for precise control over how content is described or interpreted by LLMs and search engines.<\/p>\n\n<p>\ud83d\udc1b Fix: Missing Description Field UI\n\u2022 Fixed an issue where the changelog referenced a description field, but it was not visible in the admin UI unless specific settings were enabled.\n\u2022 Now shown whenever page-level llms.txt settings are active.<\/p>\n\n<h4>8.1.4<\/h4>\n\n<p>\u2728 New: ACF Template-Based Post Indexing\n\u2022 Posts using ACF-based templates (with custom fields and layouts) are now fully supported in the llms.txt generation process.\n\u2022 Ensures that even dynamically rendered content is included in the index file.<\/p>\n\n<p>\ud83d\udd0d Improvement: Post Type Indexing Summary\n\u2022 The admin interface now displays the total number of posts per type alongside how many have been indexed (e.g. \u201cPosts (123 indexed of 1829)\u201d).\n\u2022 Makes it easier to monitor indexing coverage and debug missing entries.<\/p>\n\n<h4>8.1.3<\/h4>\n\n<p>\u2728 New: Manual Generation Trigger for llms.txt\n    \u2022 Added a \"Generate Now\" option in the admin to manually trigger llms.txt file generation without waiting for scheduled cron jobs.\n    \u2022 Allows immediate regeneration for testing or urgent updates.<\/p>\n\n<p>\ud83d\udc1b Fix: WP Engine Root File Creation Issue\n    \u2022 Resolved an issue where llms.txt was generated in the uploads directory but not copied to the WordPress root on WP Engine-hosted sites.\n    \u2022 Improved file system handling to ensure compatibility with WP Engine\u2019s direct FS method and restrictive environments.\n    \u2022 Includes fallback logic for reliable file movement and permission setting.<\/p>\n\n<h4>8.1.2<\/h4>\n\n<p>\ud83d\udc1b Fix: Trailing Slash Redirect Issue on llms.txt and llms-full.txt\n    \u2022   Resolved an issue where WordPress would incorrectly redirect requests for \/llms.txt and \/llms-full.txt due to trailing slash conflicts.\n    \u2022   Implemented a filter-based override to prevent canonical redirection behavior for these endpoints.\n    \u2022   Ensures proper file access and visibility across all permalink structures.\n    \u2022   Inspired by and aligned with community solutions provided for similar plugin issues.<\/p>\n\n<h4>8.1.1<\/h4>\n\n<p>\ud83d\udd27 Compatibility Fix: WordPress VIP Filesystem Support\n    \u2022   Resolved an issue where the plugin could not write the llms.txt file on WordPress VIP environments due to the lack of stream_lock support.\n    \u2022   Implemented fallback logic using WP_Filesystem:\n    \u2022   If the direct method is available, the plugin now writes using native PHP file handles (fopen in append mode) for better performance and memory efficiency on large files.\n    \u2022   Ensures compatibility with WordPress VIP\u2019s restricted filesystem wrapper.\n    \u2022   Improved error handling and logging when file writing is not possible due to server restrictions.<\/p>\n\n<h4>8.1.0<\/h4>\n\n<p>\ud83d\udee0 Fix: 404 Error on llms-sitemap.xml with Yoast SEO<\/p>\n\n<p>\u2022 Resolved an issue where the llms-sitemap.xml endpoint returned a 404 error when Yoast SEO was active.\n\u2022 The sitemap rewrite rule is now properly registered and recognized, ensuring the sitemap is accessible alongside Yoast\u2019s sitemaps.<\/p>\n\n<h4>8.0.9<\/h4>\n\n<p>\ud83c\udf10 WPML URL Generation Fix<\/p>\n\n<p>\u2022 Fixed an issue where llms.txt was generating duplicate URLs with the same language code for all translations.\n\u2022 Each URL is now generated correctly according to its respective language version in multilingual setups using WPML.<\/p>\n\n<h4>8.0.8<\/h4>\n\n<p>\ud83d\udee0\ufe0f SEO Compatibility Fixes<\/p>\n\n<p>\u2022 Fixed an issue where Rank Math dynamic tags (e.g. %title%, %customterm(something)%) were not being rendered in llms.txt titles and descriptions.\n\u2022 Dynamic SEO meta data now resolves correctly for all post types when using templates from Rank Math.<\/p>\n\n<h4>8.0.7<\/h4>\n\n<p>\ud83c\udf10 I18N Improvements<\/p>\n\n<p>\u2022 Fixed localization issue in class-llms-md.php: the \u201cDelete file\u201d button label is now correctly translatable using esc_html_e() with the proper text domain.\n\u2022 Ensured all static strings in UI components follow internationalization best practices.<\/p>\n\n<h4>8.0.6<\/h4>\n\n<p>\ud83d\udc1e Bug Fixes<\/p>\n\n<p>\u2022 Fixed PHP warnings about undefined array key detailed_content in class-llms-generator.php when running cron from WP CLI.\n\u2022 Added additional checks and defaults to prevent warnings in environments where detailed_content is not set.<\/p>\n\n<h4>8.0.5<\/h4>\n\n<p>\ud83d\ude80 New Feature &amp; Bug Fixes<\/p>\n\n<p>\u2022 Added support for deleting the uploaded .md file directly from the meta box.\n\u2022 Fixed the behavior of the \u201cDo not include this page in llms.txt\u201d checkbox \u2014 now, when activated, the page is correctly excluded from the generated llms.txt file.<\/p>\n\n<h4>8.0.4<\/h4>\n\n<p>\ud83d\udc1e Bug Fixes &amp; i18n Improvements<\/p>\n\n<p>\u2022 Fixed internationalization (i18n) issue in the meta box: wrapped the meta box title in __() for proper translation support (thanks to Alex Lion for the report).\n\u2022 Fixed PHP warnings about undefined array keys (llms_txt_title, llms_txt_description, llms_after_txt_description, llms_end_file_description, include_md_file, detailed_content) by adding proper defaults and safe checks when saving settings.\n\u2022 Minor code cleanup to improve stability and compatibility.<\/p>\n\n<h4>8.0.3<\/h4>\n\n<p>\ud83d\udc1e Minor Fix: Meta Box Title<\/p>\n\n<p>\u2022 Renamed the page\/post meta box title from \u201cMarkdown (.md) file\u201d to \u201cLlms.txt\u201d for better clarity and consistency with the feature\u2019s purpose.<\/p>\n\n<h4>8.0.2<\/h4>\n\n<p>\u2728 UI &amp; Page-Level Control: Sidebar Meta Box &amp; Exclusion Option<\/p>\n\n<p>\u2022 Moved the Markdown (.md) file meta box to the sidebar of the page\/post edit screen for a cleaner and more consistent experience.\n\u2022 Added a \u201cDo not include this page in llms.txt\u201d checkbox at the page level to allow excluding individual pages\/posts from llms.txt output.\n\u2022 Updated the meta box to include: llms.txt heading, .md upload field, and the new exclusion checkbox \u2014 all neatly organized.\n\u2022 Ensured the exclusion setting and uploaded .md file are saved correctly and reflected in llms.txt.\n\u2022 Minor UI polishing and accessibility improvements to align with WordPress admin styles.<\/p>\n\n<h4>8.0.1<\/h4>\n\n<p>\u2728 Enhancements &amp; Options: More Flexible LLMS.txt Content Control<\/p>\n\n<p>\u2022 Changed default behavior: options Include meta information (publish date, author, etc.), Include post excerpts, and Include taxonomies (categories, tags, etc.) are now unchecked by default for cleaner output.\n\u2022 Added a new option: Include detailed content \u2014 allowing fine-grained control over whether to include detailed page\/post content in the llms.txt file.\n\u2022 Improved settings clarity and fallback behavior when all optional content is disabled.<\/p>\n\n<h4>8.0.0<\/h4>\n\n<p>\u2728 New Features &amp; Improvements: Admin UI, Content Options, Markdown<\/p>\n\n<p>\u2022 Rearranged admin dashboard: moved warning section and update frequency settings into an \u201cAdvanced Settings\u201d card for better clarity.\n\u2022 Improved content settings: added checkboxes to control inclusion of post excerpts and meta descriptions in output, with cleaner fallback to just URL + Title when unchecked.\n\u2022 Added a dedicated \u201cCustom LLMS.txt Content\u201d panel in settings for defining a custom Title, Description, After Description, and End File Description.\n\u2022 Added custom description field and an additional manual entry field per page\/post, both included in llms.txt.\n\u2022 Added support for attaching <code>.md<\/code> (Markdown) files per page\/post \u2014 link to the file appears in llms.txt if enabled.\n\u2022 <code>.md<\/code> files are stored in a dedicated <code>\/llms_md\/<\/code> folder and linked in llms.txt for reference.<\/p>\n\n<h4>7.1.6<\/h4>\n\n<p>\ud83d\udc1e Bug Fixes &amp; Enhancements: Stability, Indexing, and Compatibility<\/p>\n\n<p>\u2022 Fixed PHP warning for undefined llms_allow_indexing key in yoast.php, added proper default handling.\n\u2022 Improved compatibility with Yoast SEO &amp; RankMath by checking settings arrays before use.\n\u2022 Enhanced fallback handling for missing meta descriptions and cleaned up fallback output in generated files.\n\u2022 Minor code refactoring for better PHP 8.2+ compatibility and reduced log noise.<\/p>\n\n<h4>7.1.5<\/h4>\n\n<p>\ud83d\udc1e Bug Fixes &amp; Improvements: WooCommerce, WP-Rocket, PHP Notices, and I18N<\/p>\n\n<p>\u2022 Fixed a fatal error when editing WooCommerce products (has_weight() on null) caused by the plugin calling do_shortcode() on product content \u2014 now properly checks context and avoids passing invalid post data to WooCommerce templates.\n\u2022 Adjusted WP-Rocket cache clearing behavior.\n\u2022 Resolved PHP Notice in admin menu creation (add_submenu_page) by ensuring the 7th parameter is numeric (position), no longer passing invalid icon string.\n\u2022 Improved I18N (Internationalization) strings in admin-page.php for proper localization and improved translations.\n\u2022 Added minor UI fixes and cleaned up wording in the admin area.<\/p>\n\n<p>\u2705 Recommended upgrade if you use WooCommerce, Divi theme, or WP-Rocket, and\/or run with WP_DEBUG enabled.\n\ud83c\udfaf Thanks to all users who reported and helped debug these issues!<\/p>\n\n<h4>7.1.4<\/h4>\n\n<p>\ud83d\udc1e Bug Fixes: Generator Stability and PHP 8.x Compatibility<\/p>\n\n<p>\u2022 Fixed PHP warnings about undefined <code>$output<\/code> variable in <code>class-llms-generator.php<\/code> when generating LLMS data\n\u2022 Fixed deprecated usage of <code>mb_convert_encoding()<\/code> with null input on line 428\n\u2022 Ensures <code>$output<\/code> is always initialized before being used and passed to <code>mb_convert_encoding()<\/code>\n\u2022 Improved error handling when no content is available to write during generation\n\u2022 Verified compatibility with PHP 8.1 and 8.2 to prevent log noise and execution failures<\/p>\n\n<h4>7.1.1<\/h4>\n\n<p>\ud83d\udc1e Bug Fix: LLMS Crawler Activation<\/p>\n\n<p>\u2022 Fixed an issue where the LLMS Crawler feature was not activating correctly after plugin installation or settings update\n\u2022 Ensures that the crawler logging toggle properly saves and reflects the current state in the admin UI\n\u2022 Improved reliability of the global experiment opt-in status<\/p>\n\n<h4>7.1.0<\/h4>\n\n<p>\ud83d\udc1e Bug Fix: Admin Menu Compatibility<\/p>\n\n<p>\u2022 Fixed a PHP notice when WP_DEBUG is enabled, caused by incorrect usage of <code>add_submenu_page()<\/code>\n\u2022 The submenu page no longer passes an icon name (<code>dashicons-media-text<\/code>) as the 7th parameter \u2014 now uses a proper numeric menu position\n\u2022 Improves compatibility with WordPress &gt;= 5.3 and prevents unnecessary log noise<\/p>\n\n<h4>7.0.9<\/h4>\n\n<p>\ud83e\udde0 New Feature: AI Crawler Detection<\/p>\n\n<p>\u2022 Added new admin section with detailed insights into AI bot activity on your llms.txt file\n\u2022 Introduced logging for AI crawlers like GPTBot, ClaudeBot, and PerplexityBot \u2014 including bot name and last seen timestamp\n\u2022 Added dashboard table to view recent bot visits (max 100 entries, rolling log)\n\u2022 New setting: opt in to the global AI crawler detection experiment \u2014 anonymously share bot access data (hashed domain + bot name)\n\u2022 All telemetry is privacy-first: no content or personal data is collected or stored\n\u2022 Integrated backend support for real-time participation tracking across thousands of sites\n\u2022 Added admin banner linking to \u201cHow it works\u201d with full experiment explanation<\/p>\n\n<h4>7.0.8<\/h4>\n\n<p>\ud83d\udee0 Improvements &amp; Fixes\n- File Status section now conditionally displays links (e.g. sitemap) only when relevant settings are enabled\n- Prevents broken links when sitemap inclusion is not selected\n- Minor UI consistency improvements<\/p>\n\n<h4>7.0.4<\/h4>\n\n<p>\ud83d\udee0\ufe0f Bug Fixes &amp; Enhancements<\/p>\n\n<p>\u2022 Added X-Robots-Tag: noindex header for llms.txt by default to discourage indexing by search engines.\n\u2022 Introduced a checkbox setting to optionally disable the noindex header (not recommended).\n\u2022 Cleaned up plugin description for clarity and removed outdated marketing language.\n\u2022 Minor internal code improvements for consistency and maintainability.<\/p>\n\n<h4>7.0.3<\/h4>\n\n<p>\ud83d\udee0\ufe0f Bug Fixes &amp; Improvements<\/p>\n\n<p>\u2022 Added support for excluding llms.txt from sitemaps by default to prevent unintended indexing by search engines.\n\u2022 Introduced an optional checkbox in settings to allow manual inclusion of llms.txt in the sitemap, with a clear SEO warning.\n\u2022 On plugin deactivation, scheduled tasks related to llms.txt are now properly cleared and the file is removed from the site root to avoid stale exposure.<\/p>\n\n<h4>7.0.2<\/h4>\n\n<p>\ud83d\udee0\ufe0f Bug Fixes &amp; Improvements<\/p>\n\n<p>\u2022 Fixed an issue with detecting <code>nofollow<\/code> and <code>noindex<\/code> pages when using the Rank Math SEO plugin.\n\u2022 The \"Clear Caches\" button in the Cache Management block now also clears the LLMS index table to ensure full site reindexing.<\/p>\n\n<h4>7.0.1<\/h4>\n\n<p>\ud83d\udee0\ufe0f Bug Fixes: JSON API Compatibility<\/p>\n\n<p>\u2022 Resolved a critical issue that caused \"Update failed. The response is not a valid JSON response.\" when editing or publishing posts.\n\u2022 The plugin now correctly avoids interfering with the WordPress REST API response during post save\/update actions.\n\u2022 Confirmed compatibility with block editor and custom post types \u2014 post creation and updates now work reliably.<\/p>\n\n<h4>7.0.0<\/h4>\n\n<p>\ud83d\ude80 Major Overhaul: LLMS.txt Generation &amp; Performance<\/p>\n\n<p>\u2022 Rebuilt the LLMS.txt generation system from the ground up.\n\u2022 Introduced a dedicated <code>llms_txt_cache<\/code> database table to index and store structured data efficiently.\n\u2022 Greatly reduced server load by avoiding direct filesystem writes and enabling smarter caching.\n\u2022 File generation is now handled <strong>asynchronously via scheduled cron jobs<\/strong> to avoid UI slowdowns and improve scalability.\n\u2022 Minimized the number of filesystem write operations during LLMS.txt generation, improving reliability and performance.\n\u2022 Optimized for large-scale databases \u2014 smoother performance on sites with thousands of posts.<\/p>\n\n<h4>6.1.2<\/h4>\n\n<p>\ud83d\udd27 Improved: Internationalization (i18n) and Display Logic\n\u2022 Resolved several i18n issues by improving translation coverage and context handling.\n\u2022 Prevented empty post_content pages from being shown in detailed content view.\n\u2022 Fixed incorrect tagline display by properly falling back to site description settings.<\/p>\n\n<p>These updates improve localization accuracy, content visibility logic, and metadata consistency.<\/p>\n\n<h4>6.1.1<\/h4>\n\n<p>\ud83e\uddf9 Removed: Global Cache Flush\n\u2022 Eliminated <code>wp_cache_flush()<\/code> calls from content processing loop.\n\u2022 Prevented unintended flushing of global object cache affecting other plugins.\n\u2022 Reading operations no longer interfere with cache integrity.<\/p>\n\n<h4>6.1.0<\/h4>\n\n<p>\u2705 Fixed: Yoast SEO Variable Parsing\n\u2022 Resolved issue where dynamic SEO content using Yoast variables (e.g., %%title%%, %%excerpt%%) wasn\u2019t correctly replaced during content generation.\n\u2022 Content processed through wpseo_replace_vars() to ensure accurate output.\n\u2022 Improved compatibility with Yoast SEO templates, even when used outside the standard loop or template hierarchy.<\/p>\n\n<h4>6.0.8<\/h4>\n\n<p>\u2705 Fixed: Emoji and Code Cleanup in llms.txt\n\u2022 Emojis and unnecessary symbols are now automatically removed from <code>llms.txt<\/code>.\n\u2022 Code snippets are correctly sanitized for plain-text output.\n\u2022 Improved table formatting: table data is now correctly aligned and rendered when exported.<\/p>\n\n<h4>6.0.7<\/h4>\n\n<p>\ud83d\uddd1\ufe0f Removed ai.txt File Generation\n\u2022 The automatic creation of the ai.txt file has been removed.\n\u2022 This change reduces unnecessary file writes and simplifies plugin behavior.\n\u2022 If needed, you can still manually create and manage ai.txt in your site\u2019s root.<\/p>\n\n<h4>6.0.6<\/h4>\n\n<p>\u2705 Persistent Dismiss for Admin Notices\n\u2022 Admin notices now store dismissal state using user meta \u2014 ensuring they remain hidden once closed.\n\u2022 No more repeated reminders across dashboard pages \u2014 smoother and less intrusive user experience.<\/p>\n\n<p>\ud83d\udee0 Minor Code Cleanup\n\u2022 Removed outdated notice render logic.\n\u2022 Improved JS handling for notice dismissals across multi-user environments.<\/p>\n\n<h4>6.0.5<\/h4>\n\n<p>\u26a1 Enhanced Performance &amp; Clean Output\n\u2022 Database query logic fully refactored for high-speed data selection, reducing generation time by up to 70% on large sites.\n\u2022 Replaced WP_Query with direct SQL access \u2014 now works faster and avoids unnecessary overhead.\n\u2022 Significantly improved scalability and lower memory usage during .txt file generation.<\/p>\n\n<p>\ud83e\uddf9 Special Character Cleanup\n\u2022 Removed invisible and problematic characters (NBSP, BOM, ZWSP, etc.) from post content to ensure clean and readable output.\n\u2022 Prevents display issues and improves downstream AI parsing of .txt files.<\/p>\n\n<p>\ud83d\udcc8 Faster Regeneration\n\u2022 Full .txt regeneration after content updates is now noticeably faster, especially on content-heavy websites.\n\u2022 Better memory handling and reduced write cycles during generation.<\/p>\n\n<h4>6.0.4<\/h4>\n\n<p>\ud83c\udf10 Multisite Link Format Change\n\u2022 For multisite installations, .txt files are now accessible via trailing slash URLs:\nexample.com\/llms.txt\/ and example.com\/ai.txt\/.\n\u2022 This ensures compatibility across various server environments and mapped domain setups.\n\u2022 For single-site setups, physical .txt files are still generated and stored in the root directory.<\/p>\n\n<p>\ud83d\udd27 Yoast SEO Exclusion Fix\n\u2022 Fixed an issue where pages marked with noindex or nofollow in Yoast SEO were not properly excluded from the .txt output.\n\u2022 Now both _yoast_wpseo_meta-robots-noindex and _yoast_wpseo_meta-robots-nofollow are fully respected.<\/p>\n\n<h4>6.0.3<\/h4>\n\n<p>\ud83d\udc1b Fix: 404 Not Found on NGINX Servers\n\u2022 Resolved an issue where .txt files (llms.txt, ai.txt) returned a 404 error on NGINX-based hosting environments.\n\u2022 Rewrite rules are now properly flushed and executed without needing manual permalink updates.<\/p>\n\n<p>\ud83d\udcb0 Product Price Output\n\u2022 Product prices are now displayed as plain text values (e.g., 56.00 USD) instead of HTML when WooCommerce support is enabled.\n\u2022 Ensures clean and readable output for price values in llms.txt.<\/p>\n\n<p>\ud83d\udd04 Important: Clear Cache After Update\n\u2022 After updating to this version, please clear your site\u2019s cache (including server-side and CDN cache) to ensure .txt file endpoints load correctly.<\/p>\n\n<h4>6.0.2<\/h4>\n\n<p>\ud83c\udf10 Multisite Support (Beta)\n\u2022 The plugin now supports WordPress Multisite environments.\n\u2022 Each site now stores and serves its own <code>llms.txt<\/code> and <code>ai.txt<\/code> content independently.\n\u2022 Scheduled cron tasks are isolated per site to ensure accurate and isolated updates.\n\u2022 Multisite-aware hooks implemented in <code>template_redirect<\/code> to correctly output <code>.txt<\/code> files on mapped domains.<\/p>\n\n<p>\ud83d\udce2 Admin Notice for Feature Suggestions\n\u2022 Added a dismissible admin notice on new plugin installs to gather feedback and feature suggestions from users.\n\u2022 Links included to Twitter and WP.org support forum for easy community engagement.\n\u2022 Let\u2019s coordinate on Slack for the next release to align on roadmap input strategy.<\/p>\n\n<h4>6.0.1<\/h4>\n\n<p>\ud83d\udee0\ufe0f Breakdance Compatibility Fix\n\u2022 Fixed an issue where enabling \u201cinstant\u201d updates for the llms.txt file on post save caused a 500 error when using the latest version of Breakdance Builder.\n\u2022 Now, immediate updates are handled safely without interrupting the save process.<\/p>\n\n<p>\u23f1\ufe0f Improved Cron Handling\n\u2022 Switched to using a single scheduled event (wp_schedule_single_event) instead of triggering file updates directly during shutdown.\n\u2022 This ensures better compatibility and stability, especially on heavy or slower servers.<\/p>\n\n<p>\u2795 WooCommerce SKU Support\n\u2022 Added SKU output if the post type is a WooCommerce product.\n\u2022 The llms.txt file now includes a line like - SKU: [Product SKU] when available.<\/p>\n\n<h4>6.0.0<\/h4>\n\n<p>\ud83d\udee0\ufe0f Page Creation Respecting Settings\n\u2022 Fixed a logic inconsistency where the AI Sitemap page could still exist even if the related setting was disabled.\n\u2022 The plugin now ensures that page creation behavior strictly follows the user\u2019s configuration, both during normal operation and after plugin updates.<\/p>\n\n<h4>5.0.8<\/h4>\n\n<p>\ud83d\udee0\ufe0f Page Creation Respecting Settings\n\u2022 Fixed a logic inconsistency where the AI Sitemap page could still exist even if the related setting was disabled.\n\u2022 The plugin now ensures that page creation behavior strictly follows the user\u2019s configuration, both during normal operation and after plugin updates.<\/p>\n\n<h4>5.0.7<\/h4>\n\n<p>\u2705 New: Optional AI Sitemap Page\n\u2022 Added a new setting to disable automatic creation of the AI Sitemap page (ai-sitemap).\n\u2022 Users can now manage whether this page is created on init via the plugin settings panel.<\/p>\n\n<p>\ud83e\udde0 Performance &amp; Memory Usage\n\u2022 Improved memory handling during content generation, especially for large post meta datasets.\n\u2022 Reduced risk of memory leaks when working with heavy content by loading posts via IDs and flushing cache dynamically.<\/p>\n\n<p>\ud83d\udcc4 Content Generation Enhancements\n\u2022 Fixed issues related to long post content generation in llms.txt.\n\u2022 Added a new option to control the number of words included per post in the generated file (default: 250).\n\u2022 Better content trimming and cleaning logic for consistent output.<\/p>\n\n<p>\ud83d\udd27 Stability &amp; Cleanup\n\u2022 Optimized handling of unset variables and object cleanup to avoid bloating memory usage during cron or manual execution.<\/p>\n\n<h4>5.0.7<\/h4>\n\n<p>\u2705 Settings Consistency Improvements\n\u2022 The plugin now respects the \u201cInclude AI Sitemap page\u201d setting more reliably across updates.\n\u2022 Internal checks ensure that unnecessary pages are not created or kept when the option is disabled.<\/p>\n\n<p>\ud83e\udde0 Update-Aware Logic\n\u2022 Introduced version-aware behavior to trigger settings-related adjustments only once after plugin updates.\n\u2022 Ensures cleaner and more consistent state without manual intervention.<\/p>\n\n<h4>5.0.6<\/h4>\n\n<p>\u2705 New: Optional AI Sitemap Page\n\u2022 Added a new setting to disable automatic creation of the AI Sitemap page (ai-sitemap).\n\u2022 Users can now manage whether this page is created on init via the plugin settings panel.<\/p>\n\n<p>\ud83e\udde0 Performance &amp; Memory Usage\n\u2022 Improved memory handling during content generation, especially for large post meta datasets.\n\u2022 Reduced risk of memory leaks when working with heavy content by loading posts via IDs and flushing cache dynamically.<\/p>\n\n<p>\ud83d\udcc4 Content Generation Enhancements\n\u2022 Fixed issues related to long post content generation in llms.txt.\n\u2022 Added a new option to control the number of words included per post in the generated file (default: 250).\n\u2022 Better content trimming and cleaning logic for consistent output.<\/p>\n\n<p>\ud83d\udd27 Stability &amp; Cleanup\n\u2022 Optimized handling of unset variables and object cleanup to avoid bloating memory usage during cron or manual execution.<\/p>\n\n<p>\ud83e\uddea Tested With\n\u2022 \u2705 WordPress 6.5\n\u2022 \u2705 Yoast SEO 22.x\n\u2022 \u2705 Rank Math &amp; AIOSEO compatibility verified<\/p>\n\n<h4>5.0.5<\/h4>\n\n<p>\u2705 Fixed 404 Error for Sitemap XML\n\u2022 Resolved an issue where the llms-sitemap.xml endpoint could return a 404 error despite being properly registered.\n\u2022 Now correctly sets the HTTP 200 status header for valid sitemap requests using status_header(200), ensuring compatibility with WordPress routing and sitemap indexing.\n\u2022 Improved query var handling and rewrite rule registration to guarantee sitemap accessibility.<\/p>\n\n<p>\ud83e\udde0 Other Improvements\n\u2022 Refactored request handling logic to ensure clean output with proper MIME type headers (application\/xml).\n\u2022 Further stability improvements for Yoast integration and dynamic sitemap indexing.<\/p>\n\n<p>\ud83e\uddea Tested with WordPress 6.5 and Yoast SEO 22.x<\/p>\n\n<h4>5.0.4<\/h4>\n\n<p>\ud83d\udee0 Improvements &amp; Fixes<\/p>\n\n<p>\u2705 Automatic AI Sitemap page generation\n    \u2022 The plugin now auto-creates a public \/ai-sitemap page explaining what LLMs.txt is and how it improves AI visibility.\n    \u2022 The page is only created if it doesn\u2019t already exist, and includes a dynamic link to your actual LLMs sitemap file.\n    \u2022 Content is filterable for advanced customization.<\/p>\n\n<p>\u2705 Added support for ai.txt as an alternate LLM sitemap path\n    \u2022 The plugin now generates both \/llms.txt and \/ai.txt to maximize compatibility with future AI indexing standards.\n    \u2022 Both files are kept in sync and contain the same URL list.\n    \u2022 This improves discoverability by AI crawlers that look for ai.txt by default.<\/p>\n\n<p>\u2705 Enhanced onboarding &amp; reliability\n    \u2022 Improved logic to prevent duplicate pages.\n    \u2022 Cleaned up sitemap text formatting for better readability.\n    \u2022 Hook-friendly architecture for developers.<\/p>\n\n<p>\ud83d\ude80 This update makes your site even more AI-ready by exposing your content through both standard and emerging LLM indexing formats \u2014 paving the way for visibility in tools like ChatGPT, Perplexity, and beyond.<\/p>\n\n<h4>5.0.3<\/h4>\n\n<p>\ud83d\udee0 Improvements &amp; Fixes<\/p>\n\n<p>\u2705 Added support for AIOSEO plugin\n    \u2022 Integrated detection of aioseo_posts table to improve filtering accuracy.\n    \u2022 Posts marked with robots_noindex or robots_nofollow in AIOSEO are now correctly excluded from output.\n    \u2022 Fallback-safe: the logic only applies if the AIOSEO table exists in the database.<\/p>\n\n<p>\u2705 Enhanced compatibility with multiple SEO plugins\n    \u2022 Filtering logic now handles both Rank Math and AIOSEO data sources.\n    \u2022 Posts without SEO meta data are still properly included unless explicitly marked as noindex.<\/p>\n\n<p>\ud83d\ude80 This update expands SEO plugin compatibility, ensuring more accurate output when working with AIOSEO-powered sites, and avoids accidental indexing of excluded content.<\/p>\n\n<h4>5.0.2<\/h4>\n\n<p>\u2705 Fixed: Removed invalid contributor username from readme.txt (only WordPress.org profiles are allowed)<\/p>\n\n<h4>5.0.1<\/h4>\n\n<p>\ud83d\udee0 Improvements &amp; Fixes<\/p>\n\n<p>\u2705 Fixed issue with empty LLMS-generated files\n    \u2022   Resolved a bug where LLMS-generated files could appear empty if the rank_math_robots meta key was missing from posts.\n    \u2022   The plugin now correctly includes posts even if the Rank Math plugin is not installed or the meta field is not present.\n    \u2022   Prevented false negatives by ensuring the query accounts for both existing and non-existent rank_math_robots fields.<\/p>\n\n<p>\u2705 Improved meta query logic for noindex handling\n    \u2022   Extended the meta_query to handle posts without the rank_math_robots key gracefully.\n    \u2022   Ensured that only posts explicitly marked as noindex are excluded, while all others (including those with no SEO plugin data) are properly included.<\/p>\n\n<p>\u2705 Improved file generation accuracy\n    \u2022   Ensured that LLMS-related output files contain valid, expected content \u2014 reducing cases where generated files were blank due to strict filtering.\n    \u2022   Improved fallback logic for posts without SEO meta data.<\/p>\n\n<p>\ud83d\ude80 This update ensures that LLMS-generated files remain accurate and complete, even on sites that don\u2019t use Rank Math, and improves overall reliability when filtering content by SEO metadata.<\/p>\n\n<h4>5.0.0<\/h4>\n\n<p>\ud83d\udee0 Improvements &amp; Fixes<\/p>\n\n<p>\u2705 Added support for excluding noindex pages from Rank Math SEO<\/p>\n\n<ul>\n<li>The plugin now properly detects and excludes pages that have the <code>noindex<\/code> directive set in Rank Math SEO.<\/li>\n<li>Ensured that pages with <code>rank_math_robots<\/code> meta key containing <code>noindex<\/code> will not be included in the LLMS-generated files.<\/li>\n<li>This enhancement improves search engine indexing by preventing noindex-marked pages from being processed.<\/li>\n<\/ul>\n\n<p>\u2705 Extended support for Yoast SEO &amp; Rank Math<\/p>\n\n<ul>\n<li>Now supports both Yoast SEO and Rank Math SEO for detecting <code>noindex<\/code> pages.<\/li>\n<li>Ensured that <code>meta-robots-noindex<\/code> in Yoast and <code>rank_math_robots<\/code> in Rank Math are respected.<\/li>\n<li>Improved meta query logic to exclude noindex-marked pages efficiently.<\/li>\n<\/ul>\n\n<p>\u2705 Better performance &amp; stability<\/p>\n\n<ul>\n<li>Optimized post query handling to reduce unnecessary database queries when filtering indexed content.<\/li>\n<li>Improved support for large-scale websites by ensuring efficient exclusion of noindex pages.<\/li>\n<\/ul>\n\n<p>\ud83d\ude80 This update ensures full compatibility with both Yoast SEO and Rank Math SEO, improving site indexing and preventing unwanted pages from being processed.<\/p>\n\n<h4>4.0.9<\/h4>\n\n<p>\ud83d\udee0 Improvements &amp; Fixes\n\u2705 Fixed compatibility issue with Yoast SEO sitemap generation<\/p>\n\n<p>Resolved a problem where the llms-sitemap.xml file was not properly integrated with Yoast SEO\u2019s sitemap indexing.\nEnsured that the custom llms-sitemap.xml is correctly registered and included in Yoast\u2019s sitemap structure.\n\u2705 Enhanced XML sitemap handling<\/p>\n\n<p>Added  &hellip;<\/p>","raw_excerpt":"Automatically generate and manage LLMS.txt files for LLM\/AI content understanding, with full Yoast SEO, Rank Math, SEOPress, and AIOSEO integration.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ast.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/215992","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ast.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ast.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ast.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=215992"}],"author":[{"embeddable":true,"href":"https:\/\/ast.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/ryhowa"}],"wp:attachment":[{"href":"https:\/\/ast.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=215992"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ast.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=215992"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ast.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=215992"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ast.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=215992"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ast.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=215992"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ast.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=215992"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}