Description
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.
Screenshots




Installation
- Upload the
keepwatchfolder to/wp-content/plugins/, or install the ZIP via Plugins Add New Upload. - Activate Keepwatch through the Plugins screen.
- Open Tools Keepwatch to see the local health dashboard.
- (Optional) Enable email alerts under Tools Keepwatch Notifications.
FAQ
-
Does Keepwatch require WooCommerce?
-
No. Keepwatch is a general WordPress health plugin. When WooCommerce is active, extra store checks turn on automatically.
-
Does it send data anywhere?
-
No. Checks and the fatal error list stay on your site. The optional weekly or critical-issue emails are sent only with
WordPresswp_mailthrough your own site’s mail configuration, and only if you turn them on. -
Will features be locked behind a license?
-
No. Everything in this plugin runs locally and stays free.
-
How do I clear recorded PHP errors?
-
Open Tools Keepwatch PHP errors and use “Clear error list”.
-
Which languages are available?
-
Keepwatch is written in English and is fully translatable. Translations are contributed on translate.wordpress.org and WordPress installs them automatically for your site language.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Keepwatch – Site Health & Uptime Monitor” is open source software. The following people have contributed to this plugin.
Contributors“Keepwatch – Site Health & Uptime Monitor” has been translated into 1 locale. Thank you to the translators for their contributions.
Translate “Keepwatch – Site Health & Uptime Monitor” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
0.6.1
- New setting under Notifications: choose whether deleting the plugin also deletes its data. Deactivating never deletes anything.
- Health score ring is drawn with SVG instead of an inline style; stylesheet gets a table of contents and section markers.
0.6.0
- WPXLab cloud: connection handling tidied up. No change in what is sent or when.
0.5.0
- WPXLab cloud: report frequency and optional data can be set from the WPXLab dashboard. Settings arrive signed and only a fixed list of settings is accepted.
- WPXLab cloud (optional, needs a separate “Allow sending”): installed plugins/themes with available updates and four site metrics, so updates can be tracked across sites.
- WooCommerce: new checks for webhooks that WooCommerce switched off after repeated delivery failures, and for products out of stock or running low (counts only).
0.4.1
- Translations are now delivered by translate.wordpress.org language packs; the plugin no longer bundles or loads its own language files.
0.4.0
- New: change log. Plugin, theme and WordPress updates, installs, activations and theme switches are recorded locally (also updates made by FTP or WP-CLI, found on the next hourly comparison).
- New: a PHP fatal error that starts within 24 hours after the same plugin or theme changed, or within 60 minutes after any change, is marked as a possible link on Tools Keepwatch Errors.
- Cloud: the report includes the last 7 days of changes and the source and start time of fatal errors (no messages or paths), for “error after update” alerts.
0.3.1
- New: with WooCommerce and a cloud connection, the public shop, cart, checkout and newest product page addresses are added to the report so the WPXLab cloud can check from outside that the buying path works.
0.3.0
- New: backup monitoring. Detects UpdraftPlus, BackWPup, WPvivid, All-in-One WP Migration, Duplicator, Jetpack VaultPress Backup and BlogVault and warns when the last completed backup is older than 7 days (critical after 30). Keepwatch does not take backups itself.
- New: with WooCommerce and a cloud connection, hourly order and failed-payment totals (counts only) are added to the report so the WPXLab cloud can alert you when orders stop or failed payments spike.
0.2.0
- New: optional connection to the WPXLab cloud with an explicit consent screen and one-click disconnect.
- New: redesigned admin screen with tabs (Overview, Checks, PHP errors, Notifications, WPXLab cloud), a health score and status filters.
- New: hourly check summaries to the connected cloud through WP-Cron with retry and backoff (only after consent).
- Fix: fewer false security alerts, cached database size measurement and more reliable email scheduling.
- Fix: a PHP TypeError on admin pages caused by the settings sync hook receiving an empty argument.
- Uninstall and deactivation also remove the cloud connection options and scheduled report events.
0.1.0
- Local health checks, fatal error capture, dashboard and admin widget.
- Database, server and security checks; inventory strip.
- Optional WooCommerce checks (Action Scheduler, template overrides, HPOS sync).
- Optional weekly and critical-issue email digests via wp_mail.
- Translations: tr_TR, ru_RU, fr_FR, it_IT.
