Botkibble
AI agents, LLMs, and crawlers have to wade through navigation bars, sidebars, ads, and comment forms to reach the content they want, and every element costs tokens. Cloudflare measured an 80% reduction in token usage when converting a blog post from HTML to Markdown (16,180 tokens down to 3,150). Botkibble adds a Markdown endpoint to every published post and page. Cloudflare offers Markdown for Agents at the CDN edge on Pro, Business, and Enterprise plans. Botkibble does the same thing (for free) at the origin, so it works on any host. GitHub Repository Three ways to request Markdown: .md suffix: append .md to any post or page URL (e.g. example.com/my-post.md) Query parameter: add ?format=markdown to any post or page URL Content negotiation: send Accept: text/markdown in the request header What’s in every response: Structured metadata header with title, date, categories, tags, word count, character count, and estimated token count (in YAML frontmatter format, readable by any AI agent) Clean Markdown converted from fully-rendered post HTML (shortcodes run, filters applied) Content-Type: text/markdown and Vary: Accept response headers Content-Signal header for AI signal declaration — defaults to ai-train=no, search=yes, ai-input=yes — see contentsignals.org X-Markdown-Tokens header with estimated token count Discovery via in the HTML head and Link HTTP header Automatic cache invalidation when a post is updated or deleted Performance: Botkibble writes Markdown to disk on the first request, then serves it as a static file. A built-in Fast-Path serves cached files during WordPress’s init hook, before the main database query runs. No extra configuration needed. Add a web server rewrite rule and Botkibble bypasses PHP entirely, serving .md files the same way a server would serve an image or CSS file: Method Avg. response time Standard HTML 0.97s Markdown (cold, first request) 0.95s Markdown (cached, PHP Fast-Path) 0.87s Markdown (Nginx/Apache direct) 0.11s Serving directly from disk is 88% faster than a full WordPress page load. See the Performance section below for Nginx and Apache configuration. Security: Drafts, private posts, and password-protected content return 403 Forbidden Rate limits cache-miss regenerations (20/min by default) to mitigate DoS abuse X-Robots-Tag: noindex keeps Markdown versions out of search results Link: rel="canonical" points search engines back to the HTML version Cache variants (optional): You can persist alternate cached representations by adding ?botkibble_variant=slim (or any other variant name). Variant caches are stored under: /wp-content/uploads/botkibble/_v/ / .md What it does NOT do: Expose drafts, private posts, or password-protected content Serve non-post/page content types by default Require any configuration. Activate and it works. Why Markdown? HTML is expensive for AI systems to process. Cloudflare measured an 80% reduction in token usage when converting a blog post from HTML to Markdown (16,180 tokens down to 3,150). Cloudflare now offers Markdown for Agents at the CDN edge via the Accept: text/markdown header, available on Pro, Business, and Enterprise plans. This plugin does the same thing at the origin, so it works on any host. It also adds .md suffix URLs, ?format=markdown query parameters, YAML frontmatter, static file caching, and server-level offloading. If you use Cloudflare, both share the same Accept: text/markdown header, Content-Signal headers, and X-Markdown-Tokens response headers. Cloudflare currently defaults to Content-Signal: ai-train=yes, search=yes, ai-input=yes with no way to change it. Botkibble defaults to ai-train=no and lets you override the full signal per site via the botkibble_content_signal filter. Performance & Static Offloading This plugin supports static file offloading by writing Markdown content to /wp-content/uploads/botkibble/. Nginx Configuration To bypass PHP entirely and have Nginx serve the files (including variants) directly: # Variants location ~* ^/(_v/[^/]+/.+)\.md$ { default_type text/markdown; try_files /wp-content/uploads/botkibble/$1.md /index.php?$args; } # Default location ~* ^/(.+)\.md$ { default_type text/markdown; try_files /wp-content/uploads/botkibble/$1.md /index.php?$args; } Apache (.htaccess) Add this to your .htaccess before the WordPress rules: RewriteEngine On # Variants RewriteCond %{DOCUMENT_ROOT}/wp-content/uploads/botkibble/_v/$1/$2.md -f RewriteRule ^_v/([^/]+)/(.+)\.md$ /wp-content/uploads/botkibble/_v/$1/$2.md [L,T=text/markdown] # Default RewriteCond %{DOCUMENT_ROOT}/wp-content/uploads/botkibble/$1.md -f RewriteRule ^(.*)\.md$ /wp-content/uploads/botkibble/$1.md [L,T=text/markdown] Even without these rules, the plugin uses a “Fast-Path” that serves cached files from PHP before the main database query is executed. Credits We thank Cristi Constantin (https://github.com/cristi-constantin) for contributing cache variants, URL and SEO improvements, and fixing important bugs.
Top keywords
- markdown24×3.18%
- md16×2.12%
- botkibble15×1.99%
- text8×1.06%
- text markdown8×1.06%
- uploads8×1.06%
- uploads botkibble8×1.06%
- wp-content8×1.06%
- wp-content uploads8×1.06%
- wp-content uploads botkibble8×1.06%
- content7×0.93%
- header7×0.93%
Conversion Agent Discovery
Conversion Agent Discovery helps WordPress sites expose public, read-only discovery surfaces for AI agents without pretending to support capabilities that are not implemented. It is designed to improve measurable agent accessibility for public, read-only discovery checks without calling external scanners automatically. Features include: Markdown negotiation for public content with Accept: text/markdown. Content Signals in robots.txt. Generated llms.txt and /.well-known/llms.txt. Editable AI Instructions page for official brand facts and LLM guidance, starting empty with English templates by default. Runtime Front-end Placement for exact, design-safe AI Instructions link placement across matching public header, footer, or page content components. [conversion_ai_instructions_link] shortcode for manual placement. Generated /.well-known/api-catalog. Generated /.well-known/agent-skills/index.json and virtual SKILL.md files. Local Agent Skills discovery schema generated by the site. Read-only WebMCP tool registration with runtime diagnostics for compatible browsers. Production-oriented Agentic Browsing readiness guidance for PageSpeed and Lighthouse checks. Optional origin isolation headers and optional Origin-Trial header for browser WebMCP runtime support. Opt-in declarative WebMCP form annotations for exact rendered form opening tags. Public read-only REST endpoints for site search, recent content, single content reads, site context, and contact handoff. Agentic Browsing diagnostics that separate plugin-controlled discovery surfaces from theme accessibility and layout stability checks. Admin settings page with a global public switch. Conversion Agent Discovery does not publish fake OAuth, MCP Server Card, A2A, or commerce metadata. The AI Instructions feature was inspired by Chris Long’s public LinkedIn post and Nectiv case study showing that AI Instructions pages can be cited by ChatGPT in branded queries. It also credits the earlier Seer Interactive AI Information page by Wil Reynolds and Alisa Scharf that Chris Long identified as an important example. References: Chris Long’s LinkedIn post: https://www.linkedin.com/posts/chris-long-marketing_holy-moly-seos-ai-instruction-pages-influence-share-7466096236799053824-_rpb/ Nectiv case study: https://nectivdigital.com/blog/aeo-experiment-chatgpt-cited-an-ai-instructions-page-in-48-hours Nectiv AI Instructions example: https://nectivdigital.com/ai-instructions Seer Interactive AI Information example: https://www.seerinteractive.com/ai-information Omniscient Digital AI Info example: https://beomniscient.com/ai-info/ llms.txt proposal by Jeremy Howard: https://llmstxt.org/ Important: this plugin does not guarantee LLM citations, search rankings, AI Overview visibility, or model behavior. It provides controlled public discovery surfaces for experimentation. External Services This plugin does not send requests to external services automatically and does not transmit visitor or site data to third parties. The generated Agent Skills discovery document uses a local schema URL served by the WordPress site at /.well-known/agent-skills/discovery-0.2.schema.json; it does not depend on an external schema service. The plugin contains optional external links that administrators or users may open manually: https://conversion.ag/ is linked for Conversion attribution and plugin author information. The plugin does not send visitor or site data to Conversion; the link is opened only when a user clicks it manually. Conversion’s privacy policy is available at https://www.conversion.com.br/politica-de-privacidade/. https://github.com/agencia-conversion/conversion-agent-discovery is linked as the public development repository and release source. The plugin does not send visitor or site data to GitHub; the link is opened only when a user clicks it manually. GitHub’s terms are available at https://docs.github.com/en/site-policy/github-terms/github-terms-of-service and GitHub’s privacy statement is available at https://docs.github.com/en/site-policy/privacy-policies/github-general-privacy-statement. https://wordpress.org/plugins/wp-graphql/ is linked from the admin screen when WPGraphQL is not detected, so administrators can optionally install it. The plugin does not send visitor or site data to WordPress.org; the link is opened only when an administrator clicks it manually. WordPress.org’s privacy policy is available at https://wordpress.org/about/privacy/ and terms are available at https://wordpress.org/about/terms-of-service/. https://pagespeed.web.dev/ is linked from the Agentic Browsing admin screen so administrators can manually test their public site in PageSpeed Insights. The plugin does not send visitor or site data to Google automatically; the link is opened only when an administrator clicks it manually. Google’s privacy policy is available at https://policies.google.com/privacy and terms are available at https://policies.google.com/terms. The developer-only tools/run-agentic-lighthouse.sh script is not run by WordPress and is never executed automatically. If a developer runs it manually, it uses npx to download and run Lighthouse from the npm registry and audits only the URL supplied by the developer. The optional WebMCP Origin Trial token field is empty by default. If an administrator adds a public Chrome origin trial token, the plugin sends it as an Origin-Trial response header on public pages together with the opt-in WebMCP origin isolation headers. The plugin does not request or generate tokens and does not make a server-side request to Google or Chrome services. Conversion’s privacy policy is available at https://www.conversion.com.br/politica-de-privacidade/. Privacy Conversion Agent Discovery does not track users and does not send site data to external services automatically. Outbound links in the admin screen and readme are plain manual links. Development Development happens at https://github.com/agencia-conversion/conversion-agent-discovery. The distributed plugin contains readable PHP, JavaScript, CSS, and SVG source files; no build step is required to run the plugin. Local Agentic Browsing validation can be run by developers with: tools/setup-agentic-fixture.sh tools/run-agentic-lighthouse.sh http://localhost:8089/ node tools/assert-agentic-lighthouse.mjs .context/lighthouse-agentic.json CAD_REQUIRE_WEBMCP=1 node tools/assert-agentic-lighthouse.mjs .context/lighthouse-agentic.json when running a Chrome runtime that exposes real WebMCP APIs. Public 0.4.0 launch materials are available in the repository: docs/launch-0.4.0.md docs/local-agentic-browsing-activation.md docs/demo-checklist-0.4.0.md docs/changelog-0.4.0.md