
Wat maakt een Joomla-website eigenlijk snel?
Een snelle website is prettig voor je bezoekers en helpt je om beter gevonden te worden in zoekmachines. Je klikt ergens op en de pagina staat er vrijwel meteen.
Geen draaiend icoontje, geen halve pagina die nog moet verschijnen en geen afbeeldingen waardoor alles ineens verspringt.
Maar wat maakt een Joomla-website eigenlijk snel?
Een snelle Joomla-website ontstaat door de combinatie van goede hosting, een snelle PHP- en databaseconfiguratie, efficiënte caching, een lichte template, zo min mogelijk onnodige extensies en geoptimaliseerde afbeeldingen en frontend-code. De hele keten moet goed samenwerken.
Maar vaak hoor ik als eerste antwoord: caching.
Caching helpt inderdaad. Maar een snelle Joomla-website is veel meer dan een website met een goede cache. De snelheid wordt bepaald door een hele keten: de hosting, PHP, de database, Joomla zelf, de gebruikte extensies, het template, afbeeldingen en alles wat de browser uiteindelijk moet downloaden.
Je kunt het vergelijken met een restaurant. Een snelle ober helpt, maar als de keuken traag is, de ingrediënten uit het magazijn moeten komen en er twintig handelingen nodig zijn om één gerecht te maken, wacht de klant nog steeds lang.
Bij een website werkt dat eigenlijk net zo.
Het begint bij de hosting
Iedere Joomla-website draait ergens op een server. Die server vormt de basis. Je kunt een Joomla-site perfect configureren, maar als de onderliggende hosting langzaam of overbelast is, blijft de website traag.
Goede hosting betekent niet automatisch dat je het duurste pakket nodig hebt. Belangrijker is dat de server goed is ingericht voor moderne websites.
Voor Joomla-websites werk ik zelf meestal met een Virtual Private Server (VPS). Daarmee heb ik veel meer controle over de configuratie en performance dan bij traditionele shared hosting. Ik kan bijvoorbeeld zelf de PHP-versie, caching, database-instellingen en webserver optimaliseren voor Joomla.
Op mijn VPS'en gebruik ik hiervoor onder andere snelle webservers zoals Nginx en OpenLiteSpeed. In mijn ervaring leveren die betere performance dan een standaardconfiguratie met Apache die niet specifiek op snelheid is afgestemd. Dat betekent overigens niet dat iedere Joomla-site een VPS nodig heeft. Voor een kleinere website kan goede shared hosting prima zijn.
Denk bijvoorbeeld aan een recente PHP-versie, voldoende geheugen, snelle opslag en een goed ingestelde databaseserver. PHP is de programmeertaal waarin Joomla grotendeels is geschreven. Bij vrijwel iedere pagina die een bezoeker opvraagt, moet PHP aan het werk. Hoe efficiënter dat gebeurt, hoe sneller Joomla een pagina kan produceren.
De database moet ook meewerken
Een Joomla-website bewaart veel informatie in een database. Artikelen, menu-items, gebruikers, tags, instellingen en gegevens van extensies worden daar opgeslagen. Wanneer iemand een pagina bezoekt, vraagt Joomla een deel van die informatie op.
Een paar databasevragen zijn geen probleem. Maar sommige extensies of modules voeren veel databasequeries uit, waarvan sommige ook nog eens relatief zwaar kunnen zijn. Dat kan ongemerkt veel tijd kosten.
Daarom is het belangrijk om niet alleen naar Joomla zelf te kijken, maar ook naar wat extensies achter de schermen doen. Een extensie die fantastische functionaliteit toevoegt maar iedere pagina merkbaar vertraagt, heeft uiteindelijk ook invloed op de bezoekerservaring.
Dan komt caching
Caching zorgt ervoor dat Joomla niet telkens hetzelfde werk opnieuw hoeft te doen.
Stel dat honderd bezoekers dezelfde pagina bekijken. Zonder caching kan Joomla honderd keer PHP-code uitvoeren, informatie uit de database verzamelen en daar een complete HTML-pagina van maken. Met caching kan een eerder opgebouwd resultaat tijdelijk worden bewaard. De volgende bezoeker krijgt dan sneller het reeds beschikbare resultaat. Dat kan een enorm verschil maken.
Joomla heeft zelf verschillende mogelijkheden voor caching en ook de webserver of een tussenliggende dienst kan pagina's tijdelijk opslaan.
Maar caching is geen wondermiddel. Als een pagina zonder cache vijf seconden nodig heeft om te worden opgebouwd, wil ik ook weten waarom die pagina vijf seconden nodig heeft. Caching over een onderliggend probleem heen zetten maakt het probleem minder zichtbaar, maar lost de oorzaak niet op.
Je Joomla template speelt een grote rol
Wanneer Joomla klaar is met het verzamelen van informatie, moet de browser er nog een website van maken.
Daar komt het template om de hoek kijken. Een template bepaalt niet alleen hoe een website eruitziet. Het bepaalt vaak ook hoeveel CSS, JavaScript, lettertypen en andere bestanden worden geladen.
Een mooi template kan daardoor behoorlijk zwaar worden. Dat hoeft geen probleem te zijn, zolang de benodigde bestanden efficiënt worden geladen. Maar soms worden scripts en stylesheets op iedere pagina geladen terwijl ze daar helemaal niet nodig zijn. Een slideshow-script hoeft bijvoorbeeld niet te worden geladen op een pagina zonder slideshow. Alles wat de browser niet hoeft te downloaden en verwerken, scheelt tijd.
Zelf bouw ik veel Joomla-websites met YOOtheme Pro. Een belangrijke reden daarvoor is performance. Het template/framework kan een snelle frontend opleveren en veel functionaliteit zit al in het systeem zelf.
Daardoor heb ik voor allerlei onderdelen minder losse Joomla-extensies nodig. Dat maakt een website niet automatisch sneller, maar minder extensies betekent meestal ook minder code, minder onderhoud en minder plekken waar performanceproblemen kunnen ontstaan.
Extensies zijn handig, maar niet gratis
Een van de sterke punten van Joomla is het grote aanbod aan extensies. Met een paar klikken voeg je formulieren, webshops, agenda's, sliders en allerlei andere functionaliteit toe.
Maar iedere extensie voegt ook code toe. Sommige plugins worden bij vrijwel iedere pagina uitgevoerd, ook als hun functionaliteit op die pagina helemaal niet nodig is. Als je door de jaren heen steeds nieuwe extensies installeert zonder oude op te ruimen, kan een website ongemerkt steeds zwaarder worden.
Daarom stel ik bij performanceproblemen altijd een simpele vraag:
Gebruiken we dit eigenlijk nog?
Een ongebruikte module uitschakelen of een overbodige plugin verwijderen kan soms meer opleveren dan allerlei ingewikkelde optimalisaties.
"Stick to the core"
Ook bij het bouwen van een nieuwe Joomla-website probeer ik het aantal extensies beperkt te houden. Mijn motto daarbij is "stick to the core": gebruik eerst wat Joomla standaard al biedt voordat je een extra extensie installeert. Zo maak ik veel gebruik van de standaard Custom Fields van Joomla. Daarmee kun je verrassend veel functionaliteit bouwen zonder voor ieder onderdeel een aparte extensie te installeren. In combinatie met YOOtheme Pro kan ik deze velden direct gebruiken in dynamische layouts en pagina's.
Heb ik toch specifieke functionaliteit nodig die Joomla niet standaard biedt? Dan programmeer ik liever een kleine maatwerkplugin die precies doet wat nodig is. Geen uitgebreide extensie met tientallen functies die ik niet gebruik en geen zware libraries als die niet nodig zijn.
Zo houd ik een Joomla-website niet alleen snel, maar ook overzichtelijk en onderhoudbaar. Want bij performance geldt vaak: hoe minder onnodige code, hoe beter.
Afbeeldingen zijn vaak de grootste boosdoener
Tot nu toe hebben we vooral gekeken naar wat er op de server gebeurt. Maar bij veel websites zit het grootste deel van de pagina niet in Joomla of PHP.
Het zit in de afbeeldingen.
Een foto rechtstreeks vanaf een moderne telefoon kan meerdere megabytes groot zijn. Als zo'n foto op de website uiteindelijk maar 600 pixels breed wordt weergegeven, laat je bezoekers veel meer downloaden dan nodig is. Vooral op een mobiele telefoon is dat zonde.
Een goede afbeelding heeft daarom de juiste afmetingen en wordt opgeslagen in een efficiënt formaat, bijvoorbeeld WebP of AVIF.
Daarnaast hoeven afbeeldingen die pas veel verder naar beneden op een pagina staan niet meteen te worden geladen. De browser kan daarmee wachten totdat de bezoeker in de buurt komt. Dat heet lazy loading.
Eén goed geoptimaliseerde grote afbeelding kan soms meer snelheidswinst opleveren dan uren sleutelen aan de server.
Ook de browser moet hard werken
Als de server de pagina heeft verstuurd, is het werk nog niet klaar. De browser van de bezoeker moet HTML lezen, stylesheets verwerken, JavaScript uitvoeren, lettertypen downloaden en afbeeldingen weergeven. Daarom kan een website met een razendsnelle server tóch langzaam aanvoelen.
Denk bijvoorbeeld aan:
- grote JavaScript-bestanden;
- veel externe lettertypen;
- scripts van advertentie- of marketingdiensten;
- video's die direct worden geladen;
- externe widgets;
- trackingsoftware;
- grote afbeeldingen.
Al deze onderdelen concurreren om aandacht van de browser.
Vooral op een oudere telefoon of een minder snelle internetverbinding merk je dat.
En dan is er nog HTTP caching
Niet alles hoeft bij ieder bezoek opnieuw van de server te komen.
Bestanden zoals een logo, stylesheet of JavaScript-bestand veranderen meestal niet iedere minuut. De browser kan zulke bestanden daarom tijdelijk bewaren. Bij een volgende pagina hoeft het bestand niet opnieuw te worden gedownload.
Ook een webserver, CDN of reverse proxy kan complete bestanden of pagina's tijdelijk dichter bij de bezoeker bewaren. Dat is vooral interessant wanneer een website bezoekers uit verschillende landen heeft.
De snelste aanvraag is tenslotte vaak de aanvraag die de oorspronkelijke Joomla-server helemaal niet hoeft te verwerken.
Een snelle website is dus een optelsom
Er bestaat geen knop waarmee iedere Joomla-website ineens snel wordt. Het is een optelsom.
Goede hosting zorgt voor een stevige basis. Een recente PHP-versie voert Joomla efficiënt uit. Een goed ingestelde database levert snel de benodigde informatie. Joomla caching voorkomt dubbel werk. Een degelijk template houdt de frontend overzichtelijk. Extensies moeten alleen doen wat werkelijk nodig is. Afbeeldingen moeten niet groter zijn dan noodzakelijk. En browser- en HTTP-caching voorkomen onnodig downloaden.
Het interessante is dat je meestal niet alles tegelijk hoeft aan te pakken. De kunst is om eerst te ontdekken waar de vertraging daadwerkelijk zit.
Want als een afbeelding van vier megabyte het probleem is, heeft het weinig zin om urenlang de database te optimaliseren. En als een extensie honderden databasevragen uitvoert, gaat het verkleinen van het logo weinig verschil maken.
Eerst meten, daarna verbeteren
Als ik een trage Joomla-website onderzoek, begin ik daarom niet meteen met het installeren van een cachingplugin of het aanpassen van allerlei instellingen. Ik begin met meten.
Eerst wil ik weten waar de vertraging ontstaat. Reageert de server langzaam? Kost het Joomla veel tijd om de pagina op te bouwen? Zijn er veel databasequeries? Worden er enorme afbeeldingen geladen? Of is de pagina snel gegenereerd, maar moet de browser daarna nog een berg JavaScript verwerken?
In de praktijk kom ik bijvoorbeeld Joomla-websites tegen waarbij caching als eerste oplossing wordt voorgesteld, terwijl uiteindelijk één zware extensie of een paar veel te grote afbeeldingen de echte oorzaak blijken te zijn. Je kunt de caching dan nog verder optimaliseren, maar daarmee pak je het daadwerkelijke probleem niet aan.
Pas als ik weet waar de vertraging zit, ga ik optimaliseren. Daarna meet ik opnieuw om te controleren of de wijziging daadwerkelijk verschil heeft gemaakt.
Dat is uiteindelijk misschien wel het belangrijkste geheim van een snelle Joomla-website:
niet zoveel mogelijk optimaliseren, maar de juiste dingen optimaliseren.
Caching hoort daar absoluut bij. Maar echte snelheid ontstaat pas wanneer Joomla, PHP, de database, hosting én de frontend goed samenwerken. Daarom kijk ik bij het optimaliseren van een Joomla-website altijd naar de hele keten, en niet alleen naar één instelling of techniek.

Peter is Joomla specialist en Linux admin voor snelle, veilige en schaalbare websites.









