Scalability Pro changelog

Speed up your whole site - big catalogues, big databases, no re-architecture

Latest version6.29.24
Released15 August 2026
Last 90 days8 releases
Last 90 days33 changes
Tested up toWordPress 7.0

6.29.2415 August 2026

  • Enable good settings and Apply all settings no longer configure or build Super Speedy Archives, which now does both from its own tab
  • Clear all options now reverts only Scalability Pro's own settings, report and indexes, and leaves Super Speedy Archives and its table alone

6.29.2314 August 2026

  • Moved MCP onto the one shared Abilities bridge and removed Scalability Pro's duplicate dedicated Adapter server and AI Engine registration
  • MCP setup now uses a dedicated least-privilege agent user, with spro_apply and plugin installation as separate execute permissions

6.29.2213 August 2026

  • Updated super-speedy-settings to the latest version

6.29.2113 August 2026

  • Options scans now use the administrator's browser when Basic Auth, a WAF, CDN or other security layer blocks server loopbacks
  • Scan failures now name the failed page and mechanism instead of treating an HTTP response without recorded data as success
  • Apply Good Settings now drives browser-transport Performance Analysis runs and reports failed steps honestly at completion

6.29.1713 August 2026

  • A run that could not apply every step now says so on the results screen and names the steps, instead of reporting "All done".
  • Fixed the archive optimisation being reported as applied when switching it back on had actually failed.

6.29.1613 August 2026

  • This plugin now describes in plain English what it publishes to a shared analysis, listed on the Performance Analysis Share tab with a switch to turn it off.

6.29.1512 August 2026

  • Clear all options now reverts Super Speedy Archives as well, switching the optimisation off and dropping its mirror table, because this plugin is what configured and built them.
  • When Super Speedy Performance Analysis is active and you have opted in to sharing, this plugin publishes which of its optimisations are on alongside a shared analysis, so a before measurement can be told apart from an after one. Settings only, never your licence key.
  • Added options_optimizer, checkout_purge_shield and checkout_purge_timeout_cap to the agent and MCP settings surface.

6.2910 August 2026

  • When the Super Speedy Archives add-on is active, Enable good settings and Apply all settings now configure it from the same measurement and build its table for you, so the after measurement shows the archive speed-up alongside everything else
  • The archive optimisation is turned off before the before measurement, so what gets configured comes from your real queries rather than ones Archives has already rewritten
  • The first tab is renamed Main and is now a guided setup - measure, optimise, cache - with the Enable good settings button front and centre
  • Buttons restyled to the Super Speedy Imports look across every tab including Save Changes, with the Inter and JetBrains Mono fonts bundled locally; the Advanced tab's buttons are all secondary, and the plugin version now shows in a chip beside the logo
  • Enable good settings works through the plan one item at a time, showing each index being created and then each setting being applied, and can be re-run whenever you like to fill in anything missing; an index build that outlives the web request shows still applying and waits for the database to finish instead of reporting an error
  • When our free Super Speedy Performance Analysis plugin is active, a good-settings run measures your key pages before and after and shows the results - per-page generation times, SQL time and which pages got faster, each linked to the URL that was measured
  • The Getting Started tab can install Super Speedy Performance Analysis for you with one click
  • New Apply all settings button next to Enable good settings adds the maximum-speed extras - next/previous page counts, natural sort order and the optimised private-content check - with each trade-off stated in the preview; also available as wp spro recommended --all and mode=all on the spro/apply-recommended ability
  • New Clear all options button on the Main tab, under the good-settings buttons, returns every setting to its default and clears the stored before/after report so you can revert a good-settings run; indexes are left alone
  • Good settings no longer touches the Query Speed row-count options, so page counts stay correct; use Apply all settings or the Query Speed tab if you want them
  • Good settings now also turns on the checkout purge shield, and lists what it deliberately leaves alone and why
  • New Optimise Options on the Single Pages tab: scans your key pages (including wp-admin orders and product screens if you tick them) to see which options each really fetches, then stops autoloading big unused options and starts autoloading hot ones - reviewable before applying, fully revertible, with an automatic monthly mode; Enable good settings turns the automatic mode on with the default thresholds
  • The options optimiser is also available as wp spro options-scan, options-apply and options-revert, and as four new abilities for AI agents
  • Indexes now survive deactivation and are removed when the plugin is deleted instead, so deactivating to test something no longer costs you your indexes; the cleanup setting is now called Delete indexes when the plugin is deleted and a pre-6.29 opt-out is carried over
  • The plugin's abilities are now discoverable on the MCP Adapter's default server as well as the dedicated /wp-json/mcp/scalability-pro endpoint, and the delete_indexes_on_deactivation ability setting is renamed delete_indexes_on_uninstall
  • New wp spro recommended WP-CLI command applies the same preset from the command line, with --dry-run, --indexes-only and --settings-only
  • New wp spro status WP-CLI command lists every managed index and every good setting still outstanding
  • New spro/describe-recommended and spro/apply-recommended abilities let an AI agent read the plan and, once you confirm, apply it
  • Fixed an index whose prefix length covers the whole column, such as wpi_scalability_pro_sitemaps on wp_posts, being reported as needing a rebuild on every check

6.287 August 2026

  • New Checkout purge shield on the WooCommerce tab, on by default: cache-purge plugins such as Nginx Helper no longer treat every WooCommerce order note as a page edit, which on a test store took a checkout from 30 outbound HTTP requests down to none
  • New optional setting to cap the site's own purge requests at 3 seconds instead of the usual 5, off by default
  • Fixed a front-end fatal array_key_exists(): Argument #2 ($array) must be of type array, false given when the plugin is activated without a wp-admin page having been loaded since
  • Licence corrected to GPLv3 in readme.txt, matching the plugin header

6.27.36 August 2026

  • Updated the shared Super Speedy settings module: the Super Speedy wordmark on the settings header is now a crisp high-resolution image with a dark-text variant

6.27.13 August 2026

  • The wpi_postmeta_boost index now covers the whole of meta_key rather than its first 50 characters, so SELECT DISTINCT meta_key lookups use the index instead of scanning wp_postmeta; existing installations have the index rebuilt automatically
  • Updated the shared Super Speedy settings module: AI agents can check your licence and install other Super Speedy plugins over MCP, now also exposed on AI Engine's MCP endpoint when AI Engine is active
  • New Check frequency setting - cap licence, update and changelog checks to once a day or once a week, and see when the licence was last checked
  • Licence and changelog checks fail fast when superspeedyplugins.com cannot be reached, instead of hanging the settings page
  • The newest installed copy of the shared Super Speedy settings code now runs site-wide, whichever plugin loads first - previously the alphabetically-first plugin's often-older copy won
  • The plugin's MCP abilities also appear on AI Engine's MCP endpoint as spro_ tools when AI Engine is active, so one AI connector reaches them

6.272 August 2026

  • Added an Advanced-tab good-settings preset with a complete preview of settings changes and applicable indexes before confirmation
  • Added estimated-total, maximum-page and progressive Previous/current/Next pagination strategies for archives where exact totals are disabled
  • Added a one-result pagination look-ahead so a full final page no longer links to an empty Next page
  • Added optional scheduled daily or weekly term recounts, configurable start time, batched progress and a manual Run now action
  • Added a Performance Analyser status panel and link on the Advanced tab
  • Added an Advanced-tab option to keep Scalability Pro indexes when the plugin is deactivated; index deletion remains enabled by default
  • Added six WordPress Abilities API abilities for inspecting settings, measuring pages and database probes, changing safe or confirmed settings, and managing indexes
  • Moved the WP All Import Query Monitor diagnostic into the separate spro-addon-query-monitor support plugin, removing eval() from Scalability Pro
  • Replaced direct wp-config.php rewriting with atomic wp-content/spro-config.php generation and safe migration of the legacy $SPRO_GLOBALS block
  • Added versioned index definitions, exact column and direction drift detection, retired-index cleanup and automatic resumable reconciliation for existing installations
  • Added a server-side index-operation lock and bounded, resumable index deletion to prevent overlapping or timed-out DDL requests
  • Removed two duplicate index definitions and corrected multisite user and usermeta index handling
  • Fixed custom post type bulk actions disappearing when the Bulk Edit safety limit is exceeded; only Bulk Edit is now removed
  • Fixed newly registered custom image sizes being removed even though the administrator had never deselected them
  • Fixed concurrent cache writes causing duplicate-entry errors by replacing delete-then-insert with one atomic upsert
  • Fixed post-count and WP All Export query filters inspecting unrelated queries for the rest of the request
  • Added a scoped comment-query option for skipping exact totals inside custom query alterations
  • Fixed the experimental taxonomy EXISTS rewrite interpolating unsanitised taxonomy names and term IDs
  • Fixed GROUP BY optimisation applying DISTINCT to wp_posts.* queries with joins
  • Fixed slow-query logging opening a new MySQL connection for every logged query and mishandling DB_HOST ports or sockets
  • Fixed the original cache tables using inconsistent character sets and racy creation checks
  • Added a WP Admin notice and manual action for clearing the deliberately persistent month-dropdown cache
  • Hardened settings import/export, product-attribute term search and direct access to include files
  • Removed production debug logging, stale hooks, a public developer shortcode and other unreachable code

6.26.727 July 2026

  • Fixed blank archive, shop and blog pages when the slow query log table is missing
  • Fixed a custom query alteration emptying the content of the hook it is attached to, such as an empty navigation menu when wp_nav_menu_items is the start hook
  • Index creation now reports the database error when an index cannot be created, instead of showing a green tick
  • Index creation now asks for an in-place, lock-free build where the database supports it, falling back automatically where a shape cannot be built in place, so creating an index no longer locks the table for writes
  • Phone-home blocker URL exceptions now accept a full URL including the https:// prefix, not just the bare domain
  • Removed an information_schema lookup and a SHOW FIELDS that ran on every admin request
  • Fixed ?page=scalabilitypro on a front-end URL changing which image sizes are registered, and with them the srcset of the page
  • The redundant GROUP BY optimisation is no longer skipped when the search term or post title contains the word "join"
  • Fixed the offset-query optimisation losing the sort order of results, most visible in sitemap plugins paginating by modified date
  • Fixed DISTINCT/GROUP BY removal on LIMIT 1 queries stripping a GROUP BY that another plugin's aggregate depended on
  • The Slow Query Log query pattern is now validated when you save it, and tells you if it is rejected
  • Fixed Drop All Indexes removing indexes it did not create, where the name started with "wpi" without the underscore
  • Fixed a potential division by zero when faking the found-posts total if posts per page is set to zero
  • Removal of the found-rows count is now skipped during REST requests, which keeps the X-WP-Total and X-WP-TotalPages headers correct
  • Fixed draft previews and password-protected posts being hidden when the private-post check optimisation was applied through a custom query alteration
  • Declared compatibility with WooCommerce High-Performance Order Storage (HPOS), Cart and Checkout blocks, and the product block editor
  • Select2 is now bundled with the plugin and loaded only on the Scalability Pro settings screen, rather than from a third-party CDN on every wp-admin page
  • WordPress's own admin list-table classes (about 118KB of PHP) are no longer loaded on front-end requests
  • The Indexes tab now looks up the table list once per request rather than once per index definition
  • The terms UNION optimisation now detaches itself after running instead of inspecting every remaining query in the request
  • Admin CSS and JavaScript are now versioned by plugin version rather than the current time, so browsers can cache them
  • Settings import now caps the number of query alterations and normalises their keys
  • The slow query log CSV export now neutralises spreadsheet formulas in exported values
  • Fixed the cached author counts option disabling itself after an unrelated WordPress update. If it does disable itself, the reason is now recorded for support
  • Fixed the "Mine" and "Sticky" filter links disappearing from the Posts and Products lists when cached author counts was enabled
  • Removed an unused performance profiler and its AJAX endpoint. Performance profiling now lives in its own plugin, Super Speedy Performance Analyser

6.26.624 July 2026

  • Updated super-speedy-settings (shared across all Super Speedy plugins): added a settings-version report to the licence-check and download requests for better licence and update-download debugging

6.26.523 July 2026

  • Fixed the file cache handler initialising the WordPress filesystem on every request at plugins_loaded - on hosts where WordPress cannot write files directly (FTP/SSH credential hosts) this echoed the WordPress connection-details form into every page load, WP-CLI command, cron run and REST request. The filesystem is now initialised only when a cache method is actually used, and the credentials prompt has been removed entirely (if credential-less filesystem access is unavailable, file caching is simply reported as unavailable and callers fall back to other cache storage)
  • Fixed a potential fatal error in the cache handler when the filesystem could not be initialised (cache methods now fail gracefully instead of calling methods on a null filesystem object)
  • Fixed cache expiry never being detected on read - the expiry timestamp comparison compared a number against a date string, so expired cache files were still served until the cleanup cron removed them
  • Thanks to @CraigM for reporting the filesystem initialisation issue with a superb writeup

6.26.420 July 2026

  • Updated super-speedy-settings to the latest version

6.26.318 July 2026

  • Updated super-speedy-settings to the latest version

6.26.210 July 2026

  • Updated super-speedy-settings refreshed the Super Speedy settings page with new plugin and service-panel icons (shared across all Super Speedy plugins).

6.26.110 July 2026

  • Updated super-speedy-settings (shared across all Super Speedy plugins): re-enabled TLS certificate verification on the licence/update check, escaped all dynamic output in the admin licence table, and added a capability check to the licence recheck handler.

6.263 July 2026

  • Fixed the "Cache author counts" optimisation (WP Admin tab) which had silently stopped working after WordPress core updates - the internal WP_Posts_List_Table snapshot it relies on is now re-synced to the current WordPress version, so the cached per-author post counts on the Posts screen work again
  • Security escaped all admin settings form values and added a sanitisation callback for the plugin settings option, so no stored value can be rendered unescaped on the settings page
  • Security re-enabled TLS certificate verification on the licence/update check (it previously accepted any certificate, allowing a network attacker to spoof the licence server); this lives in the shared Super Speedy Settings framework so it applies to every Super Speedy plugin
  • Hardening: added direct-access guards to several include files, switched the post-count cache lookup to a prepared statement, and removed a duplicate internal helper function
  • Added deterministic tests covering the list-table snapshot so future WordPress updates that would disable the author-count cache are caught automatically

6.252 July 2026

  • New the Super Speedy Listings add-on is now available to download for customers with an active licence - it builds optimised archive tables for dramatically faster author, taxonomy and filtered archive queries. See the Add-ons section below.
  • Fixed the "Change main query to use EXISTS rather than LEFT JOIN" experimental optimisation which wasn't working in some cases
  • Fixed the file-cache capability check passing setCache() arguments in the wrong order, which created a stray "This is a test." folder in the cache directory instead of writing/cleaning up a proper test file
  • Added a .tests test suite (WP-CLI eval-file unit tests per addon plus a WP_Query SQL-capture integration tier)

6.242 July 2026

  • Fixed bug in Remove Image Sizes Globally where size deregistration ran unconditionally with a hardcoded keep-list even when the feature was not configured, causing theme and plugin image sizes to be silently removed
  • Fixed lingering cron event - wpisp_performance_daily is now cleared on plugin deactivation
  • Fixed duplicate query filter registration in the post count cache handler
  • Fixed the Remove Image Sizes selector visibility check so it correctly hides when the Global option is already configured

6.2320 May 2026

  • Added a "Recheck Licenses" button above the licence table on the Super Speedy Settings page so customers have a clear way to refresh licence status after a renewal or upgrade without scrolling down to the licence-key field. The button is disabled until a licence key is entered/saved and re-enables as you type.
  • The Recheck flow now also force-bypasses the auth-server's own 1-hour licence cache (via a force=1 flag on the wpiapi/check_product_key call), so renewals/upgrades that completed less than an hour before a recheck no longer show as expired/exceeded. Normal admin page loads continue to use both caches as before — only an explicit Recheck click bypasses them. (Lives in the super-speedy-settings submodule, so the change propagates to every Super Speedy plugin.)

6.2213 May 2026

  • Security added capability checks and nonces to every admin AJAX endpoint that was previously reachable by low-privilege or unauthenticated users (slow query log fetch, index create/drop/drop-all, symlink create/delete, wp-config rewrite, slow query log truncate, term recount, profiling results save, cache clears, settings export/import, CSV export, action scheduler maintenance, and the WP All Import diagnostic helper)
  • Security removed wp_ajax_nopriv_* registrations from the slow query log fetch and the post-count / author-count cache clear endpoints — these were admin-only operations that should never have been exposed to unauthenticated visitors
  • Security escaped every column rendered in the Slow Query Log admin table (time, url, query, stacktrace, duration) — prevents stored XSS via a poisoned slow-query log entry being executed when an admin views the tab
  • Security fixed the "Create symlink" button, which previously created a dangling wp-content/db.php (the source path the button used had never existed in the plugin) and would have fatal-ed the site on the next request; the slow-query drop-in (db.php + profiling-queries.php) has been moved into tabs/slow-query-log/wp-content/ to match the path the button always expected, every readlink check across the tab now derives the path from plugin_dir_path(__FILE__) so it works regardless of the plugin's installed folder name, and the symlink source is validated with is_file()/realpath() before linking
  • Refactored: the slow-query-log drop-in files now live under tabs/slow-query-log/wp-content/ so the tab is self-contained ahead of the planned split of each tab into a separate add-on plugin
  • Security hardened spro_search_terms (product attribute search) — requires edit_products and null-checks the taxonomy so PHP 8 no longer fatals on an unknown taxonomy

6.2112 May 2026

  • Fixed possible infinite recursion in the license error handler: wp_error_added callback in Super Speedy Settings re-added the same WP_Error without unhooking, causing a stack overflow whenever another plugin (e.g. a GitHub update check) triggered a WP_Error with a JSON body containing a message field; the handler now unhooks during mutation, skips errors already enhanced, and only enhances errors originating from superspeedyplugins.com when the source URL is available

6.2023 April 2026

  • Fixed Drop All Indexes on multisite subsites dropping indexes across every subsite instead of only the current one
  • Indexes button now reads "Create All Indexes" when no indexes are selected, and "Update Active Indexes" when one or more are selected; "Create All Indexes" now creates every index regardless of checkbox state
  • Promoted the existing Drop All Indexes link to a proper secondary button so it is visible whenever any indexes exist
  • Checkboxes now update live as each index is created or dropped during Create/Update, and the Create/Drop buttons swap visibility automatically when the index set becomes empty or non-empty

6.1924 March 2025

  • Added new option for remove SQL_CALC_FOUND_ROWS to let users replace the max number of pages with the word 'many' or a word of their choice
  • Added new index to support author counts on author archives for Yoast and other uses of get_post_counts with author filter

6.1815 December 2025

  • Added new WP All Export optimisation for when editing exports to speed up or avoid the wp_postmeta scan to grab all postmeta keys
  • Added preview and customizer check for "Remove OR check for private items on front end" optimisation

Showing the 28 most recent of 186 releases. View the full history

▲
▼
1/1