@smallwheels,
@Dragonfruit,
@akok
I’m sharing a pre-release build of
XF Bot Guard 1.0.7 for those who specifically requested better support for legitimate crawlers/fetchers without needing to rely on Cloudflare verified-bot headers.
I am already running this build in production, but before I package it as an official release, I’d appreciate some wider testing from sites that have been affected by search crawlers or fetchers being challenged incorrectly.
The build is attached to this post.
What this build adds
The main new feature is a
DB-backed verified crawler/fetcher allowlist.
Instead of trusting user-agent strings, reverse DNS, or spoofable request headers, XF Bot Guard can now allow requests where the request IP matches an official provider-published crawler/fetcher CIDR range.
In plain English:
Code:
Request IP is inside an official crawler/fetcher IP range
=
allow before Bot Guard challenge/risk scoring
This is designed to help legitimate crawlers get through Bot Guard safely, especially on sites that are not behind Cloudflare or similar infrastructure.
Included providers/sources
This first version only includes strong, official, machine-readable IP/CIDR sources.
Included sources are:
- Google common crawlers
- Google special-case crawlers
- Google user-triggered fetchers
- Google-controlled user-triggered fetchers
- Google user-triggered agents
- Bingbot
- Applebot
- DuckDuckBot
This does
not add support for user-agent-only bots, commercial SEO tools, AI crawlers, DNS-only verification, or manually maintained IP lists.
New option
A new option has been added:
Code:
zeeBotGuardAllowVerifiedCrawlers
Admin label:
Code:
Allow verified search crawlers and fetchers
Default:
This option is separate from the existing known-bot/header-based option:
Code:
zeeBotGuardAllowKnownBots
The existing option remains for upstream verified-bot headers. The new option is for local DB-backed IP range verification using official provider feeds.
How to check whether it is working
Allowed crawler/fetcher visits under the new option are logged with this event type:
So, in the Bot Guard event log, look for:
The event metadata should include details such as:
Code:
{
"provider": "google",
"source_id": "google_common_crawlers",
"source_label": "Google common crawlers",
"cidr": "66.249.64.0/19",
"source_age_seconds": 3600,
"verification": "official_cidr_json"
}
This event is different from the older/header-based known crawler event:
For this new 1.0.7 feature, the event you want is:
Health check
After installing/upgrading, please check the XF Bot Guard health check.
The health check should now report the status of:
- The verified crawler option
- The known crawler source table
- The known crawler range table
- How many official sources are enabled
- How many have refreshed successfully
- Whether any sources have never refreshed
- Whether any source data is stale
- Whether any recent source refresh failed
The important thing to confirm is that the official IP sources imported successfully and that known crawler ranges are available.
If the health check says the option is enabled but no known crawler ranges are available, then the feature will not be able to allow any crawler/fetcher visits yet.
Refresh behaviour
The official IP/CIDR feeds are refreshed automatically by a new cron entry:
The refresh is designed to be safe:
- Successful refreshes replace ranges transactionally.
- Temporary provider/API failures do not wipe existing known-good ranges.
- Invalid or empty source updates are rejected.
- Last-known-good data remains usable.
- No remote HTTP or DNS checks happen during normal page requests.
What I’d like tested
Please check:
- The add-on installs/upgrades cleanly.
- The health check shows the known crawler sources and ranges correctly.
- The new option is present and enabled by default.
- Legitimate Google/Bing/Apple/DuckDuckGo crawler or fetcher visits show as verified_crawler_allow.
- Normal unknown bots still go through the usual Bot Guard flow.
- There are no unexpected PHP errors, cron errors, or install/upgrade issues.