[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fNn6CV5ZqtmPfvyvZryY8ASniShzubYHKG1Z3eA_33n0":3,"$fG-KocVk-etN6gOIQcZqhlJCA94lKsl8gifRIRtHy_9g":233,"$fTuWFQrRnNhgEry25b1OhcFswvihak_oyGT4KsvUOY_Y":238},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":11,"num_ratings":11,"last_updated":13,"tested_up_to":14,"requires_at_least":15,"requires_php":16,"tags":17,"homepage":23,"download_link":24,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27,"discovery_status":28,"vulnerabilities":29,"developer":30,"crawl_stats":26,"alternatives":36,"analysis":132,"fingerprints":211},"semonto-website-monitor","Semonto – Uptime monitoring, Broken Links, SSL and Lighthouse","1.1.6","CodingMammoth","https:\u002F\u002Fprofiles.wordpress.org\u002Fcodingmammoth\u002F","\u003Cp>Semonto watches your website 24\u002F7 and alerts you if there is a problem.\u003Cbr \u002F>\nThis way, you can fix the issue before anyone notices.\u003C\u002Fp>\n\u003Cp>With Semonto, you can be sure that:\u003Cbr \u002F>\n* Your website is up\u003Cbr \u002F>\n* Pages are loading fast enough\u003Cbr \u002F>\n* All links and buttons are working\u003Cbr \u002F>\n* The security certificate is valid (HTTPS)\u003Cbr \u002F>\n* Your server is healthy\u003C\u002Fp>\n\u003Cp>This WordPress plugin connects your website to Semonto.\u003Cbr \u002F>\nAn active \u003Ca href=\"https:\u002F\u002Fsemonto.com\" rel=\"nofollow ugc\">Semonto account\u003C\u002Fa> is required.\u003C\u002Fp>\n\u003Cp>The results are displayed in the Semonto dashboard.\u003C\u002Fp>\n\u003Cp>You will also receive a monthly uptime report with a detailed\u003Cbr \u002F>\nperformance of your website.\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Uptime monitoring:\n\u003Cul>\n\u003Cli>Know if your website is reachable.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Broken link monitoring\n\u003Cul>\n\u003Cli>Know if all buttons and links are working.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Lighthouse Monitoring\n\u003Cul>\n\u003Cli>Instead of manually performing Lighthouse tests, automate your testing\u003Cbr \u002F>\nand receive a notification if a website or page is not performing well.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>HTTPS and SSL monitoring\n\u003Cul>\n\u003Cli>Make sure the connection is secure (the green padlock).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Mixed content monitoring\n\u003Cul>\n\u003Cli>Monitor if all the elements on your website are secure\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Server Health monitoring\n\u003Cul>\n\u003Cli>Test whether your server is healthy (load, database, etc.).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Content checks\n\u003Cul>\n\u003Cli>Check whether your website is not returning a blank page or if\u003Cbr \u002F>\nsomeone has not accidentally deleted something important from\u003Cbr \u002F>\nyour code.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Other cool things you can do in Semonto\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Generate a PDF performance report\u003C\u002Fli>\n\u003Cli>Add team members to your account\u003C\u002Fli>\n\u003Cli>Create your own server tests\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cp>This plugin is officially developed by Semonto.\u003C\u002Fp>\n\u003Ch3>Questions and Support\u003C\u002Fh3>\n\u003Cp>Find more info, help pages and our contact details\u003Cbr \u002F>\non \u003Ca href=\"https:\u002F\u002Fsemonto.com\u002F\" rel=\"nofollow ugc\">Semonto\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>Links:\u003Cbr \u002F>\n– \u003Ca href=\"https:\u002F\u002Fsemonto.com\u002Fservice\" rel=\"nofollow ugc\">Terms Of Service\u003C\u002Fa>\u003Cbr \u002F>\n– \u003Ca href=\"https:\u002F\u002Fsemonto.com\u002Fprivacy\" rel=\"nofollow ugc\">Privacy Policy\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Development and issues\u003C\u002Fh3>\n\u003Cp>Feel free to file issues, or suggest code changes in our  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcodingmammoth\u002FSemontoWordpress\" rel=\"nofollow ugc\">Github Repo\u003C\u002Fa>\u003C\u002Fp>\n","Semonto watches the health of your website and server. Get notified when  something is wrong, so you can fix the issue before anyone notices.",0,1656,"2025-05-15T09:22:00.000Z","6.8.6","5.0","7.4",[18,19,20,21,22],"broken-links","semonto","server-health","ssl","uptime","","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsemonto-website-monitor.1.1.6.zip",92,null,"2026-07-22T17:31:50.256Z","no_bundle",[],{"slug":31,"display_name":7,"profile_url":8,"plugin_count":32,"total_installs":11,"avg_security_score":25,"avg_patch_time_days":33,"trust_score":34,"computed_at":35},"codingmammoth",1,30,88,"2026-08-29T12:30:00.206Z",[37,57,74,97,113],{"slug":38,"name":39,"version":40,"author":41,"author_profile":42,"description":43,"short_description":44,"active_installs":33,"downloaded":45,"rating":46,"num_ratings":47,"last_updated":48,"tested_up_to":49,"requires_at_least":50,"requires_php":16,"tags":51,"homepage":55,"download_link":56,"security_score":46,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"lukstack-uptime-monitor","LukStack Uptime Monitor","2.4.0","lukmeyer","https:\u002F\u002Fprofiles.wordpress.org\u002Flukmeyer\u002F","\u003Cp>LukStack Uptime Monitor is a lightweight yet powerful website monitoring solution built for agencies, freelancers, and web professionals who manage multiple websites.\u003C\u002Fp>\n\u003Cp>Track uptime, response times, and SSL certificate expiration for all your client sites from a single WordPress dashboard. When something goes wrong, you will know immediately through email notifications or webhook integrations with Slack, Discord, and other services.\u003C\u002Fp>\n\u003Ch4>Reliable Monitoring Out of the Box\u003C\u002Fh4>\n\u003Cp>Unlike plugins that rely on WordPress Cron (which only runs when someone visits your site), LukStack Uptime Monitor includes a \u003Cstrong>built-in remote cron server\u003C\u002Fstrong> operated by the plugin author and hosted on AWS in the EU (Frankfurt) region. Your site is automatically registered on plugin activation and the server triggers your monitoring checks every minute — reliably, even on low-traffic sites. Aggregate environment data (WordPress\u002FPHP versions, locale, site count) is transmitted to keep the service compatible; no admin emails, user accounts, or visitor data are sent. See the Privacy section for the full field list. No third-party cron services like cron-job.org or UptimeRobot required.\u003C\u002Fp>\n\u003Ch4>Free Plan Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Uptime Monitoring\u003C\u002Fstrong> – Automatic checks every 15 minutes\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Monitor up to 2 websites\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Webhook Support\u003C\u002Fstrong> – Native integration with Slack, Discord, Microsoft Teams, and generic webhooks\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Manual Checks\u003C\u002Fstrong> – Test any site instantly with one click\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Dashboard Widget\u003C\u002Fstrong> – Quick status overview right on your WordPress dashboard\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Pro Plan Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Everything in Free\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Monitor up to 100 websites\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>5 minute check interval\u003C\u002Fstrong> for faster downtime detection\u003C\u002Fli>\n\u003Cli>\u003Cstrong>SSL Certificate Monitoring\u003C\u002Fstrong> – Get warned before certificates expire\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Website Performance Tracking\u003C\u002Fstrong> – Monitor response times with millisecond precision\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Who Is This For?\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Web Agencies\u003C\u002Fstrong> managing client websites\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Freelancers\u003C\u002Fstrong> maintaining multiple projects\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Site Owners\u003C\u002Fstrong> who want peace of mind\u003C\u002Fli>\n\u003Cli>\u003Cstrong>DevOps Teams\u003C\u002Fstrong> needing a simple monitoring solution\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>How It Works\u003C\u002Fh4>\n\u003Col>\n\u003Cli>Add a website URL to monitor\u003C\u002Fli>\n\u003Cli>LukStack Uptime Monitor checks the site automatically\u003C\u002Fli>\n\u003Cli>If the site goes down or returns an error, you get notified\u003C\u002Fli>\n\u003Cli>When the site recovers, you get a recovery notification\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>Webhook Integrations\u003C\u002Fh4>\n\u003Cp>LukStack Uptime Monitor automatically formats notifications for popular services:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Slack\u003C\u002Fstrong> – Rich message attachments with color-coded severity\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Discord\u003C\u002Fstrong> – Embedded messages with status information\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Microsoft Teams\u003C\u002Fstrong> – Via generic webhook connector\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Zapier \u002F Make\u003C\u002Fstrong> – JSON payload for custom automations\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Privacy\u003C\u002Fh4>\n\u003Cp>LukStack Uptime Monitor stores the URLs you choose to monitor and their status data. No personal information (admin emails, user accounts, site content) is collected by the plugin itself.\u003C\u002Fp>\n\u003Cp>The plugin does transmit data to the following external services:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>LukStack Cron Server\u003C\u002Fstrong> (operated by the plugin author, hosted on AWS EU Frankfurt) — receives your site URL, a locally generated shared secret, and aggregate environment data (WordPress\u002FPHP versions, locale, site count, multisite flag, Freemius opt-in status) on plugin activation and on each authenticated trigger response, then triggers monitoring checks on your site every minute. Your Freemius user ID is included \u003Cstrong>only\u003C\u002Fstrong> if you have actively opted in via the Freemius dialog. See the External services section below for the full field list.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Freemius\u003C\u002Fstrong> (license management and opt-in usage tracking) — anonymized data only when you explicitly opt in. See https:\u002F\u002Ffreemius.com\u002Fprivacy\u002F\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Webhook URLs\u003C\u002Fstrong> (Slack, Discord, etc.) — only when you configure them and only when a monitored site changes status.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>All external transmissions are described in detail in the External services section below.\u003C\u002Fp>\n\u003Ch3>External services\u003C\u002Fh3>\n\u003Cp>This plugin connects to external services as part of its core monitoring functionality. Below is a description of each service, what data is sent, and when.\u003C\u002Fp>\n\u003Ch4>Monitored Websites\u003C\u002Fh4>\n\u003Cp>LukStack Uptime Monitor sends HTTP requests to the website URLs you add for monitoring. This is the core functionality of the plugin and is required to check uptime and response times. An SSL connection on port 443 is also made to check the SSL certificate expiration date for HTTPS sites (Pro). These requests are sent automatically by the built-in cron server (see below) and when you manually click “Check now”. The data sent is a standard HTTP GET request with a custom user agent header. No personal data is transmitted.\u003C\u002Fp>\n\u003Ch4>LukStack Cron Server\u003C\u002Fh4>\n\u003Cp>This plugin connects to the LukStack cron server to ensure reliable monitoring checks even when your WordPress site has no visitors. Because no dedicated privacy policy URL is published for this service, the full data-handling details are documented below.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Service operator\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Operated by Luk Meyer (plugin author). Contact: via the WordPress.org support forum for this plugin (https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Flukstack-uptime-monitor\u002F).\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Hosting and location\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Hosted on Amazon Web Services (AWS), region eu-central-1 (Frankfurt, Germany). Data does not leave the EU. The service uses AWS Lambda, AWS DynamoDB, and AWS EventBridge Scheduler. AWS acts as a data processor under a standard data processing agreement.\u003C\u002Fp>\n\u003Cp>Server endpoint: https:\u002F\u002Fgt5zheubf8.execute-api.eu-central-1.amazonaws.com\u003C\u002Fp>\n\u003Cp>\u003Cstrong>What data is transmitted FROM your site TO the cron server\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>On plugin activation and when an admin visits the WordPress admin (throttled with exponential backoff):\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Your site URL (value of WordPress home_url())\u003C\u002Fli>\n\u003Cli>A 48-character shared secret, randomly generated on your site, stored in your own wp_options table. This secret is used only to authenticate incoming trigger requests. It is not a WordPress password or account credential.\u003C\u002Fli>\n\u003Cli>The plugin version (e.g. “2.4.0”)\u003C\u002Fli>\n\u003Cli>Aggregate environment fields used to understand which WordPress\u002FPHP combinations are in use: WordPress version, PHP version, site locale (e.g. “en_US”), multisite flag, and the number of websites you have added to monitoring.\u003C\u002Fli>\n\u003Cli>A coarse Freemius opt-in status label: one of “paying”, “trial”, “pending”, “registered”, “anonymous”, or “unknown”. This lets the operator distinguish anonymous from opted-in installs in aggregate metrics.\u003C\u002Fli>\n\u003Cli>Your Freemius user ID (numeric) — \u003Cstrong>only\u003C\u002Fstrong> if you have actively opted in via the Freemius dialog. Anonymous installs never transmit this field.\u003C\u002Fli>\n\u003Cli>The same payload is included in the response of each authenticated trigger request, so the operator sees up-to-date environment data over time.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>No admin email, no user account email, no site content, no visitor data, and no credentials are transmitted. Sites running on \u003Ccode>localhost\u003C\u002Fcode>, \u003Ccode>127.0.0.1\u003C\u002Fcode>, or reserved TLDs (\u003Ccode>.local\u003C\u002Fcode>, \u003Ccode>.test\u003C\u002Fcode>, \u003Ccode>.localhost\u003C\u002Fcode>, \u003Ccode>.example\u003C\u002Fcode>, \u003Ccode>.invalid\u003C\u002Fcode>) are excluded from registration entirely.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>What data is transmitted FROM the cron server TO your site\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Every minute, the cron server sends an HTTP POST request to the REST endpoint \u002Fwp-json\u002Flukstack\u002Fv1\u002Ftrigger on your site, authenticated via the X-LukStack-Secret header. The request body is empty. The sole purpose of this request is to trigger the plugin’s internal monitoring logic.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>What data is stored on the cron server\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Site URL\u003C\u002Fli>\n\u003Cli>Shared secret (needed to authenticate triggers — transmitted over HTTPS only)\u003C\u002Fli>\n\u003Cli>A SHA-256 hash of the site URL used as record key\u003C\u002Fli>\n\u003Cli>Plan type (Free or Pro) — used to gate trigger frequency server-side\u003C\u002Fli>\n\u003Cli>Plugin version, WordPress version, PHP version, site locale (e.g. “en_US”), multisite flag, and the number of monitored sites — used to understand environment compatibility and prioritize fixes\u003C\u002Fli>\n\u003Cli>Freemius opt-in status label (“paying”, “trial”, “pending”, “registered”, “anonymous”, “unknown”) — used to distinguish opted-in installs from anonymous in aggregate metrics\u003C\u002Fli>\n\u003Cli>Your Freemius user ID — \u003Cstrong>only\u003C\u002Fstrong> if you have actively opted in via the Freemius dialog\u003C\u002Fli>\n\u003Cli>Timestamps: registration time, last successful trigger, last failed trigger, consecutive failure counter\u003C\u002Fli>\n\u003Cli>Last error message if any\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>No logs of monitored sites, no uptime data, no visitor data, no admin emails, no user account emails, no site content.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Data retention\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Data is kept only as long as the plugin is installed on your site. When the plugin is uninstalled, the plugin best-effort calls a \u003Ccode>\u002Fv1\u002Fderegister\u003C\u002Fcode> endpoint on the cron server with your site URL and secret, after which the record is removed. If the deregister call fails (e.g. network error or transient backend issue), the site is additionally marked inactive on the cron server after approximately 100 consecutive failed trigger attempts (about 100 minutes) and no further requests are sent. Inactive records may be purged periodically.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Your rights and how to exercise them\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>You can at any time:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Disable the remote cron by deactivating the plugin — triggers stop, but the record remains on the server until auto-expiry. To remove the record immediately, fully uninstall the plugin: the plugin sends a deregister call on uninstall.\u003C\u002Fli>\n\u003Cli>Request deletion of your site’s record by posting in the plugin’s WordPress.org support forum with your site URL (or a hash of it). Records are typically deleted within 7 days of a confirmed request.\u003C\u002Fli>\n\u003Cli>Rotate the shared secret by re-registering (the settings page exposes a “Force re-register now” button when WP_DEBUG is enabled in your wp-config.php).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Security\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>All transmissions are over HTTPS (TLS).\u003C\u002Fli>\n\u003Cli>Incoming triggers to your site are validated using hash_equals() (constant-time comparison) to prevent timing attacks.\u003C\u002Fli>\n\u003Cli>The shared secret is stored with autoload disabled and is not exposed in the admin UI unless WP_DEBUG is enabled.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Legal basis (GDPR)\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>The processing described above is necessary for the performance of the service you enabled by installing this plugin (Art. 6 (1) (b) GDPR). The data processed consists of technical identifiers (URL, secret, timestamps), aggregate environment metadata (versions, locale, site count, multisite flag, opt-in status), and — only when you opt in via Freemius — your Freemius user ID. No special categories of personal data (Art. 9 GDPR) are involved.\u003C\u002Fp>\n\u003Ch4>Freemius\u003C\u002Fh4>\n\u003Cp>This plugin uses Freemius SDK for license management, usage tracking (opt-in only), and the upgrade flow. When a user opts in, anonymized data such as the site URL, WordPress version, PHP version, and plugin version may be sent to Freemius servers. Users can opt out at any time.\u003C\u002Fp>\n\u003Cp>This service is provided by Freemius, Inc.\u003Cbr \u002F>\nTerms of Service: https:\u002F\u002Ffreemius.com\u002Fterms\u002F\u003Cbr \u002F>\nPrivacy Policy: https:\u002F\u002Ffreemius.com\u002Fprivacy\u002F\u003C\u002Fp>\n\u003Ch4>Slack (optional)\u003C\u002Fh4>\n\u003Cp>If you configure a Slack webhook URL in the plugin settings, LukStack Uptime Monitor sends POST requests to the Slack Incoming Webhooks API when a monitored site changes status (goes down, recovers, or has SSL issues). The data sent includes the website URL, its status, response time, and a timestamp. No personal data is transmitted.\u003C\u002Fp>\n\u003Cp>This service is provided by Slack Technologies, LLC \u002F Salesforce, Inc.\u003Cbr \u002F>\nTerms of Service: https:\u002F\u002Fslack.com\u002Fterms-of-service\u003Cbr \u002F>\nPrivacy Policy: https:\u002F\u002Fslack.com\u002Fprivacy-policy\u003C\u002Fp>\n\u003Ch4>Discord (optional)\u003C\u002Fh4>\n\u003Cp>If you configure a Discord webhook URL in the plugin settings, LukStack Uptime Monitor sends POST requests to the Discord Webhooks API when a monitored site changes status. The data sent includes the website URL, its status, response time, and a timestamp. No personal data is transmitted.\u003C\u002Fp>\n\u003Cp>This service is provided by Discord, Inc.\u003Cbr \u002F>\nTerms of Service: https:\u002F\u002Fdiscord.com\u002Fterms\u003Cbr \u002F>\nPrivacy Policy: https:\u002F\u002Fdiscord.com\u002Fprivacy\u003C\u002Fp>\n\u003Ch4>Generic Webhooks (optional)\u003C\u002Fh4>\n\u003Cp>You may configure any third-party webhook URL (e.g. Microsoft Teams, Zapier, Make, or a custom endpoint). When a monitored site changes status, a POST request with a JSON payload is sent to that URL. The data sent includes the website URL, its status, response time, and a timestamp. No personal data is transmitted. Please refer to the terms of service and privacy policy of the respective service you configure.\u003C\u002Fp>\n\u003Ch3>Additional Information\u003C\u002Fh3>\n\u003Ch4>Requirements\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>WordPress 5.8 or higher\u003C\u002Fli>\n\u003Cli>PHP 7.4 or higher\u003C\u002Fli>\n\u003Cli>PHP extensions: curl, openssl, json\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Support\u003C\u002Fh4>\n\u003Cp>For support questions, please use the WordPress.org support forum for this plugin.\u003C\u002Fp>\n\u003Ch4>Credits\u003C\u002Fh4>\n\u003Cp>Developed by Luk Meyer.\u003C\u002Fp>\n","Monitor multiple websites for uptime, performance, and SSL certificate expiration. Built-in remote cron for reliable checks — no third-party services  &hellip;",799,100,2,"2026-05-20T21:42:00.000Z","7.0.2","5.8",[52,53,21,22,54],"alerts","monitoring","webhook","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Flukstack-uptime-monitor\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Flukstack-uptime-monitor.2.4.0.zip",{"slug":58,"name":59,"version":60,"author":61,"author_profile":62,"description":63,"short_description":64,"active_installs":33,"downloaded":65,"rating":46,"num_ratings":47,"last_updated":66,"tested_up_to":67,"requires_at_least":15,"requires_php":68,"tags":69,"homepage":71,"download_link":72,"security_score":73,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"ohdear","Oh Dear – Monitor Uptime, Performance and Broken Links","1.0.2","flowdee","https:\u002F\u002Fprofiles.wordpress.org\u002Fflowdee\u002F","\u003Cp>Oh Dear monitors uptime, performance, broken links, SSL certificates and more!\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Display your site’s uptime monitoring\u003C\u002Fli>\n\u003Cli>Display your site’s performance monitoring\u003C\u002Fli>\n\u003Cli>Display your site’s broken links\u003C\u002Fli>\n\u003Cli>Dashboard widgets\u003C\u002Fli>\n\u003Cli>Regular updates and improvements: Go through the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fohdear\u002Fchangelog\u002F\" rel=\"ugc\">changelog\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>This plugin requires an active \u003Ca href=\"https:\u002F\u002Fohdear.app\u002F\" rel=\"nofollow ugc\">Oh Dear account\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Browse \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fflowdee\u002Fohdear\u002Fissues\" rel=\"nofollow ugc\">issue tracker\u003C\u002Fa> on GitHub\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cp>This plugin is not official made or maintained by Oh Dear. All data provided through the official \u003Ca href=\"https:\u002F\u002Fohdear.app\u002Fdocs\u002Fintegrations\u002Fapi\u002Fintroduction\" rel=\"nofollow ugc\">Oh Dear API\u003C\u002Fa>.\u003C\u002Fp>\n","This plugin brings Oh Dear uptime, performance and broken links monitoring into your WordPress dashboard.",4251,"2022-11-05T07:27:00.000Z","6.1.10","5.6",[18,58,70,22],"performance","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fohdear\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fohdear.1.0.2.zip",85,{"slug":75,"name":76,"version":77,"author":78,"author_profile":79,"description":80,"short_description":81,"active_installs":82,"downloaded":83,"rating":11,"num_ratings":11,"last_updated":84,"tested_up_to":85,"requires_at_least":86,"requires_php":87,"tags":88,"homepage":94,"download_link":95,"security_score":46,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":96},"wpmissioncontrol","WPMissionControl","1.2.4","alexkrauchn","https:\u002F\u002Fprofiles.wordpress.org\u002Falexkrauchn\u002F","\u003Cp>WPMissionControl delivers full-stack \u003Cstrong>observability\u003C\u002Fstrong>, \u003Cstrong>security\u003C\u002Fstrong>, and \u003Cstrong>health monitoring\u003C\u002Fstrong> for WordPress — without slowing your site down.\u003C\u002Fp>\n\u003Cp>The plugin runs as a lightweight client that connects your site to our cloud observability platform. You get uptime checks, SSL monitoring, integrity scanning, visual regressions, and deep error insights — all processed off-site to keep your WordPress fast.\u003C\u002Fp>\n\u003Cp>A free WPMissionControl account is required to view your monitoring dashboard.\u003C\u002Fp>\n\u003Ch3>What WPMissionControl Monitors\u003C\u002Fh3>\n\u003Ch3>\u003Cstrong>Uptime & Performance\u003C\u002Fstrong>\u003C\u002Fh3>\n\u003Cp>Instant alerts when your site goes down or becomes slow.\u003C\u002Fp>\n\u003Ch3>\u003Cstrong>SSL & Domain Expiration\u003C\u002Fstrong>\u003C\u002Fh3>\n\u003Cp>Never miss an expiring certificate or renewal deadline.\u003C\u002Fp>\n\u003Ch3>\u003Cstrong>Integrity & Security\u003C\u002Fstrong>\u003C\u002Fh3>\n\u003Cp>Core, theme, and plugin checksum validation to detect tampering or suspicious changes.\u003C\u002Fp>\n\u003Ch3>\u003Cstrong>AI Malware Scanning\u003C\u002Fstrong>\u003C\u002Fh3>\n\u003Cp>AI-driven detection catches unknown or evolving threats traditional scanners miss.\u003C\u002Fp>\n\u003Ch3>\u003Cstrong>Visual Regression Monitoring\u003C\u002Fstrong>\u003C\u002Fh3>\n\u003Cp>Automatic screenshot comparisons to spot layout shifts or broken UI components.\u003C\u002Fp>\n\u003Ch3>\u003Cstrong>Activity Log & Error Tracking (v1.2+)\u003C\u002Fstrong>\u003C\u002Fh3>\n\u003Cp>Monitor and analyze:\u003Cbr \u002F>\n– Updates (core, plugins, themes)\u003Cbr \u002F>\n– User logins & role changes\u003Cbr \u002F>\n– Content changes\u003Cbr \u002F>\n– Cron failures\u003Cbr \u002F>\n– Database, REST API & AJAX errors\u003Cbr \u002F>\n– Fatal errors and config anomalies\u003C\u002Fp>\n\u003Ch3>\u003Cstrong>Real-Time Alerts\u003C\u002Fstrong>\u003C\u002Fh3>\n\u003Cp>Email, Slack, and SMS notifications (plan-dependent).\u003C\u002Fp>\n\u003Ch3>\u003Cstrong>Public Status Page\u003C\u002Fstrong>\u003C\u002Fh3>\n\u003Cp>Share an independent, always-up-to-date health overview of your site.\u003C\u002Fp>\n\u003Ch3>\u003Cstrong>Secure Website Badge\u003C\u002Fstrong>\u003C\u002Fh3>\n\u003Cp>Show visitors your site is monitored and safe.\u003C\u002Fp>\n\u003Cp>All monitoring runs on our servers — the plugin remains extremely lightweight.\u003C\u002Fp>\n\u003Ch3>Disclaimer\u003C\u002Fh3>\n\u003Cp>This plugins sends information about your website, including it’s core version, health points, and checksums of the core, installed themes and plugins files, and activity log to \u003Ca href=\"wpmissioncontrol.com\" rel=\"nofollow ugc\">wpmissioncontrol.com\u003C\u002Fa>. This information is only sent with the proper API key set, used to assess overall health of your website and is not shared with any thrid party. Consider reading our \u003Ca href=\"https:\u002F\u002Fwpmissioncontrol.com\u002Fprivacy-policy\" rel=\"nofollow ugc\">Privacy Policy\u003C\u002Fa> and \u003Ca href=\"https:\u002F\u002Fwpmissioncontrol.com\u002Fterms-of-service\" rel=\"nofollow ugc\">Terms of Service\u003C\u002Fa>.\u003C\u002Fp>\n","Monitor uptime, SSL, domain, integrity, malware, visual changes, activity, and errors. Lightweight client. Requires a WPMissionControl account.",20,2195,"2026-01-01T19:40:00.000Z","6.9.4","5.4","7.2",[89,90,91,92,93],"domain-check","malware-scanner","ssl-monitoring","uptime-monitoring","website-security","https:\u002F\u002Fwpmissioncontrol.com\u002Fplugins\u002Fwp-mission-control","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwpmissioncontrol.1.2.4.zip","2026-04-16T10:56:18.058Z",{"slug":98,"name":99,"version":100,"author":101,"author_profile":102,"description":103,"short_description":104,"active_installs":105,"downloaded":106,"rating":11,"num_ratings":11,"last_updated":107,"tested_up_to":49,"requires_at_least":108,"requires_php":16,"tags":109,"homepage":111,"download_link":112,"security_score":46,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"lmn-site-monitor","LMN Site Monitor","1.0.1","Francisco Moreno","https:\u002F\u002Fprofiles.wordpress.org\u002Ffcomoreno1976\u002F","\u003Cp>\u003Cstrong>LMN Site Monitor\u003C\u002Fstrong> is a lightweight WordPress monitoring plugin that keeps track of your websites and alerts you when something goes wrong. Monitor uptime, SSL certificate expiration, and response time directly from your WordPress dashboard — no external SaaS required.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Key features\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Uptime monitoring (HTTP\u002FHTTPS) with configurable intervals.\u003C\u002Fli>\n\u003Cli>SSL certificate expiration checks with full SNI support.\u003C\u002Fli>\n\u003Cli>Domain expiry notifications.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Malware scanning\u003C\u002Fstrong> powered by Google Safe Browsing API and URLhaus (abuse.ch); per-site scheduled scans (never \u002F daily \u002F weekly); downloadable PDF security report.\u003C\u002Fli>\n\u003Cli>Response latency tracking with full history stored in a dedicated database table.\u003C\u002Fli>\n\u003Cli>Performance charts (bar, line, 3D bar, heatmap) powered by self-hosted Apache ECharts 5 — no external CDN, GDPR-safe.\u003C\u002Fli>\n\u003Cli>Statistics modal with per-site avg \u002F min \u002F max response time and uptime %; CSV and PDF export.\u003C\u002Fli>\n\u003Cli>Automatic retry after downtime to avoid false positives.\u003C\u002Fli>\n\u003Cli>Instant HTML email alerts (with automatic dark mode support).\u003C\u002Fli>\n\u003Cli>Dashboard widget with customizable monitor limits.\u003C\u002Fli>\n\u003Cli>CSV export\u002Fimport of monitored sites.\u003C\u002Fli>\n\u003Cli>Fully translatable (16 languages) and optimized for modern PHP environments.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>LMN Site Monitor is designed to be fast, accessible, and WordPress-native — giving you essential monitoring tools without unnecessary complexity. Learn more at LMN Site Monitor official page: \u003Ca href=\"https:\u002F\u002Flumina.fmkr.net\u002Fsite-monitor\u002F\" rel=\"nofollow ugc\">https:\u002F\u002Flumina.fmkr.net\u002Fsite-monitor\u002F\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Localization\u003C\u002Fh3>\n\u003Cp>This plugin is fully translatable and currently includes base translations for:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>English (en_US)\u003C\u002Fli>\n\u003Cli>Spanish (es_ES)\u003C\u002Fli>\n\u003Cli>Catalan (ca)\u003C\u002Fli>\n\u003Cli>French (fr_FR)\u003C\u002Fli>\n\u003Cli>Arabic (ar)\u003C\u002Fli>\n\u003Cli>Galician (gl_ES)\u003C\u002Fli>\n\u003Cli>German (de_DE)\u003C\u002Fli>\n\u003Cli>Basque (eu)\u003C\u002Fli>\n\u003Cli>Italian (it_IT)\u003C\u002Fli>\n\u003Cli>Japanese (ja)\u003C\u002Fli>\n\u003Cli>Korean (ko_KR)\u003C\u002Fli>\n\u003Cli>Dutch (nl_NL)\u003C\u002Fli>\n\u003Cli>Portuguese (pt_PT)\u003C\u002Fli>\n\u003Cli>Turkish (tr_TR)\u003C\u002Fli>\n\u003Cli>Ukrainian (uk)\u003C\u002Fli>\n\u003Cli>Simplified Chinese (zh_CN)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>If you would like to contribute a new translation, you can do so via WordPress.org’s translation platform.\u003C\u002Fp>\n\u003Ch3>\u003C\u002Fh3>\n\u003Cp>Version: 2026-07-15 — v1.0.1\u003C\u002Fp>\n\u003Cul>\n\u003Cli>COMPAT: WordPress 7.0.1 confirmed — reviewed the 7.0.1 patch file list; no changes affect admin_post, wp_ajax, admin_menu, cron, or wp_mail hooks used by this plugin.\u003C\u002Fli>\n\u003Cli>FIX: Uninstall cleanup — uninstall.php was leaving the lmnsimo_order option (card sort order) behind in wp_options after uninstall; now deleted along with the other plugin options.\u003C\u002Fli>\n\u003Cli>FIX: Uninstall cleanup — per-site malware scan schedules (lmnsimo_scan_site_cron) were not cleared on uninstall, leaving orphaned cron events; now cleared alongside lmnsimo_check_sites_cron.\u003C\u002Fli>\n\u003Cli>IMPROVE: Requires at least \u002F Requires PHP added directly to the plugin file header, so WordPress core itself blocks activation on incompatible sites.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>\u003C\u002Fh3>\n\u003Cp>Version: 2026-05-26 — v1.0.0\u003C\u002Fp>\n\u003Cul>\n\u003Cli>COMPAT: WordPress 7.0 full compatibility — tested and confirmed against WP 7.0 core changes (Modern theme, PHPMailer 7.0.2, PHP 7.4 minimum).\u003C\u002Fli>\n\u003Cli>IMPROVE: CSS scoping fix — postbox header rule (.hndle) now correctly scoped to .lm-scope, preventing style leakage to other dashboard widgets on index.php.\u003C\u002Fli>\n\u003Cli>NEW: Apache ECharts 5.6.0 + echarts-gl 2.0.8 bundled locally in \u002Fassets\u002F (no external CDN, GDPR-safe); Chart.js replaced as charting engine.\u003C\u002Fli>\n\u003Cli>NEW: 3D bar chart of response times per site via echarts-gl (WebGL).\u003C\u002Fli>\n\u003Cli>NEW: GitHub-style activity heatmap (checks per day\u002Fhour) powered by ECharts heatmap series.\u003C\u002Fli>\n\u003Cli>NEW: Toggle in the charts UI to switch between 2D and 3D view.\u003C\u002Fli>\n\u003Cli>IMPROVE: Dark mode for charts uses ECharts native ‘dark’ theme — no extra CSS required.\u003C\u002Fli>\n\u003Cli>IMPROVE: Chart.js and date-fns adapter removed from plugin bundle; replaced by ECharts 5.6.0 (self-hosted, Apache 2.0 licence).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>\u003C\u002Fh3>\n\u003Cp>Version: 2026-05-16 — v0.9.4\u003C\u002Fp>\n\u003Cul>\n\u003Cli>NEW: Site thumbnail — each card now shows a screenshot preview via Automattic mshots (s0.wordpress.com\u002Fmshots\u002Fv1\u002F). No API key required; images load lazily with CDN caching and dark-mode brightness filter.\u003C\u002Fli>\n\u003Cli>NEW: Telegram Bot alerts — new accordion in Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Alerts: Bot Token + Chat ID. Formatted HTML messages sent for all alert types (site down, recovery, SSL expiry, domain expiry). Works alongside email and Discord.\u003C\u002Fli>\n\u003Cli>NEW: Discord Webhook alerts — new accordion in Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Alerts: Webhook URL. Alerts delivered as color-coded embeds (red = down, orange = warning, green = recovery).\u003C\u002Fli>\n\u003Cli>SECURITY: Full secrets encryption — SMTP password, Telegram token, Discord URL, Google Safe Browsing key, and URLhaus key are encrypted with AES-256-CBC using AUTH_KEY + SECURE_AUTH_SALT before storage. Settings forms never return secret values to the browser.\u003C\u002Fli>\n\u003Cli>IMPROVE: i18n complete — 51 previously untranslated PHP strings added to the .pot template and fully translated across all 16 supported languages; all .po and .mo files recompiled. A pre-existing untranslated string (Google Safe Browsing optional key notice) also filled in for 7 languages.\u003C\u002Fli>\n\u003Cli>FIX: Closing the security scan modal no longer causes a flash from dark to light mode; page reload removed, scan results update in-place.\u003C\u002Fli>\n\u003Cli>FIX: Scan status label (“No incidents” \u002F “Incidents detected”) now appears on the card immediately after scanning, without requiring a manual page reload.\u003C\u002Fli>\n\u003Cli>FIX: Plural-form translations in .mo files were corrupted (drag-to-reorder label was appearing in SSL\u002Fdomain expiry day fields); all 16 .mo files recompiled with correct GNU gettext plural-form encoding.\u003C\u002Fli>\n\u003Cli>IMPROVE: Performance charts redesign — neon color palette for bar chart; trend chart shows filled min–max band with adaptive Y axis; distribution chart replaced with animated Polar Area chart; neon glow effect on all chart canvases in dark mode.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>\u003C\u002Fh3>\n\u003Cp>Version: 2026-04-29 — v0.9.3\u003C\u002Fp>\n\u003Cul>\n\u003Cli>NEW: Animated toast notification system — success \u002F error \u002F warning toasts appear bottom-right, auto-dismiss 3.8 s, click to close, slide-in\u002Fout animation. Replaces silent AJAX operations.\u003C\u002Fli>\n\u003Cli>IMPROVE: “Force” and “Check all now” buttons change to “Checking…” and disable during server-side check.\u003C\u002Fli>\n\u003Cli>IMPROVE: Pin\u002FUnpin actions show a success toast; AJAX errors show an error toast with UI rollback.\u003C\u002Fli>\n\u003Cli>IMPROVE: Card reorder now shows “Order saved” toast on server confirmation.\u003C\u002Fli>\n\u003Cli>IMPROVE: Site cards lift 2 px on hover with smooth shadow transition; suppressed during drag.\u003C\u002Fli>\n\u003Cli>IMPROVE: 5 new i18n strings added; translations for 16 languages pending.\u003C\u002Fli>\n\u003Cli>SECURITY: SSRF protection — admin-supplied URLs validated against private\u002Freserved IP ranges before acceptance; only http\u002Fhttps allowed.\u003C\u002Fli>\n\u003Cli>SECURITY: error_msg sanitization — HTTP error body snippets sanitized with sanitize_text_field() before storage.\u003C\u002Fli>\n\u003Cli>NEW: Unified action bar (top + bottom) — Select all checkbox, bulk actions, Check all now, Scan all, Export CSV, Import CSV consolidated in one strip above and below the cards.\u003C\u002Fli>\n\u003Cli>NEW: Scan all — sequential background scan of all monitored sites with live badge updates and completion toast.\u003C\u002Fli>\n\u003Cli>IMPROVE: 3 new i18n strings (selectAll, scanAll, scanAllDone) translated in 16 languages.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>\u003C\u002Fh3>\n\u003Cp>Version: 2026-04-02 — v0.9.2\u003C\u002Fp>\n\u003Cul>\n\u003Cli>FIX: URLhaus (abuse.ch) integration now requires an API key (Auth-Key header); added URLhaus API Key field in Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Security scanning. Without a key the URLhaus check is skipped gracefully.\u003C\u002Fli>\n\u003Cli>FIX: Scan modal failed to open with “i18n is not defined” JS error — resolved by declaring i18n from cfg.i18n inside initScanModal().\u003C\u002Fli>\n\u003Cli>FIX: PDF security report printed blank — modal is now temporarily moved to document.body before window.print() and restored afterwards so @media print selectors work correctly.\u003C\u002Fli>\n\u003Cli>FIX: “Scanning…” text rendered as garbled bytes (double-encoded UTF-8) — replaced with an animated indeterminate progress bar.\u003C\u002Fli>\n\u003Cli>IMPROVE: Scan badge button removed from card header; scan result (shield icon + date + status label) now appears as an inline row inside the card metadata block, consistent with the rest of the card layout.\u003C\u002Fli>\n\u003Cli>FIX: “Scan” button font-size reduced to match the rest of the card action buttons (11 px).\u003C\u002Fli>\n\u003Cli>IMPROVE: Status labels renamed to “No incidents” \u002F “Incidents detected” (es_ES: “Sin incidencias” \u002F “Incidencias detectadas”), color-coded green and red respectively; all 16 .po\u002F.mo files updated.\u003C\u002Fli>\n\u003Cli>NEW: Help tab with 12 documented sections covering all plugin features: Getting started, Uptime monitoring, SSL & domain expiry, Email alerts, Performance charts & statistics, Malware scanning, WHOIS \u002F DNS lookup, Dashboard widget, CSV export \u002F import, Card management, and step-by-step guides for both API keys (Google Safe Browsing and URLhaus).\u003C\u002Fli>\n\u003Cli>IMPROVE: Top toolbar now shows a compact API keys notice with direct links to Google Cloud Console and abuse.ch, replacing the old generic description block.\u003C\u002Fli>\n\u003Cli>IMPROVE: 21 new i18n strings added to all 16 supported languages.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>\u003C\u002Fh3>\n\u003Cp>Version: 2026-03-25 — v0.9.1\u003C\u002Fp>\n\u003Cul>\n\u003Cli>NEW: Malware scanning powered by Google Safe Browsing API (free key required) and URLhaus (abuse.ch, no key required). Scan button on each site card opens a security report modal.\u003C\u002Fli>\n\u003Cli>NEW: Per-site automatic scan schedule (Never \u002F Daily \u002F Weekly) with WP Cron integration.\u003C\u002Fli>\n\u003Cli>NEW: Security report modal with per-source results, threat types, global status, and one-click PDF download (window.print()).\u003C\u002Fli>\n\u003Cli>NEW: Google Safe Browsing API Key field in Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Security scanning section.\u003C\u002Fli>\n\u003Cli>NEW: 28 new i18n strings added to all 16 supported languages.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>\u003C\u002Fh3>\n\u003Cp>Version: 2026-03-16 — v0.9.1\u003C\u002Fp>\n\u003Cul>\n\u003Cli>NEW: Performance charts (bar, line, donut) powered by self-hosted Chart.js 4.5.1 (GDPR-safe, no external CDN).\u003C\u002Fli>\n\u003Cli>NEW: Response-time history stored in a dedicated database table (\u003Ccode>lmnsimo_response_log\u003C\u002Fcode>); rolling 500-entry window per site; table removed cleanly on uninstall.\u003C\u002Fli>\n\u003Cli>NEW: Statistics modal with per-site total checks, avg \u002F min \u002F max response time and uptime %; accessible from the Monitor tab.\u003C\u002Fli>\n\u003Cli>NEW: CSV export and Print\u002FPDF export of the statistics table.\u003C\u002Fli>\n\u003Cli>NEW: Period selector (Last 24 h · Last 7 days · Last 30 days) for charts and statistics.\u003C\u002Fli>\n\u003Cli>NEW: 25 new strings fully translated across all 16 supported languages; \u003Ccode>.pot\u003C\u002Fcode> and all \u003Ccode>.po\u003C\u002Fcode> files updated.\u003C\u002Fli>\n\u003Cli>IMPROVE: Charts and statistics modal respect the plugin’s light\u002Fdark theme.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>\u003C\u002Fh3>\n\u003Cp>Version: 2026-03-14 — v0.8.1\u003C\u002Fp>\n\u003Cul>\n\u003Cli>FIX: Fix translation errors.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>\u003C\u002Fh3>\n\u003Cp>Version: 2026-03-14 — v0.8.0\u003C\u002Fp>\n\u003Cul>\n\u003Cli>NEW: New languages: Arabic, German, Basque, Italian, Japanese, Korean, Dutch, Portuguese, Turkish, Ukrainian, and Simplified Chinese.\u003C\u002Fli>\n\u003Cli>NEW: Automatic retry after downtime to avoid false positives.\u003C\u002Fli>\n\u003Cli>NEW: Domain expiry notifications.\u003C\u002Fli>\n\u003Cli>MAINT: i18n maintained; PHPCS\u002FWPCS compliant.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>\u003C\u002Fh3>\n\u003Cp>Version: 2026-03-03 — v0.7.0\u003C\u002Fp>\n\u003Cul>\n\u003Cli>NEW: Cards are now wider, displaying more information at a glance.\u003C\u002Fli>\n\u003Cli>NEW: Bulk actions now include sorting options: alphabetical (A\u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan>Z) and by date added.\u003C\u002Fli>\n\u003Cli>NEW: Drag-and-drop card reordering with persistent storage between sessions.\u003C\u002Fli>\n\u003Cli>NEW: Pin system — pin any site to keep it fixed at the top, excluded from sorting.\u003C\u002Fli>\n\u003Cli>NEW: WHOIS \u002F DNS lookup button on each card: shows IP, DNS provider, NS, MX records, TTL and SSL expiry. Native PHP only, no external APIs or API keys required.\u003C\u002Fli>\n\u003Cli>NEW: JetBrains Mono font integrated for monospace elements, self-hosted (GDPR-safe, no external CDN).\u003C\u002Fli>\n\u003Cli>IMPROVE: Full PHPCS \u002F WPCS compliance — zero warnings. Proper nonce and capability checks, sanitization and escaping throughout.\u003C\u002Fli>\n\u003Cli>IMPROVE: All new strings are fully translatable and i18n-compatible.\u003C\u002Fli>\n\u003Cli>IMPROVE: Responsive design preserved and refined across all screen sizes.\u003C\u002Fli>\n\u003Cli>FIX: Removed duplicate \u003Ccode>wp_mail_failed\u003C\u002Fcode> hook and unified error handlers.\u003C\u002Fli>\n\u003Cli>FIX: Native WP cron schedules (\u003Ccode>hourly\u003C\u002Fcode>, \u003Ccode>daily\u003C\u002Fcode>) are no longer overwritten.\u003C\u002Fli>\n\u003Cli>FIX: Added \u003Ccode>file_exists()\u003C\u002Fcode> check before reading \u003Ccode>changelog.txt\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>FIX: Added missing \u003Ccode>wp_unslash()\u003C\u002Fcode> in widget preferences handler.\u003C\u002Fli>\n\u003Cli>FIX: SSL badge severity now syncs with the user-configured expiry threshold.\u003C\u002Fli>\n\u003Cli>FIX: PHPCS \u003Ccode>MissingTranslatorsComment\u003C\u002Fcode> resolved in alert email builders.\u003C\u002Fli>\n\u003Cli>IMPROVE: Removed dead \u003Ccode>load_textdomain()\u003C\u002Fcode> method.\u003C\u002Fli>\n\u003Cli>IMPROVE: Fixed inconsistent indentation in \u003Ccode>ajax_save_order\u003C\u002Fcode>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>\u003C\u002Fh3>\n\u003Cp>Version: 2025-10-31 — v0.6.5\u003C\u002Fp>\n\u003Cul>\n\u003Cli>NEW: Full internationalization (en_US, es_ES, ca, fr_FR).\u003C\u002Fli>\n\u003Cli>NEW: Added Catalan (ca) and French (fr_FR) translations.\u003C\u002Fli>\n\u003Cli>IMPROVE: Hybrid textdomain loader – automatically loads WP.org language packs and falls back to \u002Flanguages for ZIP installs.\u003C\u002Fli>\n\u003Cli>FIX: Added translators comments for all placeholders to comply with WordPress I18n standards.\u003C\u002Fli>\n\u003Cli>FIX: Escaped all dynamic outputs in admin interface and header tips.\u003C\u002Fli>\n\u003Cli>MAINT: Removed deprecated load_plugin_textdomain() function per Plugin Check recommendations.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>\u003C\u002Fh3>\n\u003Cp>Version: 2025-10-25 — v0.6.4\u003C\u002Fp>\n\u003Cp>– Full sanitization and 0 warnings\u003Cbr \u002F>\n– All PHPCS\u002FWPCS warnings removed.\u003Cbr \u002F>\n– Full sanitization and reordered nonce verification.\u003Cbr \u002F>\n– PHP 8.3+ and WordPress 6.8.3+ compatibility.\u003C\u002Fp>\n\u003Ch3>\u003C\u002Fh3>\n\u003Cp>Version: 2025-10-16 — v0.6.3\u003C\u002Fp>\n\u003Cp>UI:\u003Cbr \u002F>\n– FIX: Unique IDs in forms (nonces and submit buttons).\u003Cbr \u002F>\n– FIX: Console warnings removed for duplicated #_wpnonce and #submit IDs.\u003Cbr \u002F>\n– IMPROVE: Accessibility and DOM structure of the admin panel.\u003C\u002Fp>\n\u003Cp>Maintenance:\u003Cbr \u002F>\n– Version bumped to v0.6.3.\u003C\u002Fp>\n\u003Ch3>\u003C\u002Fh3>\n\u003Cp>Version: 2025-10-15 — v0.6.2\u003C\u002Fp>\n\u003Cp>UI:\u003Cbr \u002F>\n– IMPROVE: Unified blue header (h2.hndle) with v0.6.2 badge.\u003Cbr \u002F>\n– ADD: Lightweight Markdown rendering (titles, lists, \u003Cstrong>bold\u003C\u002Fstrong>, \u003Ccode>code\u003C\u002Fcode>, separators).\u003Cbr \u002F>\n– KEEP: Consistent padding and structure (.postbox.lm-card > h2.hndle + .inside).\u003C\u002Fp>\n\u003Cp>Maintenance:\u003Cbr \u002F>\n– Version bumped to v0.6.2.\u003C\u002Fp>\n\u003Ch3>\u003C\u002Fh3>\n\u003Cp>Version: 2025-10-15 — v0.6.1\u003C\u002Fp>\n\u003Cp>UI:\u003Cbr \u002F>\n– NEW: “Changelog” tab with direct reading of \u003Ccode>changelog.txt\u003C\u002Fcode>.\u003Cbr \u002F>\n– IMPROVE: Body with padding, clean background, and better typographic rhythm.\u003Cbr \u002F>\n– IMPROVE: Lightweight Markdown rendering: \u003Cstrong>bold\u003C\u002Fstrong>, \u003Ccode>code\u003C\u002Fcode>, titles (# ## ###), and highlighted list prefixes (NEW, FIX, IMPROVE…).\u003C\u002Fp>\n\u003Cp>Maintenance:\u003Cbr \u002F>\n– Version bumped to v0.6.1.\u003C\u002Fp>\n\u003Ch3>\u003C\u002Fh3>\n\u003Cp>Version: 2025-10-14\u003C\u002Fp>\n\u003Cp>Functional:\u003Cbr \u002F>\n– SMTP operational: form aligned with real keys (\u003Ccode>smtp_*\u003C\u002Fcode>) and authentication.\u003Cbr \u002F>\n– Keeps SMTP password when saved empty (not overwritten).\u003Cbr \u002F>\n– Compatibility with Gmail (app passwords) and Office 365.\u003C\u002Fp>\n\u003Cp>UI:\u003Cbr \u002F>\n– Listing replaced by responsive card grid (auto-fit\u002Fminmax).\u003Cbr \u002F>\n– “OK” status (green\u002Fwhite text) and “Down” (red\u002Fwhite text).\u003Cbr \u002F>\n– Down sites with red border + soft pulse (respects reduced motion).\u003Cbr \u002F>\n– Inline styles cleaned \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> moved to \u003Ccode>assets\u002Fadmin-theme.css\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Maintenance:\u003Cbr \u002F>\n– Nonces and handlers verified; no changes in cron or check logic.\u003Cbr \u002F>\n– CSV import\u002Fexport and bulk actions unchanged.\u003C\u002Fp>\n\u003Ch3>\u003C\u002Fh3>\n\u003Cp>Version: 2025-10-07 — v0.6.0\u003C\u002Fp>\n\u003Cul>\n\u003Cli>NEW: CSV import using the same format as export (adds URLs without removing existing ones).  \u003C\u002Fli>\n\u003Cli>NEW: Bulk actions in list (Delete selected) using standard WordPress handlers.  \u003C\u002Fli>\n\u003Cli>IMPROVE: Listing UI: master checkbox, batch action bar, and confirmations.  \u003C\u002Fli>\n\u003Cli>IMPROVE: Error handling and post-action messages for imports or batch actions.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>\u003C\u002Fh3>\n\u003Cp>Version: 2025-10-06 — v0.5.3\u003C\u002Fp>\n\u003Cul>\n\u003Cli>NEW: CSV export from the “About Site Monitor” section.  \u003C\u002Fli>\n\u003Cli>NEW: “About Site Monitor” section with quick metrics and cron status.  \u003C\u002Fli>\n\u003Cli>IMPROVE: Minor cleanup in headers and constants (VERSION).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>\u003C\u002Fh3>\n\u003Cp>Version: 2025-10-06 — v0.5.2\u003C\u002Fp>\n\u003Cul>\n\u003Cli>NEW: “About Site Monitor” box in the right column of the admin dashboard.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>\u003C\u002Fh3>\n\u003Cp>Version: 2025-10-06 — v0.5.1\u003C\u002Fp>\n\u003Cul>\n\u003Cli>CHANGE: Default light HTML email + automatic dark mode with \u003Ccode>prefers-color-scheme\u003C\u002Fcode>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>\u003C\u002Fh3>\n\u003Cp>Version: 2025-10-06 — v0.5.0\u003C\u002Fp>\n\u003Cul>\n\u003Cli>NEW: HTML alert email with badges, detail table, and action buttons.  \u003C\u002Fli>\n\u003Cli>NEW: Per-user preference in dashboard widget (number of sites displayed).  \u003C\u002Fli>\n\u003Cli>IMPROVE: Classic UI improved (light\u002Fdark theme, responsive tables and forms).  \u003C\u002Fli>\n\u003Cli>FIX: Text contrast in dark theme (labels, cells, and descriptions).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>\u003C\u002Fh3>\n\u003Cp>Version: 2025-10-05 — v0.4.0\u003C\u002Fp>\n\u003Cul>\n\u003Cli>NEW: Admin page with listing, quick actions, and settings.  \u003C\u002Fli>\n\u003Cli>NEW: HTTP and SSL expiry checks with email alerts.  \u003C\u002Fli>\n\u003Cli>NEW: Configurable cron (5 min, 15 min, hourly, daily) and “force check” option.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>\u003C\u002Fh3>\n","A lightweight WordPress uptime and SSL monitoring plugin with email alerts, ECharts performance charts (2D\u002F3D), and dashboard widget.",10,1123,"2026-07-15T16:04:00.000Z","6.0",[52,110,53,21,22],"cron","https:\u002F\u002Flumina.fmkr.net\u002Fsite-monitor","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Flmn-site-monitor.zip",{"slug":114,"name":115,"version":116,"author":117,"author_profile":118,"description":119,"short_description":120,"active_installs":11,"downloaded":121,"rating":11,"num_ratings":11,"last_updated":122,"tested_up_to":123,"requires_at_least":108,"requires_php":16,"tags":124,"homepage":130,"download_link":131,"security_score":46,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"accelvia-uptime-monitor","Accelvia Uptime Monitor","1.0.3","Md Musfiqur Rahman","https:\u002F\u002Fprofiles.wordpress.org\u002Fmusfiqurrahman\u002F","\u003Cp>Accelvia Uptime Monitor turns your WordPress installation into a self-hosted website monitoring system. Instead of relying on external SaaS platforms, this plugin uses your local WordPress database to store uptime logs and performance metrics directly on your server.\u003C\u002Fp>\n\u003Cp>The plugin features a \u003Cstrong>Dual-Layer Architecture\u003C\u002Fstrong>: WordPress handles local analytics (HTML parsing, SSL certificate inspection), and optionally synchronizes with an external Edge Network. If your WordPress server goes offline, the external “Deadman’s Switch” detects the failure and sends alerts independently.\u003C\u002Fp>\n\u003Ch3>Key Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Dual-Layer Monitoring:\u003C\u002Fstrong> The plugin monitors your site locally via WordPress cron. Optionally, an external Edge Fallback (Deadman’s Switch) can detect total server failures and send alerts even when your WordPress installation is unreachable.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Self-Hosted Data Storage:\u003C\u002Fstrong> All historical analytics, ping logs, and configuration data are stored in your own WordPress database. No external accounts or subscriptions are required for core monitoring.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>SSL Certificate Tracking:\u003C\u002Fstrong> During each monitoring cycle, the plugin inspects the SSL\u002FTLS certificate of your site and calculates the remaining days until expiration. It sends warning alerts at 7 days, 3 days, and 1 day before expiry.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Defacement and Crash Detection:\u003C\u002Fstrong> You can configure a “Master Keyword” that must be present in your site’s HTML output. If the keyword is missing (indicating a white screen, database error, or content tampering), the plugin marks the site as down.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Multi-Channel Alerting:\u003C\u002Fstrong> Route alerts and periodic summary reports to Email, Slack, Discord, Telegram, and WhatsApp simultaneously. All channels are configured from the plugin settings page.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Additional Capabilities\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Edge Fallback (Deadman’s Switch):\u003C\u002Fstrong> An optional external cloud service that continuously polls your site. If WordPress becomes completely unreachable, the external service sends alerts on your behalf.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>SSL Expiry Countdown:\u003C\u002Fstrong> Automatically dispatches alerts at 7-day, 3-day, and 1-day intervals before your SSL certificate expires.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Keyword-Based Content Verification:\u003C\u002Fstrong> Verifies that specific content exists in your page’s HTML source, catching silent failures that return HTTP 200 but serve broken content.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Local Analytics Logging:\u003C\u002Fstrong> Stores all monitoring data in your WordPress MySQL database with configurable retention periods.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>PageSpeed Insights Integration:\u003C\u002Fstrong> Queries Google’s PageSpeed Insights API daily to track Desktop and Mobile performance scores over time.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Configuration: Server-Side Cron\u003C\u002Fh3>\n\u003Cp>By default, WordPress relies on “simulated cron” (WP-Cron), which only fires when a user visits your website. If your site receives low traffic, your uptime checks may be delayed.\u003C\u002Fp>\n\u003Cp>For accurate monitoring intervals, consider disabling default WP-Cron and setting up a server-side cron job (via cPanel or your hosting dashboard) to execute \u003Ccode>wp-cron.php\u003C\u002Fcode> every 5 minutes.\u003C\u002Fp>\n\u003Cp>This ensures the monitoring engine executes on schedule regardless of website traffic.\u003C\u002Fp>\n\u003Ch3>External Services\u003C\u002Fh3>\n\u003Cp>This plugin connects to the following third-party and external services. Each service is used only when the corresponding feature is enabled and configured by the site administrator.\u003C\u002Fp>\n\u003Ch4>Accelvia API Proxy (Edge Fallback \u002F Deadman’s Switch)\u003C\u002Fh4>\n\u003Cp>When the “Edge Fallback” feature is enabled in Settings, the plugin sends your monitored URLs, site identifier hash, and configured alert channel credentials to an external proxy service hosted on Vercel. This proxy independently pings your site and sends alerts if your WordPress server becomes completely unreachable.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Service URL:\u003C\u002Fstrong> https:\u002F\u002Faccelvia-api-proxy.vercel.app\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Data sent:\u003C\u002Fstrong> Monitored URLs, a hashed site identifier, and alert channel configuration (webhook URLs, API tokens).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>When sent:\u003C\u002Fstrong> Each time settings are saved with Edge Fallback enabled, and during scheduled sync cycles.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Service provider:\u003C\u002Fstrong> Accelvia (hosted on Vercel)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Vercel Terms of Service:\u003C\u002Fstrong> https:\u002F\u002Fvercel.com\u002Flegal\u002Fterms\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Vercel Privacy Policy:\u003C\u002Fstrong> https:\u002F\u002Fvercel.com\u002Flegal\u002Fprivacy-policy\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Telegram Bot API\u003C\u002Fh4>\n\u003Cp>When a Telegram Bot Token and Chat ID are configured in Settings, the plugin sends alert messages and periodic reports to the Telegram Bot API.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Service URL:\u003C\u002Fstrong> https:\u002F\u002Fapi.telegram.org\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Data sent:\u003C\u002Fstrong> Alert text content (site name, status, error details) and the configured Chat ID.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>When sent:\u003C\u002Fstrong> On status changes (up\u002Fdown), SSL expiry warnings, and scheduled periodic reports (if Telegram channel is selected).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Service provider:\u003C\u002Fstrong> Telegram FZ-LLC\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Telegram Terms of Service:\u003C\u002Fstrong> https:\u002F\u002Ftelegram.org\u002Ftos\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Telegram Privacy Policy:\u003C\u002Fstrong> https:\u002F\u002Ftelegram.org\u002Fprivacy\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>CallMeBot WhatsApp API\u003C\u002Fh4>\n\u003Cp>When a WhatsApp phone number and CallMeBot API key are configured in Settings, the plugin sends alert messages via the CallMeBot free API service.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Service URL:\u003C\u002Fstrong> https:\u002F\u002Fapi.callmebot.com\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Data sent:\u003C\u002Fstrong> Alert text content, the configured phone number, and CallMeBot API key.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>When sent:\u003C\u002Fstrong> On status changes (up\u002Fdown), SSL expiry warnings, and scheduled periodic reports (if WhatsApp channel is selected).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Service provider:\u003C\u002Fstrong> CallMeBot\u003C\u002Fli>\n\u003Cli>\u003Cstrong>CallMeBot Website \u002F Info:\u003C\u002Fstrong> https:\u002F\u002Fwww.callmebot.com\u003C\u002Fli>\n\u003Cli>\u003Cstrong>CallMeBot Privacy Info:\u003C\u002Fstrong> https:\u002F\u002Fwww.callmebot.com\u002Fprivacy-policy\u002F\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Google PageSpeed Insights API\u003C\u002Fh4>\n\u003Cp>The plugin queries Google’s PageSpeed Insights API once daily to retrieve Desktop and Mobile performance scores for each monitored URL.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Service URL:\u003C\u002Fstrong> https:\u002F\u002Fwww.googleapis.com\u002Fpagespeedonline\u002Fv5\u002FrunPagespeed\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Data sent:\u003C\u002Fstrong> The monitored URL and optionally a user-provided API key.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>When sent:\u003C\u002Fstrong> Once daily via WordPress scheduled cron, and on manual sync.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Service provider:\u003C\u002Fstrong> Google LLC\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Google Terms of Service:\u003C\u002Fstrong> https:\u002F\u002Fpolicies.google.com\u002Fterms\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Google Privacy Policy:\u003C\u002Fstrong> https:\u002F\u002Fpolicies.google.com\u002Fprivacy\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Domain Registration Expiry Check (RDAP Protocol)\u003C\u002Fh4>\n\u003Cp>The plugin’s daily security scan checks the domain registration expiration date of each monitored site using RDAP (Registration Data Access Protocol), the official successor to WHOIS as designated by ICANN. RDAP queries are sent directly to the authoritative domain registry for each supported TLD.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Data sent:\u003C\u002Fstrong> The domain name of each monitored URL.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>When sent:\u003C\u002Fstrong> Once daily during the scheduled security scan.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Supported TLDs and their authoritative RDAP servers:\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>.com \u002F .net domains are queried via Verisign (https:\u002F\u002Frdap.verisign.com)\u003C\u002Fli>\n\u003Cli>.org domains are queried via Public Interest Registry \u002F PIR (https:\u002F\u002Frdap.publicinterestregistry.org)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Protocol specification:\u003C\u002Fstrong> RDAP is an IETF\u002FICANN standard (RFC 9082, RFC 9083).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>ICANN RDAP Information:\u003C\u002Fstrong> https:\u002F\u002Fwww.icann.org\u002Frdap\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Verisign Terms of Service:\u003C\u002Fstrong> https:\u002F\u002Fwww.verisign.com\u002Fen_US\u002Fterms-of-service\u002Findex.xhtml\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Verisign Privacy Policy:\u003C\u002Fstrong> https:\u002F\u002Fwww.verisign.com\u002Fen_US\u002Fprivacy\u002Findex.xhtml\u003C\u002Fli>\n\u003Cli>\u003Cstrong>PIR (Public Interest Registry) Policies:\u003C\u002Fstrong> https:\u002F\u002Fthenew.org\u002Forg-people\u002Fabout-pir\u002Fpolicies\u002F\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Discord and Slack Webhooks\u003C\u002Fh4>\n\u003Cp>When Discord or Slack webhook URLs are configured in Settings, the plugin posts alert messages and periodic reports to those webhook endpoints. The webhook URLs are user-provided and point to the user’s own Discord server or Slack workspace.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Data sent:\u003C\u002Fstrong> Alert and report text content (site name, status, uptime percentage, response times).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>When sent:\u003C\u002Fstrong> On status changes (up\u002Fdown), SSL expiry warnings, and scheduled periodic reports (if the respective channel is selected).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Discord Terms of Service:\u003C\u002Fstrong> https:\u002F\u002Fdiscord.com\u002Fterms\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Discord Privacy Policy:\u003C\u002Fstrong> https:\u002F\u002Fdiscord.com\u002Fprivacy\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Slack Terms of Service:\u003C\u002Fstrong> https:\u002F\u002Fslack.com\u002Fterms-of-service\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Slack Privacy Policy:\u003C\u002Fstrong> https:\u002F\u002Fslack.com\u002Fprivacy-policy\u003C\u002Fli>\n\u003C\u002Ful>\n","A self-hosted WordPress uptime monitoring plugin with dual-layer architecture, SSL tracking, defacement detection, and multi-channel alerting.",157,"2026-06-04T21:54:00.000Z","6.9.5",[125,126,127,128,129],"deadman-switch","downtime-alert","ssl-checker","uptime-monitor","website-performance","https:\u002F\u002Faccelviateams.com\u002Faccelvia-uptime-monitor","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Faccelvia-uptime-monitor.1.0.3.zip",{"attackSurface":133,"codeSignals":176,"taintFlows":199,"riskAssessment":200,"analyzedAt":210},{"hooks":134,"ajaxHandlers":172,"restRoutes":173,"shortcodes":174,"cronEvents":175,"entryPointCount":11,"unprotectedCount":11},[135,141,146,150,155,157,161,165,169],{"type":136,"name":137,"callback":138,"priority":105,"file":139,"line":140},"filter","query_vars","semonto_health_check_query_var","functions.php",330,{"type":142,"name":143,"callback":144,"priority":105,"file":139,"line":145},"action","parse_request","semonto_health_check_request",331,{"type":142,"name":147,"callback":148,"priority":105,"file":139,"line":149},"init","semonto_health_monitor_rewrite_rules",332,{"type":142,"name":151,"callback":152,"file":153,"line":154},"admin_enqueue_scripts","semonto_health_monitor_enqueue_styles","semonto-health-monitor.php",19,{"type":142,"name":151,"callback":156,"file":153,"line":82},"semonto_health_monitor_enqueue_script",{"type":142,"name":158,"callback":159,"file":153,"line":160},"admin_menu","closure",86,{"type":142,"name":162,"callback":163,"file":153,"line":164},"admin_init","semonto_health_monitor_save_settings",95,{"type":142,"name":166,"callback":167,"file":153,"line":168},"admin_notices","semonto_show_account_notice",96,{"type":142,"name":162,"callback":170,"file":153,"line":171},"semonto_notice_dismissed",97,[],[],[],[],{"dangerousFunctions":177,"sqlUsage":189,"outputEscaping":192,"fileOperations":11,"externalRequests":11,"nonceChecks":11,"capabilityChecks":11,"bundledLibraries":198},[178,182,185],{"fn":179,"file":139,"line":180,"context":181},"exec",418,"$df_command = exec('which df');",{"fn":179,"file":139,"line":183,"context":184},427,"$vmstat_command = exec('which df');",{"fn":186,"file":139,"line":187,"context":188},"shell_exec",446,"$output = shell_exec('df -h');",{"prepared":190,"raw":11,"locations":191},5,[],{"escaped":171,"rawEcho":32,"locations":193},[194],{"file":195,"line":196,"context":197},"SemontoFramework\\index.php",68,"raw output",[],[],{"summary":201,"deductions":202},"The semonto-website-monitor plugin v1.1.6 exhibits a generally strong security posture with no known vulnerabilities or CVEs. The static analysis reveals a commendably small attack surface, with no AJAX handlers, REST API routes, shortcodes, or cron events exposed without authentication. The code also demonstrates good practices regarding SQL queries, exclusively using prepared statements, and a very high percentage of properly escaped output. The absence of file operations and external HTTP requests further reduces potential attack vectors. However, the presence of dangerous functions like 'exec' and 'shell_exec' is a significant concern. While the taint analysis shows no identified unsanitized flows, the mere existence of these powerful functions, especially without any apparent authorization or capability checks guarding their use, creates a latent risk. If an attacker could somehow trigger these functions, it could lead to arbitrary code execution on the server. The lack of nonce checks and capability checks on any potential entry points (though none are explicitly identified in the attack surface) is also a weakness that could be exploited if new entry points are introduced or if existing ones are not properly secured by default.",[203,206,208],{"reason":204,"points":205},"Dangerous functions (exec, shell_exec) present",15,{"reason":207,"points":190},"No nonce checks on potential entry points",{"reason":209,"points":190},"No capability checks on potential entry points","2026-03-17T06:45:24.503Z",{"wat":212,"direct":219},{"assetPaths":213,"generatorPatterns":216,"scriptPaths":217,"versionParams":218},[214,215],"\u002Fwp-content\u002Fplugins\u002Fsemonto-website-monitor\u002Fsemonto-health-monitor.css","\u002Fwp-content\u002Fplugins\u002Fsemonto-website-monitor\u002Fsemonto-health-monitor.js",[],[215],[],{"cssClasses":220,"htmlComments":227,"htmlAttributes":228,"restEndpoints":229,"jsGlobals":230,"shortcodeOutput":232},[221,222,223,224,225,226],"semonto-health-monitor","semonto-health-monitor__install-message","semonto-health-monitor__title","semonto-health-monitor__tabs","semonto-health-monitor__tab","semonto-health-monitor__body",[],[],[],[231],"SemontoHealthMonitor",[],{"error":234,"url":235,"statusCode":236,"statusMessage":237,"message":237},true,"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Fsemonto-website-monitor\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":239,"versions":240},7,[241,247,254,261,268,275,282],{"version":6,"download_url":24,"svn_tag_url":242,"released_at":26,"has_diff":243,"diff_files_changed":244,"diff_lines":26,"trac_diff_url":245,"vulnerabilities":246,"is_current":234},"https:\u002F\u002Fplugins.svn.wordpress.org\u002Fsemonto-website-monitor\u002Ftags\u002F1.1.6\u002F",false,[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fsemonto-website-monitor%2Ftags%2F1.1.4&new_path=%2Fsemonto-website-monitor%2Ftags%2F1.1.6",[],{"version":248,"download_url":249,"svn_tag_url":250,"released_at":26,"has_diff":243,"diff_files_changed":251,"diff_lines":26,"trac_diff_url":252,"vulnerabilities":253,"is_current":243},"1.1.4","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsemonto-website-monitor.1.1.4.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fsemonto-website-monitor\u002Ftags\u002F1.1.4\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fsemonto-website-monitor%2Ftags%2F1.1.3&new_path=%2Fsemonto-website-monitor%2Ftags%2F1.1.4",[],{"version":255,"download_url":256,"svn_tag_url":257,"released_at":26,"has_diff":243,"diff_files_changed":258,"diff_lines":26,"trac_diff_url":259,"vulnerabilities":260,"is_current":243},"1.1.3","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsemonto-website-monitor.1.1.3.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fsemonto-website-monitor\u002Ftags\u002F1.1.3\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fsemonto-website-monitor%2Ftags%2F1.1.2&new_path=%2Fsemonto-website-monitor%2Ftags%2F1.1.3",[],{"version":262,"download_url":263,"svn_tag_url":264,"released_at":26,"has_diff":243,"diff_files_changed":265,"diff_lines":26,"trac_diff_url":266,"vulnerabilities":267,"is_current":243},"1.1.2","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsemonto-website-monitor.1.1.2.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fsemonto-website-monitor\u002Ftags\u002F1.1.2\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fsemonto-website-monitor%2Ftags%2F1.1.1&new_path=%2Fsemonto-website-monitor%2Ftags%2F1.1.2",[],{"version":269,"download_url":270,"svn_tag_url":271,"released_at":26,"has_diff":243,"diff_files_changed":272,"diff_lines":26,"trac_diff_url":273,"vulnerabilities":274,"is_current":243},"1.1.1","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsemonto-website-monitor.1.1.1.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fsemonto-website-monitor\u002Ftags\u002F1.1.1\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fsemonto-website-monitor%2Ftags%2F1.1.0&new_path=%2Fsemonto-website-monitor%2Ftags%2F1.1.1",[],{"version":276,"download_url":277,"svn_tag_url":278,"released_at":26,"has_diff":243,"diff_files_changed":279,"diff_lines":26,"trac_diff_url":280,"vulnerabilities":281,"is_current":243},"1.1.0","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsemonto-website-monitor.1.1.0.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fsemonto-website-monitor\u002Ftags\u002F1.1.0\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fsemonto-website-monitor%2Ftags%2F1.0.1&new_path=%2Fsemonto-website-monitor%2Ftags%2F1.1.0",[],{"version":100,"download_url":283,"svn_tag_url":284,"released_at":26,"has_diff":243,"diff_files_changed":285,"diff_lines":26,"trac_diff_url":26,"vulnerabilities":286,"is_current":243},"https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsemonto-website-monitor.1.0.1.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fsemonto-website-monitor\u002Ftags\u002F1.0.1\u002F",[],[]]