=== Agentic Optimization - SEO for AI Agents === Contributors: videowhisper Tags: ai, mcp, llms.txt, search, markdown Requires at least: 6.4 Tested up to: 6.9 Stable tag: trunk Requires PHP: 7.4 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Plugin URI: https://promptaur.com/wordpress/agentic-optimization/ Adds agent-friendly discovery, markdown, search, and read-only MCP access for public WordPress content, like SEO for AI agents and assistants. == Description == Agentic Optimization helps WordPress sites expose public content to AI agents in a safer, WordPress-native way. If SEO helped search engines discover, index, and understand websites, Agentic Optimization does something similar for AI agents, assistants, and LLM-powered tools. It gives public WordPress content clearer discovery files, cleaner read-only endpoints, and structured access paths that are easier for agentic systems to use responsibly. Instead of trying to make AI tools scrape full themes, shortcodes, and plugin output blindly, this plugin helps site owners publish a more intentional agent-facing layer for public content. Features in the free plugin: * Root-level `llms.txt` * Optional root-level `llms-full.txt` * Root-level `agent-sitemap.xml` * Optional WordPress `robots.txt` enhancement with discovery hints * Public REST search, content, markdown, comments, categories, tags, and site info endpoints * Read-only MCP endpoint with search, content, comments, taxonomy, and site info tools * Hard request caps and transient-based rate limiting * Privacy-friendly analytics with aggregate counts and hashed IP logs only * Admin-managed site description and site details for llms.txt context * SEO-aware content exclusion hooks for common noindex patterns * Extension points for future add-ons and custom integrations * Formatter and admin hooks for add-ons that extend post type coverage or editorial agent overrides The plugin is intentionally conservative: * Read-only only * Public content only * No drafts, private content, or pending comments * Comments exposure disabled by default * MCP disabled by default * Analytics disabled by default == Installation == 1. Upload the plugin folder to `/wp-content/plugins/`. 2. Activate **VideoWhisper Agentic Optimization** in the WordPress admin. 3. Go to `Settings > Agentic Optimization`. 4. Enable the discovery outputs and APIs you want to expose. 5. Save settings to publish your selected endpoints. == Frequently Asked Questions == = What URLs does the plugin create? = When enabled, the plugin publishes: * `/llms.txt` * `/llms-full.txt` * `/agent-sitemap.xml` * `/robots.txt` (enhanced virtual output when enabled) * `/wp-json/videowhisper-agentic-optimization/v1/search` * `/wp-json/videowhisper-agentic-optimization/v1/content` * `/wp-json/videowhisper-agentic-optimization/v1/markdown/` * `/wp-json/videowhisper-agentic-optimization/v1/comments/` * `/wp-json/videowhisper-agentic-optimization/v1/site-info` * `/wp-json/videowhisper-agentic-optimization/v1/mcp` = Does the free plugin allow writes? = No. The free plugin only exposes read-only access to public content. = Does it track visitors? = Analytics are disabled by default. When enabled, the plugin stores aggregate counters and recent event logs with hashed IP values only. == Screenshots == 1. Overview tab showing public endpoints and feature status. 2. Discovery and MCP settings tabs. 3. Analytics tab with aggregate request counts and recent events. == External Services == This plugin generates agent-optimized discovery files and sitemaps using standard XML formats. = Sitemaps.org XML Schema = The `agent-sitemap.xml` output uses the standard sitemap XML namespace (`http://www.sitemaps.org/schemas/sitemap/0.9`) and a custom extension URN namespace (`urn:videowhisper:agentic:1.0`). These are identifier strings embedded in locally generated XML documents only. No data is transmitted to external services when the sitemap file is generated or served. * sitemaps.org protocol reference: https://www.sitemaps.org/protocol.html == Changelog == = 1.0.4 = * Added endpoint-specific public content matrices with per-endpoint discovery exposure and per-type discovery limits. * Added grouped discovery output for `llms.txt`, `llms-full.txt`, and `agent-sitemap.xml` with improved page, post, and custom post type ordering. * Improved agent markup conversion and fixed plain-text discovery output so markdown blockquotes and other characters are not HTML-escaped. * Improved admin Discovery reporting and external integration hooks. = 1.0.3 = * Added: `vwao_post_summary` and `vwao_admin_tab_label` hooks so add-ons can extend summaries and admin navigation safely. * Changed: the built-in post type chooser now focuses on posts and pages, while extensions can add custom post type exposure through hooks. * Bumped stable tag to 1.0.3. = 1.0.2 = * Changed: REST namespace is now plugin-prefixed as `/wp-json/videowhisper-agentic-optimization/v1/...` for WordPress.org compliance. * Bumped stable tag to 1.0.2. = 1.0.1 = * Fixed: Active settings tab now passed through the Settings API `$input` array, removing direct POST reads inside the sanitize callback. * Added: `== External Services ==` section in readme.txt documenting XML namespace usage for `agent-sitemap.xml`. * Changed: Custom `agent-sitemap.xml` extension namespace from URL form to URN (`urn:videowhisper:agentic:1.0`) to avoid implying any external service call. * Bumped stable tag to 1.0.1. = 1.0.0 = * Initial release. * Added root-level `llms.txt`, `llms-full.txt`, and `agent-sitemap.xml`. * Added admin-managed llms.txt context fields and optional robots.txt enhancement. * Added public REST endpoints for search, content, markdown, comments, terms, and site info. * Added a read-only HTTP JSON-RPC MCP endpoint. * Added rate limiting, analytics, settings UI, and extension hooks for future add-ons. == Upgrade Notice == = 1.0.3 = Adds extension hooks for editorial agent overrides and reserves custom post type exposure for hook-based add-ons. = 1.0.2 = Compatibility update for WordPress.org review: the public REST namespace is now plugin-prefixed. = 1.0.1 = Security hardening: settings sanitize callback no longer reads directly from POST; active tab is now passed via the Settings API input array. = 1.0.0 = Initial public release.