JTZL’s Bot Maze protects your WordPress site from unwanted AI crawlers and scrapers by planting invisible trap links that only bots will follow. When a bot enters the trap maze, it gets lost in an ever-expanding maze of realistic-looking fake pages while it quietly builds a suspicion score based on its behavior.
How it works:
Features:
Every external service listed below is optional and off by default. No data is sent to any of them unless a site administrator explicitly enables the corresponding feature.
When MaxMind GeoLite2 is selected as the GeoIP provider (Settings > Bot Maze > Geographic Tracking), the plugin downloads the GeoLite2-Country database from MaxMind and performs all IP-to-country lookups locally. No visitor data leaves your server.
When ip-api.com is selected as the GeoIP provider, the plugin sends visitor IP addresses to ip-api.com to resolve their country of origin. This data is used to display a geographic heat map of bot activity in the admin dashboard.
Geographic tracking is off by default and requires explicit opt-in by a site administrator.
AbuseIPDB reporting is off by default. It requires explicit enablement plus an administrator-owned AbuseIPDB account and API key from the API dashboard. Protect the API key like a password.
An address is queued for reporting in exactly three situations:
Every queued address must also be publicly routable. Private, loopback, reserved, documentation and multicast addresses are never reported, because AbuseIPDB only accepts reports about addresses reachable on the public internet. Verified search engine crawlers are never scored in the first place, so they are never candidates.
The catch-up in (3) reports each address against the time it was actually last seen, rather than the time the button was pressed, and covers addresses seen within your configured data retention period (Settings > Bot Maze > Maintenance, 30 days by default). That is the period you have declared this evidence meaningful for, and the same period after which the plugin deletes the record, so the catch-up offers exactly the blocked addresses your site still holds evidence for. It reports up to 500 addresses per press.
In all three cases the report sends only the public IP address, category 19 (Bad Web Bot), the time of the observation being reported, and a generic explanation for security reporting. It sends these four fields over HTTPS to the AbuseIPDB service. It never sends the user agent, referrer, trap URL, session, score, or traversal depth.
The plugin limits reports to once per IP address in any 24-hour period. A queued report that cannot be delivered for seven days is abandoned. Delivery runs in the background through WP-Cron, so reports may wait on low-traffic sites and are not real-time. Disabling reporting or clearing the key stops delivery and deletes queued reports.
The current free Individual plan includes 1,000 IP checks and reports per day. See AbuseIPDB pricing; your account limit may differ. Review AbuseIPDB’s terms and privacy policy before enabling reporting.
When the Trusted Client IP Header is set to Cloudflare (CF-Connecting-IP) (Settings > Bot Maze > Trusted Proxy), the plugin fetches Cloudflare’s published edge IP range lists from cloudflare.com to keep the trusted-proxy allowlist current without any manual action.
This fetch only runs while the Cloudflare trusted client IP header is selected. If the fetch fails validation, the previously stored list (or a bundled fallback) is kept — a failed response never narrows or widens the trusted set.