2 Things I Hate About WordPress And How To Turn Them Into Your Advantage
Some might say that it is a rather unusual headline coming from someone who builds entire blog around benefits of WordPress and making it into a true Web 2.0 platform. But as everything else in this world WordPress is far from perfect and dealing with my recent issues I have discovered 2 things that I had no clue about.
What is even worth – presence of these 2 problems severely impacts your WordPress blog performance and slows down your blog. But as always I will not just stop on describing the problem but also provide you with a guide to turn this problem to your advantage and get ahead of 99% of other bloggers using WordPress.
In light of work I have done recently to resolve the problem with extremely sluggish performance of my blog I had to dig through and address several problems that have direct impact on how fast my blog loads. What I have also discovered is that NOTHING impacts it more then bloated database! Due to several unfortunate factors one of the tables on my database “wp_options” managed to grow over 22MB and my blog was brought down to its knees! While it was not a problem directly contributed by WordPress but rather several things coming together to create one huge problem – it forced me to go through entire table in text format and remove all the extra entries – OVER 3 hours of cleaning by hand.
But what it also did is forced me to look at bigger issue as in process of cleaning I have discovered that all plugins I have ever installed and even couple themes managed to leave entries in very same table contributing to the total size and slow load times. Which brings me to …
2 Things I Hate About WordPress
- Problem number 1: All the plugins and even some themes use wp_options to set its setting and as such contribute to the size of the table. It is very same table used by WordPress to store ALL settings related to your blog and every time you open any page it has to be read and processed. So the bigger size of this table – longer it takes to process it and as your blog becomes older and you try new plugins and even themes – it continues to grow and contribute to progressively slower load times.
- Problem number 2: Directly contributes to problem number one and I simply can’t believe it hasn’t been addressed by developers! When you deactivate plugin or decide to switch theme (assuming it stored its settings in wp_options) – it NEVER cleans behind itself. While at this point I can’t say for a 100% that every plugin author is guilty of not creating code that would clean table after it was deactivated I had spend another hour today removing setting for old themes and few plugins I no longer use on this blog.
While you might think that what I have described above is not a big deal – I have managed to remove 275 records today that were left behind by couple old themes that I have tested on my site at some point and plugins that I decided to no longer use. As result in my page load speed tests after cleaning I went from average 2.9 seconds to 1.8 – 2.2 seconds. And my blog is only 3 month old! Can you imagine how these extra records can affect a blog that is couple years old? Which brings us to second part of this article …
How To Turn Them Into Your Advantage
I can guarantee you that most of the bloggers will NEVER even look at decreasing size of this table and cleaning old records from wp_option as method to optimize load speed of their WordPress blog. And you can use it to your advantage!
It is no secret that slow loading page is one of the major reasons people never come back to the site or blog. By improving your blog load times you get a better chance to retain visitors and turning them into readers and perhaps into subscribers to your blog.
I do have to make one statement: If you are not very comfortable working with database using phpMyAdmin, then perhaps you first read details on it before attempting any steps outlined below. I have no intentions to teach it here. Also any changes done directly on database can have drastic impact on your blog if done incorrectly and kill your blog.
- Step 1. Backup your database. Do yourself a favor and before even touching any tables – create a backup and test it by restoring, to make sure that you can do it at any time. Use this detailed Guide to Backing up and restoring your database.
- Step 2. Login to your phpMyAdmin and open database for your blog. First do a visual scan and generally table names are fairly easily associated with plugins that you use or perhaps used before and they didn’t get removed. If you find some tables left behind by plugins you no longer use – delete them. But that will only reduce the size of your database and not have big impact on performance since they are not referenced and simply contribute to total size of the db.
- Step 3. Click on Browse action for wp_options table and go through it record by record. Identify any records that were left behind by old plugins or themes and delete them. Hint: in my case I found that every record was easily associated with a plugins I no longer use and couple themes since it either included a complete name of plugin or its abbreviation.
In my case, by doing what I have described above I managed to reduce number of records in wp_options from 603 to 328. This is almost twice less records and while obviously my tests were subjective I have seen an improvement in load speed and as I have mentioned in beginning of the article speed tests confirmed my personal experience.
One thing to remember about the speed tests I performed using this tool is that many factors make it possibly invalid, such as change in internet performance as a whole and limited numbers of tests. Only tests done over period of time and with consistency can be counted but still – good housekeeping never hurts and cleaning stale records from your database will only help you, when done properly.
And finally some thoughts on the subject that come from experience of working with other CMS’s and some basic programming experience. While I’m not able to really program I can read the code and to this date have seen enough of it to know that what I’m about to suggest is not that hard of a solution.
I simply can’t understand why plugin authors don’t add a simple line of code to remove setting added by their plugin to wp_options table when it’s deactivated. It is simple enough and I have seen it as standard feature of Typo3 CMS. Or perhaps an option I have seen in PHP-Nuke – each plugin stores its settings in its own table and called for when required. Later these tables can be easily dropped (deleted) when you decide to no longer use it. Although I haven’t used Nuke for about 3 years – it was present when I last worked with it and seems like a valid option even though not as sound as one present in Typo3.
Let me know what you think and if you find this post interesting, perhaps you want to read about other options to speed up load time of your blog in my post:
| 2.5 |
If you're new here, you may want to subscribe to my RSS feed. Or click here to learn What is RSS And Why You Should Subscribe. Thanks for visiting!
Related posts
If you like this post subscribe to Full Text RSS feed and read news at your leisure or get daily posts conveniently delivered to your inbox by Subscribing via Email (requires confirmation)
Technorati Tags: WordPress
























You know Alex, I”m really enjoying this blog. You’re posting really great information that is very timely for me.
When I get back home again next week, I intend on upgrading my word press and updating the themes. My blog does load slowly so I will add this to the list.
I like to play and can usually figure stuff out, but it sure does help when some one shows me how… so thanks
Sure thing Heather.
I share what I know and what I learn and if it helps other people - mu mission is accomplished
More I work with WordPress - more I discover things that are not documented elsewhere and providing this information makes my blog not only unique but hopefully useful to other bloggers.
And as always - thanks for taking the time to comment.
Alex
Hi Alex,
You are a very good resource and your information is excellent.
If I may make a recommendation that I think would result in increased conversions to sales, more people grabbing your RSS feeds and returning to your blog.
Consider hiring an editor to smooth out the language into less choppy English.
I came here from IMNewswatch and there was an error in the teaser there - and there are errors all over this blog.
Here’s one:
What is even worth – presence of these 2 problems severely impacts your WordPress blog performance and slows down your blog.”
I am not a really picky type person - but once I start reading this kind of language I start to put an accent to it in my head - and the credibility is reduced.
It would be very inexpensive to hire someone to do this - and be a great benefit to you I believe.
I hope this is helpful. I mean to be.
Sincerely,
Rick Butts
http://www.OMMWeb.com
Thanks for comment Rick!
I know exactly what you mean and I’m aware that my english suffers but hope at this point that information I provide for free will smooth out my less then perfect grammar. With frequency of my posting on this blog, combined with regular job and work on my new product - it is simply not an option.
Although I do have plans in the future to do exactly what you suggest. I only wish M$ Word did a better job at correcting my mistake
lol So here is a challenge:
Anyone knows of good application that checks not only spelling but also grammar?
Thanks again, Rick and yes, your comment is very helpful!
Alex
Hi Alex,
Some very interesting points again, as always!
Ok, so your english isn’t perfect and to my knowledge there isn’t a program that corrects spelling and grammar. None of us are perfect and I don’t see minor mistakes as a problem in such an interesting blog which gives away so much information.
Part of the problem lies in this little ditty that I posted on my blog a while ago..http://cotojo.wordpress.com/2007/05/12/ode-to-computer-spell-checkers/
Spell checkers see these words as correct but it is absolute nonsense.
If I do come across an application that can sort it I’ll let you know lol.
Enjoy the rest of the weekend my friend.
Colin
Thanks Colin!
That ode is simply awesome and captures the problem exactly
Actually I have found several grammar checkers but reading the reviews - they don’t look too promising …
I’ll test one of them for kicks and giggles and see how it works …
Alex
Hi,
I was just reading your website and you suggested that we upgrade to version 2.2 of WP. Is using the old version risky?
I also noticed you suspended sales of your build blogs fast product. I was just installing it, is there a problem with it?
Should I use it, etc.
Thanks
Denny
Denny,
I suspended that product because I decided not to support it. I’m not aware of any securities issues but would recommend upgrading and I think I made that statement on the sales page …
My main reason for suspending product is that tactic used by it (while works) is not a long term solution and I’m developing something that will far surpass it while offering new capabilities. Something that I build from scratch as opposed to PLR product (the one you are referring to). More details on it will be released this week as well as beta testers invitation … so you can wait and perhaps become one of the Beta Testers or you can proceed with your plans …
Alex
Hey Alex,
I don’t think there is a software program (and I hope there never is) that can capture your style and and correct the errors that trip up a reader.
If it’s in your budget you could easily find someone to just edit your posts after you make them for a few dollars — like $9 - $10 an hour.
Post something on http://www.guru.com or http://www.scriptlance.com
But don’t let this stop you from producing great stuff!
Rick Butts
http://www.Visitors2Cash.com
Thanks Rick
It is most definitely on my list of things to do … once my posting becomes less hectic and things flow smoother.
Alex
Hey Alex,
I had noticed your blog getting slower and slower before the holidays. It was taking more than 30 seconds on average for it to load for me. I thought it was your server (which it kinda was, trying to sort out the DB). I was going to mention it to you, but it slipped my mind. Probably because I thought like you already had a handle on it - and you did. It loads super fast now.
I plan to take a hard look at my database in php myadmin very soon! And you’re right - what would be so hard about including uninstall code in plugins and themes? Soon, hopefully.
In the mean time, manual scrubbing it is! (<;
Thanks for the heads-up,
Russ
Russ’s last blog post..I Completed The Simpleology Blogging Course
Russ,
Yep, that is part of the cleanup I was unable to do due to my problem with laptop. Am trying to figure out possible ways to automate some of it, since the dev team don’t seem to bother with it. I do know that its not only my problem and seems that since 2.3 there is a new issue - wp_options table gets filled with rss_**** entries which take a lot of space and don’t even need to be there, since they are ONLY a new in admin backend.
Great post. I cleaned up one of my WP DB just this week before upgrading to 2.3.3 ‘cos I read the cleaning thingie in another post of yours.
And things are looking up. A plugin that I tried recently–can’t remember which one–has an option to clean up before deactivating.
KokPang Yeo’s last blog post..Shoe Addict
Thanks,
I use what I share in this article regularly. Unfortunately until ALL developers create a way to cleanly uninstall their creations and clean database behind itself - some manual work wil be required to make your blog humming along.
Alex
So am I understanding that the more plugins and themes you try, the slower the loading even if you deactivate?
I don’t think I am up to a manual cleaning since I would barely know what I was doing. How about testing all your plugins and themes on another site or in a sandbox, and only using the ones on your real site that you know you will keep?
Tims last blog post..Playstation Game Cheats for Sonic Riders: Zero Gravity