WordPress Plugins
Free Tools
Pricing Blog Case Studies Switch to Royal Plugin Graveyard Support My Account Cart
Support / GuardPress / IP Blocking & Whitelisting

IP Blocking, Whitelisting, and Managing Locked-Out IPs

GuardPress → IP Management is the single console for every IP-based access rule on your site. It shows three separate lists that get confused for each other constantly — the manual Whitelist (trust always, bypass every check), the manual Blacklist (block always, at every endpoint), and the auto-populated Active Lockouts & Permanent Bans table that brute-force protection writes to. This walkthrough covers which list to use when, how CIDR ranges work, how to import and export lists across sites, and the everyday operations (whitelist my office, unblock a legit user, block a persistent attacker).

Just need to unblock someone right now? Skip ahead

If a real user got caught in the brute-force lockout, jump to Reviewing and clearing Active Lockouts. Two clicks and they’re back in. If your own IP is on the manual Blacklist and you’re currently blocked, you’ll need database access — see Locked yourself out via the manual Blacklist.

Three Lists, Three Purposes

The GuardPress → IP Management page shows three tables that do different things. Getting them mixed up is the single most common cause of “why won’t this IP unblock?” tickets.

1. Manual Whitelist (green shield icon)

Storage: guardpress_ip_whitelist option. Populated only by you, the admin. IPs on this list bypass every firewall check GuardPress runs — brute-force counter, rate limiting, geographic access rules, WAF pattern matching, everything. Checked at the very top of every request, before any block is evaluated. Use for:

2. Manual Blacklist (red X icon)

Storage: guardpress_ip_blacklist option. Populated only by you. IPs on this list are permanently blocked at every endpoint — there’s no expiration and no rate limit to trip. Not to be confused with the brute-force auto-lockout below. Use for:

3. Active Lockouts & Permanent Bans (yellow lock icon)

Storage: gp_ip_blocklist database table. Populated automatically by the brute-force protection module — you don’t add entries here manually. Each row is either a temporary lockout (with an unblock_at timestamp in the future) or a permanent ban (after the escalation threshold from brute-force protection was hit). Use for:

The three lists are independent

Removing an IP from Active Lockouts doesn’t remove it from the manual Blacklist and vice versa. If an IP is on both, it stays blocked until it’s removed from both. Whitelist wins over everything — if you accidentally end up with the same IP on the Whitelist and Blacklist, Whitelist takes precedence and the IP is allowed through.

Whitelisting an IP or Range

The fastest way to whitelist your own IP is the shortcut at the top of the IP Management page.

Open GuardPress → IP Management

The top of the page shows Your Current IP Address in a box — that’s whatever GuardPress detected from your current session (post-Cloudflare-real-IP, post-proxy header resolution). Confirm it’s actually your public IP by cross-checking with ifconfig.me or a similar service if you’re not sure.

Click “Whitelist My IP”

The IP is added to the manual Whitelist immediately — no confirmation needed. You’ll see it appear in the Whitelist table below, tagged (You).

Or add a specific IP or CIDR range

Under the Whitelist section, type an IP or range into the input box and click Add. Formats accepted:

  • 203.0.113.42 — single IPv4 address
  • 203.0.113.0/24 — IPv4 CIDR range (256 addresses in this case)
  • 203.0.113.0/16 — larger IPv4 CIDR range (65,536 addresses)
  • 2001:db8::1 — single IPv6 address (matched by exact-string equality against the resolved client IP)

Note: IPv6 CIDR ranges (e.g. 2001:db8::/32) can be entered without an error but are not currently matched at runtime — only exact-string IPv6 addresses trigger a whitelist hit. If you need to whitelist a large IPv6 block, list the specific addresses one per line, or open a support ticket and we’ll prioritise the CIDR-IPv6 gap.

Test the whitelist is working

Refresh the IP Management page. Your IP should now show a green Whitelisted badge next to the “Your Current IP Address” label at the top. If you were on the temporary Active Lockouts list, you’ll still be listed there — whitelist doesn’t retroactively clear existing entries, only prevents future checks. Click Unblock in the Active Lockouts row to clear the leftover.

Don’t whitelist your ISP’s entire /8

“My IP starts with 76.x so I’ll whitelist 76.0.0.0/8” whitelists 16 million addresses across half your ISP’s subscriber base. If any of them get compromised, they’re now in your allow-list. Always whitelist the narrowest range that solves your actual problem — a single IP for a residential connection, a /24 for a business VPN with a small pool, a /29 or /30 for a specific service with a known allocation.

Blacklisting an IP or Range

The manual Blacklist is for IPs that shouldn’t ever be able to talk to your site — not just “temporarily locked out after failed logins” but “we do not want this address, period.”

Confirm the IP is actually a persistent problem

Check GuardPress → Audit Log and the Active Lockouts & Permanent Bans table. If the IP is already permanently banned by brute-force protection (is_permanent = 1), you don’t need to also add it to the manual Blacklist — it’s already blocked. If it’s only ever hit a temporary lockout once, it might be a real user with a shared IP, not an attacker.

Add the IP or CIDR to the Blacklist input

Under the Blacklist section (red X icon), type the address into the input box. Same format rules as whitelist — single IP, CIDR range, IPv4 or IPv6. Click the red Block button.

Verify by trying to reach the site from that IP

If you can, try loading any URL on the site from the blacklisted IP (a VPN, phone hotspot, etc.). You should see the block response — not just for login pages, but for every URL. Manual Blacklist entries block at the firewall layer, before WordPress even runs.

Blacklist vs. Geographic Access Rules

If you’re blocking a whole country’s worth of IPs, don’t enumerate them in the Blacklist. Use the Geographic Access Rules section on the same page — it maintains up-to-date country IP ranges automatically. See Country Blocking and the Cloudflare Real-IP Gotcha for the full walkthrough, especially the important note about how Cloudflare-fronted sites need real-IP restoration for country blocking to work.

Reviewing and Clearing Active Lockouts

The Active Lockouts & Permanent Bans table is auto-populated by brute-force protection — you can’t add entries here manually, only clear them.

Each row shows:

To unblock a legit user who got caught:

Confirm it’s them

Ideally check the IP against the affected user’s actual location — ask them for their IP via ifconfig.me or similar, or check the audit log for their username’s recent failed-login IP. Don’t unblock random rows without confirming they map to someone you actually want to let in.

Click Unblock

The row disappears immediately. That IP can now attempt to sign in again on the next request. No page refresh needed on the client side.

Consider whitelisting if this keeps happening

If the same user keeps getting caught, whitelist their IP (see above). Or if it’s clearly a legit user who has a mobile IP that changes, ask them to slow down when signing in — the brute-force counter can’t distinguish “typed my password wrong 5 times fast” from an attacker.

Importing and Exporting IP Lists

The Whitelist and Blacklist can be exported as a single JSON file and re-imported into another site — useful when you run multiple sites and want to keep known-bad or trusted IPs in sync.

Export

Scroll to the Import / Export section on the IP Management page

Below the Active Lockouts table.

Click “Export IP Lists”

Your browser downloads a JSON file containing both the Whitelist and Blacklist. The Active Lockouts & Permanent Bans table is not included in the export — those are per-site automatic state, not portable.

Import

Click “Import IP Lists” on the destination site

Select the JSON file from your source site. GuardPress validates the file structure before importing — a malformed file is rejected with an error, no partial import.

Confirm the merge behaviour

Import merges with the existing lists — it does not replace them. If the destination site already has some IPs whitelisted, they stay. New IPs from the import file are added. Duplicates are deduplicated. If you want to fully replace an existing list, delete the existing entries manually before importing.

Backup before an import

Export first, then import. If the merge produces something you didn’t want, you have the original state to compare against. Since import merges rather than replaces, undoing a bad import means going through the merged list and manually removing anything from the import that shouldn’t be there — much easier when you have the pre-import export to diff against.

Locked Yourself Out via the Manual Blacklist

If you accidentally added your own IP to the manual Blacklist — or you added a range that turned out to include your IP — wp-admin will refuse to load. Unlike Emergency Lockdown, there’s no wp-config bypass constant for manual Blacklist. Recovery paths, in order of convenience:

Common Mistakes

Confusing the auto-lockout table with the manual Blacklist

The Unblock button in Active Lockouts clears the auto-populated lockout row. It doesn’t remove the IP from the manual Blacklist if you also added it there separately — you have to remove it from the Blacklist too. Two separate tables, two separate clicks.

Whitelisting an IP that’s shared across an office pool

If your office has a NAT pool that hands out addresses across a shared /28, whitelisting only your specific momentary IP will stop working the next time DHCP hands you a different one. Ask your IT for the CIDR range of the pool and whitelist that instead. Or just whitelist your IP once and add the others as you encounter them.

Blacklisting a Cloudflare edge IP

Not really a mistake on your end — a diagnostic reminder. If GuardPress isn’t correctly detecting real visitor IPs (pre-1.6.30 or a misconfigured proxy header), you might end up looking at your firewall logs and seeing lots of “attacks” from Cloudflare’s edge IPs. Don’t blacklist those — you’ll block a chunk of the internet from reaching your site. Fix the real-IP detection first (see Country Blocking and the Cloudflare Real-IP Gotcha).

Not whitelisting uptime monitors

Services like UptimeRobot, Better Uptime, StatusCake hit your site every 60–300 seconds. If they fail a request and start retrying quickly, they can trip your rate limit and end up temporarily locked out — and then your uptime monitor shows the site as “down” because it can’t reach it. Whitelist your monitor’s published IP ranges once and forget about it.

Importing a Blacklist from a different site type

A Blacklist that made sense for a US-only membership site might block half of your international WooCommerce customers if you import it wholesale into a global store. Curate the import file before applying it — delete country-wide ranges that don’t apply to the new site’s audience.

Still Stuck? Email Priority Support

If IP Management is behaving unexpectedly — whitelisted IPs still getting blocked, CIDR ranges not matching, imports failing to apply, or the wrong IPs showing in the Active Lockouts table:

Email support@royalplugins.com with the diagnostic info below. Priority email support is included with your GuardPress Pro license — typical response time is within 24 hours.

Information to include in your email

  • GuardPress version from WP Admin → Plugins
  • WordPress version from WP Admin → Updates
  • Which list the problem IP is on — manual Whitelist, manual Blacklist, or auto Active Lockouts
  • The exact IP or CIDR range as it appears in the input box — format matters, we’ll want to see the exact string
  • The IP GuardPress detected for you from the “Your Current IP Address” box at the top of the IP Management page (if this doesn’t match your actual public IP, real-IP restoration is misconfigured)
  • Whether the site is behind a CDN (Cloudflare, StackPath, Bunny CDN, etc.), and if so, whether the CDN’s real-IP header is being honoured
  • Recent ip_blocked_* or firewall_block entries from GuardPress → Audit Log
Related GuardPress topics

IP Management sits at the centre of several other features: