DEV Community

WP Multitool
WP Multitool

Posted on • Originally published at wpmultitool.com

Query Monitor Shows You the Problem. It Won't Fix It.

You found the slow query. Now what?

That's the question I kept asking myself after staring at Query Monitor's panel for the hundredth time. It tells you which queries are slow. It shows you which plugin is responsible. It even highlights duplicates. But then it just... stops. If you've ever googled "query monitor alternative" hoping to find something that goes beyond diagnosis - this is the honest comparison I wish I'd had a year ago. Not a "our tool is better" sales pitch - an actual breakdown of when each tool makes sense.

What Query Monitor Does Well

Let me be clear - Query Monitor is an excellent plugin. John Blackbourn has maintained it for years, Automattic sponsors it, and it has 200,000+ active installs for a reason.

Here's what QM gives you:

  • Every database query on the current page - with execution time, caller function, and component attribution
  • PHP errors with full stack traces
  • HTTP API calls - response codes, timing, which plugin triggered them
  • Hooks and actions - every callback attached, in order
  • Enqueued scripts and stylesheets - including broken dependency chains
  • Template hierarchy - which template files loaded
  • Environment info - PHP version, database, server config
  • Conditional checks - is_single(), is_home(), all of them

The v4.0 rewrite with Preact made the UI faster too. For quick debugging sessions - "why is this page loading 47 queries?" - nothing beats it.

It's free, it's lightweight when you need it, and every WordPress developer should have it in their toolkit. I still use it.

Where QM Stops

Here's the problem. QM is a debugger. It shows you a snapshot of what's happening on one page, at one moment, while you're watching.

That creates three blind spots:

1. No Historical Data

QM shows the current page load. Close the tab, the data is gone. You can't answer "are slow queries getting worse this month?" or "which queries spiked after Tuesday's update?" There's no log. No trends. No baseline to compare against.

I've had situations where a client reports their site was slow yesterday evening. By the time I check, everything looks fine in QM. The slow query happened during a WooCommerce cron job at 11 PM. QM never saw it.

2. No Production Monitoring

QM is a dev tool. It adds overhead - it hooks into every query, every hook, every HTTP call to build its debug panel. That's fine during development, but you don't want that running on production 24/7.

But slow queries don't happen in your local Docker container with 50 products. They happen on production with 50,000 products, 200 concurrent users, and a cron job running in the background. The exact environment where QM shouldn't be active.

3. No Actionable Fixes

This is the biggest one. QM tells you: "this query took 1.2 seconds." Ok. Now what?

If you're a senior developer, you know to run EXPLAIN on it, check for missing indexes, maybe rewrite the query. But QM doesn't do any of that for you. It's a microscope, not a surgeon.

For a site owner or a junior dev, that slow query number is basically useless information. You know something is wrong but you don't know how to fix it.

What WP Multitool Does Differently

WP Multitool's Slow Query Analyzer approaches the problem from the other end. Instead of showing everything happening on one page, it continuously monitors for slow queries and then analyzes them.

Always-On Monitoring

A lightweight MU-plugin hooks into WordPress's query system and captures any query exceeding your threshold (default: 0.1 seconds). It uses WordPress's built-in SAVEQUERIES constant, so it works with the same mechanism QM uses - but selectively.

By default, it only monitors admin pages to keep overhead minimal. But you can flip the "Monitor Admin Only" toggle off, and it captures everything - frontend requests, cron jobs, REST API calls. That 11 PM WooCommerce cron job your client complained about? Logged. The query that only gets slow when wp_options hits 500 autoloaded rows? Logged.

Everything goes into a wp_slow_query_log table with auto-purge at 5,000 entries, so it doesn't bloat your database.

EXPLAIN-Based Analysis

Here's where it gets interesting. For each captured slow query, the analyzer runs MySQL's EXPLAIN command and breaks down what's actually happening:

EXPLAIN SELECT p.ID, p.post_title, pm.meta_value 
FROM wp_posts p 
JOIN wp_postmeta pm ON p.ID = pm.post_id 
WHERE pm.meta_key = '_price' 
AND pm.meta_value > 100 
ORDER BY pm.meta_value DESC;
Enter fullscreen mode Exit fullscreen mode

Then it gives you:

  • A health score (1-10) based on the EXPLAIN output
  • Whether it's doing a full table scan
  • Which indexes exist and which are missing
  • A ready-to-run CREATE INDEX statement if one would help

If you've ever tried to read a MySQL EXPLAIN plan manually, you know it's not exactly beginner-friendly. The analyzer translates it into plain language.

Analysis at Shutdown

When a slow query is detected, the EXPLAIN analysis runs during WordPress's shutdown hook - after the response has been sent to the browser. So the visitor gets their page, and then the analysis happens. For queries that need re-analysis, there's also a WP-Cron batch process that picks them up later.

It Doesn't Auto-Fix Anything

This is important. WP Multitool suggests fixes - it will tell you "add this index" or "this query needs a rewrite." But it never runs those fixes automatically. You review, you decide, you execute. No surprises.

Side-by-Side Comparison

Here's the honest breakdown:

Feature Query Monitor WP Multitool (SQAA)
See queries on current page Yes No
PHP error tracking Yes No
Hook/action inspection Yes No
Template hierarchy Yes No
Script/style dependencies Yes No
HTTP API monitoring Yes No
Persistent query logging No Yes
Production-safe monitoring No Yes
EXPLAIN analysis No Yes
Index recommendations No Yes
Historical trends No Yes
Post-response analysis N/A Yes
Overhead Moderate (hooks everything) Low (only slow queries)
Price Free $199/year (14 modules)
Active installs 200,000+ New

Look at that table. QM wins on breadth of debugging data. WP Multitool wins on depth of query analysis and production monitoring. They're not really competing - they're solving different problems.

When to Use Which

Use Query Monitor when:

  • You're debugging a specific page that's loading slow right now
  • You need to trace which plugin is enqueuing a broken script
  • You want to see the full hook execution order
  • You're developing locally and need real-time feedback
  • You need to check template hierarchy or conditional functions
  • Budget is zero (QM is free and always will be)

Use WP Multitool when:

  • You need ongoing production monitoring for slow queries
  • You want to know WHY a query is slow, not just THAT it's slow
  • You need index recommendations you can actually implement
  • Your client reports "the site was slow yesterday" and you need data
  • You want historical trends to catch regressions after updates
  • You also need autoload optimization, config management, plugin performance scoring, and 11 other modules

Use both when:

  • You're a developer managing production WordPress sites. QM for active debugging sessions, WP Multitool for the 23 hours a day when you're not watching.

The Real Question

The comparison isn't really QM vs WP Multitool. It's debugging vs monitoring.

Debugging is reactive. Something breaks, you investigate, you fix it, you move on. QM is perfect for this.

Monitoring is proactive. You catch the problem before users complain - or better yet, before it becomes a problem. You see trends. You can prove that last week's plugin update added 3 slow queries that weren't there before. That's what the Slow Query Analyzer does.

Most WordPress sites need both. A site without debugging tools is flying blind during development. A site without monitoring is flying blind in production.

The difference is what happens between your debugging sessions. With QM alone, you have no idea what's happening while you're not looking. And in my experience, that's when the worst problems happen.

Try It

Query Monitor is on wordpress.org - install it if you haven't already. Seriously. Every developer should have it.

WP Multitool ships the Slow Query Analyzer as one of 14 modules. Check it out at wpmultitool.com - and if the comparison here helped you decide, use code startups2026 for 10% off.

If you're curious about reading those EXPLAIN plans yourself, I wrote a complete guide to MySQL EXPLAIN for WordPress that covers everything the analyzer does under the hood.

And if you're wondering whether your site even has slow query problems - caching alone won't save you. That's a different rabbit hole, but worth reading.


Originally published at https://wpmultitool.com/blog/wp-multitool-vs-query-monitor/

Top comments (0)