A WordPress plugin for generating and managing llms.txt and llms-full.txt files to help AI language models better understand and interact with your website content.
Author: Brian Winum Website: brianwinum.com Current Version: 2.5.5
Version 2.5.5 — Data Safety, Portability & Logging Controls
Released June 2026
A reliability and operations release. Where the 2.5.x line so far has been about what you tell AI systems, 2.5.5 hardens how the plugin behaves on real sites — protecting user-uploaded data on deactivation, making the full v2.5 configuration portable between sites, running cleanly on minimal PHP builds, and giving site owners real control over the security log (which on busy sites had been growing unchecked).
Data Safety: Supplemental Files Preserved on Deactivation
- Deactivating the plugin no longer deletes user-uploaded supplemental files. They are not regenerable, so deleting them on a simple deactivate/reactivate caused permanent data loss
- Physical removal now happens only on uninstall, and only behind the existing opt-in
delete_data_on_uninstallsetting - Deactivation now performs only lightweight, fully reversible housekeeping (transient flush and rewrite-rule flush)
Full-Fidelity Export / Import (Backup Format v2)
- The manual export/import bundle now includes all v2.5 data layers: JSON index settings, offers, corrections, agent guidance, disambiguation, brand voice, and proof points
- Previously these were silently dropped from manual exports, so migrating a site between domains lost everything built in the v2.5 layers
- Each layer is restored through its existing field-level sanitizer on import; older v1 backups still import cleanly
Graceful Operation Without mbstring
- The UTF-8 engine now degrades gracefully when PHP's
mbstringextension is unavailable, using PCRE/iconv fallbacks for encoding validation, conversion, and substring operations - A dismissible admin notice recommends enabling
mbstringfor the most reliable international-character handling, but the plugin no longer risks a fatal error without it
Double-Encoding Repair Map Cleanup
- Corrected the character-repair map used to fix double-encoded (mojibake) content
- Removed truncated and duplicate entries in the uppercase-accented Latin, Polish/Czech, and smart-punctuation sections that could match a bare lead byte and overwrite otherwise-valid characters
Security Log Controls
- Retention window (days) — keep entries for a configurable number of days (in addition to the existing row cap), or set 0 for no time limit
- Cap mode — choose lenient (preserve recent history) or strict (a hard ceiling that never exceeds the row cap, for predictable table size)
- Logging level — All, Critical only (threats and errors), or Off. Rate-limiting and abuse/threat events are always recorded regardless of this setting, so security protections are never weakened
- Manual maintenance — new “Trim now” and “Clear log” buttons with live row-count and table-size display, so a database tool is no longer needed to reduce a large log
Fixed: Runaway Security-Log Growth
- The GitHub update checker was initializing — and writing a log row — on every front-end and bot request. It now runs only in admin and cron contexts, where update checks actually happen
- The per-page-load meta-tag-injection log write (pure telemetry of normal operation) was removed
- Together these two events were the dominant source of log growth on active sites
- A one-time cleanup on upgrade purges the historical noise rows automatically — no manual database work required
Under the Hood
- Security-log cleanup moved from running on every logged event to a once-daily scheduled task, removing a per-request database operation that was the real performance drag on busy sites (with a lightweight safety net for hosts that disable WP-Cron)
Version 2.5.4 — Page Builder Compatibility Hardening
Released June 2026
A hardening release that makes the v2.5.3 page-builder support accurate and dependable on real-world sites, where builder content, caching, and imported layouts complicate text extraction.
More Accurate Detection
- Builder detection decoupled from the content-extraction path, so the compatibility report is accurate regardless of your content or SEO settings
- Active-builder detection via class/function checks, not just post meta
- New standalone “Scan Now” admin action runs detection only, with no file regeneration
Better Extraction
- Elementor extraction uses the official display API with a renderer-authoritative guard against stale data on imported or reverted pages
- WPBakery and Divi shortcode-attribute extraction, including base64
vc_raw_htmldecoding - Bricks legacy key, Oxygen prefixed legacy key, and Beaver Builder detection without relying on an enabled flag
Smarter Caching
- The per-post extraction cache signature now hashes the builder source data, so it invalidates correctly on meta edits that don't bump the post-modified timestamp
Clearer Reporting
- Admin panel now reports active builder plugins, per-builder extraction methods, per-page debug reasons, and a context-aware empty-state message
Version 2.5.3 — Page Builder Compatibility
Released June 2026
This release teaches LLMS Amplifier to read content built with visual page builders, which store their content as structured data or shortcodes rather than plain post content — meaning builder-built pages previously contributed little or nothing to your LLMS files.
Page Builder Content Extraction
- New
LLMS_Amplifier_Builder_Contentengine extracts readable text from seven major builders: Elementor, Bricks, Oxygen, Breakdance, Beaver Builder, Divi, and WPBakery - Three-tier strategy per post: render-API extraction (primary), recursive data-structure / shortcode harvest (fallback), and title/metadata-only (last resort)
Performance
- Per-post extraction cache keyed on the post's modified time — unchanged builder pages are not re-rendered on regeneration
- Cache is durable across LiteSpeed / Redis object caches
Admin Visibility
- New “Page Builder Compatibility” panel (Settings → Integration Settings) reporting detected builders, the extraction-method breakdown, and any pages that yielded no body text
Version 2.5.2 — Guardrails Layer for AI Hallucination Control
Released June 2026
This release introduces a complete control layer for how AI assistants represent your business. Where earlier versions focused on telling AI systems what your site is, v2.5.2 gives you explicit control over what to say, what NOT to say, and how to be quoted — directly addressing the hallucination and misrepresentation problems site owners face when AI assistants describe them inaccurately.
The Five Guardrails Sections
- Disambiguation — Explicit “we are NOT X” statements that separate you from confusable entities (people, companies, brands with similar names). Up to 10 entries.
- Corrections — The ARP “Pink Elephant Fix” pattern: pair correct facts with the incorrect claims AI assistants may have learned about you. Up to 20 entries.
- Agent Guidance — Explicit instructions for how AI should represent your business in different scenarios, with optional “do not” rules. Up to 10 entries.
- Brand Voice — Tone, voice attributes, preferred terms, terms to avoid, and example phrasing constraints in a single object.
- Proof Points — Verifiable claims AI can cite with confidence: certifications, awards, dated metrics, sourced statistics. Up to 20 entries, with ISO 8601 date validation.
Dual Output
- All five sections appear as a new
## Guardrails for AI AssistantsMarkdown section in bothllms.txtandllms-full.txt, positioned before the Offers section so corrections precede promotional content - Same data is rendered as structured arrays/object in
llms-index.json, positioned betweenpermissionsandoffers - Empty sections are silently skipped — the Guardrails section appears only if you've configured at least one entry
Admin Experience
- New “AI Guardrails” admin section with a collapsible repeater UI for each list-style category
- Generic repeater pattern with expand/collapse, live title preview, and automatic reindexing
- Five new sanitize methods with controlled-vocabulary validation and per-section entry caps
Developer Extensibility
- Per-section filters:
llms_amplifier_index_disambiguation,_corrections,_agent_guidance,_brand_voice,_proof_points - Per-item filters for fine-grained customization
- All five new options (
llms_amplifier_corrections,_agent_guidance,_disambiguation,_brand_voice,_proof_points) are included in export/import bundles, pre-uninstall backups, and the data-deletion routine
Version 2.5.1 — Agent-Addressed Offers
Released June 2026
A new way to surface incentives directly to AI assistants helping users evaluate vendors. While traditional offers target human visitors browsing your site, agent-addressed offers are written specifically for the AI in the middle of a research conversation — giving you a way to incentivize AI recommendation alongside traditional marketing.
Agent-Addressed Offers
- Configure up to 10 offers: discounts, free trials, consultations, audits, pilots, referral credits, bonuses, and more
- Each offer renders as both a Markdown
## Offerssection inllms.txtand a structured array inllms-index.json - Schema.org
Offersub-object included with each entry for broader crawler compatibility
Audience Targeting
- Mark offers as general, agent-addressed (writing directly to AI assistants), new customer, existing customer, or referral
- AI assistants can prioritize the right offer for the user's context
Tracking & Attribution
- Claim URLs (designed for UTM parameters) for measuring AI-referred conversions
- Claim codes for offers that don't use URLs
- Either claim URL or claim code is required for an offer to be valid
Validity Windows
- Optional
valid_fromandvalid_untildates - Expired offers are automatically filtered from output — no manual cleanup required
Developer Extensibility
llms_amplifier_index_offersfilter for the full arrayllms_amplifier_index_offerfilter for per-offer customization
Version 2.5.0 — Structured JSON Index & AI Discoverability Standards
Released May 2026
A major release that adds a complete machine-readable layer alongside the existing Markdown files. Where llms.txt is human-readable Markdown that AI systems can parse, llms-index.json is structured JSON that AI systems can consume directly without parsing — and the supporting protocol layer (vendor MIME types, link relations, .well-known paths) brings the plugin into alignment with emerging AI discoverability standards.
Structured JSON Index (llms-index.json)
- Auto-generated machine-readable JSON index of your site
- Sections: site identity, summary, pages, contact, products, people, FAQ, permissions, and a files manifest
- SHA-256 content hashes on every listed file for integrity verification
- Served at both
/llms-index.jsonand/.well-known/llms-index.json - Developer filters for every section (
llms_amplifier_index_data,llms_amplifier_index_pages, etc.)
Vendor MIME Types
text/vnd.llms-amplifier.manifest+markdownforllms.txttext/vnd.llms-amplifier.full+markdownforllms-full.txtapplication/vnd.llms-amplifier.index+jsonforllms-index.json- Plus supplemental file variants
- Sets the plugin apart from generic markdown files and signals to crawlers that the content is purpose-built for AI consumption
HTTP Link Headers
rel="canonical",rel="describedby", andrel="license"headers on every served file- Allows AI crawlers to follow protocol-standard links before parsing file contents
IANA Link Relations
- HTML meta tags now use officially registered IANA link relations:
rel="alternate contents",rel="describedby index",rel="license" - Better compatibility with standards-compliant crawlers
.well-known Dual-Path Serving
/.well-known/llms.txt,/.well-known/llms-full.txt, and/.well-known/llms-index.jsonall served correctly- Aligns with the IETF
.well-knownconvention used byrobots.txt,security.txt, and other discovery standards
robots.txt Integration
- New
LLMS-Index:directive added when the JSON index is enabled - Sitemaps continue to be referenced
Admin UI: AI Index Settings
- New “AI Index” settings section in the admin dashboard
- Configure business identity, location, social links, summary, contact points, and Schema.org type mappings per post type
- Drives the content of
llms-index.jsonsite identity section
AI Crawl Indexing Toggle
- Optional setting (default OFF) to remove the
X-Robots-Tag: noindexheader fromllms.txt,llms-full.txt, and supplemental files - Allows search engines to index these files alongside AI crawlers
- Sitemaps are unaffected by the toggle
Version 2.4.1 — Data Safety, Recovery & Critical Fixes
Released May 2026
This release combined major new safety features with several critical bug fixes — including one that was silently corrupting custom header and footer content for any site that had used markdown special characters.
Critical Fix: Markdown Corruption in Custom Header/Footer Content
- Custom header and footer content (which is markdown, not HTML) was being passed through WordPress's
wp_kses_post()sanitizer, which HTML-entity-encoded every markdown special character it didn't recognize as valid HTML - Visible corruption included: apostrophes appearing as
\', quotes as\", markdown specials backslash-escaped (\#,\*\*,\[,\]), ampersands encoded as&(sometimes double-encoded), em-dashes flattened to---, en-dashes flattened to--, and bullet lists flattened into single paragraphs - New
sanitize_custom_markdown()method replaceswp_kses_post()for all custom header/footer save paths, stripping genuinely dangerous patterns (script tags, iframes, event handlers, dangerous URI schemes, PHP tags) while leaving markdown intact - Automatic one-time repair migration runs on upgrade:
html_entity_decode()plus reversal of backslash-escaping, iterating up to 3 passes to handle content corrupted multiple times. A single scheduled regeneration is triggered so repaired content lands inllms.txtwithin 60 seconds of upgrade — no manual click required
Fix: Stale Timestamp Display in Admin
- Displayed timestamp now derives from the physical
llms.txtfile's modification time (filemtime()), immune to object-cache staleness - New
get_last_generated_time()andget_last_generated_human()helpers in the core class - Write path hardened with fresh re-read and explicit object-cache deletes
Fix: False “Mismatch” in File-Serving Diagnostics
- The Diagnose File Serving and Force Clean Regeneration tools were reporting every file as “✗ mismatched” even when content was being served correctly
- Root cause: the plugin writes files with a UTF-8 BOM but strips the BOM when serving them, so byte comparisons were off by exactly 3 bytes
- Verification now strips the BOM from both the local file and served body before comparing, plus a trailing-whitespace tolerance for proxy-introduced newlines
Uninstall Data Protection
- Settings, custom content, and supplemental files now preserved by default on plugin uninstall
- Data deletion on uninstall is strictly opt-in via a new setting (defaults to OFF)
- Existing installations keep all their data on upgrade
- When deletion is enabled, an automatic backup is written to
/wp-content/uploads/llms-amplifier-backups/before anything is removed - Backup directory protected with
.htaccess(deny all) and an index file
Settings Export / Import
- Export complete configuration as a portable JSON bundle
- Includes all settings, custom content, and supplemental file contents (base64-encoded)
- Import validates structure, sanitizes all fields, rejects executable content, and enforces size limits
Backup Manager
- Admin interface to list pre-uninstall backups with filename, size, and timestamp
- Restore configuration from any prior backup
- Strict filename validation and path boundary checks on deletion
Force Clean Regeneration
- Audit tool detects orphan
llms.txt/llms-full.txtfiles at the web root that can shadow plugin-served content - Two-step audit-then-destroy flow: review what will be removed before taking action
- Verifies served files after regeneration and clears third-party caches
Other Improvements
- Supplemental file size limits raised: 1 MB per file (up from 500 KB) and 10 MB total (up from 5 MB)
- WooCommerce PHP 8+ compatibility fix using
isset()and explicit casting for safer property access
Version 2.4.0 — Supplemental AI File Uploads
Released March 2026
A major feature release that lets you upload supporting documents directly from the dashboard — no FTP or file manager required. These supplemental files help AI systems understand your brand beyond what's in your main llms.txt files.
Supplemental AI File Uploads
- Upload
.mdand.jsonfiles directly from the admin dashboard - Supports multiple file categories: brand info, review roundups, FAQ/PAA documents, products, services, and custom files
Supplemental File Management
- Full management table with view, replace, enable/disable, delete, and bulk actions
- Per-file controls for fine-grained management
Dedicated Supplemental Sitemap
- Separate
llms-supplemental-sitemap.xmlfor your uploaded AI optimization files - Per-file inclusion toggle to control what's published
- Automatically registered in Yoast SEO's sitemap index
- Dedicated Rank Math supplemental sitemap provider
- Added to
robots.txtautomatically when enabled
Security
- Secure file storage with path validation and MIME type checking
- Content scanning for script tags, PHP code, and event handlers
- JSON syntax validation on upload
- Directory protection via
.htaccessand index files - Per-file storage tracking
Version 2.3.7 — Hybrid Content Filtering
Released March 2026
This release introduces a multi-layered approach to content filtering, giving site owners fine-grained control over which content appears in their LLMS files.
Hybrid Content Filtering Engine
- Three-layer filtering system for noindex detection:
- Layer 1 — Database-level meta queries supporting 8 SEO plugins: Yoast, Rank Math, AIOSEO, SEOPress, The SEO Framework, and SmartCrawl
- Layer 2 — Optional
wp_robots()fallback for unknown or unsupported SEO plugins (WordPress 5.7+) - Layer 3 — Developer filters (
llms_amplifier_noindex_meta_query,llms_amplifier_filter_posts) for custom filtering logic
Per-Post Exclusion Controls
- New “Exclude from llms.txt” checkbox in the post, page, and product editors
- Admin list column showing LLMS.txt inclusion status, with quick edit and bulk edit support
WooCommerce Visibility Filtering
- Hidden catalog products automatically excluded
- Functional WooCommerce pages (Cart, Checkout, My Account, Shop) automatically excluded
Other Improvements
- Password-protected content excluded by default
- New Content Filtering Settings section with strict filtering toggle
- SEO plugin detection display showing which plugins are active and recognized
Version 2.3.6 — Activation Timeout Fix
Released January 2026
- Resolved activation timeout caused by running full content generation during WordPress's activation window
- File generation now deferred to 60 seconds after activation via
wp_schedule_single_event() - Improved error handling and security logging for first-time file generation
- Enhanced stability for large sites with thousands of posts, products, and custom fields
Version 2.3.5 — WordPress Compatibility Fix
Released late 2025
- Fixed fatal error caused by calling
wp_cache_delete_many(), which is not a standard WordPress function - Fixed
wp_cache_flush_group()calls to check function existence before invoking (only available in WordPress 6.1+) - Improved compatibility with older WordPress versions and shared hosting environments
Version 2.3.4 — Cache Management Fix
Released December 2025
This release fixed a critical caching issue where regenerated LLMS files were serving stale content instead of pulling fresh data.
- All caches cleared before file generation — main content cache, post query cache, and subdirectory caches
- Added
cache_results => falseto all WP_Query calls to bypass WordPress internal query caching - Switched from
get_posts()toWP_Queryfor better cache control - Single shared content generator instance prevents stale cache state conflicts between file types
- Automatic cache invalidation when posts are created, updated, or deleted via
clean_post_cache() - Fixed Safari checkbox and button clickability issue in the admin CSS
Version 2.3.3 — Cache Implementation & Timestamp Merge
Released December 2025
- Initial cache clearing implementation for regenerated files
- Shared content generator instance introduced
- Merged the v2.3.2 timestamp display fix and v2.3.0 full functionality into one consolidated admin JS file
Version 2.3.2 — Timestamp Display Fix
Released mid-2025
- Fixed timestamp display to update in the admin dashboard without requiring a page reload after regeneration
- Auto-refresh timestamp display using jQuery fade transitions
Version 2.3.1 — Authentication Token Update
Released mid-2025
- Updated GitHub authentication token for the automatic update system
- Improved update mechanism reliability and token expiration handling
Version 2.3.0 — Automatic Meta Tag Injection
Released July 2025
A discoverability-focused release that helps AI crawlers find your LLMS files automatically.
- Injects
<link rel="alternate" type="text/plain">meta tags into all page headers, pointing to your LLMS files - Configurable options for which files to reference (llms.txt, llms-full.txt, subdirectory files)
- Customizable
titleattributes on meta tags for better context - Full multisite compatibility
- Settings migration for existing installations — meta tags disabled by default on upgrade to avoid unexpected changes
Version 2.2.2 — Automatic Update Improvements
Released July 2025
- Improved the automatic plugin update distribution pipeline
- Removed the need for users to configure GitHub tokens or edit
wp-config.php - Seamless, zero-configuration updates through the standard WordPress update system
Version 2.2.1 — Update Mechanism Fixes
Released July 2025
- Resolved issues with the GitHub-based update mechanism
- Improved reliability of version detection and download URL resolution
Version 2.2.0 — Creative Commons Attribution
Released July 2025
- Added optional Creative Commons Attribution 4.0 International (CC BY 4.0) license headers
- When enabled, the license header is automatically prepended to all generated LLMS files
- Helps clarify content reuse permissions for AI systems and crawlers
Version 2.1.13 — Update Checker Stabilization
Released July 2025
- Removed custom force-release functions that were interfering with natural update detection
- Simplified update checker initialization for reliability
- Set a reasonable 12-hour check frequency (previously 1 hour)
- Fixed GitHub Actions workflow permissions for uploading release assets
- Resolved issue where updates downloaded source code instead of the built release ZIP
Version 2.1.1 — Bug Fixes & Defensive Programming
Released June 2025
- All class instantiations now check for class existence before loading
- Graceful degradation — missing integration classes log errors but the plugin continues operating
- Atomic file write operations ensure LLMS files are either fully written or not written at all
- Optimized database operations to avoid performance issues on large datasets
- Comprehensive and consistent path validation throughout the codebase
Version 2.1.0 — WooCommerce & ACF Integration
Released June 2025
A major feature release adding deep integration with two of the most popular WordPress ecosystems.
WooCommerce Integration
- Product prices, SKUs, and stock status included in LLMS output
- Product attributes and specifications extracted and formatted
- Featured products catalog section for prominent product listings
- Configurable product limit to control output size
- Privacy-first approach — customer and order data is completely excluded
Advanced Custom Fields (ACF) Integration
- Automatic field detection and extraction across all post types
- Support for 20+ ACF field types including text, textarea, number, select, checkbox, radio, date picker, and more
- Flexible content and repeater field handling with configurable item limits
- Field group structure documentation in generated output
- Privacy controls — ability to exclude specific sensitive fields by name
- ACF Pro feature detection
Other Improvements
- New settings migration system for smooth upgrades from previous versions
- Integration health checks with admin dashboard status display
- Configurable security log retention (default: 1,000 entries)
Version 2.0.6 — UTF-8 Encoding & Modular Architecture
Released June 2025
A significant architectural overhaul that resolved persistent character encoding issues and split the plugin into a maintainable modular structure.
UTF-8 Encoding Fixes
- Implemented the proven v1.1.1 encoding approach with
ensure_utf8_content()applied at the point of retrieval - Added UTF-8 BOM (Byte Order Mark) to all generated files
- Fixed Nordic and special character handling (æ, ø, å, etc.)
- Expanded character replacement map for double-encoded content
Modular Architecture
- Split monolithic single-file plugin into dedicated class files
- Each file kept under 1,000 lines for maintainability
- Introduced singleton pattern for the core class and UTF-8 handler
Version 2.0.5 — Simplified UTF-8 Encoding
Released June 2025
- Simplified UTF-8 encoding handling for better reliability
- Fixed double-encoding issues with international characters
Version 2.0.4 — UTF-8 Refinements
Released June 2025
- Further improvements to UTF-8 handling
- Enhanced character encoding detection
- Fixed PHP parse error in the character mapping array (malformed entry for the Ñ character)
Version 2.0.0 — Enhanced Security Edition
Released June 2025
A complete security overhaul of the plugin, addressing vulnerabilities identified in a comprehensive third-party security review.
Critical Security Fixes
- Fixed CSRF vulnerabilities in all AJAX handlers with action-specific nonce verification
- Resolved path traversal vulnerabilities with comprehensive validation
- Enhanced input validation and sanitization across all user inputs
- Improved output escaping throughout the admin interface
- SQL injection prevention through prepared statements
New Security Features
- Comprehensive security event logging to a dedicated database table
- Tracking of failed authentication attempts, path validation failures, AJAX access attempts, file operations, and configuration changes
- Content Security Policy, X-Content-Type-Options, X-Frame-Options, and Referrer Policy headers
- Explicit file permissions (0644) on all generated files
- IP address validation and logging for sensitive operations
Multilingual Support
- Full UTF-8 encoding support with 70+ language detection
- Custom language and charset override settings
- Automatic language detection from WordPress locale
Version 1.2.0
Released May 2025
- Basic LLMS file generation functionality
- Initial multisite support
- SEO plugin integration (Yoast and RankMath)
- Subdirectory support for section-specific LLMS files
Version 1.0.0 — Initial Release
Released May 24, 2025
The first public release of LLMS Amplifier.
- Automatic generation of
llms.txt(overview) andllms-full.txt(detailed content) files - Content selection by post type with configurable post limits
- Smart excerpts with configurable word limits and metadata inclusion
- Custom content areas (headers and footers) for both files
- Scheduled automatic regeneration (immediate, daily, weekly, or manual)
- SEO sitemap generation (
llms-sitemap.xml) compatible with Yoast SEO and Rank Math - robots.txt integration
- Subdirectory support for creating section-specific LLMS files
- Admin dashboard with file regeneration and settings management
- WordPress 5.8+ and PHP 7.4+ required
LLMS Amplifier is developed by Brian Winum. Copyright © 2025–2026 Brian Winum. All rights reserved.