

The dashboard leads with anything critical, like a site still running without HTTPS, then threats blocked, active users and failed sign-ins over the last 24 hours.
Admin Safety Guard locks down the two places WordPress sites actually get broken into: the login form and the admin area.
You don’t need to know what a firewall rule is to use it. Turn on a switch, pick a number, save. The plugin handles the rest and shows you, in plain words, what it blocked and what still needs your attention.
If you have ever looked at your login log and seen hundreds of failed attempts for a user called “admin” that you never created, this plugin is for you.
Almost every automated attack follows the same three steps:
yoursite.com/wp-login.php, because that address is the same on every WordPress site in the world.Admin Safety Guard breaks that chain at every step, and every feature below is free.
Limit login attempts (on by default)
Lock out an IP address after a set number of failed sign-ins. You choose how many attempts are allowed, how long the lockout lasts, and what the person sees. Keep failing and the address is blocked for a full 24 hours. This is the one feature that switches itself on when you activate the plugin, so your site is covered before you configure anything.
It doesn’t only watch wp-login.php. XML-RPC, application passwords and custom theme login forms all count towards the same limit, which is how most bots get around simpler login limiters.
Add your own IP to the trusted list so you can never lock yourself out. Single addresses, CIDR ranges (203.0.113.0/24), wildcards (203.0.113.*) and IPv6 all work.
Custom login URL
Move your sign-in page to an address only you know, like yoursite.com/office-door. After that, wp-login.php and wp-register.php return a 404 for everyone, so scanners find nothing to attack. It works on root installs, WordPress in a subfolder, and multisite. Reserved slugs that would break your site are rejected before you can save them.
Two-factor authentication by email
After the password comes a one-time code, sent to the user’s inbox. A stolen password on its own becomes useless. You decide which roles need it (administrators and editors only, for example), how many digits the code has, how long it stays valid, and how many wrong guesses are allowed before it’s destroyed. The email is styled by default, and you can write your own subject and body if you’d rather.
Google reCAPTCHA (v2 and v3)
Add reCAPTCHA to your login form to stop bots before they ever submit a password. Both the “I’m not a robot” checkbox and the invisible v3 score check are supported. Paste in your site key and secret key, pick a version, done.
Session security
Everything above protects the sign-in. This protects what happens after it. WordPress keeps a session alive for two days, or fourteen if someone ticked “Remember Me” – however long the laptop sits open in a coffee shop.
Sign people out after a period of inactivity, shorten the maximum session length, end every other session when someone changes their password, and optionally tie a session to the IP address it started from so a copied cookie stops working elsewhere.
IP blocking
Some addresses don’t deserve a second chance. Add them to the permanent block list and they never reach your login page again. You can also block an address in one click straight from the login log.
Login logs and activity tracking
A real audit trail: every successful sign-in and every failed attempt, with username, IP address, browser, and timestamp. Search it, sort it, page through it, export it to CSV for a client report, or clear out old entries by date range.
You can also get an email the first time an administrator signs in from an address that account has never used before. That’s often the earliest sign that a password has leaked.
Threats blocked
Every block the plugin performs is recorded in one place: lockouts, blocked addresses, failed reCAPTCHA checks, wrong two-factor codes, blocked XML-RPC requests, username-discovery attempts. The dashboard shows what was stopped and when, so “is anything actually happening?” has a real answer.
Security score
The score grades your site, not the plugin. It checks the things that matter – HTTPS, whether core and PHP are current, whether an account is literally called “admin”, whether your usernames are public, whether file editing is still enabled – and weighs them against the protections you have switched on. Anything critical gets flagged at the top of your admin screen until it’s dealt with.
Privacy hardening
Nine one-click switches that close the small leaks attackers use for reconnaissance:
?author=1 and the REST users endpointPassword protect the whole site
Put a password in front of everything. Handy for staging sites, client previews and coming-soon pages. Choose how long access lasts and which roles skip it.
Hide the admin bar by role
Decide which roles see the toolbar on the front end. Hide it from subscribers and customers, keep it for editors and administrators.
Brand your login page
Swap the WordPress logo for yours, set its size, where it links to, and its alt text. Change the page background (colour or image), the form background, text, link and button colours, round off the corners, hide the links you don’t want, tick “Remember Me” by default, or write your own CSS. Ready-made templates are included if you’d rather not fiddle.
Firewall and malware overview
One screen showing your firewall status, with a link to our free Deep Malware Cleaner plugin for scanning and cleanup. If it’s already installed, the screen takes you straight to it.
Admin Safety Guard Pro adds the tools agencies and busier sites tend to ask for.
Passwordless login (magic links)
Users click a one-time link in their email instead of typing a password. The link works once and then expires.
2FA with an authenticator app
Google Authenticator, Authy and anything else that speaks TOTP. Users scan a QR code once and generate codes on their phone from then on – no email delivery to wait for.
Social login
Let people sign in with Google, Facebook or other accounts they already have, while you keep control of which providers are allowed.
Database prefix check
The default wp_ prefix is known to every attacker and makes SQL injection easier to write. This finds your current prefix and walks you through changing it safely.
Strong password enforcement
Set a minimum password strength. Weak passwords get rejected at the point they’re created, not after an incident.
Advanced web application firewall
Inspect incoming requests and block SQL injection and cross-site scripting payloads before WordPress ever sees them. Run it in monitor-only mode first, whitelist trusted addresses, block user agents, and cap request size.
Malware scanning and cleanup
Handled by our separate free plugin, Deep Malware Cleaner, rather than a second half-built scanner in here.
Upgrade to Pro to unlock all Pro features.
Bloggers and content creators – protection that runs in the background with nothing to maintain.
Small business owners – your site is your shopfront. A hack costs you customers and takes days to clean up.
WooCommerce stores – customer records, addresses and order history sit behind that login form. Lock it properly.
Freelancers and web designers – hand over a site that’s already hardened and branded, without a security bill attached.
Agencies – the same repeatable setup across every client site, with logs you can export when someone asks what happened.
Developers – every limit, message and redirect is configurable, and the features are built on standard hooks and filters you can extend.
Free support is on the WordPress.org forum. For anything Pro-related or urgent, use our contact form.
This plugin uses the following third-party and external services:
1) Google reCAPTCHA (Google LLC)
Purpose:
Used to protect forms from spam and automated abuse.
When it is used:
– When reCAPTCHA is enabled in plugin settings
– On login forms and support forms protected by reCAPTCHA
What data is sent:
– User IP address
– reCAPTCHA response token generated by Google
– Browser information as required by Google reCAPTCHA
Service provider:
Google LLC
Terms of Service:
https://policies.google.com/terms
Privacy Policy:
https://policies.google.com/privacy
2) ThemePaste API (Plugin Author Service)
Purpose:
Used for:
– Collecting optional admin email addresses for plugin updates and notifications
– Sending support requests from the plugin support form
– Collecting optional feedback when a user attempts to deactivate the plugin
– Managing plugin-related notifications (only if the user provides contact details)
When it is used:
– When a user submits the built-in support form
– When a user opts to send diagnostic information
– Submitting the optional deactivation feedback form
What data is sent:
– Name
– Email address
– Phone number (if provided)
– Message content
– Site URL
– Plugin name
– Feedback text (if provided)
– Support message content
– Deactivation reason (if provided)
No data is sent without user action.
Service provider:
ThemePaste.com
Terms of Service:
https://themepaste.com/terms-condition
Privacy Policy:
https://themepaste.com/privacy-policy
This plugin ships compiled JavaScript bundles in:
– assets/admin/build/*.bundle.js
The original, human-readable source files are included in this plugin under:
– spa/admin/
They are also available at https://github.com/themepaste/admin-safety-guard
Build Tools
– Node.js (LTS recommended)
– npm
– Webpack + Babel
Source Entry Points
The admin SPA bundles are built from the following entry points:
React and the webpack runtime are extracted into shared chunks
(framework.bundle.js and runtime.bundle.js) so they are downloaded once
rather than being inlined into every bundle.
Install Dependencies
From the plugin root directory (where package.json lives):
1) Install dependencies:
npm install
Build (Production)
To generate the production bundles:
npm run build
Output Location
Webpack outputs the compiled bundles to:
Important Notes
– Do not edit files in assets/admin/build/ directly. They are generated files.
– Edit the source files under spa/admin/ and re-run the build command.
– For WordPress.org distribution, production builds should be used (mode=production).
Website
Documentation
Pro Version
Facebook
Pinterest
LinkedIn
Instagram