A couple of posts back I wrote about the problem of my site using too many resources on my host’s shared server. While the ultimate solution was revealed in that post, I’m going to share some tips that helped me improve this site’s performance by almost 100%, even though they weren’t the cause of the original issue.
Previously, on Hypertransitory.com…
As I wrote in my last post on my webhosting problems, because of my site’s performance issues, my host (Site5.com) wanted me to either fix it or move to a higher-tier plan that would cost me about $72.00/month (much higher than my normal $13.95/month).
The ultimate cause of the problem was misbehaving search engine bots hitting the site over and over. They were spiking my CPU usage and consuming enormous amounts of bandwidth, slowing down everyone on my server.
I didn’t realize this at first, though. Initially I figured it was just my WordPress install running slowly, so that’s what I worked on fixing at the start.
Even before I got the message from my host, I had observed that my site was moving slower and slower. I let it go on too long, and now it was time to fix it or
die trying shutter the site (I love this site, but I ain’t dying for it!).
MASSIVE fail fail fail
If you’re not familiar with these plugins, what they do is load up whatever page you’re on, analyze them for speed and efficiency, then assign an overall grade based on the average scores you receive on many individual tests.
When I saw my scores, I was shocked. Pretty much “F’s” across the board.
I knew it was bad, but I didn’t think my site was running that badly. Yet, the scores didn’t lie. Almost every page I went to was an F. A few pages got D’s, and my contact page received a C, but that was the highest it ever went. Holy crap, I had a lot of work to do.
So, what was gumming up the works?
WORDPRESS PLUGIN APOCALYPSE: The Passion of the Plugin!
Problem 1A – Plugin Overload
The biggest site-slowing issue my site faced came from the plugins I was using.
When I began digging into the problems, my site was using a whopping 67 plugins! Almost every one of those plugins were performing some seemingly small task on every page load, so even though many were small, the cumulative hit was getting to be very “expensive” in terms of bandwidth and CPU power.
How did it get this bad? Well, over the years I was adding plugins that performed various task better left to a template tag or a function. I did it many times, especially at the beginning when I didn’t quite understand the WordPress theming setup.
And that’s how it went down the line. When you look in your dashboard and you see 67 active plugins (oh, I should mention there were 16 plugins deactivated – that means their were 83 plugins total installed on my site!), it becomes a scary proposition to start turning things off. Especially if you don’t really remember why all those plugins are there.
As a rule, when I’m working on a client’s site, I keep a log of which plugin I’m installing and the date of install, also why I’m installing it, and if it’s supposed to be working on a specific page/post, etc.
I’ll admit that sometimes it seems silly and useless (the plugin says in it’s description what it does, right?), and the vast majority of the time I never look back at those logs, but it can save your life when you haven’t touched a site for 6 months and you just don’t remember what that one plugin is doing.
Unfortunately, I did not do this with my own site. For some reason, I’m willing to risk my own site in ways I would never risk a client site. I work on mine while it’s live, without making a backup, or let it go for months without backing up, just install anything without researching it or testing it, and make changes to the theme without documenting anything.
That won’t be happening anymore, but at the time I had really screwed myself. I was left with the unenviable task of putting the site into maintenance mode, then turning off plugins I thought I didn’t need and checking the site to see what happened.
You do not want to be in this position. After some harrowing adventures, I managed to deactivate a ton of them, and ended up with 28 plugins total (all active). That’s still a lot. I read the results of one of those WordPress surveys and I believe 10 plugins is the average number. There’s still work to do but it helped a bunch.
Problem 1B – A$$hole Plugins
Not only the sheer number of them, but the types of plugins were very important. Some are just humming along doing their jobs, but some of them are just jerks.
So what’s the number one type of plugin slowing down my site (and likely yours)??
SOCIAL MEDIA PLUGINS
Gah. I can’t stand these things. I had two running – one for the “share” buttons, and one for my “follow me” buttons.
Calling all those external services on every page load can be a huge performance hit. The very worst one is Twitter. It’s always Twitter, it’s the last one to load, and it holds up everything.
This isn’t necessarily anything the plugin can do anything about, but some plugins do perform better than others, so the developers must be able to mitigate this somehow.
For my own site, I went in search of the lightest, fastest social media plugin I could find and I discovered Social Media Feather.
Problem 1C – Mo’ Badder Plugins
There are other types of plugins that can really put a strain on your shared hosting server. Of course, I was using a few pretty bad ones here:
I used a great article on WordPress plugins from WP Engine as a starting point to brutally and mercilessly cull the weak and the sick from my plugin herd.
My site isn’t hosted with WPEngine, but I do manage several client sites with them. I have a lot of respect for those guys, and take their recommendations seriously.
Why am I not hosted there? Well, it was a bit expensive for me, and I don’t think Hypertransitory.com is at a level where managed hosting like that is necessary (yet). I always recommend them to most businesses, though.
However, I see that WP Engine recently introduced a “Personal” tier of service for $29/month. If I ever do get booted off Site5, or if they want me to move to the $72/month VPS solution, I’ll likely jump to WP Engine and go for that option.
Check those plugins!
You can test which WordPress plugins are performing poorly by using a plugin called P3 (Plugin Performance Profiler).
This one was recommended by my webhost in their WordPress Optimization Tips knowledgebase article.
When I installed it and ran it, the social media plugins I was using were the biggest culprits. After having read through the Site5 and WP Engine tips pages, I wasn’t surprised by anything I saw there. If you’re having a problem, you might do well to install it and give it a run through.
After I was done with it, I uninstalled the P3 plugin. It wasn’t necessary anymore, but it also was throwing some database errors every time it ran. I knew I didn’t need it at all times so I uninstalled it and deleted it.
Another plugin you can use for site speed testing is the GTmetrix for WordPress. This plugin uses the Google PageSpeed and YSlow services to test your site, so you might not need it if you already use those browser extensions (remember to keep the plugin number down if you can).
You’d need to sign up for an API key at GTmetrix.com. It’s free, but you’ve only got so many “API credits” to run tests with the free version. You can upgrade to the pro service if you need to do a lot of consistent website testing.
Again, I used this but then uninstalled it. Mostly because I realized it didn’t do much more that run YSlow and PageSpeed, but also because I didn’t want unnecessary plugins installed and cluttering up the joint.
The Chopping Block
At the time of this writing, my site is getting A’s and B’s on most pages, so it’s zipping along pretty quickly.
I’m still not done, though. If you recall, I’m using 28 plugins, and I’m trying to winnow it down even more. Unfortunately, the easy work is all done, and the ones left over may be harder to remove without consequence.
At this time, here’s what I’m up against:
And that’s just the top four of the 28 plugins still left here. My goal is to whittle them down to 10 or less, so there will be more dust flying around here for awhile as renovations continue.
The Wrap Up
In this post, I wanted to go over all the plugin drama I went through on this site, but there’s still more to come. Plugins were only the first front I tackled, and just dealing with those doesn’t take you from an “F” to an “A” in YSlow or PageSpeed.
Finally, here’s some screenshots of the YSlow score of my home page and an article on my site. You can see they both got A’s (or if you have YSlow or PageSpeed installed, just run them on my site instead). Some of my older pages are getting B’s, and I want to get those bumped up to A’s as well.
So with a little hard work and tiny bit of sacrifice, you can get your site cranked up to extremely fast speeds, plus you will potentially spare your wallet, since you won’t be forced to move into a higher hosting bracket. Stay tuned for next week’s post, my friends – and I’ll see you all next time!