Saturday, 07 February 2015Written by Alan Foster

Is your Joomla website loading slowly? If yes then you can make changes to the site to make it load faster which will in turn increase conversions and also keep visitors and Google happy.

The internet is an unforgiving place, you only get one chance to make an impression and if you get it wrong it's very difficult to recover from it.

A fast loading website plays an important role in the overall user experience the visitor expects to see when they visit a website.

Many other factors influence user experience and conversions at a website but speed has now become an important factor especially since more people now use mobile devices to visit websites. Google also uses website speed as a ranking signal in its algorithm which can influence a sites position in the search engine listings.

Website Speed Tools

Before you start the following Joomla website speed optimization tasks you need some way of measuring the speed of the site now and after you have made the changes.

There are a number of online tools available which you can use to measure the overall speed of your site plus they can also help you identify specific issues and make improvements to the website.

We have listed some sites below which we have used in the past and found them to be really useful to measure site performance and to help us make improvements.

  1. Google Page Insights
  2. Pingdom Website Speed Test
  3. GTmetrix

Web hosting

Choosing a good, reputable web hosting company for your Joomla website is critical to ensure the website loads as fast as possible. You can make all the changes and optimization tweaks in the world to improve the performance of a website but all your hard work will be wasted if the hosting company does not deliver and there servers are slow and not fine-tuned to provide you with the best possible results.

Consider the following before choosing a web hosting company

  1. What do you need in terms of technical specification in both the short and long term (disk space, bandwidth, email accounts, MYSQL databases, backups, support and so on)
  2. Do you need a shared, VPS or dedicated server. Shared is cheaper but you will be sharing the server resources with hundreds of other websites. VPS gives you a lot more control and flexibility plus it will only have a limited number of VPS's hosted on the same physical server. Dedicated is your own server and only your website will be hosted on it.
  3. Think about the location of the hosting company. The closer to your customers the better. If your customers are based in the UK, then find a hosting company in the UK who have servers located in the UK.
  4. How long has the company been in business for?
  5. Contact the company via email with any questions you may have about the services they offer and for advice about the best solution for your specific website needs.
  6. Download the sample file from the hosting companies website to test the network speed
  7. Visit a reputable forum like Web Hosting Talk and read the reviews posted by people with real experiences of using the services.

Enable G-zip

You can enable G-Zip compression to compress the Joomla pages, CSS, JavaScript files the website is serving to the visitor’s browser.

G-zip compression is a quick and easy way to improve the overall website load time and will make your site load faster as the content will be compressed before it gets served to the visitors web browser. 

To enable G-zip complete the following steps

Note the htaccess code below is for Apache servers only and not for servers running IIS, NGINX or LiteSpeed based servers

You also need to make sure the htaccess file is renamed from htaccess.txt to .htaccess (with a ."dot" in front and no .txt at the end)

  1. Open your FTP software and download the .htaccess file stored in the root of your Joomla website to your computer
  2. Open the .htaccess file using notepad.exe
  3. Add the following code to the top of the .htaccess file

<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>

    4. Save the changes to the .htaccess file

    5. Upload the updated .htaccess file to the root of your Joomla website using your FTP software

Once you have updated the .htaccess file and enabled G-zip you can test it to make sure its working correctly by visiting http://www.whatsmyip.org/http-compression-test/

Now you have enabled G-zip at a server level you can enable G-zip page compression in Joomla.

Complete the following to enable G-zip in Joomla

Log into the administrator area of your website and select the System Menu and Global Configuration Menu. Now select the Server Tab and you will see the option to enable or disable Gzip Page Compression

Enable Joomla cache

The next step you can take is to enable caching in Joomla which can really help with making your website load faster.

What caching basically does is store the output from your website pages in a single file which is then retrieved by the visitors browser each time they visit the website.

This is a much faster way of serving pages to visitors in comparison to serving pages from the MYSQL database which happens when caching is disabled.

Joomla offers two options conservative and progressive to cache the content at your website.

Conservative cache shows all visitors the exact same cached website content.

Progressive caching caches the content for each unique visitor.

You also have to option to enable or disable caching at a module level. If you don't change the content at your website much then conservative caching is a good choice. If your content is very dynamic and changes all the time then go with progressive caching.

To enable caching for Joomla complete the following

From the administrator area of your website select the System Menu, Global Configuration Menu and then the Server Tab

You will now see the option to disable caching or choose from conservative or progressive caching.

You can also change the cache time in minutes. This is the amount of time the cached file is stored on the website.

Example if you set the cache time to 15 then the cached files will refreshed every 15 minutes.

Image Optimization

The number of images and size of the images included in your website can have a serious impact on how fast your site loads.

Each time a website loads it also has to load and render the images in the user’s browser. So if you have 10 or 20 images at between 40KB to 70KB per image then this will have a big effect on your site performance.

It is important to optimize the images you serve to visitors by reducing the size of them and ensuring the images use the correct dimensions (width, height) so they can be rendered as fast as possible.

Using the tools and software noted below can help you reduce the size of the images (JPEG, PNG, GIF) by up to 50% which is a big saving.

  1. RIOT free image optimization software
  2. TinyPNG

Extensions and Modules

Visiting the extensions directory can feel like been a kid in a sweet shop.

So many cool extensions and modules to choose from but careful what you install.

Think about why you need to install the extension or module and what value it will add to your website.

The more extensions or modules you install the more CSS, Java script files will be loaded each time the website is opened by the visitor not to mention the number of MYSQL queries which get generated by the extension or module every time the website is opened.

Also ensure you keep the modules or extensions you have installed up to date as the developer may have made some improvements to the code. We also recommend removing, uninstalling any extensions or modules which you no longer use.

Joomla Template

The template you install and run at your website can effect the overall speed of your site.

Every time the website loads it also loads the template you have installed and assigned to the site.

A template normally includes CSS, JavaScript, images, framework files all of which can generate a lot of HTTP requests for each time the page or website is opened.

We try very hard to optimize all the templates we develop and release at the website to ensure they load as fast as possible to give website visitors the best possible user experience.

JCH Optimize Extension

The JCH Optimize extension was designed to specifically speed up your Joomla website. The plugin basically combines your external JavaScript and CSS files into one file to reduce the number of http requests. The JavaScript and CSS files can also be minified and gzipped to reduce bandwidth even further.

The extension is really easy to use and setup plus you can get some really impressive results from this extension which will improve the overall speed of your website to help you achieve a better ranking position in Google and to deliver a good user experience to your visitors.

CDN - Content delivery network

A CDN or content delivery network is a good solution to ensure the static files (images, JavaScript, CSS) included in your website are delivered as fast as possible to the visitor. A CDN is basically a system of servers located across the world that deliver web content (images, JavaScript, CSS files) to a user based on their geographic location.

For example if your website is hosted in the USA and a visitor from the UK visits the website it will take more time for the images to be transferred over the network to the visitors location. If you use a CDN the files including CSS, images, JavaScript are replicated across lots of POP servers around the world and served to the visitors from the closest geographical location which means files will get transferred to them a lot quicker.

Most of the CDN solutions available from Maxcdn, Amazon Cloud, Incapsula, Cloudflare will also compress the static files delivered to the visitors. Some of the CDN suppliers also offer a free version which you can try out before committing to a paid solution.

It is really easy to setup the CDN at your website. All you need to do is make a small change to the website DNS settings and install the CDN For Joomla extension.

Conclusion

The above tips included in this article will hopefully provide you with a basic getting started guide to help you optimize and improve the overall speed of your website.

We know their are lots of other ways to optimize a website which we have not discussed in this article including browser caching, installing NGINX or LiteSpeed or optimizing Apache and MYSQL on your server.

In the fourth coming weeks we will be writing a blog post covering the more advanced techniques you can use to help you optimize your website.