The test measures a wide range of aspects of the site and then provides the information in a fairly easy to read report (I’d like to see sorting on the tables, hint), it also provides an overview which gives a big picture view of how your site is doing. The overview results before and after optimization are shown below.
|Test||Original Score||Optimized Score|
|First Byte Time||C||B|
|Cache Static Content||F||A|
As you can see the first byte time isn’t great and the static content caching is terrible which surprised me as I’d assumed that would be happening automatically. It turns out though that Joomla relies on Apache (or I suppose IIS if you are into that) to set the cache control headers. Since the Joomla developers can’t know for sure which platform you’ll be deploying on they can’t configure it to set the cache headers.
<grumble>While this is completely true I can’t believe there isn’t a warning somewhere (ok it would be tricky to implement) that tells you that you’re running a site without content caching. Caching is fundamental to good site performance and minimizing bandwitdth usage.</grumble>
The next job was to add static content caching. Since that needs to be done in Apache not Joomla you’ll need to make some changes to your Apache configuration file(s). There are numerous ways you could make these changes and even a couple of different places where the changes could be made. Since there is no way I could cover all the variables I’m got to describe what the changes are and how I made them.
The first thing to do is enable the expires module. I use Webmin to manage Apache so this is as simple as going onto the global configuration section and placing a tick next to the expires module. If you are working at a command prompt you’ll probably want to be in the apache2.conf file where you’ll find mod_expires commented out – comment it “in”. Finally if you are using a hosted Joomla then you can be pretty sure expires is already switched on for you. Phew, now you see what I can’t cover all options.
Next you need to add some directives to tell Apache to add expiry headers to certain types of content. I’m running multiple virtual servers and have access to the virtual server configuration file so the simplest option for me is to place the directives in this file. If you have a hosted Joomla you’ll probably want to place these directives in the .htaccess file in the root of your Joomla install. Add the following lines
These few changes have greatly improved the responsiveness of the website and I’ve already seen an uplift in the number of visitors to the site. Looking at responsiveness is even more important now as Google is taking it into account when ranking sites.