Ready to get started?Download WordPress

Plugin Directory

Query Monitor

View debugging and performance information on database queries, hooks, conditionals, HTTP requests, redirects and more.


  • Add compatibility with PHP <5.3.6. DirectoryIterator::getExtension() isn't available on this version (and also as it's part of SPL it can be disabled).
  • Simplify the admin CSS to avoid QM's output being covered by the admin menu.
  • Add support for footer styles in the scripts and styles component.
  • Update the authentication JavaScript so it works cross-protocol.
  • Add support for footer styles in the scripts and styles component.
  • Update the authentication JavaScript so it works cross-protocol.


  • New Scripts & Styles component
  • Support for the new is_customize_preview() conditional
  • More robust handling of HTTP requests short-circuited with pre_http_request
  • Introduce a query_monitor_silent_http_error_codes filter to allow certain WP_Error codes to be silenced in HTTP requests
  • Split SQL queries on LEFT, OUTER, and RIGHT too
  • Gracefully avoid fatal errors if a site is moved and the db.php symlink is no longer pointing to the correct location
  • Pause Infinite Scroll when Query Monitor is viewed
  • Support the new admin menu behaviour in WP 4.1
  • Fix the positioning of output when using the Twenty Fifteen theme
  • Switch to an AJAX call for setting and clearing QM's authentication cookie


  • RTL layout tweaks
  • Correct the component detection logic so it's more accurate
  • Re-implement output on the login screen which went missing
  • Display a few more proxy and debugging related constants


  • Use an actual authentication cookie instead of a nonce in the Authentication component
  • Implement some extra methods of determining the current user/group
  • Move the loading of dispatchers to the plugins_loaded hook so plugins can add their own
  • Misc performance improvements


  • More robust support for alternative database drivers (including mysqli in core)
  • Avoid warnings and notices when a custom database class is in place and it's not saving queries (ie. HyperDB)
  • Better handling when certain functions (such as memory_get_peak_usage()) are disabled


  • Avoid the "Class 'QM_Backtrace' not found" error
  • Correct the layout of the Slow Queries and Query Errors panels
  • Move back-compat CSS into its own file
  • Huge simplification of code in db.php by using parent::query()
  • Misc visual tweaks


  • Introduce sortable columns for database query times and numbers
  • Display the queried object in the Request panel
  • Fix the admin menu behaviour when viewing QM output
  • Fixes for output buffering and AJAX requests
  • Several bits of code cleanup


  • Clickable stack traces and file names if you've configured Xdebug's file_link_format setting
  • Show the number of times each PHP error has been triggered
  • Visual bugfixes when using Firefox
  • Fix a bug which was preventing AJAX debugging from being output
  • Fix a fatal error when using PHP 5.2 on Windows
  • Display HTTP proxy information when appropriate
  • Introduce the QM_DISABLE constant for unconditionally disabling Query Monitor
  • Always return true from our PHP error handler to suppress unwanted PHP error output (eg. from Xdebug)
  • Internals: Much more robust logic and even more separation of data collection and output
  • Internals: Many performance improvements


  • Fix two fundamental stability and compatibility issues (great news)
  • Various visual tweaks
  • Handle some uncommon use cases of the HTTP API


  • Remove a file that was accidentally committed to the wordpress.org repo


  • Toggleable stack traces for queries
  • Show deprecated errors in the PHP Errors panel
  • Replace the Query Vars panel with a Request panel with more information
  • Display a warning when db.php isn't in place
  • Fix some PHP 5.2 compatibility
  • Considerable restructuring of the underlying code to increase abstraction


  • Fix the "Invalid header" issue. Woo!


  • Better layout for the Hooks panel
  • Fix some AJAX issues
  • Fix some output buffer compatibility issues which were causing fatal errors


  • Avoid a fatal error when strict errors are triggered at compile time
  • Avoid a warning when PDO or Mysqli is in use
  • Updated CSS for WordPress 3.8. Retains support for default 3.7 and MP6 on 3.7
  • Tweak PHP error_reporting in the Environment component


  • Show an inline error when a hook has an invalid action
  • Show a warning in the admin toolbar when HTTP requests fail
  • Fix the time shown when filtering queries
  • Fix empty stack traces (regression at some point)


  • Prevent uncaught exceptions with static method actions
  • Misc formatting tweaks


  • Un-break query filtering
  • Performance improvements


  • Display the component for HTTP requests, transients, PHP errors, and hook actions
  • Improved visual appearance and layout
  • Add an action component filter to the Hooks panel
  • Log errors returned in the pre_http_request filter
  • QM_DB_LIMIT is now a soft limit
  • Performance improvements


  • Add a hook name filter to the Hooks panel
  • Update db.php to match latest wp-db.php
  • Avoid fatal error if the plugin is manually deleted
  • Add the new is_main_network() conditional
  • Lots more tweaks


  • Un-break all the things


  • New Redirect component
  • Add support for strict errors
  • Display the call stack for HTTP requests
  • Display the call stack for transients
  • Remove pre-3.0 back-compat code
  • Many other bugfixes and tweaks


  • Compat with Xdebug
  • Display the call stack for PHP errors


  • Introduce AJAX debugging (just PHP errors for now)
  • Visual refresh
  • Add theme and stylesheet into to the Theme panel


  • Add error reporting to the Environment panel


  • Don't output QM in the theme customizer


  • Add the database query time to the admin toolbar
  • Various trace and JavaScript errors


  • Load QM before other plugins
  • Show QM output on the log in screen


  • Add filtering to the qyer panel


  • Show component information indicating whether a plugin, theme or core was responsible for each database query
  • New Query Component panel showing components ordered by total query time


  • Show memory usage as a percentage of the memory limit
  • Show page generation time as percentage of the limit, if it's high
  • Show a few bits of server information in the Environment panel
  • Log PHP settings as early as possible and highlight when the values have been altered at runtime


  • A few formatting and layout tweaks


  • Breakdown queries by type in the Overview and Query Functions panels
  • Show the HTTP transport order of preference in the HTTP panel
  • Highlight database errors and slow database queries in their own panels
  • Add a few PHP enviroment variables to the Environment panel (more to come)


  • Change i18n text domain
  • Hide Authentication panel for non-JS
  • Show database info in Overview panel


  • Full WordPress 3.4 compatibility


  • Small tweaks to conditionals and HTTP components
  • Allow filtering of ignore_class, ignore_func and show_arg on QM and QM DB


  • Tweak a few conditional outputs
  • Full support for all WPDB instances
  • Tweak query var output
  • Initial code for data logging before redirects (incomplete)


  • Add full support for multiple DB instances to the Environment component
  • Improve PHP error function stack


  • Fix display of wp_admin_bar instantiated queries
  • Fix function trace for HTTP calls and transients


  • Lots more behind the scenes improvements
  • Better future-proof CSS
  • Complete separation of data/presentation in db_queries
  • Complete support for multiple database connections


  • Lots of behind the scenes improvements
  • More separation of data from presentation
  • Fewer cross-component dependencies
  • Nicer way of doing menu items, classes & title


  • Let's split everything up into components. Lots of optimisations to come.


  • Localisation improvements


  • Admin bar tweaks for WordPress 3.3
  • Add some missing l10n
  • Prevent some PHP notices


  • Just a few rearrangements


  • Show warnings next to MySQL variables with sub-optimal values


  • Fix list of non-default query vars
  • Fix list of admin screen column names in 3.3
  • Lots of other misc tweaks
  • Add RTL support


  • Lots of interface improvements
  • Show counts for transients, HTTP requests and custom query vars in the admin menu
  • Add backtrace to PHP error output
  • Hide repeated identical PHP errors
  • Filter out calls to deprecated*() and trigger_error() in backtraces
  • Show do_action_ref_array() and apply_filters_ref_array() parameter in backtraces
  • Remove the 'component' code
  • Remove the object cache output
  • Add a 'qm_template' filter so themes that do crazy things can report the correct template file


  • Display all custom column filter names on admin screens that contain columns


  • Display more accurate $current_screen values
  • Display a warning message about bug with $typenow and $current_screen values
  • Improve PHP error backtrace


  • Introduce a 'view_query_monitor' capability for finer grained permissions control


  • List body classes with the template output
  • Display calling function in PHP warnings and notices
  • Fix admin bar CSS when displaying notices
  • Remove pointless non-existant filter code

  • Fix a formatting error in the transient table


  • Tweaks to counts, HTTP output and transient output
  • Upgrade routine which adds a symlink to db.php in wp-content/db.php


  • PHP warning and notice handling
  • Add some new template conditionals
  • Tweaks to counts, HTTP output and transient output

Requires: 3.5 or higher
Compatible up to: 4.1.1
Last Updated: 2015-2-15
Active Installs: 6,000+


5 out of 5 stars


8 of 11 support threads in the last two months have been resolved.

Got something to say? Need help?


Not enough data

2 people say it works.
0 people say it's broken.

100,2,2 100,1,1 100,3,3 100,1,1 100,1,1 100,1,1 100,1,1
100,4,4 100,1,1 100,2,2 100,1,1 100,1,1
100,2,2 100,4,4 100,2,2
100,3,3 50,2,1
100,3,3 100,6,6
100,2,2 100,3,3 100,2,2