If you haven't heard yet Matt Cutts (Google's SEO Spokesman) announced last month that performance (measured by page load speed) is a big indicator in SEO now. I've taken that indication seriously and have been searching out some ways to optimize the performance of my blog and think you should too.
When assessing your blog, there are really 3 separate factors that play into it's performance:
- Number and Complexity Database Calls pages on your site are making: This performance issue is caused by code running on your blog that is reading and / or writing to the database. The only way it can be fixed is to identify code that is making too many database calls and eliminate it or get the author of the code to optimize it. Take it from me — database queries can be tricky and small changes to them can either make them run quickly or grind your server to a screeching halt. If a software vendor releases something without optimizing queries (which, sadly, I have been guilty of in the past as well) then they could be responsible for slow performance on your site. To optimize your site you absolutely *need* some kind of tool that will show you what calls are taking the longest and where they are located.
- Script Execution Time: There are many different factors that can influence this one. Poorly coded software in your website, your server's hardware or just your web server software settings.
- Memory Management: This is possibly the most elusive problem of the three. This one could be caused by how much software is loaded by your website on page loads, poor software implementation or just software that is just crunching a lot of data.
When running WordPress, you can pretty much bet that the core code will be optimized and won't drag the performance down — but your plugins and themes (which are written by 3rd party developers like me) can sometimes run afoul.
Over the last couple of months I've really been optimizing my own plugins (Pretty Link & Mingle) as to not contribute to the poor performance of blogs but many plugin & theme developers just haven't gone through the extra effort to keep up with the ongoing effort of optimizing their plugins. And up until about a month ago, I was even flying blind when it came to all 3 of these factors on my own blog.
Luckily, as I've been optimizing my plugins and blog I've found 4 awesome tools that have been helping me to ramp up the performance of my blog (I'm still in the midst of optimizing my site) — and I thought I'd share:
- WPDB Profiler — This plugin analyzes all of the database queries your blog is making, times each of them for you and tells you where they are occurring in the code. It is better than other page speed plugins because it breaks the queries down individually so you can see what plugins (or theme) are your biggest offenders. It is a bit unnerving to see all of this diagnostic data which appears after the footer of every page on your blog — but just know that non-admin users on your site never see it (I'm using it on this site — right now and you don't see it do you?). If you see a large number of the same queries from a plugin or some really slow queries from a plugin then you may want to either disable it or notify the plugin / theme author to fix their code.
- TCP! Memory Usage — This plugin absolutely rocks — it will show you first of all how much memory your page loads are consuming on your web host. For those on shared hosting this is a valuable tool as well because it will show you more about your php configuration and make recommendations based on it. It will show you settings that should be changed in order to maximize the performance and security of your blog.
- Google Page Speed — This isn't a WordPress plugin but is a FireFox Addon. This tool is awesome because it analyzes how long each element of your page takes to load. This will take into account for script execution time and general load time. It will make recommendations based on the bottlenecks it sees.
I of course realize that I have omitted the very popular wp-super-cache and wp-cache plugins from this list — which are also really great plugins for boosting your blog's performance. I have them disabled on my site just because of many different compatibility issues between them and certain things I want to do — but they can bypass all 3 of the issues from above by just loading cached, static html instead of generating it every time a page is loaded…
Anyway, I really hope these tools are a huge benefit to you as you go about speeding up your site … I know I use them every day.