Veel mensen die beginnen met Joomla hebben de neiging om allerlei extensies te installeren, als een kind in de snoepwinkel. Vooral het installeren van veel front-end extensies als galleries, social media feeds, video plugins, enzovoorts kan ten koste gaan van je performance. Vooral extensies die verbinding maken met externe netwerken (Facebook, Twitter, Picasa, Flickr, Google webfonts, enzovoorts) werken vaak vertragend.

Elke extensie die je installeert kost altijd wat resources. Goed geprogrammeerde extensies zullen dat efficiënt doen, maar andere mogelijk minder. Let daar dus op. Als je meerdere front-end extensies nodig hebt kun je beter bij 1 goede aanbieder als NoNumber gaan zoeken dan ze overal vandaan shoppen. Maar ook dan: bedenk goed of je die extensie echt nodig hebt. Als je zrtikelen verkoopt zul je natuurlijk nooit zonder een webshop extensie kunnen, maar voor een slider op de homepage kun je je afvragen of die alleen nodig is omdat jij of je klant hem zo mooi vindt, of dat bezoekers die echt zullen waarderen. 

Daarnaast kun je kijken of een module die veel resources vraagt ook altijd overal getoond moet worden. De homepage is meestal de eerste indruk van je site, en als je die snel kunt laten laden hebben mensen er mogelijk wat minder moeite mee als een volgende pagina dat net iets trager doet. Zo zou je bv een chatmodule alleen kunnen tonen op de contactpagina, en op de homepage alleen een simpel linkje daar naar toe.

Vermijd sliders en carroussels

Sliders en carroussels zijn beruchte opvreters van resources en performance. Ze zien er vaak supermooi uit, maar ze hebben altijd meerdere, vrij grote plaatjes nodig, plus het benodigde javascript om de boel aan te sturen. Gebruikers blijken ze echter meestal volkomen te negeren, die komen niet voor je mooie foto's, die willen informatie. Soms blijkt maar minder dan 1% van de bezoekers ooit op een slider-link te klikken. Dit wordt mooi gedemonstreerd op de website www.shouldiuseacarousel.com.

Verwijder MooTools / Jquery

Joomla laadt standaard vrij veel Javascript bestanden. Nog steeds worden zowel Jquery als MooTools geladen, al wordt die laatste hopelijk binnenkort uitgefaseerd. Voor beperkte zaken als front-end editing is MooTools nu nog nodig, maar als je geen front-end users hebt kun je zelf besluiten dat te verwijderen. Dat kan eenvoudig met Mootools Enabler/Disabler. Je kunt er zelfs mee instellen dat het alsnog geladen wordt als iemand aan de front-end een artikel laadt.

Daarnaast wordt Jquery standaard geladen. Voor Bootstrap templates heb je dit nodig, maar als je zelf hele kale templates kunt bouwen heb je zelfs dit misschien niet nodig...

Joomla template

Er zit ook veel verschil in Joomla templates. Sommige providers laden tientallen CSS en Javascript bestanden, terwijl anderen daar veel efficiënter mee omgaan. Ook bieden goede aanbieders binnen de template vaak opties om performance te verhogen, zoals compressie van de template-bestanden, niet-laden van Bootstrap, enzovoorts. Op het blog vind je een complete vergelijking van de performance van de bekendste tempate aanbieders.

Social media share buttons

De meeste sites hebben tegenwoordig wel een optie om hun artikelen op social media te sharen, met de bekende share-buttons. Deze kleine buttons kosten je vaak meer performance dan je denkt. Ze laden namelijk stuk-voor-stuk een stukje Javascript, en leggen daarnaast naar elk kanaal een connectie om de tellertjes met de laatste staus te updaten. Vooral die externe connecties werken vaak erg vertragend. Als je afziet van de tellertjes kun je nog steeds prima functionerende knoppen gebruiken. Daar zijn mooie extensies voor, maar je kunt ze ook eenvoudig zelf maken. Met dit voorbeeld kun je een Google+ knop maken:

<a onclick="javascript:window.open(this.href,'', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600');return false;" href="https://plus.google.com/share?url=http://joomlaseo.com/Performance/limit-joomla-extensions">Google+</a>

Op deze manier kun je al je content sharen, zonder externe connecties. Voor Facebook en Twitter bestaan deze opties ook. De URL van de huidige pagina kun je eventueel dynamisch laden op basis van een klein stukje PHP. Daarnaast kun je bijvoorbeeld de plugin Fast Social Share gebruiken. Die laadt de externe connecties pas als je met de muis over de knoppen gaat, en dan is de pagina al geladen.