{"id":361872,"date":"2026-09-11T20:29:47","date_gmt":"2026-09-11T20:29:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/mephivio-robots-llms\/"},"modified":"2026-09-28T16:21:53","modified_gmt":"2026-09-28T16:21:53","slug":"mephivio-robots-llms","status":"publish","type":"plugin","link":"https:\/\/es-pr.wordpress.org\/plugins\/mephivio-robots-llms\/","author":13916520,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.5.0","stable_tag":"1.5.0","tested":"7.1.2","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"Mephivio Robots LLMs","header_author":"Mephivio","header_description":"Automatically generates llms.txt, llms-full.txt, an SEO\/GEO-optimized robots.txt and a JSON-LD feed, with a live preview, LLM visibility score, diagnostics, multilingual support and AI bot traffic statistics.","assets_banners_color":"56696c","last_updated":"2026-09-28 16:21:53","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/www.agence-web-tregor.bzh","header_author_uri":"https:\/\/www.mephivio.fr","rating":0,"author_block_rating":0,"active_installs":30,"downloads":441,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.3.8":{"tag":"1.3.8","author":"mephivio34","date":"2026-09-11 20:29:27","revision":3692063},"1.5.0":{"tag":"1.5.0","author":"mephivio34","date":"2026-09-28 16:21:53","revision":3717568}},"upgrade_notice":{"1.4.0":"<p>Fixes a PHP 8 crash, the robots.txt rules ignored by Googlebot and AI crawlers, and the 301 redirect on \/llms.txt. Adds per-bot AI control, Markdown pages and an editor panel. All documents are rebuilt once after the update.<\/p>","1.3.6":"<p>WordPress.org compliance update: enqueued admin assets, unique prefixes, safer upgrade migration and cleaner package contents.<\/p>","1.3.2":"<p>Plugin Check compliance and WordPress 7.1 compatibility updates.<\/p>","1.3.0":"<p>Redesigns the Settings screen into clearer sections while preserving all existing configuration values.<\/p>","1.2.0":"<p>Adds an English\/French language switch for the plugin administration. English is the default and the setting affects only Mephivio Robots LLMs screens.<\/p>","1.1.1":"<p>Security, batching, privacy and WordPress.org-readiness hardening.<\/p>","1.1.0":"<p>Important fix for sites with many posts: activation\/generation no longer risks hanging or timing out. Update is recommended for all sites, especially large content libraries.<\/p>","1.0.0":"<p>Renamed to Mephivio Robots LLMs with security hardening. Existing settings are preserved when migrating from earlier versions that use the same option prefix.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3692069,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3692069,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1444x500.jpg":{"filename":"banner-1444x500.jpg","revision":3692069,"resolution":"1444x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3692069,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.3.8","1.5.0"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3692069,"resolution":"1","location":"assets","locale":"","width":1437,"height":543},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3692069,"resolution":"2","location":"assets","locale":"","width":1417,"height":653},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3692069,"resolution":"3","location":"assets","locale":"","width":1425,"height":640},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3692069,"resolution":"4","location":"assets","locale":"","width":1440,"height":457},"screenshot-5.jpg":{"filename":"screenshot-5.jpg","revision":3692069,"resolution":"5","location":"assets","locale":"","width":1431,"height":621},"screenshot-6.jpg":{"filename":"screenshot-6.jpg","revision":3692069,"resolution":"6","location":"assets","locale":"","width":1421,"height":800},"screenshot-7.jpg":{"filename":"screenshot-7.jpg","revision":3692069,"resolution":"7","location":"assets","locale":"","width":1427,"height":672},"screenshot-8.jpg":{"filename":"screenshot-8.jpg","revision":3692069,"resolution":"8","location":"assets","locale":"","width":1437,"height":517}},"screenshots":{"1":"Dashboard: overall status, published documents, average score.","2":"Live preview of llms.txt, llms-full.txt, llms-schema.json and robots.txt.","3":"Settings: content types, thresholds, robots.txt options.","4":"AI\/search bot request statistics."}},"plugin_section":[],"plugin_tags":[2353,2591,244604,12753,186],"plugin_category":[49,55],"plugin_contributors":[266544],"plugin_business_model":[],"class_list":["post-361872","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-geo","plugin_tags-llms-txt","plugin_tags-robots-txt","plugin_tags-seo","plugin_category-maps-and-location","plugin_category-seo-and-marketing","plugin_contributors-mephivio34","plugin_committers-mephivio34"],"banners":{"banner":"https:\/\/ps.w.org\/mephivio-robots-llms\/assets\/banner-772x250.jpg?rev=3692069","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/mephivio-robots-llms\/assets\/icon-128x128.png?rev=3692069","icon_2x":"https:\/\/ps.w.org\/mephivio-robots-llms\/assets\/icon-256x256.png?rev=3692069","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/mephivio-robots-llms\/assets\/screenshot-1.jpg?rev=3692069","caption":"Dashboard: overall status, published documents, average score."},{"src":"https:\/\/ps.w.org\/mephivio-robots-llms\/assets\/screenshot-2.jpg?rev=3692069","caption":"Live preview of llms.txt, llms-full.txt, llms-schema.json and robots.txt."},{"src":"https:\/\/ps.w.org\/mephivio-robots-llms\/assets\/screenshot-3.jpg?rev=3692069","caption":"Settings: content types, thresholds, robots.txt options."},{"src":"https:\/\/ps.w.org\/mephivio-robots-llms\/assets\/screenshot-4.jpg?rev=3692069","caption":"AI\/search bot request statistics."},{"src":"https:\/\/ps.w.org\/mephivio-robots-llms\/assets\/screenshot-5.jpg?rev=3692069","caption":""},{"src":"https:\/\/ps.w.org\/mephivio-robots-llms\/assets\/screenshot-6.jpg?rev=3692069","caption":""},{"src":"https:\/\/ps.w.org\/mephivio-robots-llms\/assets\/screenshot-7.jpg?rev=3692069","caption":""},{"src":"https:\/\/ps.w.org\/mephivio-robots-llms\/assets\/screenshot-8.jpg?rev=3692069","caption":""}],"raw_content":"<!--section=description-->\n<p><strong>Mephivio Robots LLMs<\/strong> generates and publishes machine-readable discovery files that can help compatible crawlers understand your public content. llms.txt is an emerging convention and is not guaranteed to be consumed by every AI or search crawler:<\/p>\n\n<ul>\n<li><strong>llms.txt<\/strong> \u2014 a Markdown index of your public content, in the format expected by the <a href=\"https:\/\/llmstxt.org\">llmstxt.org<\/a> specification.<\/li>\n<li><strong>llms-full.txt<\/strong> \u2014 the full text corpus of your content, cleaned up (removal of technical noise from page builders, scripts, styles, shortcodes\u2026).<\/li>\n<li><strong>llms-schema.json<\/strong> \u2014 the same index in JSON-LD format (schema.org <code>ItemList<\/code>), for agents able to consume structured data.<\/li>\n<li><strong>robots.txt<\/strong> \u2014 a granular policy per bot category (search engines, AI, social networks, \"bad bots\"), with your custom rules and sitemaps.<\/li>\n<\/ul>\n\n<h4>What makes this plugin different<\/h4>\n\n<p>Mephivio Robots LLMs is designed as a local, auditable discovery-control layer rather than only an llms.txt writer. In one interface it combines multilingual document generation, WooCommerce catalog indexing, robots.txt policy controls by crawler family, per-content exclusions and visibility scoring, diagnostics, previews, and privacy-friendly bot request statistics. It does not require an external API or send site content to a third party.<\/p>\n\n<h4>Key features<\/h4>\n\n<ul>\n<li>Admin interface language switch: English or French, with English as the default, independently of the WordPress locale.<\/li>\n<li>Smart content extraction: Gutenberg, Elementor, Divi, WPBakery, Beaver Builder, FAQ\/accordions, WooCommerce products.<\/li>\n<li>LLM visibility score per content item (0 to 100), with a configurable minimum threshold.<\/li>\n<li>Per-post\/page exclusion metabox, respects <code>noindex<\/code> (Yoast SEO, Rank Math, All in One SEO).<\/li>\n<li>Live preview of generated files directly in the admin.<\/li>\n<li>URL inclusion tester and generation logs.<\/li>\n<li>Dynamic (virtual, no disk writes), physical, or hybrid publishing.<\/li>\n<li>Delta mode: only reprocesses content that changed since the last generation.<\/li>\n<li>Polylang \/ WPML compatibility: one document per detected language (<code>llms-fr.txt<\/code>, <code>llms-en.txt<\/code>\u2026) in addition to the default document.<\/li>\n<li>Aggregated, privacy-friendly statistics of known bot requests on your llms.txt \/ llms-full.txt \/ robots.txt files.<\/li>\n<li>CSV export of excluded content, with the exclusion reason.<\/li>\n<li>WooCommerce-compatible (products are selected by default when WooCommerce is active, but can be disabled in the content-type settings; cart\/checkout\/account pages are excluded).<\/li>\n<li>Per-bot AI crawler control, grouped by purpose (model training, AI search and answers, user-triggered fetch): for example block GPTBot while keeping OAI-SearchBot and ChatGPT-User. The robots.txt output follows RFC 9309 (global rules repeated in every group).<\/li>\n<li>Markdown version of each indexed page (<code>\/my-page.md<\/code>), as suggested by the llms.txt proposal (opt-in).<\/li>\n<li>llms.txt \"## Optional\" section (by content type or below a score) and optional taxonomy archive sections (categories, product categories\u2026).<\/li>\n<li>\"LLM visibility\" panel in the block editor: exclusion switch, custom LLM summary used in llms.txt and JSON-LD, current score.<\/li>\n<li>WooCommerce price and availability in llms-full.txt, the JSON-LD feed (schema.org <code>Offer<\/code>) and Markdown pages.<\/li>\n<li>Daily charts of bot requests and an aggregated count of human visits coming from AI assistants (ChatGPT, Perplexity, Claude, Gemini, Copilot\u2026).<\/li>\n<li>Configuration check: permalinks, llms.txt format, documents blocked by robots.txt, physical files hiding the dynamic ones, sitemaps, WP-Cron, robots.txt conflicts with SEO plugins.<\/li>\n<li>Automatic sitemap detection (WordPress core, Yoast SEO, Rank Math, All in One SEO, SEOPress) and backup of any existing robots.txt \/ llms.txt before it is replaced in physical mode.<\/li>\n<\/ul>\n\n<h4>Privacy<\/h4>\n\n<p>The plugin does not send any data to a third-party service. Bot traffic statistics are stored locally only (aggregated by bot and by day, without storing raw IP addresses or user-agent strings) and can be disabled or reset at any time from the settings.<\/p>\n\n<p>Visits coming from AI assistants are counted the same way: only a counter per day and per assistant, and a counter per landing path, detected from the Referer header or the <code>utm_source<\/code> parameter. No IP address, user-agent or cookie is stored; data older than 30 days is deleted. This tracking can be disabled in Settings &gt; Performance. Pages served by a full-page cache do not run PHP, so part of these visits is not counted.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin from your WordPress admin, or upload the <code>mephivio-robots-llms<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Go to the <strong>Mephivio Robots LLMs<\/strong> menu in your admin.<\/li>\n<li>Review the settings (indexed content types, thresholds, write mode) then click <strong>Regenerate now<\/strong>.<\/li>\n<li>Check the result in the <strong>Live preview<\/strong> tab, then visit <code>\/llms.txt<\/code>, <code>\/llms-full.txt<\/code> and <code>\/robots.txt<\/code> on your site.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20the%20plugin%20write%20files%20to%20my%20server%3F\"><h3>Does the plugin write files to my server?<\/h3><\/dt>\n<dd><p>By default, no: \"Dynamic\" mode serves the files virtually (the same way WordPress natively serves <code>robots.txt<\/code>), without writing anything to disk. \"Physical\" and \"Hybrid\" modes are available if you prefer real files at the root of your site.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20compatible%20with%20yoast%20seo%20%2F%20rank%20math%20%2F%20all%20in%20one%20seo%3F\"><h3>Is the plugin compatible with Yoast SEO \/ Rank Math \/ All in One SEO?<\/h3><\/dt>\n<dd><p>Yes. If the \"Respect SEO noindex\" option is enabled, any content marked <code>noindex<\/code> by one of these plugins is automatically excluded from the generated files.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20compatible%20with%20woocommerce%3F\"><h3>Is the plugin compatible with WooCommerce?<\/h3><\/dt>\n<dd><p>Yes, published products are included automatically (description, attributes, categories, SKU), and cart \/ checkout \/ account pages are excluded by default.<\/p><\/dd>\n<dt id=\"how%20do%20the%20bot%20statistics%20work%3F\"><h3>How do the bot statistics work?<\/h3><\/dt>\n<dd><p>When a known bot requests <code>llms.txt<\/code>, <code>llms-full.txt<\/code> or <code>robots.txt<\/code>, the plugin classifies its user-agent and stores an aggregated counter. To protect performance, increments are rate-limited per bot\/document. No IP address or raw user-agent is kept. History is kept on a rolling 30-day window.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20uninstall%20the%20plugin%3F\"><h3>What happens when I uninstall the plugin?<\/h3><\/dt>\n<dd><p>By default, nothing is deleted automatically (your settings remain in the database as long as the plugin is only deactivated). A dedicated \"Delete my data on uninstall\" option (unchecked by default) allows you to fully clean up the plugin's settings, cache and metadata when it is permanently removed. Any physical files that may have been written (<code>llms.txt<\/code>, <code>llms-full.txt<\/code>, <code>robots.txt<\/code>) are never deleted automatically.<\/p><\/dd>\n<dt id=\"why%20are%20the%20global%20rules%20repeated%20for%20googlebot%2C%20gptbot%E2%80%A6%3F\"><h3>Why are the global rules repeated for Googlebot, GPTBot\u2026?<\/h3><\/dt>\n<dd><p>Under RFC 9309, a crawler only follows the most specific group matching its user-agent and ignores <code>User-agent: *<\/code>. Since 1.4.0 the global Disallow rules are therefore repeated in every \"Allow\" group, so they apply to every listed crawler. Custom rules written before any <code>User-agent:<\/code> line are handled the same way.<\/p><\/dd>\n<dt id=\"how%20do%20the%20markdown%20pages%20work%3F\"><h3>How do the Markdown pages work?<\/h3><\/dt>\n<dd><p>When \"Markdown pages\" is enabled, every page present in llms.txt is also available with <code>.md<\/code> appended to its URL (<code>https:\/\/example.com\/my-page.md<\/code>). Excluded content is never served. The Markdown responses send <code>X-Robots-Tag: noindex<\/code> and a canonical link to the HTML page.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20existing%20robots.txt%20in%20physical%20mode%3F\"><h3>What happens to my existing robots.txt in physical mode?<\/h3><\/dt>\n<dd><p>Before replacing a robots.txt or llms.txt file that was not written by the plugin, a copy is saved in <code>wp-content\/uploads\/mephivio-robots-llms\/backups\/<\/code>. The Diagnostics tab lists these backups.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>Large content\/index caches are now segmented into small non-autoloaded options for better scalability on shared hosting.<\/li>\n<li>AI referral statistics use per-day storage, a short write lock and true 30-day retention for landing pages.<\/li>\n<li>Front-end fallback HTTP extraction is limited to 2 MB before DOM parsing.<\/li>\n<li>Uninstall cleanup covers all new segmented and daily options.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Fix: the Dashboard crashed on PHP 8 (fatal ValueError) while a background generation was running (broken format string since 1.3.6).<\/li>\n<li>Fix (SEO): robots.txt groups now repeat the global rules. Previously Googlebot, Bingbot, GPTBot\u2026 only received \"Allow: \/\" and ignored the Disallow rules (wp-admin, internal search, cart, checkout\u2026), as specified by RFC 9309.<\/li>\n<li>Fix: \/llms.txt, \/llms-full.txt and \/llms-schema.json no longer redirect (301) to a trailing-slash URL.<\/li>\n<li>Fix: disabled, empty or unknown documents (for example \/llms-zz.txt) now return a real 404 instead of the front page.<\/li>\n<li>Fix: in physical\/hybrid mode, files are now rewritten when their content changes (previously only on a settings save), and any existing file not written by the plugin is backed up before being replaced.<\/li>\n<li>Fix: sitemaps are detected (WordPress core when enabled, Yoast SEO, Rank Math, All in One SEO, SEOPress) instead of always declaring \/wp-sitemap.xml.<\/li>\n<li>Fix: saving the settings no longer runs a full synchronous regeneration; the interface language applies immediately and regeneration runs in the background (WP-Cron) only when a setting affecting the documents changed.<\/li>\n<li>Fix: WooCommerce settings are kept when the settings are saved while WooCommerce is inactive.<\/li>\n<li>Fix: custom robots rules written before any User-agent line now apply to every allowed crawler instead of being attached to the last group.<\/li>\n<li>Fix: the log directory is protected by an index.html file (no PHP file is written anymore).<\/li>\n<li>Fix: PHP 8.4 deprecation in the CSV export; \"Tested up to\" removed from the main plugin header (Plugin Check).<\/li>\n<li>New: the \"URL exclusion patterns\" can be kept out of robots.txt (option, enabled by default to keep the previous behavior); duplicated Disallow lines removed.<\/li>\n<li>New: per-bot AI crawler control grouped by purpose, updated AI crawler list (Claude-User, Meta-ExternalAgent, Meta-ExternalFetcher, MistralAI-User, DuckAssistBot, Google-CloudVertexBot) and <code>mephroll_ai_bots<\/code> filter.<\/li>\n<li>New: Markdown version of indexed pages (<code>\/my-page.md<\/code>, opt-in).<\/li>\n<li>New: llms.txt \"## Optional\" section and taxonomy archive sections.<\/li>\n<li>New: \"LLM visibility\" panel in the block editor with a custom LLM summary (also available in the classic meta box).<\/li>\n<li>New: WooCommerce price and availability in llms-full.txt, JSON-LD (<code>Offer<\/code>) and Markdown pages.<\/li>\n<li>New: daily charts of bot requests and aggregated count of visits coming from AI assistants.<\/li>\n<li>New: configuration check in the Diagnostics tab and warnings when another plugin changes robots.txt.<\/li>\n<li>New: exclusion reasons are displayed as readable, translated labels.<\/li>\n<li>New filters: <code>mephroll_ai_bots<\/code>, <code>mephroll_sitemaps<\/code>, <code>mephroll_ai_referral_sources<\/code>, <code>mephroll_taxonomy_terms_limit<\/code>.<\/li>\n<\/ul>\n\n<h4>1.3.8<\/h4>\n\n<ul>\n<li>Updated the plugin Author URI to https:\/\/www.mephivio.fr.<\/li>\n<li>Updated version metadata and documentation for the 1.3.8 release.<\/li>\n<\/ul>\n\n<h4>1.3.7<\/h4>\n\n<ul>\n<li>WordPress.org review follow-up: removed the remaining global bootstrap function, prefixed template\/uninstall variables, optimized legacy metadata migration to avoid meta-key queries, and documented intentional WPML\/core hook usage.<\/li>\n<\/ul>\n\n<h4>1.3.6<\/h4>\n\n<ul>\n<li>WordPress.org review: moved all admin CSS and JavaScript output to properly enqueued assets; removed inline <code>&lt;style&gt;<\/code> and <code>&lt;script&gt;<\/code> output.<\/li>\n<li>Collision prevention: replaced the former three-letter code, storage, action, script\/style and metadata prefixes with the unique <code>mephroll<\/code> \/ <code>MEPHROLL<\/code> prefix.<\/li>\n<li>Upgrade safety: added a one-time migration for settings, caches, cron state and per-content metadata created by versions up to 1.3.5.<\/li>\n<li>Directory packaging: renamed the runtime admin icon so it is not confused with a WordPress.org directory asset, and removed unused directory-style assets from the plugin package.<\/li>\n<li>Internationalization packaging: removed bundled PO\/MO\/POT files; WordPress.org can provide community translations while the plugin-specific English\/French interface selector keeps its built-in French mapping.<\/li>\n<li>Documentation: clarified the plugin\u2019s distinct scope around multilingual generation, WooCommerce, diagnostics, robots controls, content auditing and local bot statistics.<\/li>\n<\/ul>\n\n<h4>1.3.5<\/h4>\n\n<ul>\n<li>Fix: Place the WooCommerce product-count translator comment immediately before the translatable string so WordPress Plugin Check recognizes it correctly.<\/li>\n<\/ul>\n\n<h4>1.3.4<\/h4>\n\n<ul>\n<li>Fixed the Plugin Check internationalization error for the WooCommerce published-product counter.<\/li>\n<li>Added the required translators comment for the localized numeric placeholder.<\/li>\n<\/ul>\n\n<h4>1.3.3<\/h4>\n\n<ul>\n<li>Fixed WooCommerce catalog detection for existing stores and installations where WooCommerce was enabled after the plugin.<\/li>\n<li>Added a dedicated, default-enabled WooCommerce product inclusion switch with a detected-product count.<\/li>\n<li>Improved product-save regeneration and WooCommerce load-order compatibility.<\/li>\n<\/ul>\n\n<h4>1.3.2<\/h4>\n\n<ul>\n<li>WordPress.org compliance: fixed all issues reported by Plugin Check.<\/li>\n<li>Security: explicitly sanitize the submitted Settings array before processing it.<\/li>\n<li>Compatibility: replaced <code>strip_tags()<\/code> with <code>wp_strip_all_tags()<\/code> and removed discouraged manual translation loading.<\/li>\n<li>Uninstall: clean post metadata through the WordPress metadata API instead of direct SQL queries.<\/li>\n<li>Admin: read display query parameters without processing <code>$_GET<\/code> directly in the view.<\/li>\n<li>CSV: removed the explicit close on the <code>php:\/\/output<\/code> stream, which is automatically closed at request end.<\/li>\n<li>Documentation: declared WordPress 7.1 compatibility and shortened upgrade notices.<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Fixed: the custom Mephivio icon in the WordPress admin menu is now explicitly constrained to the native 20 \u00d7 20 px menu size, preventing oversized icons when another admin theme or plugin overrides image dimensions.<\/li>\n<li>Documentation: updated English and French readmes and changelogs for version 1.3.1.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>UI: redesigned Settings into clear visual sections for General, LLM files, Content, Robots, Multilingual, Performance and Advanced options.<\/li>\n<li>Compatibility: existing setting keys and behavior are unchanged, so upgrades preserve the current configuration.<\/li>\n<li>Usability: added section descriptions plus Save Settings actions at the top and bottom of the screen.<\/li>\n<li>Responsive admin: improved the Settings layout for tablets and mobile devices.<\/li>\n<li>Documentation: updated English and French readmes and changelogs for version 1.3.0.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>New: plugin-specific admin interface language selector in Settings with English and French options.<\/li>\n<li>English is now the default Mephivio Robots LLMs interface language, independently of the WordPress user\/site locale.<\/li>\n<li>Switching the plugin interface language does not change the WordPress dashboard language or the public site language.<\/li>\n<li>Improved: remaining French source labels in Settings were normalized to English source strings and translated cleanly.<\/li>\n<li>Documentation: English and French readmes and changelogs updated for version 1.2.0.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Security: real-page rendering now validates same-site URLs and uses <code>wp_safe_remote_get()<\/code> with TLS verification enabled.<\/li>\n<li>Security\/performance: bot statistics writes are rate-limited to reduce database-write abuse from spoofed public user-agents.<\/li>\n<li>Reliability: fixed resumable indexing so a time-budget interruption in the middle of a page resumes at the correct item instead of duplicating earlier items.<\/li>\n<li>Reliability: added a short-lived generation lock to avoid concurrent cron\/admin batches corrupting progress.<\/li>\n<li>Privacy\/SEO safety: generated <code>robots.txt<\/code> now respects WordPress' \"Discourage search engines\" setting and never replaces the core private-site policy in dynamic mode.<\/li>\n<li>Performance: activation and upgrades now schedule indexing in the background instead of running an 8-second batch inside the activation request.<\/li>\n<li>Compatibility: physical file writes and log writes now use the WordPress Filesystem API and fail gracefully when direct filesystem access is unavailable.<\/li>\n<li>Fixed: WooCommerce products can now actually be unchecked after their default selection.<\/li>\n<li>Fixed: removed a broken admin icon reference and use a WordPress Dashicon instead.<\/li>\n<li>Validation: numeric settings are now clamped to supported ranges.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li><strong>Fix: activation could hang \/ time out on sites with a large number of posts.<\/strong> Content indexing now runs as a time-budgeted, resumable batch process (about 8 seconds per run by default, filterable via <code>mephroll_batch_time_budget<\/code>) instead of a single blocking pass over the entire catalog. If your content library is too large to process in one go, generation now continues automatically in the background via WP-Cron every ~10 seconds until finished, while previously published files keep being served in the meantime.<\/li>\n<li>This fix applies uniformly to plugin activation, plugin updates, the \"Regenerate now\" button, and automatic regeneration on post save\/delete \u2014 all now go through the same safe batched engine.<\/li>\n<li>New: a \"Background generation in progress\u2026\" notice with a processed\/estimated-total counter is shown on the Dashboard while a batch is running, with automatic page refresh.<\/li>\n<li>New: a \"Reset generation\" button (Diagnostics tab) to clear a stuck batch state (e.g. if WP-Cron is not running on the site) without affecting already-published files.<\/li>\n<li>New: a stall warning is shown if a background generation hasn't progressed for more than 10 minutes, usually indicating WP-Cron isn't executing on the site.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Full rename of the plugin (formerly \"Flappy \/ Master Robots LLMs\") to <strong>Mephivio Robots LLMs<\/strong>, ahead of its free release on WordPress.org.<\/li>\n<li>New: JSON-LD feed generation (<code>llms-schema.json<\/code>, schema.org <code>ItemList<\/code>) alongside llms.txt\/llms-full.txt.<\/li>\n<li>New: Polylang \/ WPML multilingual compatibility \u2014 generates one document per detected language (<code>llms-{lang}.txt<\/code>, <code>llms-full-{lang}.txt<\/code>).<\/li>\n<li>New: aggregated, anonymized statistics of known bot requests on the published files (\"Bot statistics\" tab), can be disabled.<\/li>\n<li>New: <code>uninstall.php<\/code> with optional cleanup (disabled by default) of the plugin's options and metadata.<\/li>\n<li>Security: fixed CSV Formula Injection in the exclusions export.<\/li>\n<li>Security: replaced <code>maybe_unserialize()<\/code> with hardened deserialization (<code>allowed_classes =&gt; false<\/code>) on content metadata coming from arbitrary keys, removing any PHP Object Injection risk.<\/li>\n<li>Security\/Performance: the real HTML rendering fallback (outbound HTTP request to the page itself, useful for some page builders such as Divi 5) is now disabled by default and becomes an explicit opt-in setting (\"Real HTML rendering (advanced)\").<\/li>\n<li>Reliability: dynamic rendering of llms.txt \/ llms-full.txt \/ llms-schema.json now respects their individual enable\/disable settings (previously, only robots.txt did).<\/li>\n<li>Full internationalization of the admin interface (translatable strings via the <code>mephivio-robots-llms<\/code> text domain), with a bundled French translation.<\/li>\n<li>Removed legacy assets and commercial documentation inherited from another, unrelated product.<\/li>\n<\/ul>\n\n<h4>History (under the name Master\/Flappy Robots LLMs)<\/h4>\n\n<ul>\n<li>2.6.8 \u2014 Formatted llms.txt entries as valid Markdown links compliant with the llmstxt.org spec, grouped entries by section (Posts, Pages, Products\u2026), guaranteed an H1 title.<\/li>\n<li>2.6.7 \u2014 Removed internal scores from the public llms.txt \/ llms-full.txt exports (kept in the admin only).<\/li>\n<li>2.6.5 \u2014 WooCommerce compatibility (automatic inclusion of the product catalog, exclusion of cart\/checkout\/account pages).<\/li>\n<li>2.6.1 \u2014 Security audit: sanitized the URL tester, moved the log file out of a publicly accessible directory, filtered custom robots.txt rules.<\/li>\n<\/ul>","raw_excerpt":"Generates llms.txt, llms-full.txt, JSON-LD and robots.txt discovery files for AI agents and search crawlers, without promising ranking gains.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/es-pr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/361872","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/es-pr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/es-pr.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/es-pr.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=361872"}],"author":[{"embeddable":true,"href":"https:\/\/es-pr.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mephivio34"}],"wp:attachment":[{"href":"https:\/\/es-pr.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=361872"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/es-pr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=361872"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/es-pr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=361872"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/es-pr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=361872"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/es-pr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=361872"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/es-pr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=361872"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}