
Most WordPress site owners think about plugin security the way they think about car insurance: something to sort out once, then forget. That habit is exactly what attackers count on. Wordfence and other security researchers have repeatedly reported that the large majority of WordPress compromises trace back to outdated or abandoned plugins and themes, not to WordPress core. A single vulnerable plugin on a site with 40 active extensions is often all it takes for an attacker to go from a harmless-looking contact form to full administrator access.
The "2026 admin takeover flaw" that prompted this checklist is a useful case study because it illustrates the pattern. A widely installed plugin exposed an unauthenticated endpoint that let a visitor create or elevate an administrator account under specific conditions. Sites that had auto-updates enabled were patched within hours. Sites that had not touched their plugins in months were exposed for weeks, and some owners only discovered the problem when their hosting provider suspended the account for sending spam.
This article is written for the site owner who runs WordPress for a business, a blog, a client portfolio, or a school, and who does not have a dedicated security team. You will learn how to inventory what is actually running on your site, how to judge whether a plugin is worth the risk, how to harden your admin layer, and how to respond if something goes wrong. Each section ends with steps you can complete in an afternoon. I have used most of these methods on my own sites and on a handful of client installations, and I will point out where the tradeoffs are real rather than pretending every recommendation is free.
Key Takeaways
- Inventory first. You cannot secure plugins you have forgotten about. Audit every installed plugin, including deactivated ones, at least quarterly.
- Remove, do not just deactivate. A deactivated plugin still has files on disk and can still be exploited in some configurations.
- Check maintenance signals before installing. Last update date, active installs, support response rate, and whether the vendor publishes a security contact matter more than star ratings.
- Limit who can administer. Fewer admin accounts, unique logins, two-factor authentication, and least-privilege roles shrink the blast radius of any single flaw.
- Automate patching for trusted plugins, monitor the rest. Auto-update minor releases for well-maintained plugins and subscribe to vulnerability alerts for everything else.
- Test your restore. A backup you have never restored is a hope, not a recovery plan.
What Is a WordPress Plugin Security Checklist, and Why Do You Need One?
A WordPress plugin security checklist is a repeatable set of steps that reduces the chance a plugin introduces a vulnerability into your site, and limits the damage if one does. It covers four areas: what you install, how you keep it current, who can access the admin area, and how you detect and recover from compromise.
Plugins matter so much because they run with the same privileges as WordPress itself. A plugin that handles file uploads, form submissions, or user registration is processing data from anonymous visitors, and any mistake in that code can become a path into your database or filesystem. Unlike a desktop application, you rarely see the code, and you often do not know the developer.
The three ways plugins get your site hacked
- Known vulnerabilities left unpatched. The most common route. A flaw is published in a CVE database, exploit code circulates within days, and mass scanners hit every site still running the old version.
- Abandoned plugins. A plugin with no updates for two or three years will never receive a patch for the next flaw discovered in its code. Many attacks target exactly these orphans.
- Supply chain compromise. Occasionally a legitimate plugin is sold or transferred to a new owner who ships a malicious update. This is rarer but harder to detect because the source appears trusted.
How Do You Audit Every Plugin on Your Site?
Most site owners underestimate how many plugins they have. Run a quick count and you will often find more than the number you remember. Here is a worked example. Say you manage a small business site with 47 plugins installed over three years: 31 active, 12 deactivated, and 4 that a former developer added and nobody can explain. If each of those 16 inactive or unknown plugins carries an unpatched vulnerability with a 1 in 20 chance of being exploitable on your configuration, the odds that at least one is exploitable are not trivial. Removing them costs you a few minutes. Keeping them costs you an unknown risk indefinitely.
Step-by-step audit walkthrough
- Log in to your WordPress admin and go to Plugins > Installed Plugins. Use the filter links to view Active, Inactive, and Update Available separately.
- Export the list. Copy the plugin names, versions, and whether each is active into a spreadsheet with four columns: Name, Version, Status, Still Needed (Yes, No, Unknown).
- For each plugin, click View Details and record the "Last Updated" date, the "Tested up to" WordPress version, and the active installation count.
- Mark any plugin not updated in more than 12 months, or not tested with your current WordPress major version, as a high-risk candidate.
- For every plugin marked "No" or "Unknown," deactivate it, wait 48 hours while you watch for breakage, then delete it entirely.
- Check your
wp-content/plugins/folder directly via SFTP or your host's file manager. Delete any folders with no matching entry in the admin list. Leftover folders are a common blind spot. - Repeat this audit every quarter and whenever a major WordPress release ships.
How Do You Evaluate a Plugin Before Installing It?
Star ratings are a weak signal. A plugin with 4.8 stars and 3,000 reviews from 2021 may be unmaintained today. What you want are maintenance signals: recent releases, responsive developers, and a clear track record of handling security reports.
Comparing three common evaluation approaches
| Approach | Effort | Catches abandoned code | Catches hidden flaws | Cost | Best for |
|---|---|---|---|---|---|
| Checking repository metadata only | Low (5 min) | Yes | No | Free | Routine installs |
| Reviewing vulnerability databases (Wordfence, WPScan, CVE) | Medium (15 min) | Partly | Known issues only | Free | Shortlisting between two or three options |
| Code review by a developer | High (hours to days) | Yes | Yes | Developer time | High-value sites, custom or sensitive data |
| Choosing a vendor with a published security policy and maintenance track record | Medium | Yes | Indirectly | Often paid | Business-critical plugins |
In practice I combine the first two for every install and reserve code review for anything that touches payments or member data. Paid, commercially supported plugins often earn their price through a documented security response process. When evaluating a vendor, look for a security contact address, a changelog that names fixed vulnerabilities, and a history of shipping updates within days of disclosure. Marketplaces such as our WordPress plugin category list products by function, which helps when you are comparing several options that do the same job.
Red flags to walk away from
- No update in more than 12 months, or a changelog that stops mid-2023.
- The plugin requests unnecessary permissions, such as file editing for a simple contact form.
- The author has changed hands recently with no announcement.
- Bundled "premium" versions downloaded from unofficial sites or nulled copies.
- Unexplained outbound network calls to unfamiliar domains. Check with a request inspector or ask your host.
How Do You Lock Down the WordPress Admin Layer?
Even a perfectly maintained plugin set can be defeated by weak account security. Admin takeovers almost always involve a compromised password, a reused credential from another breach, or an account that should have been deleted two years ago. Hardening the admin layer limits what any single flaw can do.
Hardening walkthrough
- Audit users. Go to Users > All Users and delete any account you cannot identify. Demote former contractors from Administrator to the lowest role they need.
- Create a named administrator for each real person. Never share a single "admin" login across a team, because you lose accountability.
- Enforce two-factor authentication for every account with Editor or higher permissions. Most major security plugins include this, and it stops the majority of credential-stuffing attacks.
- Use a password manager and generate unique passwords of at least 20 characters for each admin account. If you are managing 47 passwords across 12 services, a manager is the only realistic option.
- Change the default login URL or restrict
/wp-admin/by IP address if your team works from a fixed office network. Note that IP restriction breaks for remote staff, so test it before enforcing it. - Disable file editing from the dashboard by adding
define('DISALLOW_FILE_EDIT', true);to yourwp-config.php. This prevents an attacker with admin access from editing theme and plugin code directly. - Review the Last Login data your security plugin provides monthly and investigate any login from an unexpected country or device.
How Do You Keep Plugins Updated Without Breaking Your Site?
The tension is real: updates fix security holes, but a major version change can break a checkout flow or a custom template. The practical answer is to split your plugins into tiers and handle each differently.
- Tier 1: Trusted, well-maintained plugins. Enable auto-updates for minor and security releases. WordPress supports per-plugin auto-update toggles in the Plugins screen.
- Tier 2: Business-critical plugins. Update on a staging copy first, run through your key user journeys, then push to production within 48 hours of release.
- Tier 3: Everything else. Subscribe to vulnerability alerts and remove the plugin if a serious flaw is announced with no patch available.
Staging is the piece most small sites skip. Most managed hosts offer one-click staging, and many backup tools can clone a site in minutes. If you have no staging environment, at least take a full backup before every major update.
How Do You Monitor for and Recover from a Compromise?
Assume that at some
Cover image: Innovate Maryland Emerging Technology Center by MDGovpics, licensed under BY 2.0 via Openverse.







