De kracht van een CMS zoals Joomla is dat het wordt aangedreven door een database, waardoor de hele site en inhoud dynamisch worden. Maar als het op prestaties aankomt, is deze database-infrastructuur de achilleshiel. Het ophalen van de inhoud uit de database bij elke hit is een prestatie knelpunt. Maar er is een uitstekende middenweg, met behulp van de Joomla-cache.
In dit artikel bieden we de ultieme gids voor het gebruik van meerdere vormen van Joomla-cache om uw website een onmiddellijke en uitstekende prestatieverbetering te geven.
Wat is een cache?
Think Wikipedia:
Een cache is een hardware- of softwarecomponent die gegevens opslaat, zodat toekomstige verzoeken om die gegevens sneller kunnen worden afgehandeld; de gegevens die in een cache zijn opgeslagen, kunnen het resultaat zijn van een eerdere berekening of een kopie van elders opgeslagen gegevens. EEN cache geraakt treedt op wanneer de gevraagde gegevens in een cache kunnen worden gevonden, terwijl a cache missen gebeurt wanneer het niet kan. Cachehits worden geleverd door gegevens uit de cache te lezen, wat sneller is dan het opnieuw berekenen van een resultaat of lezen uit een langzamere gegevensopslag; dus hoe meer verzoeken uit de cache kunnen worden bediend, hoe sneller het systeem presteert.
Maar wat betekent dit in termen van Joomla?
Wanneer een bezoeker uw website bezoekt, voert Joomla doorgaans een reeks zoekopdrachten uit op de database om alle informatie, zoals menu's, inhoud, modules en andere dynamische inhoud, op te halen en deze direct weer te geven.
Naarmate de hoeveelheid gegevens in uw database groeit, of uw site steeds meer bezoekers krijgt, beginnen de prestaties van de algehele opzet achteruit te gaan. Zelfs met weinig gebruikers, op shared hosting, kunnen de prestaties traag zijn, ongeacht of uw site veel bezoekers krijgt of niet.
Wanneer de Joomla-cache in gebruik is, slaat uw eerste hit de gegevens op in een set lokale bestanden (in de Joomla-cachemap) in plaats van de MySQL-database steeds opnieuw met dezelfde zoekopdrachten te raken. Volgende treffers halen de inhoud uit deze bestanden, in plaats van uit de database.
Dit komt omdat het lezen van gegevens uit een lokaal bestand vele malen sneller gaat dan het lezen uit een database.
Dit betekent dat de hele website vrijwel direct wordt geladen en veel beter zal presteren. Uw website zal sneller aanvoelen en meer gelijktijdige gebruikers kunnen ondersteunen.
Hier is hoe het hele concept eruit ziet in een afbeelding:
Houd er rekening mee dat dit anders is dan browsercaching - browsercaching wordt aanbevolen door de webserver (maar wordt gedaan door de lokale browser). Aan de andere kant is caching aan de serverzijde het daadwerkelijk in cache plaatsen van de bronnen en HTML die op de webserver zijn gemaakt.
Als u meer wilt lezen over het gebruik van browsercaching, lees dan dit artikel hier.
De ENIGE manier waarop u de prestaties echt kunt verbeteren, is natuurlijk door over te schakelen naar een snellere hostingserver. Kijk even naar onze InMotion hosting VPS bekijk hier.
Cache inschakelen in Joomla
Caching is een functie die is geïmplementeerd in de Joomla core. Daarom is het activeren van de Joomla-kerncache heel eenvoudig.
Van de Global Configuration, Klik op Systeem Tab, en aan de rechterkant is er de Cache-instellingen pagina.
Klik op de vervolgkeuzelijst en selecteer AAN - Conservatief cachen or AAN - Progressieve caching in de Cache-instellingen en voer een redelijk bedrag in minuten in. 60 minuten zou voor de meeste websites het minste moeten zijn.
Conservatief cachen stelt u in staat om te specificeren dat specifieke modules niet in de cache worden opgeslagen (in de instelling van de modules zelf).
Progressieve caching overschrijft deze instelling en slaat alle modules altijd in de cache op. We hebben de neiging om zelf conservatieve caching te gebruiken, zodat we de mogelijkheid behouden om te besluiten een specifieke module niet te cachen.
Over het algemeen raden we aan dat deze tijd langer is, meestal 240 minuten (4 uur) of zelfs meer. U kunt de cache altijd doorspoelen (of resetten) als u deze wilt vernieuwen.
Zodra u op Toepassen drukt, wordt Joomla-caching voor modules en componenten ingeschakeld. Echter deze instelling is niet genoeg, we hebben nog een stap te gaan! We willen paginacaching nog steeds inschakelen.
Om Joomla-paginacaching in te schakelen, gaat u naar: Extensies > Plug-ins, zoek naar Cache en klik op Systeem - Paginacache. U moet ervoor zorgen dat deze plug-in is ingeschakeld. U kunt er ook voor kiezen om browsercaching in te stellen door de Browsercaching gebruiken schakelaar.
U kunt er ook voor kiezen om bepaalde menu-items uit te sluiten van caching, bijvoorbeeld het onderstaande is exclusief het menu Contact opnemen.
Als er pagina's zijn die u wilt uitsluiten van caching, kunt u naar het tabblad Geavanceerd gaan en elke URL specificeren die u wilt uitsluiten van caching. U moet elke URL specificeren die u wilt uitsluiten van caching, op een aparte regel.
Reguliere expressies worden ook ondersteund, bijvoorbeeld about\-[az]+ zal alle URL's uitsluiten die 'about-' hebben, zoals 'about-us', 'about-me', 'about-joomla' etc terwijl /component /users/ sluit alle URL's uit die /component/users/ hebben.
Als je eenmaal hebt ingeschakeld en opgeslagen, zou je een sterk verbeterde laadtijd van webpagina's moeten zien.
Als u een tool voor het testen van de paginasnelheid gebruikt, zoals: https://webpagetest.org/ je zou een groot verschil moeten zien, vooral als je browsercaching ook hebt ingeschakeld.
U zou in het bijzonder een duidelijk verschil moeten opmerken in de tijd tot eerste byte:
Als uw Joomla-host dit ondersteunt, zoals de hosting van CollectiveRay.com - misschien wilt u ook Memcache inschakelen om uw Joomla-website nog sneller te maken!
De Joomla-cache wissen of leegmaken?
Wanneer u de Joomla-cache heeft ingeschakeld, wordt de inhoud aan de voorkant van uw site niet vernieuwd totdat de caching-tijd is verstreken volgens uw instellingen.
Dus wat doe je als je de cache wilt resetten? Dit is een vrij eenvoudige procedure. Ga gewoon naar Systeem > Cache wissenen klik op Alles verwijderen. Hiermee wordt de hele Joomla-cache leeggemaakt en wordt de inhoud nu bijgewerkt met de nieuwe inhoud.
U kunt alleen specifieke delen van de cache wissen door het juiste selectievakje te selecteren en op Verwijderen te klikken.
Alternatieve Joomla Cache-plug-in
Een probleem dat we vinden met de native Joomla-cache is dat je niet één enkele pagina kunt resetten. Voor sites die honderden of zelfs duizenden pagina's hebben, begint het resetten van alle cache elke keer dat u een kleine wijziging uitvoert een knelpunt te worden, vooral als u veel verkeer heeft.
In dit geval raden we aan te kiezen voor een alternatieve Joomla cache-plug-in waarmee je de paginacache op URL- of paginaniveau kunt resetten.
Onze favoriete alternatieve Joomla cache-plug-in is JotCache. Naast geavanceerde caching-instellingen, kunt u ook de cache opwarmen (dwz alle pagina's crawlen zodat ze in de cache worden geplaatst voordat een gebruiker ze bezoekt, de cache van slechts één pagina wissen en specifieke URL's of hele componenten uitsluiten U wilt bijvoorbeeld uw Virtuemart-component uitsluiten van caching, of uw gebruikersmodule/component.
Bekijk hier de geavanceerde instellingen:
En hier is het scherm waarmee u de cache van slechts één pagina kunt resetten of wissen:
Joomla Memcached inschakelen
Een van de fixaties die we in het recente verleden hebben gehad, is een fixatie om onze site waanzinnig snel te laten laden - en toen hoorden we voor het eerst over Joomla Memcache(d).
Als dit wordt ondersteund door de serverinfrastructuur, willen we dit graag inschakelen. Sommige van onze sites die bijvoorbeeld op SiteGround, heb dit ingeschakeld omdat het een mooie snelheidsboost geeft. Overigens houden we wel van de server die is ingesteld op SiteGround. Standaard verschuift uw site van een goedkope shared hosting-service naar SiteGround ziet de laadsite met minstens 2 seconden worden verkort (zonder andere wijzigingen).
Dat betekent dat ze hun servers heel erg mooi hebben opgezet. Maar er is meer om uw site snel te maken. Dit is waar Joomla Memcached in het spel komt.
Naast de standaardinstelling, SiteGround bieden drie niveaus van cache om uw site sneller te maken
- Statische cache - slaat uw statische inhoud op in de cache (vergelijkbaar met wat een CDN zou doen)
- Dynamic Cache - Het maakt kopieën van de dynamische inhoud van uw website en slaat deze op in het server-RAM. Dit vereist hun eigen aangepaste plug-in om goed samen te werken met uw site en de server waarop deze wordt gehost
- De Joomla Memcached-technologie versnelt database-aanroepen, API-aanroepen en paginaweergave door gegevens en objecten in het geheugen op te slaan om het aantal keren dat een database wordt opgevraagd te verminderen. SiteGround is het enige bedrijf dat het memcached-algoritme toepast op een gedeelde serveromgeving.
Het mooie is dat Joomla standaard memcache ondersteunt, maar aangezien dit enige aanpassing vereist, zul je het niet vinden onder de normale cache-instellingen in de algemene configuratie.
Zoals je hieronder kunt zien, zijn de Joomla 3 memcached-instellingen verborgen (je hebt geen memcached-optie hieronder) en moeten ze worden geactiveerd door een kleine aanpassing uit te voeren in het configuration.php-bestand.
Om Memcache in te schakelen, moet je je Configuration.php aanpassen en de volgende twee variabelen aanpassen:
tot:
waarbij xxxxxx een poort is die is opgegeven door uw hostingserver. Controleer de informatie bij uw hostingserver.
Joomla Geheugencache instellingen
Zodra dit is gebeurd, wordt uw Joomla nu opgeslagen in de memcache en zou u opnieuw een verbetering in de laadtijd van uw website moeten zien. Dit is vooral handig voor drukke websites. Zorg ervoor dat u controleert of uw site memcached ondersteunt. Als dit niet het geval is, moet u dit opgeven SiteGround een kijkje ;)
Er zijn tal van andere artikelen over prestaties op deze site, een van de meest populaire is het oplossen van de genoemde fout, het gebruik van browsercaching - we hebben een volledige uitleg over CollectiveRay.
Hoe PHP OpCache voor Joomla in te schakelen
De bovenstaande punten zouden uw site al naar een behoorlijk verbeterde laad- en uitvoeringstijd moeten hebben gebracht. Maar er is nog steeds één ding dat je laadtijd tegenhoudt.
Dit is meestal de tijd die nodig is om de PHP-code zelf uit te voeren. Kijk, PHP is een programmeertaal die regel voor regel wordt uitgevoerd. De server vertaalt doorgaans de PHP-code naar machine-uitvoerbare instructies en voert deze vervolgens uit.
Als het er echter op aankomt de instructies opnieuw uit te voeren, worden ze opnieuw vertaald. Dus elke keer dat hetzelfde stuk code wordt uitgevoerd, moet het opnieuw worden vertaald.
Dit is een prestatieknelpunt dat kan worden opgelost door middel van iets dat OpCode-caching of OpCaching wordt genoemd. Bij gebruik van OpCode-caching wordt een nieuw soort cache gemaakt waarin de eerder vertaalde machinecode wordt opgeslagen, zodat wanneer de regel opnieuw moet worden uitgevoerd, de door de machine uitvoerbare code al beschikbaar is.
Hieronder ziet u een diagram van hoe dit in het echt werkt:
OpCode-caching vereist ondersteuning van uw hostingserver. Als uw site op CPanel en WHM draait, moet u ROOT-toegang tot de WHM krijgen en PHP-FPM of een ander OpCode-cachingpakket inschakelen.
Dit verschilt ook tussen PHP 7.2 en PHP 7.3 - u kunt het beste bij uw hostingbedrijf informeren of dit mogelijk is en hoe u dit moet doen. We gebruiken een InMotion VPS, dus we hebben volledige controle over de service, en onze huidige setup maakt gebruik van PHP-FPM.
Als je wel ROOT-toegang tot WHM hebt, ga dan naar PHP MultiPHP Manager en installeer een pakket met PHP-FPM.
Als je dit eenmaal hebt ingeschakeld, kun je de volgende informatie zien in de PHP-informatie in Joomla. Deze vind je onder Systeem > Systeeminformatie > PHP-informatie
Je kunt de cachehits zien, dit is een indicatie dat PHP OpCodes uit de cache haalt en ze niet elke keer opnieuw aanmaakt.
Alternatieve caching-optie - LiteSpeed Server
Nogmaals, als je een VPS hebt, kun je veel meer controle hebben en betere prestaties uit je server halen.
Een van de geavanceerde technieken die we hebben gebruikt om onze site waanzinnig sneller te maken, is door LiteSpeed-server te gebruiken in plaats van Apache of NGINX. LiteSpeed is een enterprise webserver die een drop-in vervanging is voor Apache.
Dit betekent dat u alle configuratie voor Apache kunt behouden, maar een veel snellere uitvoeringstijd krijgt.
LiteSpeed heeft zowel OpCache als Page caching ingebouwd als een specifieke Joomla-component. Het wordt geleverd met zijn eigen geavanceerde caching-component waarmee u alleen enkele pagina's kunt leegmaken, zodat als u één pagina bijwerkt, u de volledige cache niet ongeldig hoeft te maken.
Er zijn tal van geavanceerde caching-opties die u kunt gebruiken, we hebben deze server gebruikt om een ongelooflijke laadsnelheid van de website te krijgen. De LiteSpeed-server kost $ 10 per maand, maar we vinden dit een uitstekende investering.
Aandachtspunten:
Wanneer u de Joomla-cache inschakelt, merkt u mogelijk dat uw "Hit Counts" niet meer toenemen bij elke hit. Omdat u een kopie van de inhoud voor een bepaalde tijd opslaat, nemen de Hits alleen toe telkens wanneer de cache verloopt. Hoewel dit misschien als een nadeel klinkt, vinden wij dat u hit counts volledig moet negeren, ongeacht of u de Joomla-cache inschakelt of niet. Hit counts zijn om verschillende redenen scheef en onnauwkeurig
1. Ze worden opgeblazen door je eigen hits
2. Ze worden opgeblazen door bots, crawlers en andere "onwerkelijke" of "spook" bezoekers, dit zijn geen echte bezoekers van uw sites. Het zijn slechts scripts die hun robottaken uitvoeren. Als u hieraan denkt als echte mensen die uw berichten lezen, leidt dit tot een onrealistisch scenario
3. Diensten zoals Google Analytics zijn veel nauwkeuriger in het afhandelen van scripts en het maken van een gedetailleerde analyse en profiel van uw websitebezoekers. Het levert je veel meer op als je hiervoor een script als Google Analytics gebruikt. U kunt gebruik maken van onze Joomla Google Analytics-plug-in om dit te doen.
Zoals u overal op onze site kunt zien, hebben we de meeste plekken waar Joomla-hits verschijnen uitgeschakeld, omdat we vinden dat deze nutteloos zijn, letterlijk een verspilling van middelen. Als u wilt weten wie uw site bezoekt, gebruik dan Google Analytics. Als u uw bezoekers wilt imponeren met het aantal paginaweergaven dat u hebt, voeg dan wat sociale knoppen toe. Ze zijn veel waarschijnlijker om veel verkeer te genereren en natuurlijk zijn ze ook daadwerkelijk accuraat.
Joomla 1.5
Het activeren van de Joomla Cache is ook eenvoudig. Van de Global Configuration, Klik op Systeem Tab, en aan de rechterkant is er de Cache-instellingen sectie. Klik op Ja bij Cache-instellingen en voer een redelijk bedrag in minuten in (60 minuten zou voor de meeste websites redelijk goed moeten zijn). Zodra u op Toepassen drukt, wordt caching ingeschakeld.
Joomla 1.0
De standaard Joomla-cache is ingeschakeld via Site > Algemene configuratie > Systeem > Cache-instellingen (of Site > Algemene configuratie > tabblad Cache voor Joomla 1.0), en markeer het als ingeschakeld.
Hoewel er componenten zijn geschreven voor caching, geeft de out-of-the-box caching uw website direct een boost.
Veelgestelde Vragen / FAQ
Wat is een cache?
Een cache is een mechanisme dat een tijdelijke kopie van de inhoud opslaat op lokale snelle opslag (zoals schijf of geheugen), zodat de server de inhoud niet telkens uit de database hoeft op te halen wanneer een bezoeker een website bezoekt. Hierdoor wordt de laadtijd van een site veel sneller.
Hoe schakel ik de Joomla-cache in?
Er zijn verschillende opties om de Joomla-cache in te schakelen. De eenvoudigste methode is om dit in te schakelen via de Joomla-kern, in de Algemene configuratie, onder Systeem in het gedeelte Cache-instellingen. Schakel eenvoudig de cache in op Aan - Conservatieve caching. U moet ook de plug-in Paginacache inschakelen onder Extensies > Plug-ins voor caching op paginaniveau. Je zou dit artikel ook moeten bekijken voor verschillende andere geavanceerde opties voor caching.
Hoe wis ik de Joomla-cache?
Om de Joomla-cache te wissen, gaat u naar Systeem > Cache wissen en klikt u op Alles verwijderen.
Conclusie
Hierboven hebben we de verschillende manieren gezien waarop u Joomla-cache kunt inschakelen, zowel vanuit de kern als met behulp van externe en geavanceerde componenten om uw website sneller te maken. Stuur ons een bericht en laat het ons weten als we iets hebben gemist.
Alstublieft laat een nuttig geef commentaar met je mening, deel dit dan op je Facebook-groep (en) die dit nuttig zouden vinden en laten we samen de vruchten plukken. Bedankt voor het delen en aardig zijn!
Disclosure: Deze pagina kan links bevatten naar externe sites voor producten die we geweldig vinden en die we van harte aanbevelen. Als u producten koopt die we aanbevelen, kunnen we een verwijzingsvergoeding verdienen. Dergelijke vergoedingen hebben geen invloed op onze aanbevelingen en we accepteren geen betalingen voor positieve beoordelingen.