By SoftLinkx
Trace frontend cost before changing your website. Version ' . esc_html(self::VERSION) . ' · developer preview
Settings saved. Purge page/CDN caches after changing visitor rules. Profiled administrator pages bypass cache where supported.
Emergency bypass is active: SLX_PERF_DISABLE. Profiling and optimizations are off.
First measure current performance with this plugin’s optimization rules bypassed. Then use Test optimizations to apply your selected changes privately. Interact with menus, search, and the cart; press Capture again in the inspector. Reports are private to your administrator account and expire after 24 hours.
Logged-in, instrumented measurements are not anonymous cached benchmarks. SQL capture starts at plugins_loaded; file attribution is the nearest observed plugin/theme caller, not exclusive plugin CPU time.
Last 20 captures for your account. Download reports from the frontend inspector. Zero resource bytes can mean browser cache or cross-origin restrictions.
| Page / time | Mode | PHP window | SQL | Queries | Browser TTFB | Report |
|---|---|---|---|---|---|---|
| ' . esc_html($r['path']) . ' ' . esc_html($r['created']) . ' | ' . esc_html(self::mode_label($r['mode'])) . ' | ' . esc_html(self::timing($r['php_ms'])) . ' | ' . esc_html(self::timing($r['query_ms'])) . ' | ' . (int)$r['query_count'] . ' | ' . esc_html(isset($r['client']['ttfb_ms']) ? self::timing($r['client']['ttfb_ms']) : 'Not captured') . ' | ' . esc_html(substr($r['id'],0,8)) . ' |
| No captures yet. Measure current performance above. | ||||||
PHP window change: ' . esc_html(self::timing($trial['php_ms']-$base['php_ms'])) . ' · SQL change: ' . esc_html(self::timing($trial['query_ms']-$base['query_ms'])) . '. Negative is lower. Repeat at least three times with the same viewport, cache state and interactions; single runs are noisy.
'; } } echo 'Inspect a saved capture: '; foreach ($reports as $saved_link) { echo '' . esc_html(substr($saved_link['id'],0,8) . ' · ' . self::mode_label($saved_link['mode'])) . ' '; } echo '
'; } // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Read-only selection from the current administrator's private reports. $selected_capture = self::text_param($_GET, 'capture'); if (!$selected_capture && $reports) { $selected_capture = $reports[0]['id']; } foreach ($reports as $saved) { if ($saved['id'] !== $selected_capture) { continue; } echo '' . esc_html($saved['coverage']) . '
| Duration | Owner / file | Similar query | Suggestion |
|---|---|---|---|
| ' . esc_html(self::timing($q['ms'])) . ' | ' . esc_html($q['owner']) . '' . esc_html($q['file'] . ':' . $q['line']) . ' | ' . esc_html($q['sql']) . ' | ' . esc_html($q['solution']) . ' |
| Handle | Owner / URL | State |
|---|---|---|
| ' . esc_html($a['kind'] . ' · ' . $a['handle']) . ' | ' . esc_html($a['owner']) . '' . esc_html($a['url']) . ' | ' . esc_html($a['state']) . ' |
SQL is shown as database requests with private values hidden, with a maximum of 500 slowest rows and 100 groups per report. Requests made by AJAX/REST have network timing only, not their server SQL. Resource duration is network elapsed time, not JavaScript execution time. Hardcoded or rewritten assets may not map to a WordPress handle.
No database query is suppressed and no plugin is deactivated. Optimize the responsible feature after reviewing its caller. No reports are sent to an external service.
Emergency bypass: add define(\'SLX_PERF_DISABLE\', true); before WordPress loads in wp-config.php, or deactivate this plugin. Purge page/CDN caches to remove previously cached asset omissions.
Autoloaded options: ' . count($autoload) . ' / approximately ' . esc_html(round($bytes/1024,1)) . ' KB. Persistent object cache: ' . (wp_using_ext_object_cache()?'enabled':'not detected') . '. OPcache: ' . (!$op?'unavailable':(!empty($op['cache_full'])?'full — ask host to review capacity':'enabled')) . '.
Option names and sizes only; values are never displayed. Names do not reliably identify an owning plugin. Review ownership before changing autoload behavior.
| Option name | KB |
|---|---|
| ' . esc_html($name) . ' | ' . esc_html(round($size/1024,1)) . ' |