{"id":276839,"date":"2026-01-24T17:18:56","date_gmt":"2026-01-24T17:18:56","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/dy-llms-txt-tool\/"},"modified":"2026-04-02T10:45:17","modified_gmt":"2026-04-02T10:45:17","slug":"dy-llms-txt-tool","status":"publish","type":"plugin","link":"https:\/\/th.wordpress.org\/plugins\/dy-llms-txt-tool\/","author":23441477,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"5.9","stable_tag":"trunk","tested":"6.9.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"DY LLMs.txt Tool","header_author":"Do\u011fukan Yaylac\u0131","header_description":"Create, configure, and manage LLMs.txt files for WordPress sites. Optimize your site for AI bots.","assets_banners_color":"48447d","last_updated":"2026-04-02 10:45:17","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/dogukanyaylaci.com","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/dy-llms-txt","header_author_uri":"https:\/\/linkedin.com\/in\/dogukanyaylaci","rating":5,"author_block_rating":0,"active_installs":0,"downloads":272,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":[],"upgrade_notice":{"5.9":"<p>Major UI\/UX Release: A completely modernized aesthetic interface for management panels. Updates HTML structure natively and removes 3rd party interfering notices.<\/p>","5.8":"<p>Bot tracking &amp; output quality fix: Resolves issue where AI bot visits were not recorded. Fixes HTML entity encoding in text\/plain output. Expands bot detection with 7 new crawlers. Improves blacklist accuracy and performance. Strongly recommended.<\/p>","5.7":"<p>Security, stability &amp; UI release: Fixes security issues, adds missing Exclusions management tab, activates bulk-exclude functionality, and improves input validation. Strongly recommended.<\/p>","5.6":"<p>Maintenance: Improves update delivery reliability and completes upgrade notices. Recommended update.<\/p>","5.5":"<p>Enhancement: Optimized Rate Limiter and cleaner text output. Recommended update.<\/p>","5.4":"<p>Maintenance Release: Fixed repository versioning and deployment logic.<\/p>","5.3":"<p>Improvement: Enhanced update logic and transient cleanup.<\/p>","5.2":"<p>Fix: Resolved &#039;load_textdomain_just_in_time&#039; notice.<\/p>","5.1":"<p>Hotfix: Fixed fatal error caused by calling rewrite rules too early. Please update immediately.<\/p>","5.0":"<p>Major Release: Architecture overhaul for maximum stability. Please update immediately.<\/p>","4.9":"<p>Hotfix: Added defensive coding to prevent activation crashes and added uninstall.php for data cleanup.<\/p>","4.8":"<p>Hotfix: Resolved fatal error in settings page, improved exclusion logic reliability. Please update immediately.<\/p>","4.4":"<p>Major refactor for WordPress Repository compliance. Please update immediately.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3446229,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3446229,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3446229,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3446229,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":[],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3446235,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3446235,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3446235,"resolution":"3","location":"assets","locale":""}},"screenshots":{"1":"Dashboard","2":"Configuration settings","3":"Exclusions manager","4":"llms.txt preview"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[2353,216196,226124,6499,186],"plugin_category":[55],"plugin_contributors":[254605],"plugin_business_model":[],"class_list":["post-276839","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-chatgpt","plugin_tags-llm","plugin_tags-robots","plugin_tags-seo","plugin_category-seo-and-marketing","plugin_contributors-dyaylaci","plugin_committers-dyaylaci"],"banners":{"banner":"https:\/\/ps.w.org\/dy-llms-txt-tool\/assets\/banner-772x250.png?rev=3446229","banner_2x":"https:\/\/ps.w.org\/dy-llms-txt-tool\/assets\/banner-1544x500.png?rev=3446229","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/dy-llms-txt-tool\/assets\/icon-128x128.png?rev=3446229","icon_2x":"https:\/\/ps.w.org\/dy-llms-txt-tool\/assets\/icon-256x256.png?rev=3446229","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/dy-llms-txt-tool\/assets\/screenshot-1.png?rev=3446235","caption":"Dashboard"},{"src":"https:\/\/ps.w.org\/dy-llms-txt-tool\/assets\/screenshot-2.png?rev=3446235","caption":"Configuration settings"},{"src":"https:\/\/ps.w.org\/dy-llms-txt-tool\/assets\/screenshot-3.png?rev=3446235","caption":"Exclusions manager"}],"raw_content":"<!--section=description-->\n<p><strong>DY LLMs.txt Tool<\/strong> allows you to take control of how AI crawlers (ChatGPT, Claude, Perplexity, Google-Extended) verify and index your content. Improve your AEO (Answer Engine Optimization) by generating a structured, machine-readable <code>llms.txt<\/code> file automatically.<\/p>\n\n<p>Unlike a standard <code>robots.txt<\/code> which blocks bots, <code>llms.txt<\/code> creates a <strong>semantic map<\/strong> of your site, helping Large Language Models (LLMs) understand your content context better and reducing hallucinations.<\/p>\n\n<h3>\ud83d\ude80 Key Features<\/h3>\n\n<ul>\n<li><strong>\ud83d\udcc8 AEO Ready:<\/strong> Prepare your website for the future of AI Search.<\/li>\n<li><strong>\ud83d\udecd\ufe0f WooCommerce Support:<\/strong> Automatically include Product categories and essential shop pages.<\/li>\n<li><strong>\ud83e\udde9 Perfect Integration:<\/strong> Fully compatible with <strong>Yoast SEO<\/strong>, <strong>Rank Math<\/strong>, and <strong>All in One SEO<\/strong>. It respects your <code>noindex<\/code> settings automatically.<\/li>\n<li><strong>\ud83c\udf0d Multilingual Ready:<\/strong> Seamless integration with <strong>WPML<\/strong> and <strong>Polylang<\/strong>. Generates separate endpoints for each language.<\/li>\n<li><strong>\ud83d\udee1\ufe0f Privacy First:<\/strong> Built-in PII Scrubber to mask emails and phone numbers from AI bots.<\/li>\n<li><strong>\ud83e\udd16 Bot Tracker:<\/strong> Monitor which AI agents (GPTBot, ClaudeBot, etc.) are accessing your file.<\/li>\n<li><strong>\u26a1 Performance:<\/strong> Offers both Dynamic (on-the-fly) and Static (Cached) generation modes for high-traffic sites.<\/li>\n<\/ul>\n\n<h3>\ud83d\udca1 Why do you need this?<\/h3>\n\n<p>AI Search Engines don't browse websites like humans. They need structured text data. This plugin bridges the gap between your WordPress content and AI models, ensuring your brand is represented correctly in AI-generated answers.\nKey features:<\/p>\n\n<ul>\n<li>Entity Clustering: Group content by taxonomy (categories\/tags) to create a structured index.<\/li>\n<li>Bot Tracking: Track and report visits from popular AI user agents.<\/li>\n<li>Smart Exclusion: Exclude content manually, by ID, or automatically when marked as <code>noindex<\/code> by SEO plugins.<\/li>\n<li>Dynamic or Static generation: Generate on-the-fly or write a cached static file for performance.<\/li>\n<li>Privacy controls: Optional masking of emails and phone numbers.<\/li>\n<li>Multilingual support: Works with popular multilingual plugins and can generate separate indexes per language.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install the plugin through the WordPress plugins screen.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Go to <code>LLMs.txt Tool<\/code> in the WordPress admin menu.<\/li>\n<li>Configure the content types and settings, then save.<\/li>\n<li>Visit <code>\/llms.txt<\/code> on your site.<\/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>It acts as a \"resume\" for AI robots, providing a clean text version of your content for better Answer Engine Optimization (AEO).<\/p><\/dd>\n<dt id=\"is%20it%20compatible%20with%20seo%20plugins%3F\"><h3>Is it compatible with SEO plugins?<\/h3><\/dt>\n<dd><p>Yes, it fully respects \"noindex\" settings from Yoast, Rank Math, and others.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20woocommerce%3F\"><h3>Does it work with WooCommerce?<\/h3><\/dt>\n<dd><p>Yes, you can enable Products in the settings to help AI shopping assistants find your items.<\/p><\/dd>\n<dt id=\"will%20it%20slow%20down%20my%20site%3F\"><h3>Will it slow down my site?<\/h3><\/dt>\n<dd><p>No, the file is lightweight and cached. It adds zero load to your frontend.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>5.9<\/h4>\n\n<ul>\n<li>Feature: Added Site-Wide AI Bot Tracking to monitor AI crawlers across all pages and posts, not just \/llms.txt.<\/li>\n<li>Dashboard: Added Top Targeted URLs analytics panel to visualize where bots are crawling most frequently.<\/li>\n<li>Performance: Implemented high-performance background log cleanup routine to maintain database health.<\/li>\n<li>Major UI\/UX Overhaul: 2026-standard dark theme with glassmorphism support.<\/li>\n<li>Performance: CSS &amp; JS fully rewritten directly avoiding heavy libraries where possible.<\/li>\n<li>Interactivity: Added smooth SVG animations, counting shimmer numbers, and customized toggles.<\/li>\n<li>Bot Chart: Updated bot analytics to include visual progressive updates.<\/li>\n<li>Refinement: Eliminated dependency on external style dependencies and removed external WordPress nags on settings page.<\/li>\n<\/ul>\n\n<h4>5.8<\/h4>\n\n<ul>\n<li>Critical Fix: Bot visit logging now runs BEFORE rate limit and allowed_bots checks \u2014 previously blocked visits were silently dropped and never recorded.<\/li>\n<li>Fix: Log table auto-recovery \u2014 if the log table is missing, the plugin detects and recreates it automatically (lightweight, no flush_rewrite_rules on frontend).<\/li>\n<li>Fix: Table existence check uses a static flag to avoid redundant SHOW TABLES queries on repeated requests.<\/li>\n<li>Fix: Replaced esc_html()\/esc_html__() with plain __() in llms.txt output \u2014 text\/plain content no longer contains HTML entities like &amp; in site names or taxonomy labels.<\/li>\n<li>Fix: Replaced esc_url() with esc_url_raw() for permalink output \u2014 URLs with query parameters no longer get &amp; encoding in text\/plain output.<\/li>\n<li>Fix: Blacklist matching in skip() now uses slug segment matching instead of substring \u2014 \"cookie-recipes\" or \"about-ai\" posts are no longer falsely excluded.<\/li>\n<li>Fix: \"Other Bots\" entry removed from Allowed Bots settings UI \u2014 previously selecting it would match any UA containing the word \"Other\".<\/li>\n<li>Performance: item() no longer calls get_option() per post \u2014 options are passed from the build() loop, eliminating redundant calls.<\/li>\n<li>Fix: Broadened crawler detection filter to also match UA strings containing \"spider\", \"crawl\", \"slurp\", \"fetch\", and \"archiv\" keywords, not just \"bot\".<\/li>\n<li>Enhancement: Expanded bot dictionary with OAI-SearchBot (OpenAI Search), GoogleOther (Google AI), Bytespider (ByteDance\/TikTok), Amazonbot, meta-externalagent (Meta AI), YouBot (You.com), and cohere-ai.<\/li>\n<li>Fix: Google-Extended entry retained for robots.txt token matching; added GoogleOther for actual Google AI crawler UA detection.<\/li>\n<\/ul>\n\n<h4>5.7<\/h4>\n\n<ul>\n<li>Security: Fixed path traversal vulnerability in static file generation with multilingual plugins.<\/li>\n<li>Security: Fixed potential XSS in admin panel JavaScript (innerHTML replaced with safe DOM methods).<\/li>\n<li>Security: Hardened singleton pattern against unserialization attacks.<\/li>\n<li>Security: Admin notice message parameter now sanitized with sanitize_key() to prevent unexpected input.<\/li>\n<li>Fix: Activation hook now fires correctly on first plugin install.<\/li>\n<li>Fix: Eliminated duplicate rewrite rule registration for multilingual sites.<\/li>\n<li>Fix: Added safety checks for Polylang functions to prevent fatal errors during activation.<\/li>\n<li>Fix: Settings changes no longer trigger unnecessary cache clears on unrelated admin pages.<\/li>\n<li>Fix: Removed redundant flush_rewrite_rules calls on settings save for better performance.<\/li>\n<li>Fix: Output escaping applied at the correct point for excluded IDs field.<\/li>\n<li>Fix: SQL queries now use esc_sql for table name references.<\/li>\n<li>Fix: Rate Limit input now correctly accepts 0 (unlimited) to match its description label.<\/li>\n<li>Cleanup: Removed unused get_excluded_posts() method (dead code).<\/li>\n<li>Cleanup: Removed unimplemented smart_linking option from settings UI and storage.<\/li>\n<li>Fix: Cache invalidation on post change now skips autosaves and revisions for better performance.<\/li>\n<li>Fix: Manual cache clear button now also clears multilingual transient caches.<\/li>\n<li>Fix: Sanitized language code from query var in render_file() to prevent unexpected input.<\/li>\n<li>Fix: Description truncation ellipsis now correctly matches the configured character limit per mode.<\/li>\n<li>Cleanup: Removed unused database query (50-row log fetch) from admin UI for better performance.<\/li>\n<li>Cleanup: Uninstall now properly drops the bot log database table to leave no orphan data.<\/li>\n<li>UI: Added Exclusions management tab \u2014 now lists all individually excluded posts and allows restoring them to the index.<\/li>\n<li>UI: Added Bulk Exclude by ID form in the Exclusions tab for managing exclusions without opening each post.<\/li>\n<li>UI: Added character limit (maxlength=1000) and guidance text to intro and system prompt fields.<\/li>\n<li>Enhancement: Exclusions tab activates the existing AJAX toggle and bulk-exclude functionality that was previously inaccessible.<\/li>\n<\/ul>\n\n<h4>5.6<\/h4>\n\n<ul>\n<li>Maintenance: Refreshed plugin metadata to improve update delivery reliability (helps prevent \u201cGhost Update\u201d).<\/li>\n<li>Docs: Completed upgrade notices for a clean version chain.<\/li>\n<\/ul>\n\n<h4>5.5<\/h4>\n\n<ul>\n<li>Enhancement: Optimized Rate Limiter with Fixed Window logic for better accuracy.<\/li>\n<li>Improvement: Removed HTML entities from plain text output for cleaner AI consumption.<\/li>\n<li>Maintenance: Code audit and cleanup.<\/li>\n<\/ul>\n\n<h4>5.4<\/h4>\n\n<ul>\n<li>Maintenance Release: Fixed repository versioning and deployment logic.<\/li>\n<\/ul>\n\n<h4>5.3<\/h4>\n\n<ul>\n<li>Improvement: Enhanced update logic to automatically clear content caches and refresh plugin data.<\/li>\n<li>Stability: Added robust transient cleanup for multilingual sites during updates.<\/li>\n<\/ul>\n\n<h4>5.2<\/h4>\n\n<p>Fix: Resolved 'load_textdomain_just_in_time' notice. Please update immediately.<\/p>\n\n<h4>5.1<\/h4>\n\n<ul>\n<li>Hotfix: Fixed fatal error caused by calling rewrite rules too early (moved to init hook).<\/li>\n<\/ul>\n\n<h4>5.0<\/h4>\n\n<ul>\n<li>Major Release: Architecture overhaul for maximum stability. Moved initialization to plugins_loaded hook.<\/li>\n<\/ul>\n\n<h4>4.9<\/h4>\n\n<ul>\n<li>Hotfix: Added defensive coding to prevent activation crashes and added uninstall.php for data cleanup.<\/li>\n<\/ul>\n\n<h4>4.8<\/h4>\n\n<ul>\n<li>Hotfix: Resolved fatal error in settings page, improved exclusion logic reliability.<\/li>\n<\/ul>\n\n<h4>4.7<\/h4>\n\n<ul>\n<li>Bug Fix: Fixed an issue where excluded IDs were reset when saving settings.<\/li>\n<\/ul>\n\n<h4>4.6<\/h4>\n\n<ul>\n<li>Critical SEO update: Fixed HTML entities, cleaned whitespace in links, and removed noisy utility pages (KVKK, Contact, etc.).<\/li>\n<\/ul>\n\n<h4>4.5<\/h4>\n\n<ul>\n<li>Major update: Improved llms.txt signal-to-noise ratio, fixed HTML entities, cleaned up whitespace, and added smart exclusion for legal\/utility pages.<\/li>\n<\/ul>\n\n<h4>4.4<\/h4>\n\n<ul>\n<li>Major Refactor: Renamed main file and updated all prefixes for WordPress Repository compliance.<\/li>\n<li>Security: Implemented strict nonce sanitization and verification.<\/li>\n<li>Assets: Switched to local Chart.js library instead of CDN.<\/li>\n<li>Improved standardization of headers and text domains.<\/li>\n<\/ul>\n\n<h4>4.1<\/h4>\n\n<ul>\n<li>Deep logic audit and performance optimization.<\/li>\n<li>Improved transient caching logic for dynamic content.<\/li>\n<li>Enhanced content cleaning and entity mode stability.<\/li>\n<li>Metadata updates.<\/li>\n<\/ul>\n\n<h4>4.0<\/h4>\n\n<ul>\n<li>Major Update: Switched to native WordPress Dashicon for better compatibility.<\/li>\n<li>Removed legacy CSS hacks for menu icons.<\/li>\n<li>UI stability improvements.<\/li>\n<\/ul>\n\n<h4>3.5<\/h4>\n\n<ul>\n<li>Added custom branding assets, improved UI, and compliance updates.<\/li>\n<\/ul>\n\n<h4>3.2<\/h4>\n\n<ul>\n<li>Internationalization support added.<\/li>\n<\/ul>","raw_excerpt":"Create and manage an llms.txt file for AI crawlers to improve AEO (Answer Engine Optimization) and provide an authoritative AI index for your site.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/th.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/276839","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/th.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/th.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/th.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=276839"}],"author":[{"embeddable":true,"href":"https:\/\/th.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/dyaylaci"}],"wp:attachment":[{"href":"https:\/\/th.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=276839"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/th.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=276839"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/th.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=276839"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/th.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=276839"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/th.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=276839"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/th.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=276839"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}