Runs and organizes reusable PHP, CSS, JavaScript, HTML, and content snippets without editing theme files, with cloud and Pro tools…
Query Monitor
Plugin Health & Stats
Historical overview
364-day WordPress.org historyQuick take
Query Monitor is one of the first tools I would install when a WordPress problem needs evidence instead of guesswork. It shows what happened during the current request: database queries, PHP errors, HTTP API calls, hooks, templates, blocks, scripts, styles, rewrite rules, environment information, and more.
I would use it for debugging and performance investigation, not as a historical uptime or application-performance monitoring service. Query Monitor is deliberately request-focused. Its own documentation states that historical information is not currently available.
Best fit: Query Monitor makes the most sense for developers, agencies, support teams, and technical site owners troubleshooting WordPress or WooCommerce behavior and performance. I would look elsewhere for teams that need historical APM data, uptime monitoring, automated alerting, or a non-technical client analytics dashboard.
Why Query Monitor is more useful than the name suggests
The plugin is often associated with SQL debugging, but database queries are only one part of what it exposes. A slow WordPress request can come from remote HTTP calls, PHP warnings, expensive hooks, template behavior, scripts, object-cache configuration, or other runtime work.
Query Monitor brings those signals into one developer panel and identifies which plugin, theme, or core component is responsible where possible. That is the feature I value most because it reduces the time spent guessing which part of the stack caused a problem.
Features that matter during troubleshooting
Timeline view in Query Monitor 4
Version 4 introduced a visual Timeline panel that plots database queries, HTTP API requests, PHP errors, timings, logs, and notable actions across the page load. It answers not only what happened but when it happened and how long it took.
Database queries by component
Query Monitor can flag slow, duplicate, or erroneous queries and group them by the responsible plugin, theme, or function. On a slow admin screen or front-end request, this can quickly show whether one component is dominating query time.
PHP errors with context
Warnings, notices, deprecated calls, and “Doing it Wrong” messages can be surfaced with the responsible component and call stack. That is especially useful when a page still loads but a plugin is quietly producing errors in the background.
HTTP API calls
Server-side requests to external APIs can become invisible performance bottlenecks. Query Monitor shows these calls, their timing, response information, and stack context so you can identify a plugin waiting on an external service.
Templates, blocks, hooks, scripts, and styles
The plugin can show the template hierarchy, loaded template parts, blocks, matched rewrite rules, hooks, and enqueued CSS/JavaScript. These panels make it useful for theme debugging, block-theme work, routing problems, and asset investigations as well as pure performance work.
REST and Ajax debugging
Query Monitor supports debugging for Ajax and REST API requests. Authenticated REST requests can expose timing, database, cache, HTTP, transient, and error information, which is useful when a WordPress issue exists outside a normal HTML page request.
Environment and capability checks
The Environment panel exposes PHP, database, WordPress, and server configuration details. Query Monitor can also log user capability checks, although that panel is disabled by default because it can have a performance impact on sites that perform many permission checks.
Where the trade-offs show up
Query Monitor exposes a large amount of technical data, so the learning curve is mostly about knowing which panel matters for the problem you are investigating. A non-technical user can easily see numbers without knowing whether they indicate a real issue.
It also does not provide historical request data. If a performance problem happened yesterday and cannot be reproduced, Query Monitor is not a replacement for server logs, uptime monitoring, or an application-performance monitoring platform.
Compatibility should be checked on very new WordPress releases. Query Monitor 4.0.7 currently requires WordPress 6.2 or higher and PHP 7.4 or higher and is listed as tested through WordPress 7.0.4.
Query Monitor pricing
Query Monitor is free and open source. There is no Pro plan required to unlock the debugging panels described in this review.
PluginSuggest verdict
Query Monitor is a focused developer utility that earns its place because it turns a vague “WordPress is slow or broken” problem into inspectable request data. I would keep it in the troubleshooting toolkit for development and support work. I would pair it with other monitoring or logging tools when the problem requires history, alerts, or observation beyond the current request.
Query Monitor FAQs
Is Query Monitor free?
Yes. Query Monitor is free and open source.
Does Query Monitor only show database queries?
No. It also exposes PHP errors, HTTP API calls, hooks, templates, blocks, scripts, styles, rewrite information, environment data, REST requests, Ajax requests, and other debugging information.
Can Query Monitor show which plugin is causing slow queries?
Yes. It can group database queries by responsible plugin, theme, or function and can flag slow, duplicate, or erroneous queries.
Does Query Monitor keep historical performance data?
No. Its documentation states that the information shown is for the current page load and historical information is not currently available.
Can Query Monitor debug REST API requests?
Yes. It supports authenticated REST API debugging and can expose timing, database, cache, HTTP request, transient, and error information.
What does Query Monitor 4.0.7 require?
The current release requires WordPress 6.2 or higher and PHP 7.4 or higher and is listed as tested through WordPress 7.0.4.
Compare before you install
Similar Plugins
Manages PHP, CSS, JavaScript, HTML, pixels, and header/footer scripts from WordPress with placement rules and error safeguards.
Gives admins control over WordPress cron events, including scheduled hooks that run background tasks in WordPress or WooCommerce.