Malware scanning that reads
like an attacker thinks.
Guardian Gaze layers four detection methods: signature matching, file-integrity verification, heuristic analysis, and (on Pro) LLM-assisted reasoning, across every PHP file, theme, plugin, mu-plugin and database table on your site. Scans run server-side via WP-Cron, never blocking page loads.
Availability: in the free plugin on WordPress.org: no account, no licence key · Signature malware scanning

The plugin view: findings, severity and next steps inside the WordPress admin
Malware Scanning at a glance
Finds what signatures miss
Behavioural analysis flags obfuscated code, injected payloads and backdoors that have never been catalogued.
Explains every finding
Each result says what it is, how it likely got there, and the exact next step, written for humans rather than SOC analysts.
Fix in one click
Pro users quarantine and remove confirmed malware in a single logged, reversible action.
Four layers, because no single method is enough
Signature matching compares what is on your site against a bundled definition set of known malware. It is fast, cheap and produces almost no false positives, and it is completely blind to anything written after the definitions were compiled. Used alone it gives you a scanner that reliably finds last year's problems.
Heuristic analysis widens the net by looking at how code is constructed rather than what it matches: execution of decoded input, long base64 chains, obfuscation, functionality that only triggers when a particular request parameter is present. It catches variants no one has catalogued, and it pays for that with false positives, because a lot of legitimate WordPress code looks alarming, minifiers produce unreadable output, caching layers evaluate generated code, and commercial plugins obfuscate their licence checks on purpose.
File integrity checking asks a different question entirely: is this file still what its authors shipped? WordPress core is hashed against the official WordPress.org checksums, and plugins and themes against their installed-version baselines. It needs no knowledge of malware whatsoever, which is exactly why it survives contact with novel payloads.
The database scanner covers what none of the file-based layers can see, and it is described in full on its own page. On Pro, a fifth layer reasons about intent rather than pattern.
Scanning the part of the site you actually care about
A full-site scan is the default and it is the right thing to run on a schedule. It is rarely the right thing to run when you have a specific question at four in the afternoon.
Scoped modes cover core only, plugins only, themes only and uploads only. After updating a plugin, a plugins-only scan answers the one question you have in a fraction of the time. After restoring a backup, a core-only scan confirms the restore was clean before you go further.
Uploads-only is worth calling out separately, because the uploads directory is where compromises most often land first: it is the one directory a WordPress site is designed to let strangers write to. A PHP file in uploads has no legitimate reason to exist. That scan finishes quickly enough to run frequently, which is the property that actually matters.
Off your server, and why that is the safer design
Scanning happens on our infrastructure rather than inside your PHP process. The obvious benefit is performance: your visitors never wait behind a scan, and your host never kills a scan for exceeding a resource limit halfway through, which is a real failure mode for in-process scanners on shared hosting, and one that tends to produce a partial scan reported as a complete one.
The less obvious benefit is the important one. Malware that has already compromised a site can disable a security plugin running inside that site. It can deactivate it, filter its output, exclude directories from its scan, or simply return a clean result. A scanner running inside the thing it is inspecting is trusting the thing it is inspecting.
Running externally does not make that impossible, but it raises the bar considerably: the attacker now has to defeat a process they do not control rather than switch off one they do.
What each detection layer is good and bad at
| Layer | Catches | Blind to | Plan |
|---|---|---|---|
| Signature matching | Known, catalogued malware | Anything written after the definitions | Free |
| Heuristic analysis | Novel variants of familiar techniques | Genuinely new techniques; costs false positives | Free |
| File integrity | Any modification to core, plugins or themes | Malicious code in files that were never clean | Free |
| Database scanning | Payloads in rows rather than files | Filesystem-only infections | Free |
| LLM reasoning | Code whose intent is malicious but whose form is new | Nothing catalogued, by design: it is the layer of last resort | Pro |
Malware Scanning - common questions
Is the malware scanner free?
Yes. Signature, heuristic, integrity and database scanning are all in the free plugin on WordPress.org, with no account required. Pro adds the LLM layer and plain-English explanations.
How long does a scan take?
It depends on site size, but a scoped scan (plugins only, or uploads only) typically finishes in a fraction of the time of a full scan. Because scanning runs off your server, a long scan does not slow your site down while it runs.
How often can I scan?
Scheduled daily or weekly on the free plugin, hourly on Pro, plus three on-demand scans a day on free and unlimited on Pro.
Does scanning slow my site down?
No. The analysis runs on our infrastructure, not inside your PHP process, so there is no front-end performance cost while a scan is running.
What happens when it finds something?
You get the file path, the detection layer that flagged it, and a severity rating. On Pro you also get a plain-English explanation and one-click removal; on the free plugin you get the finding and fix it yourself.
Do the malware definitions update?
Yes. Definitions ship with the plugin and update as it updates. Pro additionally connects to the Security Intelligence API for live threat data between releases.
Works with
Database scanning →
Payloads hide in tables, not just files.
Real-time monitoring →
Know the moment a file changes.
One-click removal →
From finding to fixed in seconds.
See it on your own site
The free scan takes under five minutes and tells you the truth.

