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 been working on seo audit by 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.
- Google Chrome — Okay, so this isn't a WordPress plugin either — its a full on browser. Chrome has a lot of performance, page speed and Firebug features built into it. These are called “Developer Tools” and can be found in “View” -> “Developer” -> “Developer Tools” … When this option is selected, Chrome will pop open a new window with an entire suite of tools. It will show you how long each page on your site takes to load — and which components in your page load are the slowest and which files on your load are the largest. Chrome will allow you to edit HTML/CSS and enter custom javascript commands into a console — this is particularly helpful when tracking down performance bottlenecks. I'm using this more and more in conjunction with the technique of disabling / enabling plugins to see where performance bottlenecks are creeping in … it gives me a visual picture of how performance is affected by each plugin.
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.
@RobertVayner says
great info and perfect timing !
This is the way such info should be delivered , along with the solution.
the reason why is :
This load speed effecting seo is going to open another crack that many will want to cover as new found mainstream must have tactic . I could just see an overload of so called speed SEO specialization services targeted to lower skill users popping up based on that statment by Cutts.
i wonder what makes an online operation take action faster in optimizing their site for speed –
User Experience or Organic traffic after Google starts making those statements ? I personally believe in balance but my money is on Organic traffic making people say, We must, we must, we must..
This is when the” taking advantage of lower skill user ” service GURUS,lol come around and that’s just wrong so keep it coming Blair caz this is exactly what the community needs in such cases !
J Glen says
Thanks Blair,
One of my sites has been getting a ton of crawl errors ie., Network unreachable. I have been trying to pinpoint the the source of the problem. I will use your suggestions to help resolve this problem and optimize my other sites.
Thanks for the insights.
J
Lawrence Rolograaf says
Blair,
Am I right to say that these are diagnostic tools? What can I do with the results from these plugins? I know that shutting down plugins should give me a better performance, but I like the functionality of some of these additions to my site.
It would be nice if someone used these diagnostics to compare some similar popular plugins, like picture-display (albums/lightbox etc), rating systems or related posts. Could you also compare themes with the mentioned plugins? Or do they perform about the same?
Blair Williams says
That’s a great point rolograaf — they are diagnostic tools and could absolutely be used to compare similar popular plugins. These tools analyze the full website and can identify problems with plugins, themes or the wordpress core (which is unlikely at this point — but still could happen) … so they just identify the bottlenecks — it’s up to you to determine what you want to do with the problems. I’ve found that they really help when determinining which plugins / themes to use or not use. In the past I’ve just started blindly shutting down plugins and I know that people will often times shut down my plugins thinking they are the issue when they are not — most of the time 🙂 …
Lawrence Rolograaf says
Thanks Blair,
Another one: do you have experience with database optimizers? Will they make a difference in SEO/page load? Or is WordPress/MySQL already self-optimizing enough?
Seonard says
Good to see that at least one developers cares about the number of db queries 😉
Thanks for the links, good stuff. I’ve been using these plugins so far: Debug Queries by Frank Bueltge and WP-Memory-Usage. I completly agree that some kind of monitoring is highly recommended, especially on shared hosting. It will give you a good idea where to look for bottlenecks and when to upgrade your hosting.
Peter Sundstrom says
Good advice Blair.
I’ve been using WP Super Cache plugin on a lot of my sites and it can certainly speed things up quite significantly.
However, it certainly pays to test it thoroughly before leaving it enabled permanently as there maybe compatibility issues (as you point out), but for most blogs, it should be just fine.
Mike Storzieri says
Great post, I have had problems with “Wild Plug-Ins” before, some of which have taken down the blog totally.
I will check out the plug-ins you have listed, the memory usage sounds like it could be very useful, along with the FireFox add-on.
Amarjit Kapur says
Hi,
I have installed the plugins but I don’t know what I am looking at. I mean I can see the code but can not make sense out of it. Is it possible for you to make a follow up post explaining how to look for and elminate bottlenecks.
Noah says
After reading your post which was very helpful. I didn’t some research. I came across a plugin that is hands down the best option for caching and optimizing site/blog load times. It is called W3 Total Cache.
Robert says
Not a bad article … I’ve already tried the profiler and it works great (at least for me, managed to get 0.008s out of 19 queries ).
Thanks for the advice! 🙂
kimberly says
Wow Blair thanks a bunch for the information my problem with my blog is not just how fast or slow it is it is trying to get everything all tied in together. I recently had to uninstall my blog and then reinstall from my server and I have been busy trying to get it put back together which is rather frustarating when you are not a techno geek. It also takes away from me being able to get my biz up and running which is frustrating it is bad enough that I have info overload and keep reading what is new instead of concentrating on making my biz work. When my blog re-installed there where A’s with squiggly lines all over my posts and I am still having trouble with the pages linking in the widgets and my list goes on and on I almost wished I just kept the blog that wasn’t working right anyhow. Anyways if you have any suggestions I will take them. And tell me why my gravatar is not working anymore do you know???? I went to the site and made sure it had the right info.. Ohhhh welll
cartpauj says
Kimberly you may have gotten some corrupted files or even database mis-configurations during the re-install. Also you should probably update your permalink structure once just to be safe.
kimberly says
Hey Blair it is me again how do I update my Permalinks??? How do I know if I have some corrupt files? I am not a technology wiz like you I am a self starter self learner. Still learning…
Trish says
Hi Blair,
Great article / advice! I am new to blogging and just now setting up my site. While new to blogging and WordPress I am not new to technolgy. I was looking for just this kind of information on database optimization because page load times were a concern for me.
Thanks again for all the GREAT info and FYI, I love Pretty Link Pro – Wonderful!
Trish kemke
Deiric says
Great advice – thanks! Do you (or anyone) know of any service that will take a look at a live blog and recommend/execute the required changes to optimize its performance?
iodigeintex says
Хороший сайт http://www.dostavka.tk/ есть все что связано с ikea – купить икеа, купить икеа, a href=http://www.dostavka.tk/ / rel=nofollowикеа-клуб/a и многое другое. Уверен пригодится ресурс.
Rob Metras says
Thanks for the extra tips . I am using W3TC also along with Yahoo Smush on photos, WP Minifier for css and Amazon S3 as my CDN site. It has worked well and improved my load times. Every little bit helps for the ADD society and the serps
Kelly Provost says
Awesome content Blaire, be using this for sure on my blog and my sites. Thanks.
Kelly
Philip L. Franckel, Esq. says
A couple of months ago, I received an e-mail from my hosting company stating that my websites receive too much traffic and they were going to substantially increase my monthly fee. I started optimizing my sites to decrease CPU usage, which also made my sites faster, and wrote an article about what I did at
http://www.top10googleresults.com/keep-hosting-fees-down-decrease-cpu-usage-speed-up-your-website/
By the way, I just installed Pretty Link Pro and created my first pretty link:
http://www.top10googleresults.com/keephostingfeesdown
andrew says
interesting that WPDB Profiler has not been updated in 2 years…..and WP advises against installing because of compatibility issues with recent WP