WordPress security plugins bundle up to five separate jobs: a web application firewall, a malware and file-change scanner, login protection (rate limits and two-factor login), alerts about known vulnerabilities in your plugins, and an activity log. Most sites need two or three of those jobs, not all five, and a good host or CDN may already do some of them. This guide is for site owners choosing a security plugin, or wondering whether they need one at all. It sits under the WordPress security checklist: the habits there come first, and a plugin adds a layer on top. At the end you will know which jobs your site needs, where they should run, and how to judge a plugin before you install it.
Quick answer
- Do the basics first. Updates, unique passwords, two-factor login and tested backups stop more attacks than any plugin.
- Split the product into jobs: firewall, malware scan, login protection, vulnerability alerts, activity log. Decide job by job.
- A firewall works best in front of the server. A CDN or host firewall drops bad requests before PHP runs; a plugin firewall runs inside WordPress, after the server has already accepted the request.
- Two-factor login is the one job only a plugin does on self-hosted WordPress, because core has none.
- Use one security plugin, never two. Their firewalls and login rules conflict, and each adds work to every request.
- Check the plugin itself: recent releases, a published security contact, what it sends to its vendor, and how many requests it adds.
What a WordPress security plugin actually does
The big security plugins look similar from their feature lists, but underneath they combine the same five jobs. Seeing them as separate jobs makes the choice easier, because each one has a better or worse place to run.
| Job | What it does | Best place to run it | Can a plugin do it? |
|---|---|---|---|
| Web application firewall (WAF) | Blocks requests that match known attack patterns | CDN or host, in front of the server | Yes, inside WordPress |
| Malware and file-change scan | Compares files with clean copies, looks for known malicious code | Host (server-side) plus a plugin | Yes |
| Login protection | Limits login attempts, adds two-factor login, CAPTCHA | Rate limits at CDN or server; 2FA in WordPress | Yes; 2FA needs a plugin |
| Vulnerability alerts | Warns when an installed plugin or theme has a published hole | A plugin, the host or a monitoring service | Yes |
| Activity log | Records logins, setting changes, new users and plugin installs | WordPress | Yes |
Many plugins also offer "hardening" switches: turn off file editing, disable XML-RPC, hide the WordPress version, block PHP in the uploads folder. These are useful, but each one is a line of configuration you can also set yourself; the checklist has them as wp-config.php constants and server rules.
Firewall: endpoint or cloud
A plugin firewall is an endpoint firewall: it runs on your server, as PHP, before WordPress loads the rest of the site. It sees the decrypted request and knows which user is logged in, so it can apply rules for specific plugins. The cost is that every request, including every attack, still reaches your server and starts PHP.
A cloud firewall is a proxy in front of the site: a CDN such as Cloudflare, your host's edge, or a security vendor's DNS-level proxy. Bad requests are dropped before they reach your server, which also protects its CPU during a flood of login attempts. The trade-off is that it only sees HTTP traffic, not what happens inside WordPress.
This is the real difference behind the common "Wordfence vs Sucuri" comparison: Wordfence's firewall runs as a plugin on your server, while Sucuri's firewall is a paid cloud proxy that your DNS points to. Neither model is wrong. A small site on a host with a good edge firewall rarely needs an endpoint firewall too.
Malware scan and file-change alerts
A scanner compares WordPress core, plugin and theme files with clean copies from wordpress.org, and searches the rest for known malicious code. That is the job most likely to earn a plugin its place, because it catches a backdoor between the day it lands and the day spam appears in Google.
Two limits are worth knowing. A scanner running inside a hacked WordPress can be tampered with by the attacker, which is why many hosts scan from outside the site. And a scanner looks at files and the database, not at what Googlebot is served; cloaked spam can pass a clean scan. The hacked site checker covers that outside view.
Login protection and two-factor login
WordPress core does not limit login attempts and has no built-in two-factor login. Rate limits work best at the CDN or server, where a blocked request costs nothing. Two-factor login has to run inside WordPress, so it is the one job where a plugin is the only option. The small Two Factor plugin on wordpress.org, maintained by core contributors, does only that; most security suites include it too. Finding and protecting the WordPress login covers both in detail.
Vulnerability alerts
Most WordPress hacks start with a plugin that has a published hole and has not been updated. A vulnerability feed compares your installed versions with a database of known issues and emails you when one matches. Several security plugins do this, and so do some managed hosts and standalone services. It is worth having on any site where updates are not automatic.
Activity log
An activity log records who logged in, who changed a setting, who installed a plugin and who created a user. It does not prevent anything, but after an incident it tells you how the attacker got in and what they touched. On sites with several editors or an agency, it also settles "who changed this?".
Which jobs overlap, and why two plugins is worse than one
Two security plugins do not add up to double the protection. Both firewalls inspect every request, both login limiters count failures separately, and both may rewrite .htaccess. The usual symptoms are an admin that locks you out, a login page that loops, or a site that slows down because every request runs two rule sets.
The same applies across layers. If your CDN already rate-limits wp-login.php and xmlrpc.php, the plugin's login limiter adds little. If your host scans files every night and emails you, a plugin scan is a second opinion, not a necessity. Pick one owner for each job:
- Firewall: the CDN or host if you have one; the plugin only if you do not.
- Login rate limit: the CDN or server; the plugin as a fallback.
- Two-factor login: a plugin (a small one, or the suite you already run).
- Malware scan: the host's server-side scan, plus one plugin if the host offers none.
- Vulnerability alerts: one source, plugin or host.
- Activity log: a plugin, if more than one person logs in.
Turn off the features you do not use. A suite with its firewall, scanner and login limiter all switched on, next to a CDN that does the same, costs performance and adds nothing.
When you need no security plugin at all
A site can be well protected without one. That is the case when all of these hold:
- Core, plugins and themes update automatically or at least monthly, and you delete what you do not use.
- The host or CDN runs a web application firewall and rate-limits the login and
xmlrpc.php. - The host scans files for malware and alerts you, and keeps daily off-site backups you have restored once.
- Only one or two people log in, and a small plugin gives them two-factor login.
In that setup, a full security suite mostly duplicates what is already there. Some managed WordPress hosts go further and discourage or block certain security plugins because they overlap with the host's own firewall and scanning. Ask your host what it already covers before you install anything.
How to choose a WordPress security plugin
Rankings of the "best WordPress security plugins" tend to compare feature lists. Judge the plugin the way you would judge any other code that runs on every request:
- Maintenance. A release in the last few months, support questions answered, and "Tested up to" matching the current WordPress version on its wordpress.org page. A security plugin that has stopped updating is a liability.
- What the free version holds back. Some suites delay firewall rules or malware signatures for free users. Wordfence, for example, says on its plugin page that free users receive new firewall rules and malware signatures 30 days after premium users. That delay matters most for a brand-new plugin hole.
- Where it runs. An endpoint firewall costs server time on every request; a cloud firewall costs a DNS change and usually a subscription.
- What it sends away. Scans, IP reputation and login data may go to the vendor. Check the privacy notes, especially for stores and sites in the EU.
- How it recovers. If the plugin locks you out, you should be able to disable it by renaming its folder in
wp-content/plugins/over SFTP. Test that once on staging. - Performance. Measure a page before and after. A plugin that adds front-end scripts or a slow check on every request shows up in Time to First Byte; what your WordPress plugins cost visitors shows how to measure it.
What getReport can and cannot see
Security plugins work in the admin and on the server, so they leave little or no trace on public pages. The WordPress security scan cannot tell you whether a plugin is installed or configured well, and it does not try.
What it does show is the outside of the site, the part attackers see first: an outdated WordPress version, plugins that wordpress.org has closed or that have not been updated in over two years, a public "admin" author, a public staging copy and readable .env or .git files. If any of those fail, fix them before you think about a plugin; no firewall makes an abandoned plugin safe.
Checks for the more sensitive WordPress issues, such as an open XML-RPC endpoint or an exposed debug log, are planned for the WordPress Doctor. They will show a plain yes or no to anyone who runs the report, and the details only to the site's verified owner.
Common mistakes
- Installing a second plugin "to be safe". Symptom: lockouts, redirect loops on the login page, slower pages. Fix: one plugin, with each job owned by one layer.
- Treating the plugin as the whole plan. A firewall in front of a closed plugin and an administrator without 2FA is a fence around an open gate. Fix the basics first.
- Switching on every hardening toggle. Disabling XML-RPC breaks Jetpack; blocking the REST API breaks the block editor and many plugins. Change one thing at a time and test. XML-RPC and when to disable it shows how to do that one safely.
- Ignoring the plugin's own email alerts. Alerts that nobody reads are noise. Send them to an address someone checks, and turn off the ones you always ignore.
- Expecting a scan to clean a hack. A scanner finds files; the cleanup is a reinstall from clean sources. Follow recovering a hacked WordPress site.
Questions people ask
Do I need a WordPress security plugin?
Not for the basics. Updates, unique passwords with two-factor login, few administrators, disabled file editing and tested off-site backups protect a site better than any plugin, and only 2FA needs one. A plugin or a CDN firewall adds a web application firewall, login rate limiting and file-change alerts, which are worth having on shops and multi-author sites. Use one, never two, and prefer your host's or CDN's firewall.
What is the difference between an endpoint firewall and a cloud firewall?
An endpoint firewall runs on your server as part of WordPress, so every request still reaches the server before it is checked. A cloud firewall is a proxy in front of the site, at a CDN, your host or a security vendor, and drops bad requests before they reach the server. The cloud kind protects server capacity better; the endpoint kind sees more of what happens inside WordPress.
Can I run two WordPress security plugins together?
You should not. Two firewalls inspect every request twice, two login limiters count failures separately, and both may rewrite .htaccess, which leads to lockouts, login loops and slower pages. Choose one plugin and turn off any of its features that your host or CDN already provides, such as the firewall or login rate limiting.
Do security plugins slow down WordPress?
Some do, by a measurable amount. An endpoint firewall runs on every request, scans use CPU while they run, and some suites add front-end scripts. Measure Time to First Byte and page weight before and after installing one. If your host or CDN already runs a firewall, switch off the plugin's firewall and keep only the features you need, such as two-factor login and alerts.
Is a free WordPress security plugin enough?
Often, yes, if the rest of the basics are in place. Free versions usually include login protection, two-factor login and a malware scan. What paid tiers typically add is faster firewall rules and signatures, a cloud firewall, cleanup help and vulnerability alerts. On a shop or a site that is slow to update, faster rules and alerts are worth paying for.
What should I do if a security plugin locks me out?
Disable it from the file system. Connect over SFTP or your host's file manager, rename the plugin's folder in wp-content/plugins/, for example by adding -off to the name, and log in again. WordPress deactivates a plugin whose folder it cannot find. Then rename it back, fix the setting that locked you out, such as an IP block or a changed login URL, and reactivate it.