ProbeGuard 404 Firewall for Cloudflare GitLab
A WordPress plugin that blocks 404 scanners at the Cloudflare edge using IP Access Rules. Works on every Cloudflare plan including Free; authenticates with a scoped API token kept in wp-config.php.
by Dan Dawson · gitlab.com/dandawson/cf-404-defender · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://gitlab.com/dandawson/cf-404-defender/-/archive/main/cf-404-defender-main.zipReadme
ProbeGuard 404 Firewall for Cloudflare
WordPress plugin that records 404 requests and blocks or challenges abusive IPs at the Cloudflare edge using IP Access Rules.
Full documentation — features, setup, whitelist syntax, IP detection, retention, external services and changelog — lives in readme.txt, which is also what WordPress.org renders. The plugin's own Documentation tab (Tools → ProbeGuard 404 Firewall) mirrors it.
Quick start
- Copy the plugin into
wp-content/plugins/probeguard-404-firewall-cloudflareand activate it. - Create a Cloudflare API token with Zone → Firewall Services → Edit, scoped to the site's zone.
- Paste the token and the zone ID into Tools → ProbeGuard 404 Firewall → Settings. The token is stored in a non-autoloaded option and only ever shown masked afterwards.
- Configure thresholds on the same tab.
To keep credentials out of the database, define them in wp-config.php instead; the constants win over the stored values and the fields are then read-only:
define( 'EDGE404_API_TOKEN', 'your-cloudflare-api-token' );
define( 'EDGE404_ZONE_ID', 'your-zone-id' );
One further optional constant exists: if the site is behind an additional proxy in front of Cloudflare, define EDGE404_TRUSTED_PROXIES with the proxy addresses or CIDR blocks, or forwarded headers are ignored.
The plugin was called CF 404 Defender before 2.0.0. Its CF_404_API_TOKEN, CF_404_ZONE_ID and CF404_TRUSTED_PROXIES constants are still honoured, and tables, options and pending scheduled tasks are moved to the edge404_ names on upgrade.
Development
composer install # PHP_CodeSniffer + WordPress Coding Standards
composer run lint # php -l over every file
composer run phpcs # coding standards
.gitlab-ci.yml runs both on every push, plus the WordPress.org Plugin Check ruleset.
License
GPLv2 or later.
Read the full README on GitLab →
Releases
| Tag | Published |
|---|---|
| 1.0.7 | Apr 16, 2025 |
| 1.0.6 | Apr 16, 2025 |
| v1.0.5 | Apr 16, 2025 |
| v1.0.4 | Apr 16, 2025 |
| v1.0.2 | Apr 16, 2025 |
| v1.0.1 | Apr 15, 2025 |
These releases are tags only. The author does not attach a packaged zip, so there are no download counts to report.
GitLab does not publish per-asset download counts, so this plugin ranks on stars and activity only.