# WordPress security plugins: what they do, where they overlap and when you need none

> WordPress security plugins bundle five jobs: a firewall, a malware scan, login protection, vulnerability alerts and an activity log. Here is what each job is worth, which ones overlap, and when your host already covers them.

Updated 2026-09-26 · WordPress & WooCommerce · HTML version: https://getreport.app/guides/best-wordpress-security-plugins

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](https://getreport.app/guides/wordpress-security-basics-without-a-plugin): 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](https://getreport.app/guides/wordpress-security-basics-without-a-plugin) 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](https://getreport.app/tools/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](https://getreport.app/guides/wordpress-login-security) 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:

1. **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.
2. **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.
3. **Where it runs.** An endpoint firewall costs server time on every request; a cloud firewall costs a DNS change and usually a subscription.
4. **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.
5. **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.
6. **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](https://getreport.app/guides/wordpress-plugin-cost) 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](https://getreport.app/tools/wordpress-checker) cannot tell you whether a plugin is installed or configured well, and it does not try.

> **Free tool:** [WordPress security scan and health check](https://getreport.app/tools/wordpress-checker): Free WordPress security scan and health check from the outside: outdated core, closed plugins, exposed files, blocked indexing and classic launch mistakes.

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.

> **Check: No detected plugin has been closed on wordpress.org.** wordpress.org closes plugins for unfixed security issues or guideline violations. A closed plugin gets no updates and often has a known vulnerability.
>
> 1. Replace the plugin now; the reason shown by wordpress.org tells you how urgent it is.
> 2. Until then, keep the site behind a firewall plugin and check the vulnerability databases for the plugin name.

> **Check: Every detected plugin has a recent update.** A plugin nobody maintains will not get security fixes and eventually breaks with a WordPress update. Two years without a release is the usual sign that it is abandoned.
>
> 1. Look for a maintained alternative with the same feature and replace the plugin; test on staging first.
> 2. If it is essential and small, consider paying a developer to take it over.

> **Check: CMS version.** Old CMS versions have published security holes that bots scan for automatically, and the generator tag advertises the exact version to them.
>
> 1. Back up the site, then update the CMS from its admin dashboard; update plugins and themes at the same time.
> 2. Remove the generator tag (WordPress: remove_action('wp_head', 'wp_generator') in functions.php).

> **Check: No default admin author exposed.** /?author=1 redirects to /author/admin/, which confirms a login name called "admin" exists. Brute-force scripts try that name first.
>
> 1. Create a new administrator with a unique username, log in as it, delete "admin" and attribute its content to the new user.
> 2. Optionally disable author archives or the ?author= redirect in your security plugin.

> **Check: No sensitive files are readable.** /.env holds database passwords and API keys; /.git exposes your source code and every secret ever committed. Both are the first things an automated scanner asks for.
>
> 1. Block dotfiles at the web server (nginx: location ~ /\. { deny all; }; Apache: RedirectMatch 404 /\..*$).
> 2. Move .env outside the web root and rotate every credential in it; assume the file has already been copied.

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](https://getreport.app/guides/wordpress-security-basics-without-a-plugin) 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](https://getreport.app/guides/xmlrpc-php) 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](https://getreport.app/guides/recovering-a-hacked-wordpress-site-step-by-step).

## 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.
