{"id":303383,"date":"2026-05-07T11:34:24","date_gmt":"2026-05-07T11:34:24","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ai-llms-txt-simple-complete-by-pressific\/"},"modified":"2026-05-07T11:33:42","modified_gmt":"2026-05-07T11:33:42","slug":"pressific-bio-for-llms-txt","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/pressific-bio-for-llms-txt\/","author":23484514,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.5.0","stable_tag":"1.5.0","tested":"6.9.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Pressific Bio for LLMs.txt","header_author":"Pressific","header_description":"The simplest way to add llms.txt and llms-full.txt to WordPress. Status dashboard shows exactly what AI crawlers see. Paste, save, done.","assets_banners_color":"","last_updated":"2026-05-07 11:33:42","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/pressific.com\/pressific-bio-for-llms-txt","header_author_uri":"https:\/\/pressific.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":37,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.5.0":{"tag":"1.5.0","author":"pressific","date":"2026-05-07 11:33:42"}},"upgrade_notice":{"1.5.0":"<p>Plugin renamed to &quot;Pressific Bio for LLMs.txt&quot; with new slug <code>pressific-bio-for-llms-txt<\/code>. Internal prefixes consolidated to <code>pressific_<\/code>; existing settings migrate automatically on first admin page load.<\/p>","1.3.2":"<p>Adds external integration contract (INTEGRATION.txt + integration.json) so agency management platforms can manage the plugin via standard WP option functions.<\/p>","1.3.1":"<p>Critical fix for when another llms.txt plugin is active \u2014 your saved content is now guaranteed to be served.<\/p>","1.3.0":"<p>Complete visual overhaul \u2014 new glass-morphism design with gradient mesh background.<\/p>","1.2.0":"<p>Big visual refresh, menu-bubble health indicator, auto-fill on empty, and a custom sidebar icon.<\/p>","1.1.0":"<p>Major upgrade: new status dashboard, smart import, robots.txt helper, and conflict detection.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3525462,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3525462,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.5.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"AI Indexing Status dashboard \u2014 site visibility, llms.txt sources, and per-crawler robots.txt access at a glance.","2":"Editor with auto-fill \u2014 when another plugin or static file is already serving llms.txt, the textarea is pre-filled so you can review and take over in one click.","3":"robots.txt AI-crawler toggle \u2014 explicitly allow GPTBot, ClaudeBot, Google-Extended and others with a single switch."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[2353,216196,229563,226124,244604],"plugin_category":[],"plugin_contributors":[262169],"plugin_business_model":[],"class_list":["post-303383","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-chatgpt","plugin_tags-claude","plugin_tags-llm","plugin_tags-llms-txt","plugin_contributors-pressific","plugin_committers-pressific"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/pressific-bio-for-llms-txt\/assets\/icon-128x128.png?rev=3525462","icon_2x":"https:\/\/ps.w.org\/pressific-bio-for-llms-txt\/assets\/icon-256x256.png?rev=3525462","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Pressific Bio for LLMs.txt gives you complete control over what AI models and LLM crawlers see when they visit your site. You paste the content, the plugin serves it \u2014 no scraping, no auto-generation, no API keys.<\/p>\n\n<p>Think of it as your site's \"bio\" for AI: the short pitch and the long story, served at the standardised URLs (<code>\/llms.txt<\/code> and <code>\/llms-full.txt<\/code>) that AI crawlers look for.<\/p>\n\n<p><strong>What makes this plugin different<\/strong><\/p>\n\n<ul>\n<li><strong>AI indexing status dashboard<\/strong> \u2014 at-a-glance view of your site visibility, what's currently being served at \/llms.txt and \/llms-full.txt, and whether each major AI crawler (GPTBot, ClaudeBot, Google-Extended, PerplexityBot, and more) is allowed or blocked by your robots.txt.<\/li>\n<li><strong>Smart import<\/strong> \u2014 if another plugin or a static file is already publishing llms.txt content, one click imports it into the editor so you do not start from scratch.<\/li>\n<li><strong>Conflicting plugin detection<\/strong> \u2014 active llms.txt plugins that would fight ours are surfaced with a one-click deactivate link.<\/li>\n<li><strong>robots.txt AI crawler helper<\/strong> \u2014 opt-in toggle that appends explicit Allow directives for the major AI user agents to the virtual robots.txt served by WordPress.<\/li>\n<li><strong>Dead simple editing<\/strong> \u2014 two textareas, one save button. No wizards, no walls of settings.<\/li>\n<li><strong>Privacy-first<\/strong> \u2014 the only HTTP requests the plugin makes are loopback requests to your own site (for status checks and import). Zero external calls, zero tracking, zero API keys.<\/li>\n<li><strong>Lightweight<\/strong> \u2014 no JavaScript frameworks, no bloat.<\/li>\n<li><strong>Works everywhere<\/strong> \u2014 compatible with every theme and every caching plugin.<\/li>\n<\/ul>\n\n<p><strong>What is llms.txt?<\/strong><\/p>\n\n<p>The llms.txt standard (see <a href=\"https:\/\/llmstxt.org\">llmstxt.org<\/a>) provides a way for websites to offer AI-friendly content. Think of it like robots.txt, but instead of telling crawlers where they can go, it tells AI models what your site is actually about.<\/p>\n\n<ul>\n<li><code>\/llms.txt<\/code> \u2014 a short summary with links to key pages.<\/li>\n<li><code>\/llms-full.txt<\/code> \u2014 an extended version with full content for deeper understanding.<\/li>\n<\/ul>\n\n<p><strong>Who makes this, and why is it free?<\/strong><\/p>\n\n<p>Pressific is a WordPress management service for business websites \u2014 hosting, maintenance, monitoring, backups, and real human support, all bundled. We built Pressific Bio for LLMs.txt because we needed it on our own managed client sites and couldn't find an existing plugin that was both simple and trustworthy.<\/p>\n\n<p>Rather than keep it private, we published it here. If we ever monetize anything in this space, it will be a completely separate product with its own name. This plugin stays free, forever, with every feature included.<\/p>\n\n<p>If you want managed WordPress, we're at <a href=\"https:\/\/pressific.com\">pressific.com<\/a>. If you just want the plugin \u2014 that's the whole offer. No upsell coming. Enjoy.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload via Plugins &gt; Add New, or install from the WordPress.org directory.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Go to \"Pressific Bio for LLMs.txt\" in your admin menu.<\/li>\n<li>Paste your content into the two textareas.<\/li>\n<li>Click Save Changes.<\/li>\n<\/ol>\n\n<p>Your files are immediately live at <code>yoursite.com\/llms.txt<\/code> and <code>yoursite.com\/llms-full.txt<\/code>.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20is%20llms.txt%3F\"><h3>What is llms.txt?<\/h3><\/dt>\n<dd><p>The llms.txt standard provides a structured way for websites to share information with AI models and LLM crawlers. It includes a short summary version (<code>\/llms.txt<\/code>) and a full content version (<code>\/llms-full.txt<\/code>). Learn more at <a href=\"https:\/\/llmstxt.org\">llmstxt.org<\/a>.<\/p><\/dd>\n<dt id=\"do%20i%20need%20an%20api%20key%3F\"><h3>Do I need an API key?<\/h3><\/dt>\n<dd><p>No. Ever. The plugin never calls external services \u2014 the only HTTP requests it makes are loopback requests to your own site (for the status dashboard and the import feature).<\/p><\/dd>\n<dt id=\"what%20http%20requests%20does%20the%20plugin%20make%3F\"><h3>What HTTP requests does the plugin make?<\/h3><\/dt>\n<dd><p>Only loopback requests to your own site (<code>home_url()<\/code>). The plugin fetches <code>\/robots.txt<\/code> to build the crawler-access dashboard, and fetches <code>\/llms.txt<\/code> and <code>\/llms-full.txt<\/code> (only when your stored content is empty) to detect whether another source is serving them. There are no third-party API calls. See <code>PRIVACY.txt<\/code> in the plugin folder for a line-by-line breakdown.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20collect%20any%20data%3F\"><h3>Does the plugin collect any data?<\/h3><\/dt>\n<dd><p>No. Zero data is transmitted anywhere. The only data stored is what you type into the textareas, plus a handful of small settings options, all on your own database. See <code>PRIVACY.txt<\/code> for details.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20auto-generate%20content%3F\"><h3>Does this plugin auto-generate content?<\/h3><\/dt>\n<dd><p>No. We believe you know your business better than an AI guessing at it. The Smart Import feature can <em>import existing<\/em> content that another plugin is already publishing, but the plugin itself never generates content on its own. In a future version, Pressific will offer an optional AI generation service, but this plugin will always work 100% without it.<\/p><\/dd>\n<dt id=\"i%20already%20have%20another%20llms.txt%20plugin.%20will%20there%20be%20a%20conflict%3F\"><h3>I already have another llms.txt plugin. Will there be a conflict?<\/h3><\/dt>\n<dd><p>The status dashboard detects active conflicting plugins and offers a one-click deactivate link. Before you deactivate, you can use Smart Import to capture the content the other plugin was serving so you don't lose it.<\/p><\/dd>\n<dt id=\"the%20plugin%20shows%20my%20robots.txt%20is%20blocking%20ai%20crawlers.%20what%20do%20i%20do%3F\"><h3>The plugin shows my robots.txt is blocking AI crawlers. What do I do?<\/h3><\/dt>\n<dd><p>Enable the \"Explicitly allow AI crawlers in robots.txt\" toggle. It appends Allow directives for the major AI user agents to the virtual robots.txt WordPress serves. If you have a static robots.txt file in your webroot, it will override the virtual one \u2014 the dashboard tells you which is in effect, and you will need to edit the static file yourself.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20my%20caching%20plugin%3F\"><h3>Does it work with my caching plugin?<\/h3><\/dt>\n<dd><p>Yes. Whenever you save content, the plugin automatically fires cache-purge hooks for LiteSpeed Cache, WP Rocket, W3 Total Cache, and WP Super Cache so your edits appear immediately. A generic <code>pressific_purge_url<\/code> action is also fired so other cache layers (Cloudflare workers, custom edge caches) can listen in. The served files use a short 60-second cache header to keep the load on your server low while still propagating edits quickly.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20wordpress%20multisite%3F\"><h3>Does it work with WordPress Multisite?<\/h3><\/dt>\n<dd><p>Yes. Each subsite has its own llms.txt and llms-full.txt.<\/p><\/dd>\n<dt id=\"i%20already%20have%20an%20llms.txt%20file%20in%20my%20webroot.%20what%20happens%3F\"><h3>I already have an llms.txt file in my webroot. What happens?<\/h3><\/dt>\n<dd><p>The plugin will detect this and show a notice in the admin. Delete the static file so the plugin can serve the dynamic version.<\/p><\/dd>\n<dt id=\"where%20do%20i%20report%20bugs%3F\"><h3>Where do I report bugs?<\/h3><\/dt>\n<dd><p>Use the WordPress.org support forum for this plugin, or contact us at <a href=\"https:\/\/pressific.com\">pressific.com<\/a>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>Renamed: Plugin renamed to <strong>Pressific Bio for LLMs.txt<\/strong> with slug <code>pressific-bio-for-llms-txt<\/code> per WordPress.org plugin directory naming guidance.<\/li>\n<li>Refactored: All internal prefixes consolidated to <code>pressific_<\/code> (functions, options, classes, constants, hooks, CSS classes, text domain). Existing installs from any prior version migrate automatically on first admin page load \u2014 no data loss.<\/li>\n<li>Fixed: Sidebar menu bubble CSS now delivered via <code>wp_add_inline_style<\/code> instead of an inline <code>&lt;style&gt;<\/code> tag (per WordPress.org enqueue guidance).<\/li>\n<\/ul>\n\n<h4>1.3.3<\/h4>\n\n<ul>\n<li>Fixed: Moved <code>\/* translators: *\/<\/code> comments directly above <code>__()<\/code> calls (inside <code>wp_kses()<\/code>) to satisfy the WordPress Plugin Check strict rule for translator context placement.<\/li>\n<li>Changed: Removed manual <code>load_plugin_textdomain()<\/code> call \u2014 WordPress.org auto-loads plugin translations since WP 4.6.<\/li>\n<li>Changed: Suppressed false-positive PHPCS warnings for applying the WP core filter <code>https_local_ssl_verify<\/code> and firing LiteSpeed Cache's documented <code>litespeed_purge_url<\/code> integration action (neither is ours to prefix).<\/li>\n<\/ul>\n\n<h4>1.3.2<\/h4>\n\n<ul>\n<li>Added: PRIVACY.txt \u2014 line-by-line enumeration of every HTTP request and filesystem read the plugin makes, for transparency and WP.org review.<\/li>\n<li>Added: External integration contract. Agency management platforms, worker plugins, and automation tools can now manage this plugin with nothing but <code>get_option()<\/code> and <code>update_option()<\/code>. See INTEGRATION.txt and integration.json in the plugin root.<\/li>\n<li>Added: <code>do_action( 'pressific_sync' )<\/code> action \u2014 external systems fire this to force cache purge and status refresh after raw-SQL writes.<\/li>\n<li>Added: <code>update_option_pressific_allow_ai_crawlers<\/code> now triggers the same cache-purge logic as content changes, so external toggling of the robots option also propagates correctly.<\/li>\n<li>Added: Rich PHPDoc on public option constants documenting the external contract inline.<\/li>\n<li>Added: integration.json machine-readable contract for worker plugins to introspect at runtime.<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Fixed: Critical \u2014 when another llms.txt plugin was active, it could win the request and serve its content instead of ours. Serving now runs at <code>parse_request<\/code> priority 0 with a direct REQUEST_URI check, beating any competing plugin regardless of hook priority.<\/li>\n<li>Fixed: Trailing-slash URLs (<code>\/llms.txt\/<\/code> and <code>\/llms-full.txt\/<\/code>) are now handled.<\/li>\n<li>Fixed: Cache-Control reduced from <code>max-age=3600<\/code> to <code>max-age=60, must-revalidate<\/code> so edits propagate within a minute instead of an hour.<\/li>\n<li>Added: Cache-purge hooks fire on content save \u2014 LiteSpeed Cache, WP Rocket, W3 Total Cache, WP Super Cache, plus a generic <code>pressific_purge_url<\/code> action other plugins can listen for.<\/li>\n<li>Added: <code>X-Pressific: &lt;version&gt;<\/code> response header so you can verify this plugin is the one serving.<\/li>\n<li>Added: Automatic rewrite-rule flush when the stored plugin version differs from the file version \u2014 no deactivate\/reactivate needed after an in-place upgrade.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Changed: Complete visual overhaul. New \"Aurora\" theme with soft pastel gradient mesh background, frosted-glass cards, Inter-style display typography, and polished micro-interactions. Inspired by Raycast \/ Stripe \/ Arc.<\/li>\n<li>Changed: Status tiles now show a prominent character count and a colored source pill (This plugin \/ Another plugin \/ Static file \/ Empty) instead of walls of prose.<\/li>\n<li>Changed: AI crawler access is shown as a 3-column pill grid with glowing status dots instead of a single-row table.<\/li>\n<li>Changed: Save button replaced with a sticky, glass save-bar that explains what happens when you save.<\/li>\n<li>Added: Rotating refresh icon button in the dashboard header.<\/li>\n<li>Added: Subtle animated mesh drift in the background (respects prefers-reduced-motion).<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Fixed: Sidebar menu health indicator incorrectly displayed the number \"1\" because it reused WordPress's <code>update-plugins count-1<\/code> class. Replaced with a custom animated red dot that works consistently across admin themes.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Added: Modernized admin UI with gradient hero, soft cards, pulse status orb, and custom toggle switch.<\/li>\n<li>Added: Red bubble on the sidebar menu when AI indexing has issues (site private, llms.txt empty, conflicting plugin active, or any AI crawler blocked).<\/li>\n<li>Added: Hourly background health check via WP-cron so the menu bubble stays accurate even when the plugin page is not visited.<\/li>\n<li>Added: Custom monochrome sidebar icon + full-colour plugin icon in the hero.<\/li>\n<li>Changed: Removed the two-step \"Detect \u2192 Import\" flow. Empty textareas auto-fill from any existing source (static file or another plugin) on page load, shown with a pre-fill banner. Click Save to take over.<\/li>\n<li>Changed: Auto-fill only happens when the textarea is empty \u2014 saved content is never overwritten.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added: AI Indexing Status dashboard (site visibility, llms.txt source, robots.txt per-crawler access, conflicting plugin detection).<\/li>\n<li>Added: Smart import \u2014 detects llms.txt content from a static file or another plugin via loopback request, then imports into the editor on one click.<\/li>\n<li>Added: Conflicting plugin detection with one-click deactivation.<\/li>\n<li>Added: Opt-in robots.txt toggle that appends Allow directives for GPTBot, ChatGPT-User, OAI-SearchBot, ClaudeBot, anthropic-ai, Claude-Web, CCBot, Google-Extended, PerplexityBot, Applebot-Extended, Amazonbot, Meta-ExternalAgent, and Bytespider.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"100% free. No &quot;pro&quot; version. No tracking. No account. Just a simple llms.txt plugin Pressific built for itself and published for everyone.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/303383","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=303383"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/pressific"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=303383"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=303383"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=303383"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=303383"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=303383"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=303383"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}