Title: SPP Guardian Security &amp; Maintenance
Author: talhastackbuggs
Published: <strong>August 31, 2026</strong>
Last modified: August 31, 2026

---

Search plugins

![](https://s.w.org/plugins/geopattern-icon/spp-guardian-security-maintenance.svg)

# SPP Guardian Security & Maintenance

 By [talhastackbuggs](https://profiles.wordpress.org/talhastackbuggs/)

[Download](https://downloads.wordpress.org/plugin/spp-guardian-security-maintenance.2.0.2.zip)

 * [Details](https://wordpress.org/plugins/spp-guardian-security-maintenance/#description)
 * [Reviews](https://wordpress.org/plugins/spp-guardian-security-maintenance/#reviews)
 *  [Installation](https://wordpress.org/plugins/spp-guardian-security-maintenance/#installation)
 * [Development](https://wordpress.org/plugins/spp-guardian-security-maintenance/#developers)

 [Support](https://wordpress.org/support/plugin/spp-guardian-security-maintenance/)

## Description

SPP Guardian is a standalone, local-first WordPress security and maintenance plugin
built for site owners who need clear explanations rather than raw technical alerts.

Every security finding answers five questions:

 * What happened?
 * Where is it?
 * How serious is it?
 * How could it affect the website?
 * What is the safest next action?

The scanner combines official WordPress core checksums, local file-change baselines,
offline signatures, code and path heuristics, selected database inspection, administrator-
account monitoring, cron inspection, update awareness, safe quarantine, restore,
and verified core-file repair.

No account, licence server, telemetry service, or cloud scanner is required. The
plugin does not automatically delete suspicious content.

#### Main features

 * On-demand and scheduled resumable scans.
 * Standard and low-resource scan profiles.
 * WordPress core checksum verification.
 * WordPress.org-hosted plugin checksum verification with cached official data.
 * Local file integrity baselines.
 * PHP-in-uploads and disguised-executable detection.
 * Web-shell markers, decoded execution chains, command-execution patterns, hidden
   iframes, and obfuscated JavaScript checks.
 * Selected posts, comments, options, administrator, and cron inspection.
 * Separate severity and detection-confidence values.
 * Protected quarantine with hash verification and restoration.
 * Official-package repair for eligible WordPress core files.
 * Update, PHP, cron, HTTPS, file-editor, debug-display, inactive-plugin, and scan-
   freshness maintenance checks.
 * Rate-limited email alerts that never contain executable evidence.
 * Audit log, REST endpoints, and WP-CLI commands.
 * Conservative uninstall option: keep data by default or delete everything explicitly.
 * Optional Protection & Firewall module, off by default, with independent switches
   for brute-force login protection, GET/POST request filtering, REST API rate limiting
   and anonymous user-enumeration blocking, and XML-RPC restriction.
 * Manual IP allow and block lists, an activity log of what the firewall did and
   why, and a one-click unlock for an automatic login lockout.

#### Important limitation

No malware scanner can guarantee detection of every malicious file, database payload,
zero-day exploit, hosting compromise, encrypted payload, or attacker-controlled 
server condition. SPP Guardian provides layered risk detection and guided remediation.
It does not replace off-site backups, hosting security, server EDR, a WAF/CDN, log
monitoring, or professional incident response.

### External services

SPP Guardian works locally without telemetry or a SPP Guardian cloud service.

When core or WordPress.org plugin checksum verification runs, WordPress may request
checksum data for the installed WordPress version and locale from the official WordPress.
org API. Core checksum requests identify the WordPress version and locale. Plugin
checksum requests identify the public plugin slug and installed version. SPP Guardian
does not send site files or database content.

When an authorised administrator explicitly chooses “Repair from official package”,
SPP Guardian downloads the matching WordPress package from an official WordPress.
org download URL, extracts the requested file locally, verifies it against the official
checksum, backs up the current file, writes the replacement, and verifies the result.

PHP maintenance guidance links to the official PHP supported-versions page only 
when the administrator chooses Review. No data is sent by SPP Guardian merely for
displaying the link.

### WP-CLI

 * `wp sppgusem-guardian status --format=json`
 * `wp sppgusem-guardian scan --profile=standard --wait`
 * `wp sppgusem-guardian findings --status=open --format=table`
 * `wp sppgusem-guardian quarantine <finding-id> --yes`

### REST API

Authenticated routes use the namespace `sppgusem/v1` and require SPP Guardian capabilities.
Available routes include status, scans, findings, quarantine, core repair, restore,
resolve, ignore, and settings. If the Protection & Firewall module’s REST rate limiting
or authentication requirement is enabled, those settings apply uniformly to all 
REST API traffic, including requests to these SPP Guardian routes.

### Privacy

Normal scans run locally. SPP Guardian stores scan metadata, file paths, hashes,
short redacted excerpts, issue records, protected remediation copies, settings, 
and audit events. It does not store passwords, cookies, full API tokens, or complete
malicious payloads in ordinary findings. Protected copies remain on the server until
restored or removed during an explicitly configured uninstall.

When the optional Protection & Firewall module is enabled, SPP Guardian also records
the visitor IP address, request method, a short redacted excerpt of the request 
path, and the matched rule for requests it blocks or logs, so the activity can be
reviewed and understood later. This activity log is stored locally, is never sent
anywhere, and is pruned automatically after the configured retention period.

## Installation

 1. In WordPress, open Plugins > Add New > Upload Plugin.
 2. Select the SPP Guardian ZIP file and choose Install Now.
 3. Activate SPP Guardian Security & Maintenance.
 4. Open SPP Guardian > Scan Centre and run the first full scan.
 5. Review SPP Guardian > Maintenance and configure the schedule and email recipient
    under Settings.
 6. On low-traffic sites, configure a real server cron to call `wp-cron.php` regularly.

Before quarantining or repairing production files, confirm that a separate, tested
backup exists.

## FAQ

### Does SPP Guardian automatically delete malware?

No. Automatic deletion is unsafe because false positives and active component dependencies
can break a site. SPP Guardian backs up and quarantines a confirmed file only after
an authorised user approves the action.

### Does a critical alert always mean the site is compromised?

No. Severity describes potential harm. Confidence describes how certain the detector
is. Review both values and the evidence before acting.

### Why are normal file changes shown?

The local baseline can report changes to code and configuration files. These are
low severity unless another rule identifies suspicious behaviour or an official 
checksum fails. Ignoring a baseline-only change explicitly accepts the current file
as the new local reference.

### Can it scan very large sites?

Scanning is resumable and divided into small batches. Very large files are sampled
or skipped according to the configured limit, and coverage information is recorded.
WP-CLI is recommended for large or business-critical sites.

### Is it a web application firewall?

SPP Guardian includes an optional, application-layer Protection & Firewall module:
brute-force login lockout, GET/POST request filtering against common attack patterns,
REST API rate limiting and anonymous user-enumeration blocking, and XML-RPC restriction.
It runs inside WordPress itself, so it complements rather than replaces a network
or edge WAF, a CDN, or your host’s own firewall, and it cannot guarantee blocking
every attack. The module is off by default and the GET/POST filters start in a log-
only mode so you can review real traffic in the firewall activity log before switching
them to block.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“SPP Guardian Security & Maintenance” is open source software. The following people
have contributed to this plugin.

Contributors

 *   [ talhastackbuggs ](https://profiles.wordpress.org/talhastackbuggs/)

[Translate “SPP Guardian Security & Maintenance” into your language.](https://translate.wordpress.org/projects/wp-plugins/spp-guardian-security-maintenance)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/spp-guardian-security-maintenance/),
check out the [SVN repository](https://plugins.svn.wordpress.org/spp-guardian-security-maintenance/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/spp-guardian-security-maintenance/)
by [RSS](https://plugins.trac.wordpress.org/log/spp-guardian-security-maintenance/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 2.0.2

 * Resolved Plugin Check SQL preparation findings and refined custom-table query
   handling.
 * Removed the variable-path autoloader and switched to explicit trusted includes.
 * Removed unnecessary SELECT-star queries and query-in-loop patterns identified
   by readiness scanning.
 * Updated Tested up to for WordPress 7.1.

#### 2.0.1

 * Security hardening and WordPress.org review remediation.
 * Uses configured uploads/plugin paths instead of assuming default wp-content locations.
 * Uses the unique `sppgusem_` / `SPPGUSEM` prefix family for plugin-owned identifiers,
   including the `sppgusem/v1` REST namespace and `wp sppgusem-guardian` CLI command.

#### 2.0.0

 * Renamed from GuardianWP Security & Maintenance to SPP Guardian Security & Maintenance.
   New slug (`spp-guardian-security-maintenance`), text domain, PHP namespace/classes,
   internal database table/option/transient/capability/cron-hook prefixes, REST 
   namespace (`spp-guardian/v1`, was `guardianwp/v1`), WP-CLI command (`wp spp-guardian`,
   was `wp guardianwp`), and admin menu slugs.
 * If you have GuardianWP Security & Maintenance installed: deactivate it, then 
   install and activate SPP Guardian Security & Maintenance — your scan history,
   findings, quarantined files, settings, and capabilities are imported automatically.
   An admin notice guides you through this if the old plugin is still active when
   you activate the new one. Any login lockout active at the exact moment of the
   upgrade is released and brute-force counters restart; a scan already in progress
   is not resumed.
 * The `guardianwp/v1` REST namespace and `wp guardianwp` CLI command are retired
   with no compatibility alias — update any script or integration that calls them
   directly. The three extension action hooks (`scan_completed`, `file_quarantined`,`
   daily_maintenance`) keep working under their old `guardianwp_*` names as deprecated
   aliases through the 2.x line.
 * Fixed: a REST `POST /settings` request that only sends the field(s) it wants 
   to change no longer resets every other setting to its default.
 * Fixed: the REST findings endpoint now returns a file path relative to the WordPress
   root, matching what the dashboard already showed, instead of the full server 
   filesystem path.
 * Fixed: quarantine’s own-plugin-directory check no longer over-matches a sibling
   directory whose name merely starts with the same string as the plugin’s own directory.
 * Addressed every finding from the official WordPress.org Plugin Check tool: removed
   a discouraged `load_plugin_textdomain()` call, added missing translator comments,
   and documented the plugin’s direct-database-query usage against its own tables.

#### 1.1.0

 * Refreshed dashboard visual design: section navigation, restyled hero and metric
   cards, and clearer panels and tables.
 * New optional Protection & Firewall module, off by default: brute-force login 
   lockout, GET/POST request filtering, REST API rate limiting, anonymous REST user-
   enumeration and ?author= probing blocking, and XML-RPC restriction, each independently
   switchable.
 * Manual IP allow/deny lists, a firewall activity log, and one-click unlock for
   an active login lockout.

#### 1.0.0

 * Initial standalone release.
 * Resumable file and database scanning.
 * Offline detection rules and core checksum verification.
 * File baselines, issue classification, quarantine, restore, and core repair.
 * Maintenance dashboard, email alerts, REST API, WP-CLI, and audit logging.

## Meta

 *  Version **2.0.2**
 *  Last updated **20 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.4 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [integrity](https://wordpress.org/plugins/tags/integrity/)[maintenance](https://wordpress.org/plugins/tags/maintenance/)
   [malware scanner](https://wordpress.org/plugins/tags/malware-scanner/)[quarantine](https://wordpress.org/plugins/tags/quarantine/)
   [security](https://wordpress.org/plugins/tags/security/)
 *  [Advanced View](https://wordpress.org/plugins/spp-guardian-security-maintenance/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/spp-guardian-security-maintenance/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/spp-guardian-security-maintenance/reviews/)

## Contributors

 *   [ talhastackbuggs ](https://profiles.wordpress.org/talhastackbuggs/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/spp-guardian-security-maintenance/)