{"id":366083,"date":"2026-09-11T10:14:48","date_gmt":"2026-09-11T10:14:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/testomato-monitoring\/"},"modified":"2026-09-11T10:19:03","modified_gmt":"2026-09-11T10:19:03","slug":"testomato-monitoring","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/testomato-monitoring\/","author":23506447,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.3","stable_tag":"1.1.3","tested":"7.1","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Testomato Monitoring","header_author":"Testomato","header_description":"External uptime, content and SSL monitoring for WordPress & WooCommerce. Get an alert before your visitors notice an outage.","assets_banners_color":"2e2731","last_updated":"2026-09-11 10:19:03","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/testomato.com\/wordpress\/","header_author_uri":"https:\/\/testomato.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":16,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.1":{"tag":"1.1.1","author":"testomatocom","date":"2026-09-11 10:14:33","revision":3691180},"1.1.3":{"tag":"1.1.3","author":"testomatocom","date":"2026-09-11 10:19:03","revision":3691188}},"upgrade_notice":{"1.1.1":"<p>Fixes reconnecting an existing Testomato account; widget colours now match the Testomato dashboard.<\/p>","1.1.0":"<p>Adds response-time and uptime charts to the dashboard widget.<\/p>","1.0.0":"<p>First public release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3691179,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3691179,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3691179,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3691179,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.1","1.1.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3691179,"resolution":"1","location":"assets","locale":"","width":1003,"height":465},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3691179,"resolution":"2","location":"assets","locale":"","width":1003,"height":465},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3691179,"resolution":"3","location":"assets","locale":"","width":424,"height":694}},"screenshots":{"1":"The connect form on first install.","2":"Settings page after connecting \u2014 link to dashboard, what is monitored, disconnect.","3":"Dashboard widget \u2014 uptime, a 24-hour response-time trend and a 7-day status chart."}},"plugin_section":[262246],"plugin_tags":[1110,5603,1536,29148,286],"plugin_category":[45,54],"plugin_contributors":[280218],"plugin_business_model":[],"class_list":["post-366083","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-alerts","plugin_tags-monitoring","plugin_tags-ssl","plugin_tags-uptime","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-security-and-spam-protection","plugin_contributors-testomatocom","plugin_committers-testomatocom"],"banners":{"banner":"https:\/\/ps.w.org\/testomato-monitoring\/assets\/banner-772x250.png?rev=3691179","banner_2x":"https:\/\/ps.w.org\/testomato-monitoring\/assets\/banner-1544x500.png?rev=3691179","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/testomato-monitoring\/assets\/icon-128x128.png?rev=3691179","icon_2x":"https:\/\/ps.w.org\/testomato-monitoring\/assets\/icon-256x256.png?rev=3691179","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/testomato-monitoring\/assets\/screenshot-1.png?rev=3691179","caption":"The connect form on first install."},{"src":"https:\/\/ps.w.org\/testomato-monitoring\/assets\/screenshot-2.png?rev=3691179","caption":"Settings page after connecting \u2014 link to dashboard, what is monitored, disconnect."},{"src":"https:\/\/ps.w.org\/testomato-monitoring\/assets\/screenshot-3.png?rev=3691179","caption":"Dashboard widget \u2014 uptime, a 24-hour response-time trend and a 7-day status chart."}],"raw_content":"<!--section=description-->\n<p><strong>Testomato Monitoring<\/strong> connects your WordPress or WooCommerce site to <a href=\"https:\/\/testomato.com\/\">Testomato<\/a> \u2014 an external uptime and content-monitoring service that watches your site from multiple locations around the world.<\/p>\n\n<p><strong>This plugin is an interface to the Testomato service and requires a Testomato account.<\/strong> The monitoring itself runs on Testomato's own servers, not on your site. Creating the account from the plugin is free and starts a 14-day trial; after the trial you need a <a href=\"https:\/\/testomato.com\/pricing\/\">paid plan<\/a> for Testomato to keep checking your site. The plugin's own code is never restricted \u2014 nothing in it is locked, gated or switched off at any point. When a Testomato account is inactive, the service simply stops returning results and the dashboard widget has nothing to show.<\/p>\n\n<p>Why use it:<\/p>\n\n<ul>\n<li><strong>Be the first to know about downtime.<\/strong> Testomato checks your site from independent locations \u2014 as often as every 15 seconds, depending on your plan \u2014 and emails you (or your team Slack channel, or any webhook) the moment something breaks.<\/li>\n<li><strong>Catch silent failures.<\/strong> Plain ping monitors only see HTTP 200. Testomato verifies expected text on the page, the favicon, robots.txt, and HTTP headers \u2014 so a \"successful\" response that ships a blank PHP error gets caught.<\/li>\n<li><strong>WooCommerce-aware.<\/strong> When WooCommerce is active, the cart and checkout URLs are seeded into the project automatically. You can fine-tune what is monitored from the Testomato dashboard.<\/li>\n<li><strong>SSL expiry alerts.<\/strong> Stop discovering your certificate expired from a customer.<\/li>\n<li><strong>No password to manage.<\/strong> Sign up with a one-time code from your inbox \u2014 no password to choose.<\/li>\n<\/ul>\n\n<p>What this plugin does, technically:<\/p>\n\n<ol>\n<li>You enter your email on the plugin's settings page.<\/li>\n<li>The plugin creates a Testomato account and a project for this site, then crawls your homepage to seed an initial set of monitored pages.<\/li>\n<li>A dashboard widget shows the current status \u2014 green \/ yellow \/ red \u2014 together with a 24-hour response-time trend and a 7-day uptime chart.<\/li>\n<li>Everything else is managed from your Testomato dashboard, which the plugin links to directly.<\/li>\n<\/ol>\n\n<p>The dashboard charts are drawn with <a href=\"https:\/\/www.chartjs.org\/\">Chart.js<\/a> v4.5.1 (MIT licensed), bundled with the plugin as <code>js\/chart.min.js<\/code> \u2014 no external scripts or CDNs are loaded. Chart.js is used unmodified, exactly as published on npm; its human-readable source for this version is at <a href=\"https:\/\/github.com\/chartjs\/Chart.js\/tree\/v4.5.1\">github.com\/chartjs\/Chart.js\/tree\/v4.5.1<\/a> and the build is produced by that project's own <code>npm run build<\/code>.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects your site to <strong>Testomato<\/strong> (https:\/\/testomato.com\/), an external monitoring service operated by Testomato s.r.o. The plugin contacts the Testomato API at <strong>https:\/\/testomato.com\/api<\/strong>.<\/p>\n\n<p><strong>What is sent and when:<\/strong><\/p>\n\n<ul>\n<li>When you click <em>Connect<\/em> on the plugin's settings page, the plugin sends the email address you entered to <code>https:\/\/testomato.com\/api\/user\/send-code<\/code> so the service can email you a one-time sign-in code.<\/li>\n<li>When you submit the code, the plugin sends the code, the email address, the WordPress administrator's first\/last name (sourced from your WordPress profile, falling back to the site name) and your WordPress and WooCommerce version numbers to <code>https:\/\/testomato.com\/api\/user\/register<\/code> to create your Testomato account. The API token returned by that call is then exchanged for a short-lived access token at <code>https:\/\/testomato.com\/api\/authenticate<\/code>.<\/li>\n<li>The plugin asks the AI test generator at <code>https:\/\/testomato.com\/api\/ai\/suggest-tests<\/code> to suggest pages to monitor, sending only the public home URL of your site.<\/li>\n<li>The project is created at <code>https:\/\/testomato.com\/api\/project\/create<\/code>, which receives the site name, the site's home URL and the suggested pages. When no suggestions are available, the monitored URLs (the home URL, plus the WooCommerce cart and checkout URLs when WooCommerce is active) are sent to <code>https:\/\/testomato.com\/api\/project\/{id}\/createTests<\/code> instead.<\/li>\n<li>While connected, the plugin periodically requests <code>https:\/\/testomato.com\/api\/project\/{id}\/simple-status<\/code>, <code>https:\/\/testomato.com\/api\/project\/{id}\/uptime<\/code> and <code>https:\/\/testomato.com\/api\/project\/{id}\/responseTimes<\/code> to draw the dashboard widget, and <code>https:\/\/testomato.com\/api\/user\/{id}\/subscription<\/code> to show how many days of the trial are left. These calls send only the project or user identifier.<\/li>\n<\/ul>\n\n<p><strong>No content of your posts, users, comments or media is ever sent to Testomato.<\/strong> Testomato then crawls only the public pages of your site from its own servers, the same way a search-engine bot would.<\/p>\n\n<p>Service terms: https:\/\/testomato.com\/terms-of-service\/ \u2014 Privacy policy: https:\/\/testomato.com\/privacy-policy\/<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to the <code>\/wp-content\/plugins\/testomato-monitoring<\/code> directory, or install it through the Plugins screen in WordPress.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Go to <strong>Settings \u2192 Testomato Monitoring<\/strong>, confirm the email address and click <strong>Connect<\/strong>.<\/li>\n<\/ol>\n\n<p>That's it \u2014 within a minute the dashboard widget shows the first status.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20send%20any%20data%20off-site%3F\"><h3>Does this plugin send any data off-site?<\/h3><\/dt>\n<dd><p>Yes \u2014 that is its purpose. When you click Connect, the plugin sends your email address, the WordPress administrator's name, your WordPress and WooCommerce version numbers and your site's home URL to the Testomato API, and stores the returned tokens in the WordPress options table. The <em>External services<\/em> section above lists every endpoint and what each call carries. No content of your site is sent. Testomato then crawls the public pages of your site from its own infrastructure, exactly as a search-engine bot would.<\/p><\/dd>\n<dt id=\"do%20i%20need%20a%20testomato%20account%3F\"><h3>Do I need a Testomato account?<\/h3><\/dt>\n<dd><p>Yes \u2014 the monitoring runs on Testomato's servers, so an account is required. You do not need to create it beforehand: clicking Connect creates one for you, with a free 14-day trial. Sign-in is by a one-time code emailed to you \u2014 no password.<\/p><\/dd>\n<dt id=\"i%20already%20have%20a%20testomato%20account.%20can%20i%20use%20it%3F\"><h3>I already have a Testomato account. Can I use it?<\/h3><\/dt>\n<dd><p>Yes. The emailed sign-in code can only create a <em>new<\/em> account, so for an existing one the connect form offers a second path: paste that account's Testomato API token (Testomato dashboard \u2192 account settings \u2192 API token) into <strong>Reconnect with API token<\/strong>. If your account already monitors this site, the plugin connects to that existing project instead of creating a second one; otherwise the site is added as a new project.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20the%20free%20trial%20ends%3F\"><h3>What happens when the free trial ends?<\/h3><\/dt>\n<dd><p>Testomato stops checking your site until you pick a <a href=\"https:\/\/testomato.com\/pricing\/\">plan<\/a>, and the dashboard widget has nothing left to display. The plugin itself is unaffected \u2014 no part of its code is disabled, restricted or gated at any point, before or after the trial. It is an interface to an external service, and the service is what the plan pays for.<\/p><\/dd>\n<dt id=\"can%20i%20monitor%20more%20than%20just%20the%20homepage%3F\"><h3>Can I monitor more than just the homepage?<\/h3><\/dt>\n<dd><p>Yes. After connecting, open the Testomato dashboard from the plugin page \u2014 you can add any URL, configure expected text, response time thresholds, and notification channels there.<\/p><\/dd>\n<dt id=\"how%20do%20i%20disconnect%3F\"><h3>How do I disconnect?<\/h3><\/dt>\n<dd><p>Settings \u2192 Testomato Monitoring \u2192 Disconnect. This removes the tokens from this site only; your project remains in your Testomato account.<\/p><\/dd>\n<dt id=\"does%20it%20slow%20down%20my%20site%3F\"><h3>Does it slow down my site?<\/h3><\/dt>\n<dd><p>No. The plugin only runs in <code>wp-admin<\/code>. Front-end pages are not touched.<\/p><\/dd>\n<dt id=\"where%20is%20the%20data%20stored%3F\"><h3>Where is the data stored?<\/h3><\/dt>\n<dd><p>In the WordPress options table, under the <code>testomato_monitoring_*<\/code> prefix. Uninstalling the plugin removes everything via <code>uninstall.php<\/code>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Reconnecting an existing Testomato account now accepts the API token shown in your Testomato account settings; connecting issues this site its own long-lived token, which replaces the account's previous one.<\/li>\n<li>Reconnecting with a Testomato API token now finds the project your account already has for this site instead of trying to create a second one, which failed once your plan's project limit was reached.<\/li>\n<li>Those reconnect problems now report what actually went wrong, like every other connection error.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Connecting an email that already has a Testomato account no longer sends a verification code first. The plugin now recognises the existing account straight away and offers the API token field, instead of mailing a code that could never be used.<\/li>\n<li>That message is no longer shown as an error \u2014 having an account already is a normal case, not a failure.<\/li>\n<li>Connection problems now report what actually went wrong. Errors were being returned as HTTP 502, whose body some proxies and security layers replace, so every failure looked like a timeout no matter what caused it.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Reconnecting an existing Testomato account now accepts the API token shown in your Testomato account settings; connecting issues this site its own long-lived token, which replaces the account's previous one.<\/li>\n<li>Reconnecting with a Testomato API token now finds the project your account already has for this site instead of trying to create a second one, which failed once your plan's project limit was reached.<\/li>\n<li>Renamed \"API key\" to \"Testomato API token\" everywhere, matching the name Testomato itself uses, and the help link now points straight at the token.<\/li>\n<li>The widget now uses the same colours as the Testomato dashboard \u2014 the response-time chart is green instead of orange, which read as a failure, and the orange wash behind it is gone.<\/li>\n<li>All admin JavaScript is now enqueued instead of printed inline, and the bundled Chart.js was updated to 4.5.1.<\/li>\n<li>Corrected the terms and privacy links in this readme.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Dashboard widget charts: a 24-hour response-time trend and a colour-coded 7-day uptime bar chart, drawn with the bundled Chart.js (MIT) \u2014 no CDN.<\/li>\n<li>Replaced the inline status sparkline with the richer interactive charts (hover tooltips).<\/li>\n<li>The widget now shows how many days of the free trial are left, and links to the plans once it ends.<\/li>\n<li>Connect errors now show what actually went wrong instead of a generic network error.<\/li>\n<li>Signups report that they came from this plugin, together with the WordPress and WooCommerce versions.<\/li>\n<li>Uninstalling now removes every option and cached value the plugin ever stored, including those written by earlier versions.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Connect-via-email onboarding (no password to manage).<\/li>\n<li>Settings page with one-click dashboard link (auto-login token).<\/li>\n<li>Dashboard status widget with colored indicator and manual refresh.<\/li>\n<li>WooCommerce-aware URL seeding for cart and checkout.<\/li>\n<li>Plugins-page Settings shortcut and documentation links.<\/li>\n<\/ul>","raw_excerpt":"External uptime, content and SSL monitoring by Testomato. Requires a Testomato account \u2014 free 14-day trial, paid plans after.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/366083","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=366083"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/testomatocom"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=366083"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=366083"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=366083"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=366083"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=366083"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=366083"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}