Use when investigating or improving WordPress performance (backend-only agent): profiling and measurement (WP-CLI profile/doctor, Server-Timing, Query Monitor via REST headers), database/query optimization, autoloaded options, object caching, cron, HTTP API calls, and safe verification.
Use this skill when:
This skill assumes the agent cannot use a browser UI. Prefer WP-CLI, logs, and HTTP requests.
--path=<path>--url=<url>curl if possibleRead:
references/measurement.mdRun:
node skills/wp-performance/scripts/perf_inspect.mjs --path=<path> [--url=<url>]This detects:
wp doctor / wp profile are availableIf you have WP-CLI access, prefer:
wp doctor checkIt catches common production foot-guns (autoload bloat, SAVEQUERIES/WP_DEBUG, plugin counts, updates).
Read:
references/wp-cli-doctor.mdPreferred order:
wp profile stage to see where time goes (bootstrap/main_query/template).wp profile hook (optionally with --url=) to find slow hooks/callbacks.wp profile eval for targeted code paths.Read:
references/wp-cli-profile.mdQuery Monitor is normally UI-driven, but it can be used headlessly via REST API response headers and _envelope responses:
x-qm-*) and/or the qm property when using ?_envelope.Read:
references/query-monitor-headless.mdUse the profile output to pick one primary bottleneck category:
references/database.mdreferences/autoload-options.mdreferences/object-cache.mdreferences/http-api.mdreferences/cron.mdwp profile / wp doctor / REST request.Be aware of these 6.9 changes when profiling:
On-demand CSS for classic themes:
Block themes with no render-blocking resources:
Inline CSS limit increased:
Reference: https://make.wordpress.org/core/2025/11/18/wordpress-6-9-frontend-performance-field-guide/
wp doctor check is clean (or improved) when applicable.--url mismatch), caches masked results, or opcode cache is staleSAVEQUERIES/Query Monitor causes overhead:
SAVEQUERIES, run load tests, or flush caches during traffic