Wordpress - Profiling a WordPress Website for Deployment on Shared Hosting?

Profiling with Profiler-Plugins

Not sure exactly what you need to accomplish with your profiling, but WP Tuner (Wordpress Plugin) goes a long way to finding what is slowing down your WP install.

It looks at each plugin and give your the memory, CPU time and SQL queries involved.

The SQL Monitor (Wordpress Plugin) analyzes SQL performance.

Combine it with W3 Total Cache (Wordpress Plugin) and you should get better performance on any platform.

Also, look to using transient API to store fragments you do not need to generate everytime. This can really help on a slow DB.


We have built a PHP profiler on top of XHProf that also uses callgrind output format. The main advantage over XDebug is hugely lower overhead and better recursive function handling, as well as XHProf-style profiling begin and end functions, enabling automated unit testing.

You can see it at http://www.exteon.ro/en/products/php-tools/web3tracer

You will need to compile and use it on your test box though, or ask your hosting provider to install it, but they are not likely to do that.


Profiling with Xdebug

I searched for some links so it's easier to read into the topic. I've looked for doing PHP profiling with XDebug, something I would suggest to do:

  • Xdebug: Documentation: Profiling PHP Scripts (Xdebug Documentation)
  • Xdebug Quickstart: Profiling in PHP (by Bill Hewitt; 4th May 2010)
  • Profiling PHP Applications With xdebug (by Stefan Priebsch; 31 Dec 2007)
  • Faster PHP Apps – Profile Your Code with Xdebug (by Paul Annesley; 23 Apr 2007)
  • Wordpress: Codex: Testing WordPress Performance (Wordpress Documentation)

To display profiling results on the remote site, webgrind might be useful. It's a PHP application that summarizes the profiler output.

I'm not sure if it's possible to provide this all in form of a wordpress plugin (at least there is none available I'm aware of and I don't think that there is something available right now), so you might need to do some of the setup / configuration / profiling on your own.