Directory / plugin

Keepwatch – Site Health & Uptime Monitor

v0.6.1 · by wpxlab

Local site health, update and error monitoring for WordPress. Optional WooCommerce checks switch on when a store is detected.

View on WordPress.org

About this plugin

Keepwatch shows the health of your site in one place: outdated plugins and themes, PHP fatal errors,
WordPress Site Health results, scheduled task (WP-Cron) problems, database and environment warnings.
If WooCommerce is active, store-specific checks (template overrides, failed or stuck scheduled actions, HPOS sync)
are added automatically. WooCommerce is not required.

Everything runs on your own site. Keepwatch does not need an account and sends nothing off-site by default.
Connecting to the optional WPXLab cloud (outside uptime checks, history, multi-site overview) is opt-in and
requires your explicit consent; see External services.

Features

  • Local dashboard under Tools Keepwatch (no account required)
  • WordPress Dashboard widget with open issues at a glance
  • PHP fatal error capture with redacted paths and secrets
  • Change log of plugin, theme and WordPress updates; a fatal error that starts soon after an update is marked as a possible link
  • Core, plugin and theme update status
  • WordPress Site Health critical and recommended counts
  • WP-Cron overdue task detection (including DISABLE_WP_CRON sites)
  • “Discourage search engines” visibility warning
  • Environment checks: PHP support, HTTPS, debug display, memory limit, file editor
  • Database checks: autoload size, expired transients, approximate DB size
  • Server checks: disk space, OPcache, persistent object cache
  • Security signals: new administrators, role grants, plugin activate/deactivate
  • Inventory strip: WordPress/PHP/MySQL/WooCommerce/theme/plugin counts
  • Backup monitoring: is a backup plugin active and how old is the last completed backup
  • Optional WooCommerce module: failed and stuck Action Scheduler jobs, outdated template overrides, HPOS sync
  • Optional weekly summary and critical-issue emails via your site’s wp_mail (off by default)
  • Translation-ready: every string can be translated on translate.wordpress.org

External services

Keepwatch works fully without any external service. All checks run on your site.

Optional: WPXLab cloud (wpxlab.com). Nothing is sent unless an administrator pastes a connection code under
Tools Keepwatch WPXLab cloud and accepts the consent screen. When connecting, Keepwatch sends the site address,
an anonymous installation id, a public key and the WordPress, PHP and Keepwatch versions to
https://wpxlab.com/api/v1/keepwatch/enrollments. WPXLab then calls /wp-json/keepwatch/v1/verify on your site once
to confirm the address; the endpoint only answers during your own connect request. After that, Keepwatch sends a report
hourly through WP-Cron (never during page loads) to https://wpxlab.com/api/v1/keepwatch/reports: the id, status and
short headline of each check, plus WordPress, PHP, Keepwatch and WooCommerce versions. If WooCommerce is active, the
report also contains the number of placed orders and failed payments per hour for the last 7 days (totals only), used
for “orders stopped” and “failed payments spiking” alerts. It also contains the public addresses of the shop, cart, checkout and newest
product page, which the cloud opens from outside to check that they work. The report also lists the plugin, theme and
WordPress changes of the last 7 days (name, slug and version numbers) and, for PHP fatal errors, only a fingerprint,
the plugin or theme they came from and when they started; error messages and file paths stay on your site.
Check descriptions, user names,
file paths, e-mail and IP addresses are not sent; WooCommerce data never includes customer data. Reports are kept for
your plan’s history period and then deleted.
Only if an administrator also allows it (on the same screen, or later with “Allow sending”), the report includes the
installed plugins and themes (name, slug, version, active, available update) and four site metrics (PHP memory limit,
size of autoloaded options, database size, number of overdue scheduled tasks).
After a report, Keepwatch may fetch its settings from https://wpxlab.com/api/v1/keepwatch/config: only how often to
report and which of the optional data above to include. The settings are signed by WPXLab and applied only if the
signature checks out; WPXLab cannot run code, change files or read your database through this.
Disconnecting is one click and stops all sending immediately.

  • Service: WPXLab, https://wpxlab.com
  • Terms of service: https://wpxlab.com/terms
  • Privacy policy: https://wpxlab.com/privacy

Optional email alerts use your WordPress site’s normal mail configuration (wp_mail). That mail may be delivered by
whatever SMTP or hosting mail setup you already use; Keepwatch does not call a third-party API for those emails.

Privacy

Keepwatch stores data in your WordPress database (for example: recorded PHP fatal errors with redacted paths,
optional security-event notes, and your alert settings). Nothing is transmitted to WPXLab or any other third party
unless you connect the optional WPXLab cloud (see External services). Uninstalling Keepwatch removes the options it created.

Development

Source code ships inside the plugin zip (PHP and CSS only; no minified or obfuscated assets). There is no remote
update channel and no build step required to run the plugin.

Plugin tags