Find out how many database queries per pageload in WordPress

To find out how many WordPress mysql database queries a page requests and how long it takes the page to load whilst querying the database, you can add in a PHP function to a WordPress hook to find out. This can be displayed in either the source code of the html or rendered on the actual page.

Add a Function and Action

function themeprefix_mysql_queries () {
	echo '<!-- ';
	echo get_num_queries();
	echo ' queries in ';
	timer_stop(1);
	echo ' seconds.-->';

}
add_action ( 'wp_footer','themeprefix_mysql_queries', 999 );
add_action ( 'wp_after_admin_bar_render','themeprefix_mysql_queries', 999 );

The above code needs to be placed  in your functions.php file of your theme. The function will get the number of queries the page makes to the database and time how long it takes, this will then be echoed out to the wp_footer hook which is the last hook to fire on the page, it is given a priority of 999 so it executes very late on the page. I have also added the last hook to fire if your are logged in as admin; wp_after_admin_bar_render

page-load-queries

You can see the result in the source view of a page a the bottom.

If you want to see the numbers in the front end as appose to the source, do it like this instead:

function themeprefix_mysql_queries () { 
echo get_num_queries(); echo ' queries in ';
timer_stop(1); echo ' seconds.';
} 
add_action ('wp_footer','themeprefix_mysql_queries', 999 );

This removes the comment and one less action as the numbers will display at the bottom of the page.

page-load-queries-frontend

Leave a Comment