Botkibble
by gregrandall 0 (0 reviews)

Botkibble

Serves every published post and page as Markdown for AI agents and crawlers. No configuration, no API keys. Activate and it works.

Compatible with WP 6.9.4
v1.3.0 Current Version v1.3.0
Updated 1 month ago Last Update on 27 Feb, 2026
Refreshed 6 hours ago Last Refreshed on
Rank
#54,891
No change
Active Installs
0+
No change
KW Avg Position
188
No change
Downloads
237
+1 today
Support Resolved
0%
No change
Rating
0%
Review 0 out of 5
0 (0 reviews)

Next Milestone 10

Total Progress 20%
0+ 10+
9,646
Ranks to Climb
-
Growth Needed
8,000,000
Active Installs
Pro

Unlock Exact Install Count

See the precise estimated active installs for this plugin, calculated from real-time ranking data.

  • Exact install estimates within tiers
  • Track install growth over time
  • Milestone progress predictions
Upgrade to Pro
Need 8 more installs to reach 10+

Rank Changes

52,146 53,519 54,891 56,263 57,636 10-04-2026 11-04-2026 12-04-2026 13-04-2026 14-04-2026 15-04-2026 16-04-2026 17-04-2026
52,146 53,519 54,891 56,263 57,636 02-04-2026 03-04-2026 04-04-2026 05-04-2026 06-04-2026 07-04-2026 08-04-2026 09-04-2026 10-04-2026 11-04-2026 12-04-2026 13-04-2026 14-04-2026 15-04-2026 16-04-2026 17-04-2026
52,146 53,519 54,891 56,263 57,636 18-03-2026 19-03-2026 20-03-2026 21-03-2026 22-03-2026 23-03-2026 24-03-2026 25-03-2026 26-03-2026 27-03-2026 28-03-2026 29-03-2026 30-03-2026 31-03-2026 01-04-2026 02-04-2026 03-04-2026 04-04-2026 05-04-2026 06-04-2026 07-04-2026 08-04-2026 09-04-2026 10-04-2026 11-04-2026 12-04-2026 13-04-2026 14-04-2026 15-04-2026 16-04-2026 17-04-2026
54,720 56,160 57,600 59,040 60,480 17-01-2026 18-01-2026 19-01-2026 20-01-2026 21-01-2026 22-01-2026 23-01-2026 24-01-2026 25-01-2026 26-01-2026 27-01-2026 28-01-2026 29-01-2026 30-01-2026 31-01-2026 01-02-2026 02-02-2026 03-02-2026 04-02-2026 05-02-2026 06-02-2026 07-02-2026 08-02-2026 09-02-2026 10-02-2026 11-02-2026 12-02-2026 13-02-2026 14-02-2026 15-02-2026 16-02-2026 17-02-2026 18-02-2026 19-02-2026 20-02-2026 21-02-2026 22-02-2026 23-02-2026 24-02-2026 25-02-2026 26-02-2026 27-02-2026 28-02-2026 01-03-2026 02-03-2026 03-03-2026 04-03-2026 05-03-2026 06-03-2026 07-03-2026 08-03-2026 09-03-2026 10-03-2026 11-03-2026 12-03-2026 13-03-2026 14-03-2026 15-03-2026 16-03-2026 17-03-2026 18-03-2026 19-03-2026 20-03-2026 21-03-2026 22-03-2026 23-03-2026 24-03-2026 25-03-2026 26-03-2026 27-03-2026 28-03-2026 29-03-2026 30-03-2026 31-03-2026 01-04-2026 02-04-2026 03-04-2026 04-04-2026 05-04-2026 06-04-2026 07-04-2026 08-04-2026 09-04-2026 10-04-2026 11-04-2026 12-04-2026 13-04-2026 14-04-2026 15-04-2026 16-04-2026 17-04-2026
Current #54,891
Change
Best #

Upgrade to Pro

Unlock 30-day and 90-day rank history charts with a Pro subscription.

Upgrade Now

Active Installs Growth

Active Installs 0,000,000+
Growth +0.0%
Peak 0,000,000

Downloads Growth

0 10 10-04-2026 11-04-2026 12-04-2026 13-04-2026 14-04-2026 15-04-2026 16-04-2026 17-04-2026
0 10 02-04-2026 03-04-2026 04-04-2026 05-04-2026 06-04-2026 07-04-2026 08-04-2026 09-04-2026 10-04-2026 11-04-2026 12-04-2026 13-04-2026 14-04-2026 15-04-2026 16-04-2026 17-04-2026
0 10 18-03-2026 19-03-2026 20-03-2026 21-03-2026 22-03-2026 23-03-2026 24-03-2026 25-03-2026 26-03-2026 27-03-2026 28-03-2026 29-03-2026 30-03-2026 31-03-2026 01-04-2026 02-04-2026 03-04-2026 04-04-2026 05-04-2026 06-04-2026 07-04-2026 08-04-2026 09-04-2026 10-04-2026 11-04-2026 12-04-2026 13-04-2026 14-04-2026 15-04-2026 16-04-2026 17-04-2026
0 10 20 30 40 50 60 70 17-01-2026 20-01-2026 23-01-2026 26-01-2026 29-01-2026 01-02-2026 04-02-2026 07-02-2026 10-02-2026 13-02-2026 16-02-2026 19-02-2026 22-02-2026 25-02-2026 28-02-2026 03-03-2026 06-03-2026 09-03-2026 12-03-2026 15-03-2026 18-03-2026 21-03-2026 24-03-2026 27-03-2026 30-03-2026 02-04-2026 05-04-2026 08-04-2026 11-04-2026 14-04-2026 17-04-2026
0 10 20 30 40 50 60 70 17-04-2025 29-04-2025 11-05-2025 23-05-2025 04-06-2025 16-06-2025 28-06-2025 10-07-2025 22-07-2025 03-08-2025 15-08-2025 27-08-2025 08-09-2025 20-09-2025 02-10-2025 14-10-2025 26-10-2025 07-11-2025 19-11-2025 01-12-2025 13-12-2025 25-12-2025 06-01-2026 18-01-2026 30-01-2026 11-02-2026 23-02-2026 07-03-2026 19-03-2026 31-03-2026 12-04-2026 17-04-2026
Downloads
Growth
Peak

Upgrade to Pro

Unlock 30-day, 90-day, and yearly download history charts with a Pro subscription.

Upgrade Now

Reviews & Ratings

0.0
0 reviews
Overall 0%
5
0 (0%)
4
0 (0%)
3
0 (0%)
2
0 (0%)
1
0 (0%)

Tracked Keywords

Showing 1 of 1
Keyword Position Change Type Updated
crawlers 188 Tag 1 month ago

Unlock Keyword Analytics

Track keyword rankings, search positions, and discover new ranking opportunities with a Pro subscription.

  • Full keyword position tracking
  • Historical ranking data
  • Competitor keyword analysis
Upgrade to Pro

Track This Plugin

Get detailed analytics, keyword tracking, and position alerts delivered to your inbox.

Start Tracking Free

Plugin Details

Version
1.3.0
Last Updated
Feb 27, 2026
Requires WP
6.0+
Tested Up To
6.9.4
PHP Version
8.2 or higher
Author
gregrandall

Support & Rating

Rating
☆ ☆ ☆ ☆ ☆ 0
Reviews
0
Support Threads
0
Resolved
0%

Keywords

Upgrade to Pro

Unlock keyword rankings, search positions, and detailed analytics with a Pro subscription.

Upgrade Now

Frequently Asked Questions

Common questions about Botkibble

add_filter( 'botkibble_served_post_types', function ( $types ) {
$types[] = 'docs';
return $types;
} );

Be careful. Only add post types that contain public content. Do not expose post types that may contain private or sensitive data (e.g. WooCommerce orders).
What does the YAML frontmatter include?
Every response starts with a YAML block containing:

title — the post title
date — publish date in ISO 8601 format
type — post type (e.g. post, page)
word_count — word count of the Markdown body
char_count — character count of the Markdown body
tokens — estimated token count (word_count × 1.3)
categories — array of category names (posts only)
tags — array of tag names (posts only, omitted if none)

Example:

---
title: My Post Title
date: '2025-06-01T12:00:00+00:00'
type: post
word_count: 842
char_count: 4981
tokens: 1095
categories:
- Technology
tags:
- wordpress
- markdown
---
add_filter( 'botkibble_frontmatter', function ( $data, $post ) {
$data['excerpt'] = get_the_excerpt( $post );
return $data;
}, 10, 2 );
add_filter( 'botkibble_content_signal', function ( $signal, $post ) {
return 'ai-train=no, search=yes, ai-input=yes';
}, 10, 2 );

Return an empty string to omit the header entirely.
Can I change the token count estimation?
Yes, use the botkibble_token_multiplier filter. The default multiplier of 1.3 (word count × 1.3) comes from Cloudflare's implementation:

add_filter( 'botkibble_token_multiplier', function () {
return 1.5; // Adjusted for a different model's tokenizer
} );

How do I adjust the rate limit?
Cache misses (when a post needs to be converted) are limited to 20 per minute globally. You can change this with the botkibble_regen_rate_limit filter:

add_filter( 'botkibble_regen_rate_limit', function () {
return 50;
} );
add_filter( 'botkibble_clean_html', function ( $html ) {
// Remove a plugin's wrapper divs
$html = preg_replace( '/<div class="my-plugin-wrapper">(.*?)<\/div>/s', '$1', $html );
return $html;
} );

Can I strip script nodes during conversion?
Yes. Botkibble keeps converter node removal disabled by default (for backward compatibility), but you can opt in with botkibble_converter_remove_nodes:

add_filter( 'botkibble_converter_remove_nodes', function ( $nodes ) {
$nodes = is_array( $nodes ) ? $nodes : [];
$nodes[] = 'script';
return $nodes;
} );

If you also need application/ld+json, extract it in botkibble_clean_html first, then let converter-level script removal clean up any remaining script tags.
How do I modify the body before metrics are calculated?
Use the botkibble_body filter. This is the best place to add content like ld+json that you want included in the word count and token estimation:

add_filter( 'botkibble_body', function ( $body, $post ) {
$json_ld = '<script type="application/ld+json">...</script>';
return $body . "\n\n" . $json_ld;
}, 10, 2 );
add_filter( 'botkibble_output', function ( $markdown, $post ) {
return $markdown . "\n\n---\nServed by Botkibble";
}, 10, 2 );

Can I cache multiple Markdown variants (e.g. a slim version)?
Yes. Add ?botkibble_variant=slim when requesting Markdown to generate and serve a separate cached file. To ensure your variants are invalidated on post updates, return them from the botkibble_cache_variants filter:

add_filter( 'botkibble_cache_variants', function ( $variants, $post ) {
$variants[] = 'slim';
return $variants;
}, 10, 2 );

Can I disable the Accept header detection?
Yes, if you only want to serve Markdown via explicit URLs (.md or ?format=markdown), use the botkibble_enable_accept_header filter:

add_filter( 'botkibble_enable_accept_header', '__return_false' );

Does the .md suffix work with all permalink structures?
It works with the most common structures (post name, page hierarchy). Complex date-based permalink structures may require the query parameter or Accept header method instead.
What about password-protected posts?
They return a 403 Forbidden response. There's no point serving a password form to a bot.
What are the response headers?

Content-Type: text/markdown; charset=utf-8
Vary: Accept — tells caches that responses vary by Accept header
X-Markdown-Tokens: <count> — estimated token count (word_count × 1.3)
X-Robots-Tag: noindex — prevents search engines from indexing the Markdown version
Link: <url>; rel="canonical" — points search engines to the original HTML post
Link: <url>; rel="alternate" — advertises the Markdown version for discovery
Content-Signal: ai-train=no, search=yes, ai-input=yes — see contentsignals.org

Sign In / Register

You need to sign in or register to use this feature.