During the time I have been working as a support team member in SiteGround web hosting company I have spent quite some time to investigate Joomla and the ways its performance can be improved. As SiteGround is one of the most popular hosting providers among Joomla users we had to be able to address many Joomla performance issues. Below you will find my personal top 5 from the methods used by SiteGround for reducing the loading speeds of Joomla websites and optimizing their overall performance:

1. Enable caching

Caching is the first thing you should consider right after installing your Joomla website. It is absolutely necessary. Let me explain the way caching works. If it is not enabled, each time a visitor refers to a page, the script makes multiple queries to the database to load the article content and all the modules, plugins and components you may have installed. This causes two problems. First, your website loads slow. No matter how fast and powerful your server is, multiple queries take time to be executed and such page will be loaded much slower than a regular file on the hard drive. Second, it causes much more load to the server itself. If you are on a shared server and have a popular Joomla website without the cache enabled that could lead to serious issues like overloading the server for example.

There are many caching components available on the Internet but the Joomla default caching function is working good enough to simply enable it and let it work. To enable it, you must login as administrator and go to Global Configuration -> System tab. Joomla supports two methods of caching – file caching and memcache caching.

If your server has a memcache daemon running I would advise you to use it. Caching with memcache stores the output of each page requested by your visitors into the virtual memory of the server. This makes all the following requests to those pages much faster.

File caching is a bit slower than memcache but still works perfectly fine. When someone requests a page from your site, the final output is stored in a file on the web server. Once the page output is stored in the cache, when someone requests it, the web server will load it from the cache file instead of the database.

The downside of the cache of course is that you will have to clear it after you update your Joomla content. However, if you make this a habit it is not a big issue at all.

2. Use only one JavaScript library

Nowadays JavaScript is broadly used in web design. Many extensions use either jQuery, Mootools or other JS library to operate properly. However, each JavaScript library that you load makes your website slower. Therefore, my advice is to stick to one JavaScript library and make sure all of your installed extensions are using it. By default, Joomla 1.5 includes the MooTools library. If you want, however, to use a different one, there is no option in the administrative panel that can use to turn it off. Unfortunately, you will have to disable it through the Joomla API adding the following lines at the beginning to the index.php file of your Joomla template:

$headerstuff = $this->getHeadData();
reset($headerstuff['scripts']);
$moo = key($headerstuff['scripts']);
unset($headerstuff['scripts'][$moo]);
$this->setHeadData($headerstuff);

This will disable the automatic inclusion of the MooTools library. Once you have done this, you can continue including the JavaScript libraries you want.

3. Enable gzip compression

Enabling the gZip compressin on your Joomla website should be done with caution. It will signifficantly reduce the size of your pages but will increase the load your website causes on the server. Therefore, you should be monitoring your site performance closely after you enable the gZip compression to make sure you are not overloading your server.

To enable the gZip compression in Joomla 1.5 you should go to Global Configuration -> Server and set the gZIP Page Compression variable to ON. This will enable the gZip compression on all of your pages. Once you do that, you can check whether the gZip compression is enabled properly and the actual effect you have achieved from it by using one of the gZip checking tools like http://www.gidnetwork.com/tools/gzip-test.php for example.

4. Disable unused extensions

Do you really need all of the extension you have installed in your Joomla application? Haven’t you replaced some of them with different extensions without completely removed the old ones? Well I have few Joomla websites and I was quite surprised the number of disabled modules, plugins and components I have deleted after the final look of each one of them was achieved. Therefore my advice is to check for all of those extensions you have installed and make sure you have removed the obsolete ones and not just disable them.

5. Optimize database

As every MySQL database the Joomla 1.5 tables require to be cleaned and optimized from time to time. All you need to do this is a PhpMyAdmin tool that is a standard addition to every web hosting account nowadays. With it, you can simply select all the tables in your Joomla database and press the Optimize button. For more detailed information on how to do that, please check the Siteground tutorial on How to Optimize MySQL databases – http://kb.siteground.com/article/How_to_optimize_a_MySQL_database.html.

There are many other things that could be done for a Joomla based website to work much faster but those are the basic actions you should take despite the size of your website. I hope that you will apply them to your pages and make the much faster than they used to be!