WordPress Plugins: A Love – Hate Relationship

Posted by & filed under Tech Geek.

wp-blue-1024x768Everyone who’s worked with WordPress falls in love with this free, open source blogging / content management system. The engineers who created WordPress gave it the ability to be skinned with themes and you can now find a million themes for your blog. Or with a little effort you can write your own theme as I did for http://www.robmiracle.com. But the engineers gave us something more: Plugins.

Plugins are ways to add additional functionality to your website using WordPress. Like themes it seems like there are a million plugins available. As with any community contributed add on: themes, plugins etc., some are better than others. Some are rock stars and some are lemons. For plugins, WordPress maintains an “app store” for the lack of a better term, where you can find and download (and starting with 2.7 of WordPress install automatically).

Adding a plugin is so easy:

  1. Login to your admin interface
  2. Click on Plugins in the left hand menu
  3. Click on Add New
  4. Enter what you are interested in finding in the Search field
  5. Browse the results. The 5 star rating system is pretty good!
  6. Click on the plugin you are interested in
  7. Click on Install
  8. Click on Activate
  9. Make any preference changes, most likely under Settings

And just like that, you have added features to your blog. The process is so easy you may find yourself adding and adding plugins because there is so much good stuff out there.

Use the 5 star rating to help determine the lemons from the rock stars!

Do you want random quotes in your sidebar? You can have them. Do you want to have quote marks turned into fancy quote marks without you doing any work? You can have that too. Fancy animated tag cloud? Easy forms? Show your latest tweets? Its all there for you.

But there’s a price to pay

Plugins are crack. You get addicted to them and before you know it you’ve sold your blog soul to the plugin devil.

Plugins kill your page load time

There are multiple studies on how people view web sites. But basically for every 10 seconds it takes your page to load, you loose 20% of your audience. Some studies say you have 7 seconds to get a readers attention and try to hold it. 5-10 seconds doesn’t sound like a long time, but its an eternity when someone is waiting to hear your message.

On both this blog and my photo portfolio site, I had installed a plugin recently called wp-Typography. It converted boring quotes to fancy quotes, figured out the right size dashs, managed wrapping text, hypenation and so on. It had a fairly high rating, 5 stars no less.

The plugin works by wrapping your page in some code and then it filters the text based on rules that you setup.

I recently switched hosting providers and I started seeing some long page load times in the 10-15 second range. A couple of viewers complained about the load time as well. I started to try and track down the problem and I opened a trouble ticket with the hosting company. Naturally I blamed them, they were “new” in the system.

Using FireBug’s Net panel, I was able to analyze where my delays were happening. The index.php file which is only 50K was taking over 10 seconds to load. The images, css and javascript were loading quickly. FireBug breaks down not only how long each request takes, but where that time is being spent. In my case it was “Waiting on Response”. This means that the web server was taking time to deliver the page.

So it was either an Apache (the web server) issue or a database issue (MySQL) since WordPress uses the database quite heavily. My tests showed that even a non-Wordpress page that accessed the same database was very fast, so I ruled out both Apache and MySQL as the cause.

What was left? WordPress. A friend suggested that it may be a recently installed plugin causing the issues. I took a few moments and went through all of the plugins that I really didn’t have to have, deactivating them, reloading the page measuring the time. wp-Typography was the first one I turned off. The 10+ second load on the index.php file dropped to 4 seconds.

This great 5 star, recommended plugin makes a lot of database queries and then filters the output file before letting Apache deliver it to your browser. Six to eight seconds for automatic M-Dashes is too high of a price to pay. I turned off a few more that I wasn’t using or were not essential and got the times down in the 2 second range. This morning I was still seeing some longer times for the whole page to load. I’ve temporarily turned off the e-Commerce plugin since it loads a bunch of unnecessary CSS and Javascript and is a database heavy plugin. Hopefully it will be faster.

I clearly need to find a way to only have plugins load on certain pages. For instance, I use the highly recommended “Contact 7” for my contact form. It only needs to load on the contact page. There should be no DB queries or any CSS or JS injection on pages I’m not using it on, but with the WordPress architecture its a problem and there are no good solutions at the moment.

The moral of the story: Install only the plugins you need. Make sure you have caching on.

4 Responses to “WordPress Plugins: A Love – Hate Relationship”

  1. topsurf

    As you know I am very new to the wordpress world and I wouldn’t be where I am now with out the help of you that’s for sure. I have briefly looked at the plugins and decided to forgo them for the time being. I will keep this handy for when I decide to jump head first into the plugin world!

Leave a Reply

  • (will not be published)

XHTML: You can use these tags: <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">