Search Engine Optimization & Performance tuning for your Joomla website

Optimize CSS and Javascript

Want to support this site? Buy my E-book: Joomla 3.5 SEO & Performance!

Especially large and complicated Joomla templates can use many external CSS and Javascript files. Loading all these external resources takes time, especially if they are loaded as separate HTTP-requests. Minimizing these requests can be a huge timesaver for your website speed.

Compress resources

Next to that, also the size of the individual files is important. Minimizing these files can be very usefull. Of course you can minimize the individual files with tools like, but it makes the files much less readable.

Defer Javascript

This is a a technique that is especially usefull for pages that are heavy with Javascript, but also smaller pages can benefit. Deferring means that "he script is executed when the page has finished parsing" (see w3schools), meaning that loading of the page is not held untill the script is executed. It is used for external javascript, not in-line. Technically, it means that the "defer" attribute is added to the script:

<script src="" defer></script>

This is a very usefull technique, can save a lot of loading-time. The downside is that it sometimes breaks functionality, as some functions require immediate execution of the script to function well. Make sure you test!

Load resources asynchronously

Whenever possible, try to load resources asynchronously, so that they do not block further loading of the site. One example could be to load your Google Analytics asynchronously, they offer a snippet for that on their pages that you can use to replace the standard script.

JCH Optimize

A perfect example of an extension for this purpose is JCH-Optimize. It is a free extension, and I fully advise it to speed up your sites. It both combines all CSS and Javascript files into one and compresses them.

It can also defer Javascript, meaning the Javascript is only executed once the page has finished loaded. Whether the site still fully works as desired needs to be tested, but usually it does.