{"id":306072,"date":"2026-05-25T18:10:48","date_gmt":"2026-05-25T18:10:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/crawlantix-ai-bot-tracker\/"},"modified":"2026-05-25T18:10:36","modified_gmt":"2026-05-25T18:10:36","slug":"crawlantix-ai-bot-tracker","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/crawlantix-ai-bot-tracker\/","author":23490060,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.0.5","stable_tag":"2.0.5","tested":"7.0","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Crawlantix AI Bot Tracker","header_author":"Crawlantix","header_description":"Track 30+ AI crawlers visiting your site. Logging-only honeypot, bot verification, dashboard analytics, and AI-agent discoverability via \/ai-plugin.json and \/llms.txt.","assets_banners_color":"","last_updated":"2026-05-25 18:10:36","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/crawlantix.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":23,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.0.5":{"tag":"2.0.5","author":"crawlantix","date":"2026-05-25 18:10:36"}},"upgrade_notice":{"2.0.5":"<p>Monitor-tier purification release: the WordPress.org build is now strictly observability-focused. Adds WordPress Privacy API integration, per-install IP salt, and migration-after-upgrade safety. Active defense features (block, tarpit, decoy, shadowban, auto-block, custom paths, per-IP rules, REST data API, backup\/restore) have been moved out of this build and are available in the paid Protect+ tiers at crawlantix.com.<\/p>","2.0.4":"<p>Safety fix: Plugin deletion no longer erases collected data by default. Enable &quot;Delete Data on Uninstall&quot; in Settings only if you want a clean removal. Recommended update.<\/p>","2.0.3":"<p>Security and performance hardening. Recommended update.<\/p>","1.0.5":"<p>Major feature release: bytes tracking, bot categorization, honeypot, reverse DNS verification. Database migration runs automatically.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.0.5"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[2353,232,2359,600,186],"plugin_category":[36,54,55],"plugin_contributors":[264370],"plugin_business_model":[],"class_list":["post-306072","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-analytics","plugin_tags-bot","plugin_tags-security","plugin_tags-seo","plugin_category-analytics","plugin_category-security-and-spam-protection","plugin_category-seo-and-marketing","plugin_contributors-crawlantix","plugin_committers-crawlantix"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/crawlantix-ai-bot-tracker.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Crawlantix AI Bot Tracker monitors visits from 30+ AI crawlers and gives you visibility into how bots interact with your site. See which bots visit, what pages they crawl, and catch misbehaving bots with a built-in logging-only honeypot. Lightweight, privacy-first, and fully functional out of the box.<\/p>\n\n<p><strong>Free forever \u2014 no artificial limits on bot detection.<\/strong><\/p>\n\n<p><strong>Tracked Bots (30+):<\/strong><\/p>\n\n<ul>\n<li>GPTBot \/ ChatGPT-User \/ OAI-SearchBot (OpenAI)<\/li>\n<li>ClaudeBot \/ Claude-Web \/ anthropic-ai (Anthropic)<\/li>\n<li>Googlebot \/ Google-Extended (Google \/ Gemini)<\/li>\n<li>bingbot (Microsoft \/ Copilot)<\/li>\n<li>PerplexityBot (Perplexity)<\/li>\n<li>DeepSeek, Qwen (Alibaba), Mistral AI<\/li>\n<li>Applebot-Extended (Apple Intelligence)<\/li>\n<li>Meta-ExternalAgent (Meta AI)<\/li>\n<li>Bytespider (ByteDance)<\/li>\n<li>CCBot (Common Crawl), Amazonbot, YouBot, DuckDuckBot<\/li>\n<li>AI2Bot, Diffbot, Timpibot, PetalBot<\/li>\n<li>SemrushBot, AhrefsBot, DataForSeoBot, MJ12bot, DotBot<\/li>\n<\/ul>\n\n<p><strong>Features:<\/strong><\/p>\n\n<h4>Lightweight Bot Detection (30+ Bots)<\/h4>\n\n<p>Hooks into WordPress <code>init<\/code> with a priority-1 action. Bails immediately on non-AI User-Agents \u2014 zero performance cost for human visitors. All 30+ bots tracked.<\/p>\n\n<h4>Dashboard with Charts<\/h4>\n\n<p>Clean dashboard with trend chart and provider breakdown pie chart (Chart.js, bundled locally). Summary cards show total visits, unique bots, pages crawled, and daily averages. No external dependencies.<\/p>\n\n<h4>Bot Activity Table<\/h4>\n\n<p>Dedicated tab showing all detected bots with visits, bytes transferred, 24h sparklines, verification status, and honeypot hit counts.<\/p>\n\n<h4>Crawled Pages<\/h4>\n\n<p>See which pages bots visit most, which bots crawl them, and when they were last seen.<\/p>\n\n<h4>Honeypot Endpoint (Logging Only)<\/h4>\n\n<p>A CSS-hidden, aria-hidden, rel=nofollow link is injected in the footer. Only raw link-extracting bots will follow it. Visits are logged for transparency. Active defense (blocking, tarpit, rate-limit, decoy, shadowban) is reserved for the paid build.<\/p>\n\n<h4>Bot Verification<\/h4>\n\n<p>Reverse DNS (FCrDNS) verification for major bots \u2014 confirms Googlebot, GPTBot, ClaudeBot, etc. are actually who they claim to be.<\/p>\n\n<h4>Privacy First<\/h4>\n\n<p>IP addresses are SHA-256 hashed with a per-install salt before storage. Raw IPs are never saved. Includes WordPress Privacy API exporter and eraser hooks so data-subject access and erasure requests can flow through the standard WordPress Tools \u2192 Personal Data workflow.<\/p>\n\n<h4>AI Discovery Layer<\/h4>\n\n<p>Serves <code>ai-plugin.json<\/code> (a discovery manifest that tells visiting AI agents the site is monitored) and <code>llms.txt<\/code> \/ <code>llms-full.txt<\/code> (text content authored by the admin via WordPress pages with slugs <code>llms-txt<\/code> and <code>llms-full-txt<\/code>) at the site root.<\/p>\n\n<h4>Data Retention<\/h4>\n\n<p>Bot visit data is retained for 30 days. Older records are automatically pruned via WP-Cron.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to the following external services:<\/p>\n\n<h4>Reverse DNS Lookups<\/h4>\n\n<p>The bot verification feature performs reverse DNS (FCrDNS) lookups using PHP's <code>gethostbyaddr()<\/code> and <code>gethostbyname()<\/code> functions to verify that bots are who they claim to be (e.g., confirming a request claiming to be Googlebot actually originates from Google's network). These lookups send the bot's IP address to your server's configured DNS resolver and the authoritative DNS servers for the IP address's reverse DNS zone. Under some privacy regimes, IP addresses may be considered personal data. This feature runs automatically when a known AI bot visits your site and cannot currently be disabled via the admin UI (a filter hook <code>crawlantix_enable_verification<\/code> is available for developers).<\/p>\n\n<p>No other external services, third-party APIs, or remote requests are used by this plugin. All analytics data is stored locally in your WordPress database. Chart.js is bundled locally \u2014 no CDN requests are made.<\/p>\n\n<h3>Privacy Policy<\/h3>\n\n<p>Crawlantix AI Bot Tracker is designed with privacy as a core principle:<\/p>\n\n<ul>\n<li><strong>Bot traffic only.<\/strong> The plugin only tracks automated bot traffic identified by User-Agent strings. Human visitors are not tracked and no cookies are set.<\/li>\n<li><strong>No raw IP addresses stored.<\/strong> All IP addresses are SHA-256 hashed with a per-install random salt before storage (or AUTH_SALT when defined in <code>wp-config.php<\/code>). The original IP address cannot be recovered from the hash. Note: pseudonymous IP hashes may still be considered personal data under GDPR.<\/li>\n<li><strong>Data stored per bot visit:<\/strong> IP hash, User-Agent string, requested URL, HTTP referrer URL, request method, timestamp, and derived fields (bytes transferred, bot verification status). Referrer URLs may contain personal data depending on the referring site.<\/li>\n<li><strong>WordPress Privacy API integration.<\/strong> The plugin registers exporter and eraser callbacks with WordPress core, so data-subject access and erasure requests filed through Tools \u2192 Personal Data flow correctly.<\/li>\n<li><strong>No external data transmission.<\/strong> All analytics data remains in your local WordPress database. No data is sent to Crawlantix or third-party services. The only external communication is DNS lookups for bot verification (see External Services above).<\/li>\n<li><strong>Data retention controls.<\/strong> Bot visit data is automatically pruned after 30 days. Administrators can delete all collected data on uninstall via the \"Delete Data on Uninstall\" Settings toggle.<\/li>\n<\/ul>\n\n<p>For sites that require a formal privacy policy disclosure, you may note: \"We use the Crawlantix AI Bot Tracker plugin to monitor automated AI bot traffic to our site. This plugin records bot User-Agent strings, pseudonymous IP hashes, pages visited, referrer URLs, and timestamps for detected bot traffic only. Raw IP addresses are cryptographically hashed before storage. No human visitor data is collected.\"<\/p>\n\n<h3>Premium Version<\/h3>\n\n<p>Crawlantix also offers paid tiers at <a href=\"https:\/\/crawlantix.com\">crawlantix.com<\/a> for site owners who need active bot defense in addition to monitoring. The paid build adds the following features on top of everything in this free version:<\/p>\n\n<h4>Protect tier<\/h4>\n\n<ul>\n<li>Active honeypot responses: HTTP 403 block, tarpit (random 5\u201325s delay with worker-exhaustion safeguards), rate limit 429, decoy content, shadowban.<\/li>\n<li>Auto-block of repeat honeypot offenders, with configurable thresholds.<\/li>\n<li>Per-IP response rules \u2014 apply a chosen response strategy to specific IP hashes (up to 200 rules).<\/li>\n<li>Custom honeypot paths (up to 5) with a reserved-route safety list.<\/li>\n<li>Email alerts for honeypot hits and parameter explosion patterns.<\/li>\n<li>Robots.txt trap entries that catch non-compliant scrapers.<\/li>\n<li>Optional override that suppresses the WordPress core <code>\/wp\/v2\/users<\/code> REST endpoints (username-enumeration hardening, off by default and easy to opt back in).<\/li>\n<\/ul>\n\n<h4>Optimize tier<\/h4>\n\n<ul>\n<li>Full REST API at <code>\/wp-json\/ai-tracker\/v1\/<\/code> with API key authentication and 13 endpoints (status, stats, page, trends, bots, top-pages, report, export, alerts, honeypot, crawled-pages, etc.).<\/li>\n<li>GeoIP location tracking with MaxMind GeoLite2.<\/li>\n<li>Crawl Analytics tab with deeper traffic-quality metrics.<\/li>\n<li>Extended data retention up to 365 days.<\/li>\n<\/ul>\n\n<h4>Scale tier<\/h4>\n\n<ul>\n<li>Backup &amp; restore \u2014 export all data as JSON; import with merge or replace modes.<\/li>\n<li>Unlimited retention.<\/li>\n<li>Priority support.<\/li>\n<\/ul>\n\n<p>The paid build is a drop-in upgrade: same plugin slug, same database tables, same option keys, so all your historical bot data carries over with no migration step on your part.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>crawlantix-ai-bot-tracker<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate via Plugins \u2192 Installed Plugins.<\/li>\n<li>Navigate to AI Bot Analytics in the WordPress admin menu.<\/li>\n<\/ol>\n\n<p>The plugin works immediately after activation with zero configuration.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20slow%20down%20my%20site%3F\"><h3>Does this slow down my site?<\/h3><\/dt>\n<dd><p>No. The detection code exits immediately if the User-Agent is not an AI bot. Human visitor performance is unaffected.<\/p><\/dd>\n<dt id=\"does%20this%20store%20ip%20addresses%3F\"><h3>Does this store IP addresses?<\/h3><\/dt>\n<dd><p>No. IP addresses are SHA-256 hashed (with a per-install salt) before storage. You cannot recover the original IP from the hash.<\/p><\/dd>\n<dt id=\"does%20it%20work%20on%20multisite%3F\"><h3>Does it work on multisite?<\/h3><\/dt>\n<dd><p>Yes. The plugin uses <code>$wpdb-&gt;prefix<\/code> everywhere and namespaces all options with <code>crawlantix_<\/code>. Note: on network-activated multisite, uninstalling the plugin only cleans data for the main site. Sub-site data must be removed individually via the \"Delete Data on Uninstall\" toggle on each sub-site before deactivation.<\/p><\/dd>\n<dt id=\"does%20the%20free%20version%20actively%20block%20bots%3F\"><h3>Does the free version actively block bots?<\/h3><\/dt>\n<dd><p>No. The free Monitor tier is intentionally logging-only \u2014 it observes and reports, but does not actively respond. Active defense (HTTP 403 block, tarpit, rate-limit 429, decoy content, shadowban, automatic blocking of repeat offenders, per-IP response rules) is part of the paid Crawlantix Protect tier \u2014 see the Premium Version section below.<\/p><\/dd>\n<dt id=\"how%20do%20i%20add%20a%20custom%20bot%3F\"><h3>How do I add a custom bot?<\/h3><\/dt>\n<dd><p>Use the <code>crawlantix_bots<\/code> filter:<\/p>\n\n<pre><code>`php\n<\/code><\/pre>\n\n<p>add_filter( 'crawlantix_bots', function( $bots ) {\n    $bots['MyCustomBot'] = [ 'name' =&gt; 'My Bot', 'provider' =&gt; 'custom' ];\n    return $bots;\n} );\n    `<\/p><\/dd>\n<dt id=\"how%20do%20i%20publish%20my%20own%20llms.txt%20content%3F\"><h3>How do I publish my own llms.txt content?<\/h3><\/dt>\n<dd><p>Create a published WordPress page with the slug <code>llms-txt<\/code> (for <code>\/llms.txt<\/code>) or <code>llms-full-txt<\/code> (for <code>\/llms-full.txt<\/code>). The plugin will serve your page's content as plain text at the well-known URL. AI agents and humans alike will see whatever you author there.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.5<\/h4>\n\n<ul>\n<li>Monitor-tier purification: this build is now intentionally focused on observability only.<\/li>\n<li>New: WordPress Privacy API exporter and eraser hooks for data-subject access\/erasure requests.<\/li>\n<li>New: Per-install random salt for IP hashing on activation (replaces the brute-forceable site-URL fallback when AUTH_SALT is not defined).<\/li>\n<li>New: IPv6 normalization before hashing (prevents inflated unique-IP counts from equivalent representations).<\/li>\n<li>New: Schema migration is now re-run after <code>upgrader_process_complete<\/code> (closes the auto-update window where front-end bot traffic could write to columns that did not yet exist).<\/li>\n<li>Improved: <code>\/ai-plugin.json<\/code> is now a self-describing Monitor-tier badge with no advertised API surface \u2014 Cache-Control caching on the manifest and on <code>\/llms.txt<\/code>.<\/li>\n<li>Improved: Settings-saved success notice is driven by a per-user <code>user_meta<\/code> flash flag (prevents misleading notices triggered by a crafted query-string link, and is robust on hosts where caching plugins evict transients).<\/li>\n<\/ul>\n\n<h4>2.0.4<\/h4>\n\n<ul>\n<li>Safety: Uninstall no longer deletes data by default. New \"Delete Data on Uninstall\" toggle in Settings (default OFF). Prevents accidental data loss during plugin updates or reinstalls.<\/li>\n<\/ul>\n\n<h4>2.0.3<\/h4>\n\n<ul>\n<li>Security: Replace <code>parse_str()<\/code> with safe manual query parser to prevent nested array memory exhaustion.<\/li>\n<li>Security: Add CSV formula injection sanitization.<\/li>\n<li>Privacy: Redact IP hashes to first 8 characters in admin views.<\/li>\n<li>Privacy: Honeypot link text now uses <code>esc_html()<\/code> for consistent output escaping.<\/li>\n<li>Performance: Add composite database index (created_at, page_url) for pagination queries.<\/li>\n<li>Performance: Cache blocked IP list in wp_cache (paid build only).<\/li>\n<li>Performance: Cache url_to_postid() results with 5-minute TTL to reduce DB load under bot floods.<\/li>\n<\/ul>\n\n<h4>2.0.2<\/h4>\n\n<ul>\n<li>Security: Default to REMOTE_ADDR only for IP detection (no proxy header trust by default).<\/li>\n<li>Performance: Batch sparkline query eliminates N+1 per-bot hourly data calls.<\/li>\n<li>Performance: Migration lock wrapped in try\/finally for guaranteed release.<\/li>\n<li>Add xAI-Grok and PhindBot to bot detection list.<\/li>\n<\/ul>\n\n<h4>2.0.1<\/h4>\n\n<ul>\n<li>Security: Bot verification moved to shutdown hook (async, non-blocking).<\/li>\n<li>Performance: N+1 query elimination via batch get_posts() for page lookups.<\/li>\n<li>Performance: 4 new database indexes for common query patterns.<\/li>\n<li>Detection: 12 new bots added with correct priority ordering.<\/li>\n<li>Detection: IPv6 FCrDNS support with address normalization.<\/li>\n<li>Data: http_referrer and request_method columns added for SEO analysis.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Expand bot detection from 15 to 30+ bots.<\/li>\n<li>Add reverse DNS verification data for major bots.<\/li>\n<li>Add bot categories.<\/li>\n<li>Add 15 new provider colors in admin chart.<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Add honeypot email alerts (paid-only feature) \u2014 configurable threshold, de-duped via transient.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Deployment testing and validation. No code changes from 1.0.6.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Add an optional filter to block the WordPress core REST endpoints <code>\/wp\/v2\/users<\/code> and <code>\/wp\/v2\/users\/{id}<\/code> (off by default in the free build).<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Add bytes transferred tracking per request (via shutdown hook).<\/li>\n<li>Add unique URLs \/ base paths ratio metric for brute-force detection.<\/li>\n<li>Add 24h sparkline SVGs per bot (server-rendered, no JS library).<\/li>\n<li>Add bot categorization (ai_crawler, ai_search, ai_assistant, search_engine, archiver).<\/li>\n<li>Add honeypot endpoint (<code>\/_ai-honeypot\/<\/code>) \u2014 CSS-hidden, aria-hidden, nofollow link in footer.<\/li>\n<li>Add reverse DNS verification (FCrDNS) for Googlebot, GPTBot, ClaudeBot, and others.<\/li>\n<li>Add bot categories JSON data file.<\/li>\n<li>Add verified bots JSON data file.<\/li>\n<li>Database migration: 5 new columns + alerts table.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Serve <code>llms.txt<\/code> and <code>llms-full.txt<\/code> from WordPress pages with matching slugs.<\/li>\n<li>Add rewrite rules and direct request handlers for llms.txt endpoints.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Add admin menu as top-level page with dashicons-chart-area icon.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Add optional <code>manifest_contact_email<\/code> setting \u2014 when set, included in ai-plugin.json; omitted when blank.<\/li>\n<li>Add optional <code>manifest_legal_info_url<\/code> setting \u2014 overrides the auto-detected privacy policy URL in ai-plugin.json.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Serve <code>ai-plugin.json<\/code> reliably without requiring a manual permalink flush after first install.<\/li>\n<li>Use site-specific manifest contact email and legal URL values.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release \u2014 15 AI bots tracked, Chart.js admin dashboard, ai-plugin.json discovery.<\/li>\n<\/ul>","raw_excerpt":"Track 30+ AI crawlers visiting your site with real-time dashboards, logging-only honeypot, and bot verification.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/306072","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=306072"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/crawlantix"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=306072"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=306072"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=306072"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=306072"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=306072"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=306072"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}