Optimize WordPress for speed and resources

With an experience of running a number of sites/blogs running on WordPress, I feel like sharing some of the issues I have experienced.

WordPress if one of the simplest content management system (cms) available. It is easy to install, deploy, and modify when compared to other GPL cms like Joomla, Drupal etc. With a huge user base, there is a vast pool of themes and plug-ins (mostly free) to choose from.

When I started using WordPress in late 2006 the sites I designed didn’t have much traffic. I had the flexibility to use any plug-in or theme on the sites. But as the traffic increased the server couldn’t stand it. Then I realized that it was not only the site traffic that determines how much server resource is required to run the site.

The WordPress core in itself is light-weight but when it is coupled with add-ins and custom themes it can be very resources hungry. The worst resources hog I experienced was a Related Post plug-in.

– Plug-ins can be heavy. Not all plugins are that bad but to be on a safe side; use less number of plug-ins
– Templates with a lot of features and that comes with plugins can also be very heavy.
– Keep homepage as light as possible with less javascript, images and scripts.
– Keep WordPress updated and secured.
– Spams – fight them. Nobody needs them and they are heavy on server too. Use plugins like Akismet, Defensio, reCAPTCHA etc.
– Caching – When site traffic increases the database overload can occur. MySQL database limps trying to get the information needed to render the page. Best solution is to cache the pages so that database gets less load. There are various plug-ins like Wp-Cache, Wp-Super-Cache etc., to do the job.
– Revision – Latest version of WordPress features ‘revision’. It is good to have history of every revision made on every post. But, it can be heavy on database too. There are plugins to limit the number of revision or delete revisions to make the database light-weight.

Advertisement

Leave a Reply

Your email address will not be published. Required fields are marked *