WordPress

WordPress monitoring: PHP crashes, JavaScript errors, failed emails and WP-Cron, reported by one plugin

MySentry Monitor is a free plugin that connects a WordPress site to MySentry in about two minutes. It reports fatal errors, JavaScript errors in visitors’ browsers, failed wp_mail() sends and an hourly scheduler heartbeat — after the page has been served, so it never slows the site — and does nothing at all until you paste in a reporting URL.

Install in four steps

  1. In the MySentry panel, add the website and copy its reporting URL (shown once; only a hash is stored).
  2. Upload mysentry-monitor.zip in WordPress (Plugins → Add New → Upload) and activate it.
  3. Open Settings → MySentry, paste the reporting URL, save. Add your site’s address to the panel’s allowed origins so browser errors and analytics are accepted.
  4. Press Send test event. The notice shows the real HTTP result (202 accepted, 401 bad key, or a request that never left the server), and the event appears in the panel — and in Slack, if connected.

Download the plugin (zip). Requires WordPress 5.8+ and PHP 7.4+. GPL-licensed.

What it reports

wp.php.fatal

Fatal errors and uncaught exceptions — the white screen of death — caught by a shutdown handler, with the request URL and PHP version.

wp.php.warning

PHP warnings (E_WARNING), optional: switch the reporting level to “all” when you are chasing a problem, back to fatals only when you are not.

wp.client

JavaScript errors in your visitors’ browsers, with the page URL and browser. Capped at 10 per visitor session and de-duplicated.

email.wp_mail

Every failed wp_mail() send — contact forms, WooCommerce order emails, password resets — feeding the failed-email burst alert.

heartbeat

A WP-Cron heartbeat every hour (or twice daily, or daily), so a site whose scheduler has stopped is reported within your threshold.

analytics

Optional, off by default: the cookieless page-view beacon — page views, unique visitors, time on page, countries, referrers.

Designed never to slow your site

  • Reports are sent after the response, without waiting for a reply (best-effort, non-blocking).
  • Identical errors are suppressed locally for 15 minutes before another report is sent.
  • Browser reporting is capped at 10 errors per visitor session and de-duplicated.
  • Empty fields are omitted from the payload; the plugin tolerates an unreachable server.
  • Nothing runs until a reporting URL is configured — an installed but unconfigured plugin is inert.

Caching, builders, WooCommerce

The plugin works with any theme and any page builder. Fully cached pages are served without running PHP, so PHP errors are captured on the requests that do run it — the admin area, checkout and cart, form submissions, logged-in visitors and cron — while JavaScript errors and analytics are captured on cached pages too. WooCommerce order emails go through wp_mail(), so a broken mail provider shows up as an email-burst alert rather than as a customer complaint a week later.

Heartbeat settings

Choose the pulse frequency (hourly, twice daily, daily) in the plugin. The silence threshold defaults to 26 hours in the panel; for an hourly pulse, three hours is a good setting. The plugin can also own the threshold — switch on “override” and it is sent with every heartbeat — which is handy when you manage many sites and want one setting in the plugin rather than one per panel. Sites that run WordPress’s scheduler from a system cron are covered: the heartbeat runs whenever scheduled events run.

Agencies: one plugin, many sites

Each client site gets its own project in MySentry, its own reporting URL and its own allowed origins, so keys cannot be mixed up and a client site can be removed without touching the others. The panel’s overview shows every site’s live chart on one screen. See pricing for the 20- and 50-site plans.

WordPress questions

What is the ‘failed email burst’ alert?

When three or more email sends fail within ten minutes — a contact form, order confirmations, password resets — MySentry sends one alert about a probable mail outage (provider, DNS, an expired API key). This is the failure that quietly loses enquiries for days: the form says ‘sent’, nothing arrives.

How do I connect a WordPress site?

Create the website in the MySentry panel and copy its reporting URL; install the MySentry Monitor plugin and paste the URL into Settings → MySentry; add your site’s address to the allowed origins in the panel so browser errors and analytics are accepted; press ‘Send test event’. The whole thing takes about two minutes.

What does the WordPress plugin report?

PHP fatal errors and uncaught exceptions (the white screen of death), optionally PHP warnings, JavaScript errors in visitors’ browsers, failed wp_mail() sends (contact forms, WooCommerce emails), an hourly WP-Cron heartbeat, and — if you switch it on — privacy-first page analytics. Every event carries the page URL, PHP version and request method.

Will the plugin slow down my site?

No. Reports are sent after the page has been served, without waiting for a reply, and repeated identical errors are suppressed locally for 15 minutes before they are sent at all. Browser reporting is capped at 10 errors per visitor session. The plugin does nothing until a reporting URL is configured.

Does it work with caching plugins and page builders?

Yes, with any theme or builder. One nuance: a fully cached page is served without running PHP, so PHP errors are captured on the requests that do run it — the admin area, checkout, form submissions, logged-in visitors and cron — while JavaScript errors and analytics are captured on cached pages too.

My site uses a system cron instead of WP-Cron. Does the heartbeat still work?

Yes. The heartbeat is a scheduled WordPress event, so it runs whenever WordPress’s scheduled events run — whether that is triggered by visitors or by a system cron calling wp-cron.php. Set the silence threshold to match your schedule.

Which WordPress and PHP versions are supported?

WordPress 5.8 or newer and PHP 7.4 or newer. The plugin is GPL-licensed and installed by uploading the zip (downloadable from the WordPress page and from the panel); it is not yet listed in the WordPress.org directory.

Connect your WordPress site in two minutes

MySentry is in early access. Leave your email and you’ll get an invitation with founder pricing.

No spam, one email, unsubscribe any time.