Features

Unload Plugins safely by page

Published

Available since 6.30. Always available, with no opt-in, since 6.37.

WordPress loads every active plugin on every request, even when a page uses only a small part of the stack. Scalability Pro’s Unload Plugins tab can stop selected plugins loading on selected anonymous front-end pages after Super Speedy Performance Analysis has measured that page.

Open the Unload Plugins tab in Scalability Pro. It requires Super Speedy Performance Analysis 0.24.0 or newer and is not offered on multisite.

Nothing is unloaded until you configure it

The Plugin unloading switch at the top of the tab is on by default, but on its own it does nothing: with no rules, every request loads every active plugin and no mu-plugin is installed. A rule only reaches visitors after you choose plugins for a page and that page passes verification. Turning the switch off stops every page rule immediately and keeps your saved rules. A site that saved rules before 6.37 keeps its saved switch setting.

How to find and apply safe candidates

  1. Click Find safe improvements to load the latest per-page evidence.
  2. Review the suggested plugins for each page. Certain candidates are pre-selected; likely and unknown candidates wait for your decision.
  3. Use Advanced page-by-page controls when you need to inspect or change one page.
  4. Click Apply & verify unload rules. Scalability Pro fetches the affected page again and compares it with the untrimmed page before exposing that rule to visitors.

The confidence labels mean:

  • Certain: an exclusion measurement found no slowdown, output change, query, HTTP call, mail or asset activity from that plugin on that page.
  • Likely: captured activity found no work, but no exclusion measurement has proved the page.
  • Unknown: the evidence is incomplete, failed or belongs to an older plugin version.
  • Protected: the plugin is never offered for unloading.

Certain candidates are pre-selected on the tab, but nothing is applied for you: Enable good settings never creates or enables an unload rule, whatever the confidence. Every rule is your decision.

Fast Ajax endpoint unloads

Fast Ajax endpoint unloads are a separate section of the Unload Plugins tab, with no opt-in. Enable reviewed Fast Ajax endpoint rules is on by default, but it only applies rules you have reviewed and enabled, so with no endpoint rules nothing changes.

Use Start 15-minute endpoint discovery. Scalability Pro records only exact registered endpoint identities: the transport, registered action or REST route pattern, HTTP method and logged-in or anonymous context. Request bodies, response bodies, cookies and literal dynamic REST paths are not retained.

The endpoint catalogue can be searched or filtered by purpose group, transport, method, context, evidence, rule state and ownership. A new draft selects only registered callback owners, REST permission callback owners, declared dependencies and the required WooCommerce dispatcher. Optional plugins start unchecked. Discovery and opening a draft do not optimise requests; only exact enabled rules change loading. MU plugins and drop-ins still load.

The picker lists required plugins first, then reviewed choices from other endpoints (similar purpose groups first), suggested plugins, and all remaining plugins alphabetically. Saved choices and capability hints are advice, not proof that a plugin is required. Disabled and failed source rules are labelled. Copying another endpoint shows a preview and changes only the draft; save and enable the exact rule after reviewing it. Deterministic local classification rules use plugin metadata without an LLM.

Keep loading my theme is unticked on a new endpoint draft. Leave it unticked to use the installed WordPress default theme for that optimised endpoint, or tick it when the request needs code from your active theme. The default theme still runs its code; if it is your active theme, the same code loads either way. A missing default theme produces an error so you can install it or tick the checkbox. Saved theme choices stay unchanged until you edit that endpoint. All registered authentication contexts share the active theme if any context requires it.

Write-capable endpoint rules require a separate acknowledgement. A rule is enforced only after both authentication contexts have been reviewed, and only when Enable reviewed Fast Ajax endpoint rules is on. A request with an unknown action, method, route, context or stale plugin fingerprint receives the complete plugin set.

Super Speedy Performance Analysis adds request counts, status classes, whole-request timing, query counts, observer overhead and callback ownership. If it is missing or inactive, Scalability Pro offers an install or activation action and continues with identity-only discovery. Providers with detailed activity evidence show registered hooks separately from executed callbacks and identify sample coverage. Missing evidence remains unknown. Profile AJAX in Performance Analysis opens the AJAX before/after workflow; it does not change the selected plugins or enable a rule.

If a reviewed request returns HTTP 503, the exact rule is disabled before the next request and must be reviewed explicitly before it can run again. The host-level SPRO_DISABLE_UNLOADER switch disables both page and Fast Ajax unloading when wp-admin is unavailable.

Safety boundary

Page unload rules apply only to anonymous front-end GET and HEAD page requests for the bare URL. Logged-in requests, POSTs, wp-admin, REST, Ajax, cron, system entry points such as wp-login.php and wp-comments-post.php, password-protected content, previews, and any URL with a query string (filters, search, pagination parameters, campaign links) keep the complete plugin set. The evidence behind a rule was measured on the bare URL, and query parameters are where otherwise idle plugins wake up.

For page unloads, payment, commerce, security, membership, consent, anti-spam, caching, multilingual, redirect and page-builder plugins are protected even when a saved policy says otherwise. The early mu-plugin also fails closed: if its policy is missing, unreadable, disabled or stale, WordPress loads every plugin.

The global switch at the top of the Unload Plugins tab can disable every active page rule without deleting the configuration. SPRO_DISABLE_UNLOADER is the emergency host-level off switch when wp-admin is unavailable.

Further reading

collect the Performance Analysis evidence used by the tab
understand how Scalability Pro fits with the rest of the stack
isolate an unexpected front-end result

Comments

▲
▼
1/1