You all know that lately i’ve been up to coding a few plugins and sharpening my WordPress coding skills. Besides mine, on the WordPress plugin directory you can find hundreds and hundreds of plugins doing just about anything. It’s actually thousands of hard worked coding lines by authors that, one time or another, needed something more out of their WordPress installation (i am not saying blog since WordPress is used for just about anything nowadays). So, they coded it for themselves and were kind enough to share it with the world for the ease of other people too. Others, me included, code for fun and just because every now and then, when i am reading blogs, i’d like to bump into something done by my plugin. You can’t imagine the overwhelming feeling that gets over me when i see that someone is actually using my code…
But, there is one thing i’d like to bring to your attention guys. There is a very thin line between using a plugin that actually makes your life easier and using one just because you might need it a couple of times. What is very “dangerous” with plugins is that they can be resource hungry. Here is a simple example. A socialize plugin, the one that adds digg, stumbleuppon etc on the bottom of each one of your posts, actually is a php function that gets the whole text of the post as a parameter just to add on the bottom a few lines of simple and plain HTML. And how is that resource hungry? Well, on your frontpage there can be five to ten posts so imagine it running ten times (60 kilobytes of text, or even more, going back and fourth). Now that is not that tragic since it’s just adding text. But, imagine a plugin that makes a query on the database. Imagine that running ten times on your frontpage. Each time it renders, ten queries are done just like that. That might be a tradeoff that you are willing to make if the plugin is absolutely nessesary but what if you just use it rarely or, even worse, once?
Ok, criticizing is fun but what about solutions? Well, for those socialize plugins, and a few more tricks, i’d like to bring this post to your attention. Edit your single.php or index.php file and add plain HTML. Go on, don’t be afraid, edit a few lines of code and you will be rewarded! But what about things that can’t be done simply and need a plugin. There, “a man’s gotta do what a man’s gotta do”. Still though, consider every aspect before installing one. Now, before going on open your administration and take another look at your plugins list. Do you really need them all?
One more thing i’d like to add. If you know your way around code then why not take a look at a plugin’s code before installing. It might give you a good idea of the coding technique. One of your main concerns must be code efficiency. When i try to do something and need a plugin i usualy take a glimpse at the code. Sometimes the simplest things can give you a good idea on the code’s efficiency. For instance, on a simple echo using double quotes is not such a good idea. This is because, for php, there is a major difference between ‘ (single quote) and ” (double quote). That is, any string within a single quote is echoed as is whereis a string within a double quote is parsed for special characters, php variables etc. I know, this is silly since it might slow down the execution by a fraction of a second, or even less for that matter, but it’s a good indication on wether the coder had efficiency on his mind when coding or not. Another thing you should be very carefull of is SQL queries. I have seen some very bad practices on my days (and i assure you they are very few). For instance, producing a result with a nested query is not as good. There must be a way around. Imagine that really bad and time consuming query running two or three times per render. That could be a killer or performance.
I know i sound pretty vague but finding out if you trully need a plugin and, uppon discovering one, if it is suitable and the best solution, is not such an easy job. It all comes around with experience and constant testing. My main advice here is make sure you need a plugin to do some kind of job, and if you do need, make sure you test them all and see which one is the best for you.
Finally, i’d like to tell you why i made this post. It’s actually for two main reasons. For one, i see so many plugins that actually do something that can be staticaly done through a template, therefore adding an unessesary burdain on your code. Secondly, talking with friends and reading reviews, i see that there is constant argument that WordPress is a pretty heavy platform. That is pretty much wrong. A simple and virgin installation of the platform, provides minimal things but it is pretty light too. When you start bloating it up with unessesary plugins and badly written code then, it’s only natural, that it will get heavy. So, each time you start nagging about the loading times of your blog, think about this: “It’s the man my friend, not the machine!”
All in all, i just felt like writing this post just to tell you, please consider all this processing power that goes to waste when using something you don’t need. Not only it’s a pitty but it makes your blog load badly. Any thoughts, comments, corrections as always are welcome!
Being someone very new to php, I find it extremely tough to know what code/script is hampering the performance and eating up the memory. Being on a shared host and running wordpress is a bad bad combination
@Raju: well i’ve been on shared hosting until recently i got my vps. it was kinda heavy i must admit… if you don’t know your way around code then the best option is to keep plugin usage as low as possible.. and if you need any help please do not hesitate!
Thanks a lot Stratos for your help offer. Honestly, the problem with me is I experiment a lot with plugins/scripts without knowing much of php, and suddenly when there is a spike in traffic, my host takes my site down, since some script will be eating up their resources
am in a pretty confused state as now even to take your help
@Raju: well if you get me a list of your plugins in my mailbox i will take a look and tell you if i think any of them is suspicious…
I like plugins like linux apps, a small tool written for a specific purpose. There’s a growing amount of ‘everything including the kitchen sink’ plugins I’m trying to avoid. For example 1-2MB for a plugin to add a contact form is acceptable if you really use every function it offers, but just for a contact form it really is overkill.
Nice article.
@XIII: thx man!
[...] plugin can pose a security risk for your site. That is entirely true. You must remember my post about minimizing plugin use and doing whatever can be done by hand. That is one of the reasons. But how [...]
[...] coding tweak for your WordPress blog. I don’t want to repeat my self on how you should try to avoid using a plugin when something can be done by hand. This task, adding a featured post on your frontpage, i must [...]
[...] WordPress tweaks here is another one. Since i started coding plugins, i keep encouraging people to minimize their plugin needs. They are resource hungry and may cause problems due to security issues on your blog. There are [...]
[...] On the bad case scenario your sites will be disabled without warning. Remember when i said “minimize your plugins?“. This is one more reason besides your blog being slow. Generally it is a good way of [...]
[...] i talk about WordPress you all know that i prefer doing something by hand rather install a plugin to do it – provided that the task at hand is easy to do. I have already shown you how to get rid of [...]