I use the conservative cache of Joomla

Cache

Cache settings
  • I inhibited the plugin System - Cache
  • I added the plugin System - NoNumber Cache Cleaner to empty the cache

Page compression

I use Joomla compression

.htaccess file

I also indicated in the .htaccess file the compression mode:


<IfModule mod_filter.c>
 # Activer le filtre
SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
AddOutputFilterByType DEFLATE application/x-httpd-eruby
# Certains navigateurs ne peuvent pas avoir GZIP (les vieux)
BrowserMatch ^Mozilla/4 gzip-only-text/html

# Certains navigateurs ne peuvent pas avoir GZIP (les vieux)
BrowserMatch ^Mozilla/4\.0678 no-gzip

# On ne veut pas d'IE
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

# On ne compresse pas les images, elles le sont déjà.
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary

</IfModule>


Plugins

System - ScriptsDown system
System - JS CSS Control system
System - JCH Optimize system
JotCache system

The plugin ScriptsDown allows you to position javascript scripts at the end of the html page, which optimizes their loading.

The plugin JS CSS Control allows you to filter scripts or style sheets not to be used on a given page; Very useful to optimize a load, because Joomla loads all plugins.

The plugin JCH optimize Minifies javascript scripts and style sheets.

The component JotCache allows you to replace the system cache by having more possibility to ignore certain modules or positions

The component Jotcache is no longer compatible with the latest version of Joomla 4.0

Add expires headers

I have updated my .htaccess file to let customers know how long the pages will be kept

.htaccess file


# BEGIN Expire headers
<IfModule mod_expires.c>
 ExpiresActive On
  <FilesMatch "\.(ico|jpg|jpeg|png|gif|js|css|swf)$">
ExpiresDefault "access plus 1 month"
</FilesMatch>
 ExpiresDefault "access plus 7200 seconds"
 ExpiresByType text/css "access plus 1 month"
 ExpiresByType image/x-icon "access plus 1 year"
 ExpiresByType image/png "access plus 1 month"
 ExpiresByType image/gif "access plus 1 month"
 ExpiresByType image/jpeg "access plus 1 month"
 ExpiresByType image/jpg "access plus 1 month"
 ExpiresByType text/javascript "access plus 1 month"
 ExpiresByType application/javascript "access plus 1 month"
 ExpiresByType application/x-javascript "access plus 1 month"
 ExpiresByType application/x-shockwave-flash "access plus 1 year"
 ExpiresByType audio/mpeg "access plus 1 year"
 ExpiresByType text/html "access plus 7200 seconds"
 ExpiresByType application/xhtml+xml "access plus 7200 seconds" 
</IfModule>
# END Expire headers

<IfModule mod_headers.c>

# Remote ETag from headers
Header unset ETag

# Disable ETag for files
FileETag None

</IfModule>

<ifModule mod_headers.c>
    Header set Connection keep-alive
</ifModule>

CDN

I don't use a CDN (it pays)

On the other hand, I replaced the local url for jquery and bootstrap with global url

//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/js/bootstrap.min.js

//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js

Minimize scripts/style sheets

I use google's minifier directly, and I replaced the sheets' url with a script call.
ex:

    #dans le fichier index.php de joomla
    $doc->addStyleSheet('/min/?g=joomlamod');