{"id":348206,"date":"2026-08-04T14:06:48","date_gmt":"2026-08-04T14:06:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/sitehale\/"},"modified":"2026-08-07T13:43:10","modified_gmt":"2026-08-07T13:43:10","slug":"sitehale","status":"publish","type":"plugin","link":"https:\/\/vec.wordpress.org\/plugins\/sitehale\/","author":23541439,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.5.0","stable_tag":"0.5.0","tested":"7.0.3","requires":"5.6","requires_php":"7.4","requires_plugins":null,"header_name":"SiteHale","header_author":"SiteHale","header_description":"Free Site Checkup (cron, PHP errors, database, updates, admins, mail) plus the companion to the SiteHale managed care service. Sends nothing anywhere until you click Connect.","assets_banners_color":"101b35","last_updated":"2026-08-07 13:43:10","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/sitehale.com\/how-it-works\/","header_author_uri":"https:\/\/sitehale.com","rating":0,"author_block_rating":0,"active_installs":10,"downloads":94,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.4.11":{"tag":"0.4.11","author":"sitehale","date":"2026-08-04 14:06:23"},"0.5.0":{"tag":"0.5.0","author":"sitehale","date":"2026-08-07 13:43:10"}},"upgrade_notice":{"0.5.0":"<p>Adds the Site Checkup to Tools \u2192 Site Health, shows when the weekly re-check is next due (and warns if it has stopped), and stops the PHP-errors card reporting a clean result when it could not actually read a log.<\/p>","0.4.2":"<p>Care reports now render full-width with their new dashboard layout on the Care Reports page. Older email-style reports in your history keep their original framing.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3634250,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3634250,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3634250,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3634250,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.4.11","0.5.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3634250,"resolution":"1","location":"assets","locale":"","width":1898,"height":1450},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3634250,"resolution":"2","location":"assets","locale":"","width":1898,"height":1450},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3634250,"resolution":"3","location":"assets","locale":"","width":1898,"height":1450},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3634250,"resolution":"4","location":"assets","locale":"","width":1898,"height":1450},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3634250,"resolution":"5","location":"assets","locale":"","width":1075,"height":660}},"screenshots":{"1":"Site Checkup \u2014 free local health check: cron, PHP errors, database weight, updates and environment EOL, admin audit, mail test.","2":"The SiteHale page \u2014 what the free plugin does on its own, what the paid Care and Managed plans add, and your connection status. Connecting is one click and uses WordPress core's own Application Passwords flow; the plugin never creates users or mints credentials itself.","3":"WordPress core's native authorization screen \u2014 you approve SiteHale under your own account and can revoke it any time from Users \u2192 Profile.","4":"Care Reports \u2014 your monthly SiteHale care report rendered right in wp-admin, with the last 12 reports on file.","5":"The dashboard widget \u2014 latest care summary and the number of automated checks that ran on your site this period."}},"plugin_section":[262246],"plugin_tags":[23519,732,274441,5603,151481],"plugin_category":[52,54],"plugin_contributors":[274803,274442],"plugin_business_model":[],"class_list":["post-348206","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-diagnostics","plugin_tags-maintenance","plugin_tags-managed-service","plugin_tags-monitoring","plugin_tags-site-health","plugin_category-performance","plugin_category-security-and-spam-protection","plugin_contributors-macsolutionsplus","plugin_contributors-sitehale","plugin_committers-sitehale"],"banners":{"banner":"https:\/\/ps.w.org\/sitehale\/assets\/banner-772x250.png?rev=3634250","banner_2x":"https:\/\/ps.w.org\/sitehale\/assets\/banner-1544x500.png?rev=3634250","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/sitehale\/assets\/icon-128x128.png?rev=3634250","icon_2x":"https:\/\/ps.w.org\/sitehale\/assets\/icon-256x256.png?rev=3634250","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/sitehale\/assets\/screenshot-1.png?rev=3634250","caption":"Site Checkup \u2014 free local health check: cron, PHP errors, database weight, updates and environment EOL, admin audit, mail test."},{"src":"https:\/\/ps.w.org\/sitehale\/assets\/screenshot-2.png?rev=3634250","caption":"The SiteHale page \u2014 what the free plugin does on its own, what the paid Care and Managed plans add, and your connection status. Connecting is one click and uses WordPress core's own Application Passwords flow; the plugin never creates users or mints credentials itself."},{"src":"https:\/\/ps.w.org\/sitehale\/assets\/screenshot-3.png?rev=3634250","caption":"WordPress core's native authorization screen \u2014 you approve SiteHale under your own account and can revoke it any time from Users \u2192 Profile."},{"src":"https:\/\/ps.w.org\/sitehale\/assets\/screenshot-4.png?rev=3634250","caption":"Care Reports \u2014 your monthly SiteHale care report rendered right in wp-admin, with the last 12 reports on file."},{"src":"https:\/\/ps.w.org\/sitehale\/assets\/screenshot-5.png?rev=3634250","caption":"The dashboard widget \u2014 latest care summary and the number of automated checks that ran on your site this period."}],"raw_content":"<!--section=description-->\n<p><strong>Site Checkup \u2014 free, no account needed.<\/strong> Install, click SiteHale \u2192 Site Checkup, and get an honest, read-only health check of your WordPress site, run locally in that page load:<\/p>\n\n<ul>\n<li><strong>Scheduled tasks<\/strong> \u2014 overdue WP-Cron events and Action Scheduler backlog. Dead cron silently stops scheduled posts, backups and update checks.<\/li>\n<li><strong>PHP errors<\/strong> \u2014 fatal errors hiding in logs nobody reads, plus oversized logs quietly eating disk.<\/li>\n<li><strong>Database health<\/strong> \u2014 autoloaded-options weight (the most common hidden cause of a slow site), expired transients, table overhead.<\/li>\n<li><strong>Updates &amp; environment<\/strong> \u2014 pending core\/plugin\/theme updates, and whether your PHP and MySQL\/MariaDB versions are past their security-support end dates.<\/li>\n<li><strong>Administrator audit<\/strong> \u2014 every admin account listed. A new admin you didn't create is the classic compromise sign.<\/li>\n<li><strong>Outbound email test<\/strong> \u2014 one click proves whether your site can actually send mail, before a customer tells you the contact form is broken.<\/li>\n<\/ul>\n\n<p>The checkup sends nothing anywhere \u2014 it reads your site and prints the results. It is yours, free, forever, with no account and no connection.<\/p>\n\n<p><strong>It tells you when it could not check.<\/strong> If your site's PHP error log cannot be read \u2014 logging switched off, a custom log path, or PHP writing to the web server's own file, which is normal on shared hosting \u2014 the checkup says exactly that, and marks the card \"Could not check\". It will not show you a green tick it did not earn.<\/p>\n\n<p><strong>Checkup history &amp; weekly re-check (also free, also local).<\/strong> Every checkup stores a compact snapshot (last 12, on your own site), so the page shows what changed since last time \u2014 \"autoloaded options grew 40%\", \"2 fewer fatal errors\". A weekly background re-check runs the same snapshot automatically, and if something <em>regresses<\/em> \u2014 a new administrator account, new fatal errors, cron gone overdue, an autoload jump \u2014 you get one dismissible admin notice. No regression, no notice, ever. The page also shows when the next automatic re-check is due, and warns you if it has stopped running \u2014 a plugin that promises a weekly check should be able to prove it is happening.<\/p>\n\n<p><strong>In Site Health too.<\/strong> The checkup result and the weekly re-check appear as tests under <strong>Tools \u2192 Site Health<\/strong>, and a SiteHale panel is added to <strong>Site Health \u2192 Info<\/strong> \u2014 the screen you copy into a support ticket when you need someone else to look. These read the last stored checkup, so they add no work to your dashboard.<\/p>\n\n<p><strong>Email the checkup.<\/strong> Send yourself (or your developer) a plain-text copy of the results via your own site's wp_mail(). An optional, off-by-default checkbox also shares the summary with SiteHale so a human can review it and reply with recommendations \u2014 that is the only way the free half of the plugin ever sends anything anywhere, and only if you tick the box.<\/p>\n\n<p><strong>The other half: SiteHale managed care.<\/strong> The checkup runs once, when you click it. The SiteHale service (https:\/\/sitehale.com) runs checks like these \u2014 plus SEO optimization, content work, verified backups and uptime monitoring \u2014 on a schedule, every week, with a human reviewing alerts and a monthly report you can actually read. If you connect, this plugin becomes the companion:<\/p>\n\n<ol>\n<li><strong>Connect<\/strong> \u2014 a one-click handshake using WordPress core's own Application Passwords authorization screen. The plugin never creates users and never mints credentials itself; you approve access on WordPress's native consent page, under your own account, and can revoke it any time from Users \u2192 Profile.<\/li>\n<li><strong>Health diagnostics<\/strong> \u2014 read-only REST endpoints (the same data the Site Checkup shows) that let the SiteHale service watch over sites it cannot reach any other way. All endpoints require an Application Password plus administrator capability.<\/li>\n<li><strong>Care reports<\/strong> \u2014 your monthly SiteHale care report, rendered right in your dashboard: a dashboard widget with the latest summary plus a Care Reports page with the last 12 full reports. Reports are pushed by the SiteHale service (authenticated, size-limited, HTML sanitized on arrival).<\/li>\n<\/ol>\n\n<p><strong>Who builds it.<\/strong> SiteHale is built and operated by MacSolutions Plus, an Apple Authorized Service Provider in Buffalo, NY, in business since 2001. The checks in this plugin are the same ones we run across the sites we look after every week.<\/p>\n\n<h4>External services<\/h4>\n\n<p>This plugin connects to the SiteHale managed care service (https:\/\/sitehale.com), operated by the plugin author. It makes exactly three kinds of outbound requests, each strictly after an explicit administrator action:<\/p>\n\n<ol>\n<li><code>https:\/\/connect.sitehale.com\/connect\/facts<\/code> \u2014 a one-time site snapshot (WordPress\/PHP\/database versions, theme, plugin list, permalink settings) sent when you click Connect, so the service can be configured for your site.<\/li>\n<li><code>https:\/\/connect.sitehale.com\/connect\/pair<\/code> \u2014 the Application Password you approved on WordPress's authorization screen, sent once to complete the connection. WordPress core returns that credential to <em>your own site<\/em>, and the plugin forwards it from your server directly to SiteHale over an encrypted connection, so it is never placed in a web address or handled by your browser.<\/li>\n<li><code>https:\/\/connect.sitehale.com\/connect\/checkup<\/code> \u2014 sent ONLY when you tick the off-by-default \"share with SiteHale\" checkbox on the Email-this-checkup form: the checkup summary (the health lines shown on the page \u2014 no content, no visitor data) plus the email address you entered, so a SiteHale human can reply with recommendations.<\/li>\n<\/ol>\n\n<p>No other outbound requests are made. The diagnostic and report endpoints are <em>inbound<\/em>: the SiteHale service calls your site, authenticated with the Application Password you approved. Disconnecting (or revoking the Application Password under Users \u2192 Profile) fully stops all access and transmission. Service information, pricing, and support live at https:\/\/sitehale.com \u2014 see How It Works (https:\/\/sitehale.com\/how-it-works\/), Support (https:\/\/sitehale.com\/support\/), Privacy Policy (https:\/\/sitehale.com\/privacy\/), and Terms (https:\/\/sitehale.com\/terms\/).<\/p>\n\n<h4>Privacy<\/h4>\n\n<p><strong>The free half of the plugin transmits nothing at all.<\/strong> The Site Checkup, its history, the weekly re-check and the regression notice run entirely on your own site, and are fully usable without an account, a connection, or a subscription.<\/p>\n\n<p>The plugin makes <strong>no outbound request until you explicitly ask for one<\/strong> \u2014 clicking Connect, or ticking the off-by-default \"share with SiteHale\" checkbox on the Email-this-checkup form. When you connect, a one-time snapshot of your site's environment (WordPress\/PHP\/database versions, theme, plugin list, permalink settings \u2014 no content, no visitor data) is sent to SiteHale so the service can be configured for your site. Disconnecting (or revoking the Application Password) fully stops all access and transmission.<\/p>\n\n<p>Full policy: https:\/\/sitehale.com\/privacy\/ \u00b7 Terms: https:\/\/sitehale.com\/terms\/<\/p>\n\n<!--section=installation-->\n<p>Using the free Site Checkup \u2014 no account, no configuration, no connection:<\/p>\n\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>Go to <strong>SiteHale \u2192 Site Checkup<\/strong>. The checkup runs on that page load and shows your results immediately.<\/li>\n<li>Optionally use <strong>Email me this checkup<\/strong> to send yourself a copy, and <strong>Send test email<\/strong> to prove outbound mail works.<\/li>\n<\/ol>\n\n<p>That is the whole free setup. A weekly background re-check starts on its own and only speaks up if something regresses.<\/p>\n\n<p>Optional \u2014 connecting to the paid SiteHale care service:<\/p>\n\n<ol>\n<li>Go to <strong>SiteHale<\/strong> and click <strong>Connect to SiteHale<\/strong>.<\/li>\n<li>Approve access on WordPress's own Application Passwords authorization screen.<\/li>\n<li>Connecting is free and does not sign you up for a paid plan. Care and Managed are paid monthly plans arranged directly with SiteHale; care reports appear under <strong>SiteHale \u2192 Care Reports<\/strong> once you have a plan and it is active. Revoke any time from <strong>SiteHale \u2192 Disconnect<\/strong> or <strong>Users \u2192 Profile<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20slow%20my%20site%20down%3F\"><h3>Does this plugin slow my site down?<\/h3><\/dt>\n<dd><p>No. It adds no front-end code at all. The diagnostic endpoints only run when the SiteHale service calls them (authenticated), and each is a cheap, bounded read.<\/p><\/dd>\n<dt id=\"what%20data%20leaves%20my%20site%3F\"><h3>What data leaves my site?<\/h3><\/dt>\n<dd><p>Nothing, unless you ask. The Site Checkup and the weekly re-check are entirely local. Data leaves your site in only two cases, both listed under External services: when you click Connect, and when you tick the off-by-default share checkbox on the Email-this-checkup form. The recipient is always SiteHale, never a third party. Disconnect stops everything.<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20without%20a%20sitehale%20subscription%3F\"><h3>Can I use this without a SiteHale subscription?<\/h3><\/dt>\n<dd><p>Yes \u2014 the Site Checkup page, its history, and the weekly background re-check are free, run entirely locally, and never expire. The Connect flow, remote diagnostics and monthly care reports are the parts that pair with the paid managed service.<\/p><\/dd>\n<dt id=\"does%20clicking%20connect%20start%20a%20subscription%20or%20charge%20me%3F\"><h3>Does clicking Connect start a subscription or charge me?<\/h3><\/dt>\n<dd><p>No \u2014 connecting by itself is free and never charges you. Care and Managed are paid monthly plans, and clicking Connect does not sign you up for one: it only pairs your site so a plan can be set up if you decide to buy one. Payment is never handled by the plugin \u2014 you arrange a plan directly with SiteHale, and it starts only once you have agreed to it. Connect without a plan and your site simply stays on Free. The SiteHale page shows your plan status (Free, Care, or Managed: not active \/ awaiting activation \/ active) at all times.<\/p><\/dd>\n<dt id=\"does%20the%20weekly%20background%20check%20send%20anything%20anywhere%3F\"><h3>Does the weekly background check send anything anywhere?<\/h3><\/dt>\n<dd><p>No. It runs the same local snapshot the checkup page uses and stores the result on your own site. Its only visible output is a dismissible admin notice, and only when something actually regressed (a new admin account, new fatal errors, overdue cron, an autoload jump). A clean week produces nothing at all.<\/p><\/dd>\n<dt id=\"will%20this%20plugin%20nag%20me%20with%20notices%3F\"><h3>Will this plugin nag me with notices?<\/h3><\/dt>\n<dd><p>No. There is exactly one notice, it only appears when the weekly check finds a regression, it is dismissible, and a subsequent clean check clears it automatically.<\/p><\/dd>\n<dt id=\"does%20it%20work%20on%20wordpress%20multisite%3F\"><h3>Does it work on WordPress Multisite?<\/h3><\/dt>\n<dd><p>Yes, per site. The Site Checkup, its history and the weekly re-check are per-site, so each site in a network gets its own results, and each site connects to SiteHale separately if you want it to. Network-activating the plugin makes it available everywhere; only users who can manage a site's options see it. Uninstalling from the network removes the plugin's data from every site in it, not just the one you were on.<\/p><\/dd>\n<dt id=\"where%20do%20i%20get%20support%3F\"><h3>Where do I get support?<\/h3><\/dt>\n<dd><p>Managed clients: https:\/\/sitehale.com\/support\/ or plugins@sitehale.com. Free-plugin questions are welcome on the WordPress.org support forum for this plugin.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.5.0<\/h4>\n\n<ul>\n<li>New: Site Health integration \u2014 the Site Checkup result and the weekly re-check now appear as tests under Tools \u2192 Site Health, and a SiteHale panel is added to Site Health \u2192 Info. Both read the checkup already stored on your site, so nothing extra runs on your dashboard.<\/li>\n<li>New: the Site Checkup page shows when the next automatic weekly re-check is due, and says so plainly when it is not scheduled or has stopped running because this site's WP-Cron is not firing. The plugin promised a weekly check; now it verifies one is actually going to happen.<\/li>\n<li>New: when your site is connected, the SiteHale page and dashboard widget show when the service last contacted it \u2014 proof you can see, rather than a promise you have to take on trust.<\/li>\n<li>Fixed: the PHP errors card could report \"no logs found\", which reads as a clean bill of health, on sites where no log could be read at all \u2014 error logging switched off, a custom WP_DEBUG_LOG path, or PHP writing to the web server's own log (the normal arrangement on much of shared hosting). It now names which of those it found and marks the card \"Could not check\". A custom WP_DEBUG_LOG path is also read properly now, instead of being missed.<\/li>\n<li>Fixed: uninstalling left one stored setting behind, and on a Multisite network cleaned up only the site it was run from. Uninstall now removes everything the plugin stored, on every site in the network.<\/li>\n<li>Fixed: fatal errors caused by your own WP-CLI <code>wp eval<\/code> commands were counted as faults on the site. They share the same error log, so a typo at the command line was reported back as a production fatal \u2014 and would have triggered the weekly regression notice. They are now listed separately and excluded from the count. A genuine error that happens to occur while WP-CLI runs a scheduled task still counts, because your site would hit it on a page load too.<\/li>\n<li>Compatibility: tested against WordPress 7.0.3. WordPress 7.0 raised its own minimum PHP version to 7.4, which this plugin has always required.<\/li>\n<li>Fixed: the diagnostics could emit PHP notices of their own when a check came back empty \u2014 unhelpful in a plugin whose job is reporting PHP notices. Also, the Action Scheduler table lookup now escapes the table prefix so it cannot match a similarly named table.<\/li>\n<\/ul>\n\n<h4>0.4.11<\/h4>\n\n<ul>\n<li>Hardened: the SiteHale page no longer updates the stored connection timestamp from a page address. The connection is recorded only by the server-to-server handshake that actually completes it, so a crafted link can never make a site appear connected.<\/li>\n<li>Clarified the readme: the Site Checkup, its history and the weekly re-check are free and fully usable on their own; the Privacy section no longer implied a subscription is required. Installation now documents the free setup first.<\/li>\n<\/ul>\n\n<h4>0.4.10<\/h4>\n\n<ul>\n<li>Internal code-quality annotation only. No functional change.<\/li>\n<\/ul>\n\n<h4>0.4.9<\/h4>\n\n<ul>\n<li>Removed an unused connection setting left over from the previous release. No change to behaviour; the plugin now contacts only the three addresses listed under External services.<\/li>\n<\/ul>\n\n<h4>0.4.8<\/h4>\n\n<ul>\n<li>Security: the Application Password created when you click Connect is no longer passed through a redirect to an external address. WordPress now returns it to your own site, and the plugin sends it to SiteHale directly over an encrypted server-to-server request. Nothing about what is shared changes; it simply never travels in a web address.<\/li>\n<li>Connect failures are now reported instead of failing quietly, so you are never left with an unused Application Password and no explanation.<\/li>\n<\/ul>\n\n<h4>0.4.7<\/h4>\n\n<ul>\n<li>Housekeeping: stored care reports are now reconciled when a new report arrives, so a report body can no longer linger in the database after its entry has gone. No change to what is shown or reported.<\/li>\n<\/ul>\n\n<h4>0.4.6<\/h4>\n\n<ul>\n<li>Connect: the confirmation URL shown on the WordPress authorization screen is now much shorter and easier to read. No change to how the connection works or what is sent.<\/li>\n<\/ul>\n\n<h4>0.4.5<\/h4>\n\n<ul>\n<li>Hardened: the database-health and Action Scheduler diagnostic queries now bind every value through $wpdb-&gt;prepare() with explicit placeholders instead of interpolating them. No change to the data reported.<\/li>\n<\/ul>\n\n<h4>0.4.4<\/h4>\n\n<ul>\n<li>Fixed: sites set up by the SiteHale service directly (without the browser Connect flow) showed \"Not connected\" even while receiving care reports. Receiving an authenticated care report now marks the site as connected, so the Connection section always matches the plan status.<\/li>\n<\/ul>\n\n<h4>0.4.3<\/h4>\n\n<ul>\n<li>New: \"Your plan\" panel now shows the SiteHale Managed plan ($149\/mo) \u2014 everything in Care plus updates applied for you (staging-tested first), speed and database optimization, and verified backups with restore drills. The badge lights up when your site is on the Managed plan.<\/li>\n<li>Improved: care report delivery now records which plan the site is on, keeping the plan panel accurate automatically.<\/li>\n<\/ul>\n\n<h4>0.4.2<\/h4>\n\n<ul>\n<li>Improved: the Care Reports page lets modern dashboard-style care reports use the full admin width; legacy email-style reports in the history keep the original boxed rendering.<\/li>\n<\/ul>\n\n<h4>0.4.1<\/h4>\n\n<ul>\n<li>New: \"Your plan\" panel on the SiteHale page \u2014 a side-by-side breakdown of the Free plan (the full plugin: Site Checkup, weekly re-check, regression notices \u2014 free forever) versus the paid SiteHale Care service ($49\/mo), with a live status badge: Not active, Awaiting activation (connected but Care not yet started), or Active (a care report has been delivered).<\/li>\n<li>Clarified: connecting links your site so Care can be set up \u2014 it is free, does not start a subscription, and nothing is ever charged through the plugin. The connected state now says so instead of implying the service is running.<\/li>\n<\/ul>\n\n<h4>0.4.0<\/h4>\n\n<ul>\n<li>New: Checkup history \u2014 every Site Checkup stores a compact local snapshot (last 12) and the page shows what changed since last time, in both directions.<\/li>\n<li>New: Weekly background re-check (WP-Cron, local only) with a single dismissible admin notice shown only when something regressed: new administrator account, new fatal errors, cron gone overdue, autoload-weight jump, or an environment component reaching end of security support. A clean check clears the notice.<\/li>\n<li>New: Email this checkup \u2014 send the summary to any address via your own site's wp_mail(). Optional off-by-default checkbox shares the summary with SiteHale for a human follow-up (disclosed under External services).<\/li>\n<li>Uninstall now also removes the checkup history, regression state, and the scheduled event.<\/li>\n<li>Fix: database-health diagnostics on MySQL 8 hosts emitted PHP 8 \"Undefined array key\" warnings (information_schema returns UPPERCASE column names on MySQL, lowercase on MariaDB) \u2014 every column is now explicitly aliased.<\/li>\n<\/ul>\n\n<h4>0.3.0<\/h4>\n\n<ul>\n<li>New: Site Checkup \u2014 a free wp-admin page that runs the plugin's health diagnostics locally (cron health, PHP error logs, database health, pending updates plus PHP\/database end-of-support grading, administrator audit, outbound mail test). No account, no network calls, read-only.<\/li>\n<\/ul>\n\n<h4>0.2.1<\/h4>\n\n<ul>\n<li>Connect intake moved to the connect.sitehale.com subdomain (marketing site now lives at sitehale.com). No change to already-connected sites.<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Care reports: authenticated report-push endpoint, SiteHale \u2192 Care Reports admin page (last 12 reports), and a dashboard widget showing the latest care summary.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release: Connect flow (core Application Passwords authorization), connect-code fallback, diagnostic REST endpoints (cron, PHP errors, DB health, updates, admins, mail probe).<\/li>\n<\/ul>","raw_excerpt":"Free one-click Site Checkup \u2014 cron health, PHP fatals, database bloat, updates, admin audit, mail test \u2014 plus the SiteHale managed care companion.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/348206","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=348206"}],"author":[{"embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/sitehale"}],"wp:attachment":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=348206"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=348206"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=348206"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=348206"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=348206"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=348206"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}