Kako podesiti Joomla keširanje?

Joomla sajt neretko postaje usporen kada sadrži veliki broj članaka, komentara, dodatnih komponenti i modula. Bez obzira da li je vaš sajt news portal ili manji sajt, prva opcija koju treba da razmotrite u cilju poboljšanja performansi je keširanje u okviru Joomle.

Keširanje je tehnika koja se koristi da ubrza učitavanje stranica i smanji opterećenje na serveru. Brzina učitavanja stranica je bitan faktor za korisnički doživljaj, a brze sajtove vole i pretraživači koji indeksiraju vaš sajt. U ovom članku se bavimo opcijama keširanja u trenutno aktuelnim verzijama Joomla-e, i to 2.5 i 3.x…

Kako radi keširanje?

Bez keširanja, pri svakoj poseti stranice sajta, Joomla u pozadini izvršava proces generisanja sadržaja koji uključuje veliki broj upita ka bazi podataka u kombinaciji sa dodatnim procesima u samom jezgru aplikacije. Ako na sajtu postoji veliki broj stavki u bazi podataka, (članaka, komentara…) ili je instaliran veliki broj dodataka, ceo proces generisanja sadržaja može biti veoma usporen.

Sa uključenim keširanjem, generisan sadržaj se čuva u obliku privremenih (keš) fajlova. Tada se umesto ponovnog procesa generisanja, pri poseti nekoj od stranica sajta, korisniku prikazuje keširan fajl, čime je izbegnut veliki broj pozadinskih procesa, a time povećavana brzina učitavanja stranice.

U zavisnosti od lokacije na kojoj se čuvaju keš fajlovi, Joomla podržava klijentsko i serversko keširanje. Kod klijentskog, keš fajlovi se čuvaju na računaru posetioca u okviru brauzera, a kod serverskog, na samom serveru u okviru Joomla aplikacije, odnosno unutar /cache direktorijuma.

Keš fajl se koristi za prikaz u određenom vremenskog intervalu (Cache time), nakon čega se prikaz osvežava, odnosno, generiše se novi keš fajl koji se na dalje koristi za prikaz posetiocu.

Opcije keširanja u Joomla-i

Joomla CMS je fleksibilna aplikacija koja se može koristiti za manje prezentacije ili veće sajtove tipa portala ili direktorijuma. U skladu sa tim, u samom jezgru sistema implementirane su dve glavne opcije keširanja. Jedna od njih nudi mogućnost keširanja na nivou modula i komponenti. Ovaj način keširanja je pogodan za veće sajtove sa čestim izmenama sadržaja tipa portala ili direktorijuma. Druga opcija, koja pored serverskog nudi i mogućnost čuvanja keš fajlova na klijentskoj strani, je keširanje kompletnih stranica, koje se ostvaruje kroz System Cache plugin, a pogodna je za manje sajtove na kojima se sadržaj retko ažurira.

Keširanje na nivou modula i komponenti

Ova opcija omogućava kontrolu keširanja na nivou glavnih delova sistema koji se koriste za prikaz sadržaja na stranicama, odnosno, za module i komponente. Keširanje u komponentama koje su u sastavu Joomla jezgra je implementirano na nivou koda komponente, pa se keš automatski osvežava kada na primer, kroz admin panel pristupimo izmeni sadržaja članka, dok je u okviru podešavanja modula, moguće ručno osvežavanje ( brisanje ) keša u okviru podešvanja modula u sekcji Advanced Options.

U obe verzije Joomle, podešavanja se nalaze u okviru System > Global Configuration > tab System, sekcija Cache Settings.

cache settings

Za tip keširanja (Cache) možemo odabrati jednu od tri opcije:

  • OFF – Caching disabled
    Keširanje je isključeno na nivou svih modula i komponenti.
  • ON – Conservative caching
    Odabirom ove opcije možemo kontrolisati keširanje u okviru svakog modula na sajtu i po potrebi isključiti keširanje određenog modula.
  • ON – Progressive caching
    Progresivno keširanje na serveru generiše veliki broj keš fajlova, s obzirom da stranice kešira posebno za svakog korisnika, pa slučaju da ta funkcionalost nije neophodna, podešavanje ove opcije nikako nije preporučljivo. Ovaj tip keširanja može biti pogodan ako se koristi na sajtovima na kojima se sadržaj jedne stranice prikazuje različito posetiocima, na osnovu lokacije, brauzera koji posetilac koristi ili nekih drugih parametara.

Cache time je vreme u minutima koje označava period važenja keš fajla.

Keširanje kompletnih stranica

System Cache plugin je deo Joomla jezgra i omogućava keširanje kompletnih stranica što u značajnoj meri može da ubrza njihovo učitavanje. Keširanje stranica se izvršava samo za posetioce sajta, odnosno za korisnike koji nisu ulogovani.

Može se omogućiti kroz Extensions > Plug-in manager, a opciono se može uključiti i keširanje na klijentskoj strani (Use Browser Caching).

system cacche

Brisanje keš fajlova

Tokom vremena, istekli keš fajlovi se gomilaju na serveru pa će biti potrebno njihovo uklanjanje. Brisanje keš fajlova je korisno i u slučaju da je odmah nakon izmene sadržaja potrebno prikazati novi sadržaj na sajtu.

U joomla 2.5, opciji brisanja se pristupa kroz Site > Maintenance > Clear Cache, a u verziji 3.x kroz meni System > Clear Cache.

delete cache

Kod uklanjanja keša, postoje dve opcije za razmatranje:

  • Clear Cache
  • Purge Expired Cache

Clear Cache opcija briše sve keš fajlove, dok opcija Purge Expired Cache briše keširane fajlove starije od podešenog perioda važenja keš fajla (Cache Time).

Proces brisanja isteklih keš fajlova može biti potpuno automatizovan postavljanjem kron zadatka na serveru. Naime, Joomla u okviru /cli direktorijuma, sadrži skriptu garbagecron.php koja ovo omogućava.

Kron zadtke (Cron Jobs) možete dodati kroz cPanel, a komanda za izvršavanje pomenute skripte bi trebalo da glasi:

/usr/local/bin/php /home/username/public_html/cli/garbagecron.php

gde je username vaše korisničko ime cPanel naloga.

Neko optimalno vreme za izvršavanje ove komande je do dva puta dnevno bez obzira na odabrane opcije keširanja i veličinu sajta.

Ovako postavljen kron zadatak, izlaz (Output) skripte šalje na email koji podesite za kron ili na glavni email u okviru cPanel naloga. Email će biti poslat samo u slučaju da dođe do greške u toku izvršavanja skripte.

Isprobajte sve opcije keširanja koje nudi Joomla i izaberite ono rešenje koje najviše odgovara. Vaš sajt treba brzo da se učitava, ali da ne gubi na svojoj funkcionalnosti. Tada će posetioci biti zadovoljni i duže će istraživati sadržaje koje ste objavili.

Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Neophodna polja su označena *