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
Product page
What Scalability Pro does, what it costs and who it is for.
Knowledge base
Setup guides, how-tos and troubleshooting for Scalability Pro.
Discord support
Ask a question in the Scalability Pro channel and get an answer from Dave.
Downloads & licence
Grab the latest build or check your licence and renewal status.
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_applyand 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_shieldandcheckout_purge_timeout_capto 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 --allandmode=allon thespro/apply-recommendedability - 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-applyandoptions-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-proendpoint, and thedelete_indexes_on_deactivationability setting is renameddelete_indexes_on_uninstall - New
wp spro recommendedWP-CLI command applies the same preset from the command line, with--dry-run,--indexes-onlyand--settings-only - New
wp spro statusWP-CLI command lists every managed index and every good setting still outstanding - New
spro/describe-recommendedandspro/apply-recommendedabilities 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_sitemapsonwp_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 givenwhen 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_boostindex now covers the whole ofmeta_keyrather than its first 50 characters, soSELECT DISTINCT meta_keylookups use the index instead of scanningwp_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-monitorsupport plugin, removingeval()from Scalability Pro - Replaced direct
wp-config.phprewriting with atomicwp-content/spro-config.phpgeneration and safe migration of the legacy$SPRO_GLOBALSblock - 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_HOSTports 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_itemsis 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_schemalookup and aSHOW FIELDSthat ran on every admin request - Fixed
?page=scalabilityproon a front-end URL changing which image sizes are registered, and with them thesrcsetof 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 1queries 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-TotalandX-WP-TotalPagesheaders 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=1flag on thewpiapi/check_product_keycall), 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 thesuper-speedy-settingssubmodule, 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 intotabs/slow-query-log/wp-content/to match the path the button always expected, every readlink check across the tab now derives the path fromplugin_dir_path(__FILE__)so it works regardless of the plugin's installed folder name, and the symlink source is validated withis_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) — requiresedit_productsand 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_addedcallback 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 amessagefield; 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
