{"id":368928,"date":"2026-09-17T10:23:48","date_gmt":"2026-09-17T10:23:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/eyesite-monitor\/"},"modified":"2026-09-18T12:18:03","modified_gmt":"2026-09-18T12:18:03","slug":"eyesite-monitor","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/eyesite-monitor\/","author":23566331,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"7.4.7","stable_tag":"7.4.7","tested":"7.1.1","requires":"6.2","requires_php":"7.2","requires_plugins":null,"header_name":"Eyesite Monitor","header_author":"Eyesite by Bielecki Consulting","header_description":"Pilnujemy Twojej strony 24\/7. Chroni przed awariami, monitoruje zam\u00f3wienia i informuje o problemach.","assets_banners_color":"062259","last_updated":"2026-09-18 12:18:03","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/eyesite.pl","rating":0,"author_block_rating":0,"active_installs":0,"downloads":92,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"6.7.3":{"tag":"6.7.3","author":"bieleckiconsulting","date":"2026-09-17 10:23:19","revision":3700068},"7.3.1":{"tag":"7.3.1","author":"bieleckiconsulting","date":"2026-09-17 12:10:53","revision":3700246},"7.3.2":{"tag":"7.3.2","author":"bieleckiconsulting","date":"2026-09-17 12:57:22","revision":3700329},"7.4.0":{"tag":"7.4.0","author":"bieleckiconsulting","date":"2026-09-18 12:18:03","revision":3701952},"7.4.1":{"tag":"7.4.1","author":"bieleckiconsulting","date":"2026-09-18 12:18:03","revision":3701952},"7.4.2":{"tag":"7.4.2","author":"bieleckiconsulting","date":"2026-09-18 12:18:03","revision":3701952},"7.4.3":{"tag":"7.4.3","author":"bieleckiconsulting","date":"2026-09-18 12:18:03","revision":3701952},"7.4.4":{"tag":"7.4.4","author":"bieleckiconsulting","date":"2026-09-18 12:18:03","revision":3701952},"7.4.5":{"tag":"7.4.5","author":"bieleckiconsulting","date":"2026-09-18 12:18:03","revision":3701952},"7.4.6":{"tag":"7.4.6","author":"bieleckiconsulting","date":"2026-09-18 12:18:03","revision":3701952},"7.4.7":{"tag":"7.4.7","author":"bieleckiconsulting","date":"2026-09-18 12:18:03","revision":3701952}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3701952,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3701952,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3700068,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3700068,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["6.7.3","7.3.1","7.3.2","7.4.0","7.4.1","7.4.2","7.4.3","7.4.4","7.4.5","7.4.6","7.4.7"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3700068,"resolution":"1","location":"assets","locale":"","width":1280,"height":766},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3700068,"resolution":"2","location":"assets","locale":"","width":1280,"height":800},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3700068,"resolution":"3","location":"assets","locale":"","width":1280,"height":730}},"screenshots":{"1":"Dashboard view with system monitoring status tiles.","2":"PHP error history.","3":"List of recorded front-end errors with form context."}},"plugin_section":[262246],"plugin_tags":[93,34356,5603,29148,286],"plugin_category":[45,54],"plugin_contributors":[281259],"plugin_business_model":[],"class_list":["post-368928","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-errors","plugin_tags-health-check","plugin_tags-monitoring","plugin_tags-uptime","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-security-and-spam-protection","plugin_contributors-bieleckiconsulting","plugin_committers-bieleckiconsulting"],"banners":{"banner":"https:\/\/ps.w.org\/eyesite-monitor\/assets\/banner-772x250.png?rev=3700068","banner_2x":"https:\/\/ps.w.org\/eyesite-monitor\/assets\/banner-1544x500.png?rev=3700068","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/eyesite-monitor\/assets\/icon-128x128.png?rev=3701952","icon_2x":"https:\/\/ps.w.org\/eyesite-monitor\/assets\/icon-256x256.png?rev=3701952","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/eyesite-monitor\/assets\/screenshot-1.png?rev=3700068","caption":"Dashboard view with system monitoring status tiles."},{"src":"https:\/\/ps.w.org\/eyesite-monitor\/assets\/screenshot-2.png?rev=3700068","caption":"PHP error history."},{"src":"https:\/\/ps.w.org\/eyesite-monitor\/assets\/screenshot-3.png?rev=3700068","caption":"List of recorded front-end errors with form context."}],"raw_content":"<!--section=description-->\n<p>Eyesite Monitor is a health and performance monitoring plugin for your WordPress site and WooCommerce store. It is a complete solution for agencies, freelancers and e-commerce owners that detects problems before your customers do. The plugin works on its own locally, and can optionally connect to the EyeSite service (eyesite.pl) for external 24\/7 uptime monitoring and e-mail alerts.<\/p>\n\n<h4>Key features<\/h4>\n\n<ul>\n<li><strong>Store monitoring:<\/strong> Tracks payment errors, the cart, shipping problems and sales silence (no orders for an unusual period).<\/li>\n<li><strong>Order anomalies:<\/strong> Intelligent detection of irregularities in order statuses based on a 30-day rolling average.<\/li>\n<li><strong>Server monitoring:<\/strong> Checks site availability, disk space usage, memory (RAM) and that WP-Cron is running correctly.<\/li>\n<li><strong>Google and AI visibility:<\/strong> Indexing blocks, sitemap, schema.org data, and whether AI assistants (ChatGPT, Claude, Perplexity) are allowed to read the site.<\/li>\n<li><strong>Security:<\/strong> Warns when your WordPress version has publicly known security holes, tests SSL certificate validity, Cloudflare protection and two-factor authentication (2FA).<\/li>\n<li><strong>Error reporting (JS &amp; PHP tracking):<\/strong> Captures and logs critical JavaScript (front-end) and PHP errors, including contact-form submission errors.<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the EyeSite service (https:\/\/eyesite.pl) to provide external uptime monitoring and e-mail alerts. The connection is entirely optional and only happens after you click the \"Connect\" button in the plugin panel. Without connecting, the plugin still works locally (the monitoring dashboard is available offline).<\/p>\n\n<p>What data is sent, and when:<\/p>\n\n<ul>\n<li>When connecting (after you click \"Connect\"): your site URL, your site name, the monitoring endpoint URL (which contains the API token used to read status) and your administrator e-mail address (pre-filled on the connect page, editable) used for alert notifications. This data is sent to the connect page at https:\/\/eyesite.pl\/connect.<\/li>\n<li>Periodically: the EyeSite monitoring backend requests your site's public status endpoint (\/?eyesite-api=check) to read health status (UP\/DOWN and check results) and e-mails you on failure.<\/li>\n<li>Once a day: the plugin verifies the connection token by sending it to the EyeSite automation backend at https:\/\/n8n.bielecki.cloud\/webhook\/eyesite-verify.<\/li>\n<li>On disconnect: the plugin sends the token to https:\/\/n8n.bielecki.cloud\/webhook\/eyesite-disconnect.<\/li>\n<li>Uptime data (only when connected, fetched in the background): the plugin reads your site's public uptime history from the EyeSite status page at https:\/\/status.eyesite.pl (the status page is identified by the slug assigned to your site when connecting). Only the slug is sent; nothing else.<\/li>\n<li>Feedback form (only when you submit it): the message, feedback type, your site URL, site name and administrator e-mail are e-mailed to the plugin author and also posted to https:\/\/n8n.bielecki.cloud\/webhook\/eyesite-feedback for logging. Nothing is sent unless you click \"Send\".<\/li>\n<li>Page-speed check (opt-in, off by default): only after you enable \"Pomiar szybko\u015bci strony\" in the settings or click \"W\u0142\u0105cz pomiar pr\u0119dko\u015bci\" on the dashboard, the plugin sends your site's public URL to the EyeSite automation backend at https:\/\/n8n.bielecki.cloud\/webhook\/eyesite-lighthouse, which queries the Google PageSpeed Insights API (https:\/\/developers.google.com\/speed\/docs\/insights\/v5\/about) server-side and returns the performance score. It then repeats at most every 6 hours while you open the plugin dashboard. Only the public site URL is sent; no personal data. You can switch it off at any time in the settings. Google's terms: https:\/\/developers.google.com\/terms ; privacy: https:\/\/policies.google.com\/privacy<\/li>\n<li>Audit and repair requests (only when you click \"Zle\u0107 napraw\u0119\" or a free-audit button): your site URL, site name, administrator e-mail, the type of request, the problem description shown next to the button and the detected consent-mode status \/ names of tracking tags found on your home page are e-mailed to the plugin author (kontakt@eyesite.pl) using your site's own mailer and also posted to https:\/\/n8n.bielecki.cloud\/webhook\/eyesite-audit-lead so that we can contact you about the request. Nothing is sent unless you click the button.<\/li>\n<li>Connection notice (only when you click \"Connect\"): the plugin author (kontakt@eyesite.pl) receives an e-mail with your site name, site URL and administrator e-mail, sent by your site's own mailer, so that the service can be set up.<\/li>\n<li>E-mail delivery test (only when the site is connected to EyeSite): the plugin sends a short test e-mail from your site's own mailer to probe@eyesite.pl. The message contains only a random token (no site data, no personal data). The plugin then asks https:\/\/n8n.bielecki.cloud\/webhook\/eyesite-mailprobe for the verdict (SPF\/DKIM\/DMARC result, blacklist status), sending only that token. The test runs when you click the test button on the e-mail card and automatically at most once a day while the site is connected; disconnecting stops it.<\/li>\n<li>WordPress security status (once a day): the plugin downloads the public list of WordPress releases from WordPress.org at https:\/\/api.wordpress.org\/core\/stable-check\/1.0\/ and compares it locally with the installed version, to warn you when your WordPress version has publicly known security holes. The request sends nothing about your site (no version, URL or token). This is the same WordPress.org API that WordPress itself uses; terms: https:\/\/wordpress.org\/about\/privacy\/<\/li>\n<li>Known vulnerabilities in plugins and themes (opt-in, off by default): only after you enable \"Sprawdzanie znanych luk we wtyczkach i motywach\" in the settings, the plugin sends the list of installed plugin and theme slugs with their version numbers to the EyeSite automation backend at https:\/\/n8n.bielecki.cloud\/webhook\/eyesite-vulns once a day (and shortly after an update). The backend matches the list against a copy of the Wordfence Intelligence vulnerability database (https:\/\/www.wordfence.com\/threat-intel\/) and returns the matching records. No site URL, e-mail address, token or personal data is sent, and the list is not stored. Vulnerability data: Wordfence Intelligence, Copyright Defiant Inc., terms: https:\/\/www.wordfence.com\/wordfence-intelligence-terms-and-conditions\/<\/li>\n<li>Domain expiry check (opt-in, off by default): only after you enable \"Sprawdzanie daty wyga\u015bni\u0119cia domeny\" in the settings, the plugin sends your site's registrable domain name (e.g. example.com) to the public RDAP service at https:\/\/rdap.org once a day and reads the registration expiry date and registrar. Nothing else is sent. RDAP.org terms and privacy: https:\/\/about.rdap.org\/<\/li>\n<\/ul>\n\n<p>AI visibility check (once a day): the plugin reads your own home page and \/robots.txt, and requests the home page once more with the user agent string of an AI search bot (OAI-SearchBot) to see whether your server or firewall turns such bots away. These are requests to your own site only; nothing is sent to OpenAI, Anthropic or any other service.<\/p>\n\n<p>Tracking tag detection (Google Tag Manager, Google Analytics, Meta Pixel, etc.), SSL certificate, SEO, checkout and hardening checks only read your own site (loopback requests to your home page, robots.txt, sitemap, cart and REST endpoints). The plugin does not load, call or send data to these services. The e-mail DNS check (SPF, DKIM, DMARC, MX) uses your server's normal DNS resolver.<\/p>\n\n<p>The EyeSite service (eyesite.pl) and its automation backend (n8n.bielecki.cloud) are provided by Bielecki Consulting. Terms of use and privacy policy:<\/p>\n\n<ul>\n<li>Terms of service: https:\/\/eyesite.pl\/regulamin\/<\/li>\n<li>Privacy policy: https:\/\/eyesite.pl\/polityka-prywatnosci\/<\/li>\n<\/ul>\n\n<h3>Privacy<\/h3>\n\n<p>Visitor data stays on your site. When a front-end error happens (a JavaScript error, a failed contact-form submission) or a WooCommerce cart is abandoned after a technical error, the plugin stores in your site's own database: the error message, script source and stack trace, the page URL, browser and device type, the user-agent string and a random session identifier. For abandoned carts it also stores the cart total. It does not store IP addresses, form contents, cart contents or customer details, and none of this data is sent to EyeSite or any other service.<\/p>\n\n<p>Cookie: in those situations only, the browser sets a first-party cookie <code>eyesite_session<\/code> holding a random identifier, valid for 30 minutes. It is used solely to group error reports from the same visit. It is not set on normal page views, so full-page caching is not affected. Treat it as a functional cookie in your consent banner.<\/p>\n\n<p>Retention: records are deleted automatically after 60 days, resolved errors after 3 days. Uninstalling the plugin removes its tables and options.<\/p>\n\n<p>The plugin adds a suggested paragraph to Settings -&gt; Privacy -&gt; Policy guide that you can copy into your privacy policy.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install it from the WordPress admin under \"Plugins\" -&gt; \"Add New\".<\/li>\n<li>Activate the plugin from the \"Plugins\" menu in the admin panel.<\/li>\n<li>Open the <code>Eyesite<\/code> menu to view monitoring results and the API credentials.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20this%20plugin%20free%3F\"><h3>Is this plugin free?<\/h3><\/dt>\n<dd><p>Yes. The plugin is a free part of the Eyesite ecosystem.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20support%20multisite%3F\"><h3>Does the plugin support multisite?<\/h3><\/dt>\n<dd><p>The plugin is designed for single-site installations. On multisite networks the error-tracking tables are only created for the site the plugin is activated on, activate it per site rather than network-wide.<\/p><\/dd>\n<dt id=\"the%20disk%20space%20check%20says%20everything%20is%20fine%2C%20but%20my%20hosting%20account%20is%20full\"><h3>The disk space check says everything is fine, but my hosting account is full<\/h3><\/dt>\n<dd><p>The check measures free space on the server volume. On shared hosting the <em>account quota<\/em> can be exhausted while the volume still has space, the check cannot see hosting quotas.<\/p><\/dd>\n<dt id=\"how%20do%20i%20enable%20sms%20alerts%3F\"><h3>How do I enable SMS alerts?<\/h3><\/dt>\n<dd><p>Extended SMS notifications are part of the paid service - visit our website eyesite.pl.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>7.4.7<\/h4>\n\n<ul>\n<li>Changed: connect button wording and trust line.<\/li>\n<\/ul>\n\n<h4>7.4.6<\/h4>\n\n<ul>\n<li>Changed: the connect call to action talks about tomorrow, not about the scan that just ran, and names a real risk from this site when there is one.<\/li>\n<li>Changed: until the site is connected, every detail section opens with a one-line reminder that the result is a one-off scan.<\/li>\n<li>Changed: no more em or en dashes anywhere in the plugin's text.<\/li>\n<\/ul>\n\n<h4>7.4.5<\/h4>\n\n<ul>\n<li>Changed: the \"connect\" call to action is the primary button; before monitoring is on, the score card shows a quiet link instead of a second button.<\/li>\n<li>Changed: the feedback box is folded by default.<\/li>\n<li>Changed: the preview alert cards show this site's own top problems (no more \"customers cannot pay\" on a site that is not a shop) and animate in one after another.<\/li>\n<\/ul>\n\n<h4>7.4.4<\/h4>\n\n<ul>\n<li>Changed: known vulnerabilities now appear in their own alert section at the top of the dashboard, above the to-do list, with a one-click \"Update\" button that runs the normal WordPress updater (when an update is available in the plugin's own update source).<\/li>\n<li>Changed: shorter AI visibility cards.<\/li>\n<\/ul>\n\n<h4>7.4.3<\/h4>\n\n<ul>\n<li>Fixed: a short home page is no longer described as built with JavaScript. That wording now needs real evidence of a JavaScript application; otherwise the plugin only says there is little text.<\/li>\n<\/ul>\n\n<h4>7.4.2<\/h4>\n\n<ul>\n<li>Added: AI visibility checks in the Google group: robots.txt rules for AI search bots (ChatGPT, Claude, Perplexity) versus training bots, whether the server turns an AI search bot away, schema.org data about the business, and whether the content is readable without JavaScript. Reads your own site only.<\/li>\n<\/ul>\n\n<h4>7.4.1<\/h4>\n\n<ul>\n<li>Added: optional check for plugins and themes with publicly known security holes, with the version that fixes them. Off by default; data from Wordfence Intelligence.<\/li>\n<\/ul>\n\n<h4>7.4.0<\/h4>\n\n<ul>\n<li>Added: warning when the installed WordPress version has publicly known security holes (WordPress.org marks it as \"insecure\"). Checked once a day against the public WordPress.org release list; nothing about your site is sent.<\/li>\n<\/ul>\n\n<h4>7.3.2<\/h4>\n\n<ul>\n<li>Fixed: no more \"problem fixed\" e-mails about WP-Cron. On low-traffic sites background tasks pause between visits, which is normal and not worth a message.<\/li>\n<li>Fixed: the \"problem fixed\" e-mail says \"site\" instead of \"store\" when WooCommerce is not active.<\/li>\n<\/ul>\n\n<h4>7.3.1<\/h4>\n\n<ul>\n<li>Docs: new Privacy section describing the visitor data stored locally (front-end errors, abandoned carts), the <code>eyesite_session<\/code> cookie and retention.<\/li>\n<li>Added: suggested privacy policy text in Settings -&gt; Privacy -&gt; Policy guide.<\/li>\n<\/ul>\n\n<h4>7.3.0<\/h4>\n\n<ul>\n<li>Changed: all features are free. Google visibility checks and the real e-mail delivery test are available to every site (the delivery test requires a connection to EyeSite, as it uses the EyeSite mailbox).<\/li>\n<li>Removed: PRO licence key, licence verification requests and locked previews.<\/li>\n<\/ul>\n\n<h4>7.2.5<\/h4>\n\n<ul>\n<li>Fixed: \"problem fixed\" e-mails were repeated every hour when a check flapped. A problem must now stay open for 2 hours, and the same problem is reported as fixed at most once every 7 days.<\/li>\n<li>Fixed: WP-Cron is reported as not working only when scheduled tasks are overdue by more than an hour (low-traffic sites no longer trigger false warnings).<\/li>\n<\/ul>\n\n<h4>7.2.4<\/h4>\n\n<ul>\n<li>Fixed: mail configuration check now audits the domain e-mails are actually sent from (WooCommerce sender address, SMTP plugin sender, or the site domain) instead of the administrator's e-mail domain. Old results are re-checked automatically.<\/li>\n<li>Fixed: the PRO preview overlay no longer overlaps neighbouring check groups.<\/li>\n<\/ul>\n\n<h4>7.2.3<\/h4>\n\n<ul>\n<li>Privacy: page-speed measurement is now opt-in and off by default (new setting); no measurement is scheduled on activation.<\/li>\n<li>Privacy: domain expiry check (RDAP) is now opt-in and off by default (new setting).<\/li>\n<li>Changed: admin CSS moved to assets\/css\/eyesite-admin.css (loaded only on EyeSite screens); all inline JavaScript is added with wp_add_inline_script().<\/li>\n<li>Docs: External services section now covers audit\/repair requests, the connection notice, PRO licence check, e-mail delivery test and RDAP.<\/li>\n<li>Removed: unused warning e-mail helper, redundant core includes, \"Tested up to\" plugin header.<\/li>\n<\/ul>\n\n<h4>7.2.2<\/h4>\n\n<ul>\n<li>Coding standards: Plugin Check 2.1 annotation for the read-only error_reporting() level check in the PHP error handler.<\/li>\n<\/ul>\n\n<h4>7.2.1<\/h4>\n\n<ul>\n<li>Security: all queries on the plugin's own tables now pass the table name through $wpdb-&gt;prepare() with the %i identifier placeholder.<\/li>\n<li>Security: display-only URL flags are sanitized; every state-changing request remains capability- and nonce-checked.<\/li>\n<li>Changed: minimum WordPress version raised to 6.2 (required for %i).<\/li>\n<li>Coding standards: Plugin Check clean-up (same fixes as 6.7.2).<\/li>\n<\/ul>\n\n<h4>7.2.0<\/h4>\n\n<ul>\n<li>Added: three hardening checks in \"Bezpiecze\u0144stwo\", checked from inside (no guessing): XML-RPC open, user logins exposed via the REST API, directory listing in uploads. Each with a plain explanation and a one-click fix request.<\/li>\n<li>Fixed: a corrupted character in the DMARC explanation.<\/li>\n<\/ul>\n\n<h4>7.1.0<\/h4>\n\n<ul>\n<li>Changed: the visitor session cookie is no longer set by PHP on every page view. It is created in the browser only when there is something to report (a front-end error or an abandoned cart), so full-page caches (LiteSpeed, WP Rocket, Cloudflare APO, Varnish) keep serving cached pages to every visitor.<\/li>\n<li>Fixed: an uncaught front-end error on a page without a form was recorded twice (once without browser\/session context).<\/li>\n<li>Changed: error tables, wider action column so the \"Zle\u0107 napraw\u0119\" button is never cut off; the resolve button now reads \"Oznacz jako naprawione\".<\/li>\n<\/ul>\n\n<h4>7.0.0<\/h4>\n\n<ul>\n<li>Added: score history (daily point, sparkline in the hero), a short \"problem naprawiony\" e-mail when a reported problem stops occurring (toggle in settings), and a \"Naprawione w tym tygodniu\" block in the weekly report.<\/li>\n<li>Added: PRO licence key field in settings (verified daily against the EyeSite backend, 14-day offline grace).<\/li>\n<li>Changed: returns check is one line inside \"Reklamy i analityka\"; server errors live only on their own page; the real-delivery mail test is a PRO feature.<\/li>\n<li>New dashboard for shop owners, not engineers: a \"Zdrowie sklepu\" score (0-100) with three plain sentences (can customers buy, do e-mails arrive, is the domain paid) and proof of work, checks run since install, problems found, problems fixed.<\/li>\n<li>First-run onboarding: the plugin runs its real checks once, shows the score and the first thing to fix, then offers 24\/7 alerts. No tooltip tour.<\/li>\n<li>\"Do zrobienia\" is the one action list: every item explains what it means for sales and offers a single \"Zle\u0107 napraw\u0119, darmowa wycena\" button (price shown only via the eyesite_fix_price filter).<\/li>\n<li>Detailed sections (checks grid, analytics, returns, carts, settings) are folded by default; they open when something needs attention.<\/li>\n<li>Weekly report opens with the score and the checks\/problems counters.<\/li>\n<\/ul>\n\n<h4>6.9.1<\/h4>\n\n<ul>\n<li>Fixed: when the shop was reported as down, the availability hero and KPI card jumped into the connection card (WordPress core relocates every <code>div.error<\/code> under the first heading).<\/li>\n<li>Changed: the purchase-path section is collapsible (open automatically when something is wrong); Google visibility is a PRO feature and shows as a locked preview on free sites.<\/li>\n<\/ul>\n\n<h4>6.9.0<\/h4>\n\n<ul>\n<li>Added: purchase-path test for WooCommerce, once a day (and on demand) the plugin walks product \u2192 add to cart \u2192 cart \u2192 checkout over HTTP like a visitor and checks that a payment method is offered. No order is placed. Fails show up in \"Do naprawienia\" and the weekly report.<\/li>\n<li>Added: domain expiry check (RDAP), warning 30 days before, critical at 7 days or expired.<\/li>\n<li>Added: Google visibility check, \"discourage search engines\", noindex on the home\/shop page (meta or X-Robots-Tag), robots.txt blocking everything, missing sitemap, canonical pointing at another host.<\/li>\n<li>Improved: mail deliverability section rewritten in plain language; the probe inbox no longer requires plus-addressing.<\/li>\n<li>Status endpoint: new aspects <code>checkout<\/code>, <code>seo<\/code>, <code>domain<\/code>.<\/li>\n<\/ul>\n\n<h4>6.8.1<\/h4>\n\n<ul>\n<li>Fixed: disconnecting now confirms the revocation with the EyeSite backend and retries from cron when the call fails, previously a lost request left the site monitored (and alerted on) after \"Roz\u0142\u0105cz\".<\/li>\n<li>Added: real delivery test for the mail audit, once a day (and on demand, at most hourly) the plugin sends one minimal plain-text probe message to an EyeSite inbox and reads back how the receiver authenticated it: SPF\/DKIM\/DMARC results, whether the message actually carried a DKIM signature, sending IP and host, Return-Path\/From alignment, blacklist hits and delivery time. Only a random token is sent, no site or customer data. Skipped automatically when the site is not connected or the DNS audit already reports a critical SPF\/MX problem.<\/li>\n<\/ul>\n\n<h4>6.8.0<\/h4>\n\n<ul>\n<li>Added: mail deliverability audit, daily DNS check of the sending domain (SPF record count and lookup limit, <code>all<\/code> policy, DMARC policy, MX, common DKIM selectors) with a 0-100 score, plain-language fixes, a card in the checks grid and a section in the weekly report. Nothing is sent; only DNS is read.<\/li>\n<li>Redesigned: calmer admin interface, single brand accent, monochrome SVG icons instead of emoji, flat hairline cards, tabular numerals.<\/li>\n<li>Fixed: error tables, the sticky header no longer covers the first row.<\/li>\n<li>Improved: error pages get severity chips, an empty state and an icon in the filter field.<\/li>\n<\/ul>\n\n<h4>6.7.1<\/h4>\n\n<ul>\n<li>Added: weekly HTML report e-mail (Monday 08:00) with uptime, PageSpeed, 7-day errors, abandoned carts, SSL days left and bestseller availability. Can be disabled in settings.<\/li>\n<li>Added: daily SSL certificate expiry check, warning at 21 days, error at 7 days or expired.<\/li>\n<li>Added: bestseller stock watch, an out-of-stock top-5 product raises a dashboard warning and a one-time e-mail.<\/li>\n<li>Added: feedback form on the dashboard (rate-limited, nonce-protected).<\/li>\n<\/ul>\n\n<h4>6.7.0<\/h4>\n\n<ul>\n<li>Added: KPI trend cards on the dashboard (availability, response time, speed, errors) with inline SVG sparklines built from real measurement history.<\/li>\n<li>Improved: speed and uptime history is stored (bounded) so trends accrue over time; all new data is removed on uninstall.<\/li>\n<li>Improved: calmer visual style, white cards, neutral borders, solid buttons.<\/li>\n<\/ul>\n\n<h4>6.6.3<\/h4>\n\n<ul>\n<li>Improved: sticky top bar with live status and section quick-navigation, \"Status systemu\" moved above the checks grid, side-by-side error\/cart bands, live filters on error pages, back-to-top button. No logic changes.<\/li>\n<\/ul>\n\n<h4>6.6.2<\/h4>\n\n<ul>\n<li>Fixed: connect\/disconnect notices were never displayed on the plugin pages.<\/li>\n<li>Fixed: downtime cost calculator now supports WooCommerce HPOS order storage (returned 0 on WooCommerce 8.2+).<\/li>\n<li>Security: cart dashboard widget restricted to shop managers\/admins; user ID for JS error reports is taken server-side; session ID and cart values are validated and clamped; global rate limit on cart-abandonment reports; oversized payloads are truncated instead of dropped.<\/li>\n<li>Compatibility: XHR breadcrumb wrapper preserves the prototype chain and static constants used by third-party scripts.<\/li>\n<\/ul>\n\n<h4>6.6.1<\/h4>\n\n<ul>\n<li>Redesigned admin interface: refreshed design system (typography, depth, color), refined status cards and availability sparkline, gradient action buttons, styled error tables, accessible focus states, and reduced-motion support. No functional changes.<\/li>\n<\/ul>\n\n<h4>6.6<\/h4>\n\n<ul>\n<li>Fixed: HTTPS check now recognises TLS terminated at a proxy\/CDN (X-Forwarded-Proto, Cloudflare), no more false \"no HTTPS\" alarms behind load balancers.<\/li>\n<li>Fixed: task-queue check counts only overdue actions, shops with subscriptions\/automations (which always hold future-scheduled actions) no longer trigger false \"queue overloaded\" alerts.<\/li>\n<li>Fixed: \"series of failed payments\" counts only genuinely failed orders, batch auto-cancellations of unpaid orders no longer trigger it.<\/li>\n<li>Fixed: Contact Form 7 submission results are now detected via CF7's DOM events (the legacy CSS classes were removed in CF7 5.2), so successes are counted on modern installs.<\/li>\n<li>Fixed: the returns\/withdrawal page scan reads all pages separately from blog posts, an active blog can no longer hide the returns page from detection.<\/li>\n<li>Improved: a single failed e-mail is a warning; the error-level alert requires repeated failures within 15 minutes.<\/li>\n<li>Improved: order-anomaly \"critical\" requires a minimum volume (3+ orders), so low-traffic shops aren't paged over a single refund.<\/li>\n<li>Improved: browser-extension errors and opaque cross-origin \"Script error.\" events are filtered out of user error tracking.<\/li>\n<li>Improved: the status endpoint runs after WooCommerce initialises its cart, avoiding payment-gateway edge cases.<\/li>\n<\/ul>\n\n<h4>6.5.1<\/h4>\n\n<ul>\n<li>Fixed: status endpoint could return a fatal error (HTTP 500) instead of a status when the API token option was missing; an empty stored token is now always rejected.<\/li>\n<li>Fixed: PHP error occurrence counts were inflated by repeated log scans, each log line is now ingested only once.<\/li>\n<li>Fixed: false \"jQuery not loaded\" reports on non-WooCommerce themes that ship without jQuery.<\/li>\n<li>Fixed: WooCommerce failed-payment window was widened by the site's UTC offset (timezone-safe date query).<\/li>\n<li>Fixed: leftover scheduled events and transients are now cleaned up on deactivation\/uninstall.<\/li>\n<li>Fixed: PHP warning (and self-recorded error) when error_log points to a character device such as \/dev\/stderr (common in containers).<\/li>\n<li>Improved: uptime data is now fetched in the background (like the speed check), a slow status-page response can no longer delay the dashboard.<\/li>\n<li>Improved: Cloudflare loopback detection is cached for an hour instead of running on every status poll.<\/li>\n<li>Improved: the visitor session cookie is now set before output starts, so error reports correlate across pages.<\/li>\n<li>Hardened admin consent card against stale cached data from older versions.<\/li>\n<\/ul>\n\n<h4>6.5<\/h4>\n\n<ul>\n<li>Added Consent Mode v2 and Meta Conversion API checks.<\/li>\n<li>Added detection of right-of-withdrawal (returns) signals.<\/li>\n<li>Added connection to the EyeSite service (connect \/ verify \/ disconnect handshake) and the required \"External services\" section.<\/li>\n<li>Connect form is served from eyesite.pl\/connect; verify\/disconnect run on the EyeSite automation backend (filterable via eyesite_connect_url \/ eyesite_verify_url \/ eyesite_disconnect_url).<\/li>\n<li>Status endpoint accepts an optional &amp;aspect= parameter (cart, payments, forms, ssl, cron\u2026) returning 200\/503 for a single check, so each aspect can be monitored separately.<\/li>\n<li>Fixed a PHP \"headers already sent\" warning when generating the session id.<\/li>\n<\/ul>\n\n<h4>6.4<\/h4>\n\n<ul>\n<li>Added intelligent order anomaly tracking.<\/li>\n<li>Refactored result tiles and dynamic titles.<\/li>\n<\/ul>\n\n<h4>6.3<\/h4>\n\n<ul>\n<li>Added logging of form submission problems.<\/li>\n<\/ul>\n\n<h4>6.2<\/h4>\n\n<ul>\n<li>Improved error tracking and Lighthouse metrics.<\/li>\n<\/ul>\n\n<h4>6.0<\/h4>\n\n<ul>\n<li>First public release of the advanced Eyesite agent.<\/li>\n<\/ul>","raw_excerpt":"We watch your site 24\/7. Eyesite Monitor guards against outages, monitors orders and alerts you to critical problems.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/368928","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=368928"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/bieleckiconsulting"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=368928"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=368928"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=368928"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=368928"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=368928"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=368928"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}