Fixed settings link text displaying as “_settings” instead of “Settings”
Improved reliability of OPCache detection (now a beta feature)
1.6.14
Increased the default timeout for PageSpeed Insights requests from 120 to 180 seconds, reducing timeout failures on slower connections
Fixed input sanitization warnings in backend profiler
Added Plugin Check (PCP) to build validation
Moved CI linting to local pre-commit and pre-push hooks
1.6.13
First scans can now be named before they run, with a Baseline example placeholder
Scan error details now persist and display on the Analyze page for scans with partial collector failures
Shows which checks completed and which were skipped, with error messages for each
1.6.6
Fixed environment collector crash caused by calling a renamed method on an external WordPress class
Inline scripts now loaded via wp_add_inline_script() for better CSP compatibility
PHPCS and PHPUnit checks now gate deployments in CI
1.6.5
Fixed contradictory OPcache findings
1.6.4
Per-strategy field data — CrUX metrics now split by mobile and desktop
Unified dashboard and comparison view layouts
Lab TTFB now computed from server response time plus network model
Fixed OPcache interned strings display using configured directive
1.6.3
Technical details now shown inline under each finding instead of in an accordion
Colored badges and borders for high/medium/low impact finding tags
Tested URL displayed in scan report subtitle
Fixed Mobile/Desktop toggle flicker on page load
1.6.2
Scan progress now shows spinners for each in-progress step and a shimmer animation with elapsed time
Added technical details to findings that previously lacked diagnostic data
Improved dashboard accessibility for keyboard and screen reader users
1.6.0
New dedicated “New Scan” screen — scan trigger moved out of the Analyze page for a cleaner workflow
Branded header bar with Mochyon Pulse logo across all admin screens
Comparison basis toggle — switch the Change column between Previous and Baseline in scan history
New environment findings: OPcache status, WP-Cron mode, autoloaded options size, and object cache detection
Backend time column added to scan history table
CrUX field data now confined to the Real-User Performance panel
Fixed Mobile/Desktop toggle flicker on page load
Fixed PDF report formatting: spacing, page breaks, and missing findings
Fixed scan retention deleting one extra scan at the limit
Fixed cancelled scans reverting to running on page reload
Fixed false-positive compression detection
Numerous UI polish improvements across dashboard, history, and comparison views
1.5.2
Improved dashboard accessibility for keyboard and screen reader users, including sortable tables, device toggles, scan history controls, live status messages, and clearer focus targets
Improved status and badge color contrast throughout the dashboard
Added a warning banner when you’re approaching or at your scan storage limit, with a link to adjust the setting
Fixed text domain mismatch flagged by WordPress Plugin Check
1.5.1
PDF report generation no longer requires an external CDN — the library is now bundled with the plugin
1.5.0
Renamed the plugin from Mochyon Lightspeed to Mochyon Pulse
Existing scan history, settings, and preferences are automatically migrated on upgrade
1.4.8
Improved progress feedback during scans — shows elapsed time and context-specific hints while waiting for PageSpeed Insights
Clearer error messages when a scan fails — plain-English explanations with collapsible technical details instead of raw API errors
When only one strategy (mobile or desktop) fails, the scan now completes with the available data instead of showing a generic failure
1.4.7
Increased the default timeout for PageSpeed Insights requests from 75 to 120 seconds, reducing timeout failures on slower connections
Fixed output escaping and added missing translator comments for WordPress Plugin Check compliance
1.4.6
Used POST requests for backend profiler to bypass page caches
Mobile and desktop PageSpeed Insights requests now run concurrently, reducing total scan time
1.4.5
Increased the default timeout for PageSpeed Insights requests from 60 to 75 seconds, reducing timeout failures on slower connections
“Changes Since Last Scan” table now appears directly above the Performance Breakdown so you can see what moved before the current metrics
Comparison table shows separate rows for mobile and desktop values where they differ (Core Web Vitals and Lighthouse Performance Score), so you can tell which device regressed or improved
Mobile/Desktop toggle, performance score, and metric cards are now grouped in a shared panel so it’s clear which sections the toggle controls
Removed the small stats row (Backend Time, DB Time, Peak Memory, Page Weight, PHP/CDN badges) from the main report and the scan-to-scan comparison view — the same information already appears in the Comparison table and Performance Breakdown below
Comparison table now keeps historical rows visible when the latest scan is missing a metric (e.g. when PageSpeed Insights times out), showing “—” for the missing value instead of silently dropping the row
1.4.0
Added Mobile/Desktop toggle on the dashboard and history pages — switch between mobile and desktop lab data like PageSpeed Insights, with your selection remembered across pages
Added a Real-User Performance panel that shows CrUX field data from Chrome users above the toggle when available
PDF reports now show three sections: Real-User Performance (when available), Mobile Performance, and Desktop Performance — each with its own score and metric table
Developer briefs now include the same three-section layout in markdown
Scan comparisons now show per-strategy deltas (mobile vs mobile, desktop vs desktop) with CrUX comparisons when both scans have field data
Existing scans from before this update continue to display correctly
1.3.3
Added a Page Weight column to Scan History showing total transfer size in KB with scan-over-scan deltas
Added optional scan name input so you can label an analysis before it runs — placeholder rotates through common optimization examples for inspiration
1.3.2
Darkened muted text throughout the dashboard (settings descriptions, history subtitles, metric labels, danger-zone hints) so it meets WCAG AAA contrast requirements
Added visible keyboard focus rings on every button, link, input, and control
Respects the system “Reduce motion” setting — animations and transitions stop when you ask them to
Progress bar, status messages, and icon-only buttons now speak correctly to screen readers
1.3.1
Fixed analysis freezing when you switch away from the Analyze screen and come back — scans now run in the background and pick up where they left off
1.3.0
Multisite: plugin inventory now recognizes plugins activated network-wide, so network-wide caching, CDN, and image-optimization plugins are no longer flagged as missing on subsite scans
Multisite: network-deactivating the plugin now unschedules pending scan jobs on every subsite, not just the current one
Multisite: uninstalling the plugin now cleans up scan data, settings, and transients on every subsite in the network
1.2.2
Added UTM tags to outbound links so visits driven by the plugin show up as a distinct source in Google Analytics
1.2.1
Removed the stray underline from the Feedback email button on the Settings page
Scan History now hides in-progress, failed, and cancelled scans so the list only shows results you can view and compare
1.2.0
Added a review request banner on Pulse pages after your first completed scan
Added a Feedback section on the Settings page for sending feedback directly to the Mochyon team
1.1.0
Redesigned the Analyze page’s compared view: side-by-side Core Web Vitals metric cards with deltas, findings grouped into resolved / new / still present, stacked plugin impact tables, a site health summary showing backend, database, memory, and page weight changes, and a plain-English summary that explains what changed between the two scans
Scan History now shows a green or red delta next to each Score, LCP, and TTFB value indicating the change from the previous scan; columns are left-aligned and widened so values line up cleanly down the list
1.0.3
Added LCP and TTFB columns to the Scan History table
Removed the always-redundant Status column from the Scan History table
Replaced the Delete text button with a compact trash icon
Auto-named scans (“Scan 1”, “Scan 2”, …) now keep their number when other scans are deleted; the number is assigned once at creation and can be edited via the rename button
Removed the relative time suffix (e.g. “(4 minutes ago)”) from the report date heading
1.0.0
First stable release
0.5.3
Fixed cancel button appearing on rate-limit errors when no scan is running
Fixed admin page titles showing raw unicode escapes instead of proper characters
0.5.2
Added i18n support with full translation template
Added uninstall.php for clean data removal
Added license.txt and readme.txt for WordPress.org compatibility
Added FAQ about running on development/staging sites