
Every WordPress site owner has done it: you need a contact form, a slider, or a way to block a persistent spammer, so you type a few words into the plugin search box, sort by "most popular," and click Install. Ninety seconds later there's new code running on your server with the same privileges as your own theme. Most of the time nothing bad happens. But not always.
Here's the sobering number: the WordPress ecosystem now ships more than 60,000 plugins in the official directory alone, and security firm Patchstack cataloged over 8,000 new vulnerabilities across WordPress plugins and themes in a single recent year. Roughly 97% of those flaws lived in plugins, not the WordPress core. The core team is genuinely good at their job. The weak link is almost always the third-party code you and I keep bolting on.
This guide walks through exactly how to vet WordPress plugins for security before you install them, using the same checklist I run on client sites. You'll get a repeatable process, a worked example with real numbers, a comparison of vetting signals, and a short list of the tools I actually keep installed. No hand-waving.
Key Takeaways
- Vet before you install: check the last-updated date, active install count, support responsiveness, and known CVEs in under five minutes.
- Abandonment is the single biggest risk signal. A plugin not updated in 12+ months is a liability regardless of star rating.
- Cross-reference every plugin against a vulnerability database like the WPScan or Patchstack directory before it touches production.
- Fewer plugins beats more plugins. Every plugin you remove shrinks your attack surface measurably.
- Premium and audited plugins from reputable marketplaces reduce your exposure to abandoned freeware and hidden code.
- A monitoring layer catches what manual vetting misses, so pair upfront vetting with runtime protection.
Why Plugin Vetting Matters More in 2026
Attackers have gotten industrial about this. They no longer hunt for one juicy target. They scan the entire internet for a specific vulnerable plugin version and hit every site running it within hours of a public disclosure. The window between a CVE going public and mass exploitation attempts is now often measured in hours, not days.
Two trends made 2026 different. First, the rise of AI-assisted vulnerability discovery means flaws in older, unmaintained plugins are being found faster than the volunteer maintainers can patch them. Second, supply-chain attacks, where a legitimate plugin gets sold to a new owner who quietly injects malicious code in an update, have moved from rare to routine.
The most common plugin-based attack I still see in the wild is authentication bypass, where a flaw lets an attacker skip the login step entirely. If you want the deep version of that story, we covered it in WordPress Auth Bypass Attacks: How to Protect Your Site in 2026. The short version: one bad plugin can hand over admin access, and vetting is your cheapest defense.
The 7-Signal Pre-Install Checklist
Before a plugin gets anywhere near your live site, run it through these seven signals. Each one takes seconds, and together they take under five minutes.
- Last updated date. Open the plugin page in the WordPress directory. If "Last updated" is more than 6 months ago, be cautious. More than 12 months, treat it as abandoned.
- "Tested up to" version. If it hasn't been tested against the current major WordPress release, the developer has stopped paying attention.
- Active installations. More installs mean more eyes and faster bug reports. A plugin with 200 installs has had far less scrutiny than one with 200,000.
- Support forum activity. Click the Support tab. Are recent threads answered, or is it a graveyard of ignored questions? Unanswered "critical bug" posts are a red flag.
- Review sentiment, not just the average. A 4.8-star average hides a lot. Read the 1- and 2-star reviews specifically, and look for the word "security" or "hacked."
- Developer footprint. Does the developer maintain other well-regarded plugins? A named company or established author beats an anonymous single-plugin account.
- Known vulnerabilities. Search the plugin name in the WPScan vulnerability database or Patchstack directory. If there's an unpatched CVE, walk away.
Two of these carry the most weight in my experience: the update recency and the CVE check. A plugin can be wildly popular and still be dangerous if it's been abandoned. Popularity is a trailing indicator; maintenance is a leading one.
Where to check for known vulnerabilities
- WPScan Vulnerability Database — free to browse, comprehensive, updated daily.
- Patchstack — excellent for recent disclosures and virtual patching.
- The National Vulnerability Database (NVD) — search by the plugin's CVE identifier for the raw technical detail.
A Worked Example: Vetting a Plugin in Under Five Minutes
Let's make this concrete. Say you run a small online store and you want a plugin to add a currency switcher. You search the directory and find three candidates. Here's how the vetting plays out with realistic numbers.
Candidate A has 90,000 active installs, was updated 3 weeks ago, tested against the latest WordPress version, a 4.7-star average across 320 reviews, and zero open CVEs. The support forum shows the developer answering threads within 48 hours.
Candidate B has 40,000 active installs but was last updated 14 months ago, tested against a WordPress version two major releases behind, and has one disclosed reflected XSS vulnerability from 8 months ago with no patch. Reviews look fine at 4.5 stars.
Candidate C has 1,200 installs, updated last week, no known CVEs, but only 6 reviews and an anonymous developer with no other plugins.
The star ratings alone would tempt you toward B. The vetting checklist tells a different story. Candidate B is the trap: an unpatched XSS flaw plus 14 months of neglect makes it the highest-risk option despite decent reviews. Candidate A is the clear winner. Candidate C isn't disqualified, but with so little scrutiny you'd want to test it in staging first and keep an eye on it.
Total time spent: about four minutes. Time saved if B would have led to a compromise: potentially days of cleanup, plus reputational damage. That math almost always favors vetting.
Free Directory vs Premium Marketplace vs Nulled: A Comparison
Where you get a plugin matters as much as which plugin you pick. Here's how the three common sources stack up on the factors that affect security.
| Factor | Free Directory | Premium Marketplace | Nulled / Cracked |
|---|---|---|---|
| Code review before listing | Basic automated + volunteer | Vendor-audited, often manual | None |
| Update reliability | Varies wildly by author | Contractual / commercial incentive | Frozen or hijacked |
| Support responsiveness | Best-effort, unpaid | Paid, accountable | None |
| Hidden malware risk | Low but nonzero | Very low | Extremely high |
| Cost | Free | Paid | "Free" (you pay in risk) |
Nulled plugins are never worth it. Security researchers routinely find backdoors injected into cracked copies of popular premium plugins, and by the time you notice, your server is quietly serving spam or mining crypto. The "savings" evaporate the first time you pay someone to clean an infection.
Premium plugins from a reputable source, on the other hand, come with a commercial incentive to stay secure. When you browse curated WordPress plugins on a marketplace like LionScripts, you're trading a modest license fee for audited code and accountable maintenance. That's usually the better deal for anything running on a site you care about.
Reading a Plugin's Code and Permissions
For high-stakes installs, or anything from a lesser-known developer, go one level deeper than the checklist. You don't need to be a PHP expert to catch obvious problems.
What to look for in the code
- Obfuscated or base64-encoded blocks. Legitimate plugins rarely hide their logic. Long strings of
base64_decode()oreval()are a giant warning sign. - Remote calls to unknown domains. Search the code for
file_get_contents,curl, orwp_remote_getpointing at servers you don't recognize. - Unsanitized inputs. Direct use of
$_GETor$_POSTin database queries without sanitization is the classic recipe for SQL injection. - Excessive capabilities. A plugin that requests admin-level hooks to do something simple is doing too much.
If you work with code regularly, an AI assistant can speed up this review. I've had good results asking a local model to scan a plugin folder for suspicious functions, which keeps the code off third-party servers. Our guide on running local AI coding assistants with Ollama covers the setup, and if you prefer a browser workflow, using OpenAI Codex in Chrome works too.
Test in staging, always
Never install an unvetted plugin directly on production. Spin up a staging clone, activate the plugin there, and watch for outbound network requests, new database tables, and unexpected admin users. If you develop locally on Windows and juggle multiple site copies, a tool like Windows Symlink Creator Pro makes it painless to share plugin folders across test installs without duplicating files.
Layering Runtime Protection on Top of Vetting
Vetting reduces the odds of installing something bad. It doesn't eli
Cover image: Illinois.gov - Illinois Government News Network (IGNN) - Search the News Results by danxoneil, licensed under BY 2.0 via Openverse.








