I just upgraded my hosting plan, and we’ll see if that solves issues with the site performance. In addition to everything I mentioned in my last post, I also took some additional steps to improve performance, captured here for the sake of anyone else who has issues.
- I fired off an email to the maker of Category Icons, which seems to be one of the common slow queries. For a while today I had it disabled outright, but I seem to have more headroom on this new hosting plan, so the icons are back.
- I found that wp-cron.php, which is what the blog uses for scheduling posts and other cleanup tasks, was generating a lot of hits — as in, a quarter million this month alone, far outweighing most of the blog traffic! This appears to be a common problem. I followed the advice found here on how to disable WordPress’ built-in cron stuff and instead use a regular cron job. We’ll see how that does and whether everything works more or less like before.
- I found that the Exploit Scanner plugin, which I have mentioned on the blog here before, was a huge culprit in adding cruft to the wp_options table. I suspect that a few scans simply failed to complete — heck, I cancelled one the other day because it was taking too long — and left the entire state of the scan in the table. There were only two of these, but removing them reduced the table from 8.4MB to 99.2k. Yes, you’re reading that right. With that, my slow queries checking the wp_options table went away.
- While I was at it, I also went through the table and cleaned out obsolete options. Clean Options was helpful in this regard.
- Running tests with Webpagetest.org, I found that there were still some pesky files that were not getting compressed. So I added this to my .htaccess file to try to catch everything:
After doing all that, the site was still dog slow, and Nick, the support guy at BlueHost who helped me out, spent 45 minutes with me trying to figure out what else it could be before we arrived at the conclusion that I had simply outgrown their basic hosting plan. In the last couple of weeks I have been averaging 4000-8000 hits an hour, thanks to the controversies around free-to-play and immersion and thanks to Hackner News, BoingBoing, and Massively… So I upgraded, and now getting the site — even non-cached, the way I see it as an admin — is ten times faster than just getting the first byte was earlier today. Almost all readers will be getting cached pages, so it should be even faster for them.
This post itself should serve as a decent test of how well all this worked!
Sometime soon I will also be taking advantage of the dedicated IP that comes with this hosting, which might help a tiny bit more… but it will result in the site being hard to reach for a while as DNS records update, so I’m going to let it ride for now.