WP Manifestindependent plugin directory
manifest / performance / wp-performance-inspector

WP Performance Inspector releases

Production-oriented WordPress performance diagnostics, incident workflows, profiling, RUM, and guarded database repair.

by CGMagazine · github.com/bfrye26/wp-performance-inspector

0stars
2release downloads
0forks

Install

The author publishes release zips, so WP-CLI can install straight from GitHub:

wp plugin install https://github.com/bfrye26/wp-performance-inspector/releases/download/v2.1.1/wp-performance-inspector-2.1.1.zip

Readme

WP Performance Inspector 2.1.1

2.1.1 capture workflow polish

  • Rebuilds the Slow Save Profiler setup as a focused, responsive control surface with clear manual-save and autosave choices.
  • Adds distinct ready and armed states, concise next-step guidance, and stronger content-safety messaging.
  • Improves keyboard focus, semantic form controls, assistive-technology output, and supporting-text contrast.

2.1.0 slow-save diagnostics

  • Adds a one-click Capture one real save workflow for manual editor saves or autosaves.
  • Captures the next matching classic editor, block editor REST, Quick Edit, product, or custom-post-type save in the same administrator browser.
  • Ranks directly attributed database and outbound HTTP work by plugin/theme/core component and records exact query evidence.
  • Times save-specific WordPress hooks and lists the components registered on them as clearly labelled suspects, without claiming unmeasured callback-level attribution.
  • Uses a signed, HttpOnly, SameSite capture cookie that expires after ten minutes and disarms after one matching request; manual captures ignore autosaves.
  • Stores only safe save context such as request kind, post type and numeric ID—never post titles, content, custom-field values, or request bodies.

2.0.1 correlated plugin profiling

  • Measures plugin impact from the PHP time saved by WordPress for each exact signed probe, rather than from total loopback-request duration.
  • Signs and verifies the probe ID and excluded plugin, then matches both to the persisted diagnostic run before accepting a sample.
  • Calculates the result from five paired A/B differences and exposes the individual deltas, median absolute deviation, noise floor and repeatability verdict.
  • Shows whether each recent request used all plugins or a private plugin exclusion, making the experiment auditable.
  • Treats unstable or small differences as “No repeatable plugin cost detected” instead of assigning ordinary request jitter to the selected plugin.

2.0.0 incident workflow and trustworthy experiments

  • Groups repeated route evidence into root-cause incidents with occurrence counts, affected routes, confidence and lifecycle history.
  • Adds one-click recheck, snooze, resolve and accepted-risk actions without discarding evidence.
  • Requires a repeat observation before passive one-off spikes become confirmed incidents and expires stale passive incidents after seven days.
  • Filters database daemons and expected compatibility probes so WPI does not report its own inspection noise as site failures.
  • Adds cache-safe client-side RUM sampling, single-use route-bound tokens, rate limiting, route-group attribution and histogram-based p75 reporting.
  • Alternates five private plugin A/B pairs after warm-up and rejects comparisons when the response type or size changes materially.
  • Loads heavy diagnostic modules only for WPI admin, REST and CLI work, and renders one admin view per request.
  • Adds representative custom-post-type route probes, configurable deep-scan URLs, responsive incident cards and an executable regression test harness.
  • Uses MariaDB-compatible primary-key discovery so resumable backups no longer emit one SQL error per table.

1.10.0 managed index ownership

  • Accepts managed-index registrations from active plugins through wpi_managed_database_indexes.
  • Prefers a plugin's canonical index name when present, otherwise its highest-priority registered legacy alias.
  • Shows plugin ownership and canonical-name state in duplicate-index repair plans.
  • Revalidates ownership and keep/drop direction before executing duplicate-index DDL.

1.9.2 live PRIMARY KEY dependency repair

  • Core-column repairs now inspect the actual live PRIMARY KEY, not only WordPress' expected key. This fixes tables where a plugin/migration has placed a normally-nullable core column such as wp_usermeta.meta_key inside a custom/composite PRIMARY KEY.
  • If the selected column cannot be corrected while the malformed live key remains, WPI atomically drops the live PRIMARY KEY, applies the exact WordPress column definition, and restores WordPress' expected PRIMARY KEY.
  • The SQL shown under Preview SQL is generated by the same dependency planner used by the repair action, so the preview reflects the complete ALTER rather than only the selected column fragment.
  • PRIMARY KEY repair remains dependency-aware for missing and mismatched core keys and retains NULL, duplicate and signed-to-unsigned safety preflights.
  • Repair definitions continue to come from the exact schema shipped by the installed WordPress version.

1.8.0 CGM Suite UI

The Performance Inspector admin interface follows the CGM Suite's compact WordPress-admin design language, with a calm diagnostic surface, clear status colours, accessible navigation, incident cards, cleaner tables/forms and responsive layouts. The interface is organized into Overview, Incidents, Database, Profiling, Monitoring and System views. Existing deep links such as Database Backups and the InnoDB Transaction Manager remain functional and automatically activate the Database view.

1.7.0 InnoDB transaction remediation

The Repair Centre now includes a live InnoDB Transaction Manager. When a schema/index/table repair is blocked by an open InnoDB transaction, WPI shows the owning MySQL thread, transaction age/state, connection user/host/database, rows locked/modified, normalized SQL, and blocker/waiter relationships. Eligible stuck or abandoned connections can be terminated from wp-admin with explicit acknowledgement that their uncommitted work will be rolled back. Very old or large transactions require a second high-risk acknowledgement because rollback itself can be expensive. WPI never terminates its own connection, recognized server/system/replication sessions, or transactions already rolling back.

CLI equivalents are wp performance innodb-transactions and wp performance innodb-terminate <thread-id> --rollback-confirmed.

1.6.1 backup performance update

Browser database backups now use adaptive high-throughput export steps. Instead of booting WordPress once for every 100 rows, one REST step processes multiple database chunks until a bounded time or output-byte budget is reached. Initial chunk size uses MySQL/MariaDB AVG_ROW_LENGTH, then continuously adapts from actual SQL output size. Narrow tables can export thousands of rows per query while wide LONGTEXT tables automatically shrink their batches. Composite primary keys use keyset pagination, eliminating growing OFFSET scans on common relationship/queue tables. The backup UI now reports per-step throughput, adaptive batch size and estimated current-table progress.

The exporter remains resumable and intentionally yields before ordinary proxy/FastCGI request limits. WP-CLI remains the preferred option for extremely large databases, but it uses the same faster state machine.

WP Performance Inspector is a production-oriented WordPress diagnostic and remediation suite. It is designed to identify why WordPress is slow or unstable, attribute expensive work to the responsible component, detect database and plugin faults, and offer bounded fixes where they can be applied safely.

Major diagnostics

Database health

  • compares required WordPress core tables, columns and indexes against the schema shipped by the installed WordPress version
  • detects missing core tables, missing core columns and missing core indexes
  • detects large tables without primary keys and exact duplicate indexes
  • checks table engines, collation drift, fragmentation/free space and auto-increment exhaustion risk
  • deep engine-aware CHECK TABLE integrity checks across WordPress, plugin and custom tables with large-table safety gates
  • reports MySQL/MariaDB connection pressure, long-running processes, lock-related processes and global slow-query signals
  • reports InnoDB buffer-pool efficiency, row-lock waits, recent deadlock/foreign-key-error signals, history-list pressure and pending I/O when permissions allow
  • detects disk temporary-table pressure, table scans/full joins, aborted connections and server configuration risks
  • guarded orphan detection for post meta, comment meta, user meta, term meta, term relationships and term taxonomy
  • expired-transient and transient-volume analysis
  • autoload footprint analysis with sampled option-access evidence

Slow queries and request profiling

  • one-request manual-save and autosave capture for classic, REST/block editor, Quick Edit, product and custom-post-type writes
  • save-specific hook totals plus ranked plugin/theme/core query and outbound HTTP attribution
  • low-rate sampled request timing for production trend data
  • signed deep route diagnostics for full query traces
  • normalized SQL fingerprints rather than raw SQL values by default
  • duplicate/N+1 query pattern detection
  • cumulative and per-query cost analysis
  • plugin/theme/core, file and line attribution
  • safe EXPLAIN analysis for eligible reads
  • flags full scans, high row estimates, filesorts, temporary tables, unused possible keys, expensive postmeta patterns, wildcard searches, ORDER BY RAND(), SQL_CALC_FOUND_ROWS and oversized result patterns
  • blocking outbound HTTP timing and attribution
  • hook and WordPress bootstrap phase timing on diagnostic requests
  • PHP fatal/database error capture associated with the profiled request

Plugins and WordPress runtime

  • active/network plugin inventory and compatibility requirements
  • Recovery Mode paused-plugin detection
  • PHP fatal, warning, deprecation, memory, timeout and database error fingerprints from available logs
  • per-plugin included-file and callback/hook pressure signals
  • estimated plugin autoload/database footprint with conservative prefix attribution
  • overlapping cache/optimization/SEO responsibility detection
  • private signed plugin-exclusion A/B requests without deactivating the plugin for visitors
  • diagnostic-response verification so CDN/page-cache responses are not treated as WordPress benchmarks

Jobs, cache, frontend and server

  • WP-Cron backlog, duplicate/short-interval events and oversized cron state
  • bounded Action Scheduler diagnostics for WooCommerce and other queue users
  • persistent object-cache/drop-in detection, feature support and round-trip checks
  • WordPress page-cache health integration where available
  • PHP, OPcache, filesystem and selected MySQL/MariaDB configuration checks
  • frontend HTML/resource pressure, duplicate resources, third-party hosts, plugin/theme asset ownership, DOM size, image-dimension and lazy-loading issues
  • sampled RUM aggregation for TTFB, FCP, LCP, INP and CLS
  • update/activation/theme-change history and regression correlation

Database backups and guided maintenance

Version 1.6 adds a Database Backups area directly above the Repair Centre. WPI can create a private logical export of all WordPress-prefixed tables or the entire current database. Browser exports are resumable and write rows in bounded batches; tables with a single numeric primary key use cursor pagination instead of ever-growing OFFSET queries.

Completed backups are verified with a completion marker and SHA-256 checksum. Downloads require an authenticated administrator request. WPI prefers a writable location outside the detected web root and falls back to a randomized private directory protected by deny rules when necessary. These exports contain table schema and row data only; they do not include database users/grants, server configuration, routines, triggers/events or a host/filesystem snapshot.

A recent verified WPI backup can be selected directly from any repair that requires a backup. Administrators can alternatively confirm an independently verified external backup or storage snapshot. Previously CLI-only cli-review findings now expose a guarded Run Maintenance Fix workflow in wp-admin. This requires maintenance-window acknowledgement plus the same backup, danger/data-loss, table-size, online-DDL, lock and disk-space gates used by the repair engine. WP-CLI remains the preferred route for the largest tables because a browser request can still be interrupted by PHP/FastCGI/proxy time limits.

WP-CLI backup commands:

wp performance database-backup --scope=wordpress
wp performance database-backup --scope=full
wp performance database-backups

Read the full README on GitHub →

Releases

TagPublishedAssetDownloads
v2.1.1 Sep 4, 2026 wp-performance-inspector-2.1.1.zip 2
v2.1.0 Sep 4, 2026 wp-performance-inspector-2.1.0.zip 0
v2.0.1 Sep 4, 2026 wp-performance-inspector-2.0.1.zip 0
v2.0.0 Sep 4, 2026 wp-performance-inspector-2.0.0.zip 0