Trikovi za ubrzavanje WordPress veb-sajta (2. deo)
U prošlom tekstu smo vam predstavili neke trikove za ubrzavanje WordPress veb-sajta bez upotrebe plugin-a. To je bio 1. deo jednog većeg teksta u kojem vam dajemo neke korisne trikove uz pomoć koji ćete ručno ubrzati vaš WordPress veb-sajt. Ukoliko već niste, pročitajte taj deo pre nego pređete na ovaj tekst. Ako ste već pročitali prvi deo, onda je vreme da nastavimo dalje. Evo koji su to dodatni trikovi kako da ubrzate veb-sajt.
Odložite parsiranje JavaScript koda
Verujemo da ste čitajući naše tekstove bar jednom testirali brzinu vašeg veb-sajta (na Gtmetrix-u ili Pingdom Tools-u). Ako je tako, onda ste verovatno u nekom od tih rezultata videli i poruku DEFER PARSING OF JAVASCRIPT. Iako se mnogi na pomen JavaScript-a odmah uspaniče, uveravamo vas da nema razloga za to. Da bismo malo prbiližili o čemu se tu radi, pojasnićemo prvo šta je to parsiranje koda i kakve to veze ima sa JavaScript-om.
Dakle, kada neko poseti vašu veb-sajt, veb-server na kojem se nalazi vaš sajt isporučuje pretraživaču posetioca ceo HTML sadržaj vašeg veb sajta/stranice .
Pretraživač posetioca tada počinje da prolazi kroz kod odozgo na dole, kako bi kreirao sadržaj sajta u skladu sa pročitanim kodom. Taj postupak nazivamo parsiranje. Ako prilikom tog prelaska preko stranice naiđe na bilo koji JavaScript kod, prestaće da prikazuje ostatak stranice dok ne preuzme i analizira JavaScript kod na koji je naišao.
To će uraditi za svaki kod na koji nađe, što može negativno uticati na vreme učitavanja vašeg veb-sajta, jer će pretraživač čekati dok se ovaj proces ne završi. U toj situaciji posetilac vašeg veb-sajta će morati da sačeka koju sekundu duže da pretraživač završi učitavanje. Što je još gore, ukoliko se iz bilo kog razloga desi da njegov pretraživač ne može da učita JavaScript kod, neće uspeti da učita ni celu veb-stranicu.
Drugim rečima, korisnik će u tom slučaju gotovo sigurno zatvoriti vašu stranicu i neće se više vraćati na nju. A svi znamo da je to scenario koji niko ne želi na svom sajtu.
Zato je uvek dobra preporuka da JavaScript kod bude smešten na kraj stranice, ili da jednostavno bude odloženo njegovo parsiranje.
U tom slučaju će pretraživač odmah prilikom preuzimanja sadržaja vaše stranice dobiti komandu da sačeka sa parsiranjem JavaScript koda dok se ne učita sav ostali sadržaj. Na taj način će posetiocu biti isporučen sav glavni sadržaj vaše veb-stranice, pa neće imati osećaj da je čekao da se stranica dugo učitava, jer se pretraživač nije zadržavao na parsiranju JavaScript koda.
Kada je učitao sav glavni sadržaj, pretraživač će onda na kraju parsirati i JavaScript kod.
Da biste ovo podesili potrebno je da u functions.php fajl (Dashboard→Appearance→Theme Editor), na dno fajla dodate sledeći kod:
function defer_parsing_of_js ( $url ) {
if ( FALSE === strpos( $url, '.js' ) ) return $url;
if ( strpos( $url, 'jquery.js' ) ) return $url;
return "$url' defer ";
}
add_filter( 'clean_url', 'defer_parsing_of_js', 11, 1 );
Na kraju sačuvajte izmene da bi izmena imala efekta.
Uklonite query stringove
Iako na prvi pogled ovo deluje kao veći izazov od prethodne tačke, verujte da nije u pitanju ništa komplikovano. Ali da pojasnimo pre svega sam pojam query stringova:
Query stringovi su URL-ovi koji sadrže znakove “?” ili „&“.
Na primer query string može da izgleda ovako: vasvebsajt.rs/script.js?ver=1.6
Ovo isto važi i za JavaScript ili CSS fajlove na vašem veb-sajtu, koje obično imaju verziju fajla na kraju svojih URL adresa.
Ali da prvo pojasnimo čemu uopšte služe query stringovi.
U principu oni se koriste za označavanje verzije datoteke što u krajnjoj instanci pomaže u razlikovanju fajlova. Sa jedne strane to ih čini korisnim, dok sa druge strane kako smo videli, oni mogu da izazovu probleme sa keširanjem statičkih sadržaja.
Zato je dobra praksa, a i naš savet, da ih uklonite iz statičkih sadržaja. Kao i kod parsiranja JS koda i ovde predlažemo da to učinite dodavanjem nekoliko linija koda u vaš functions.php fajl:
function remove_css_js_ver( $src ) {
if( strpos( $src, '?ver=' ) )
$src = remove_query_arg( 'ver', $src );
return $src;
}
add_filter( 'style_loader_src', 'remove_css_js_ver', 10, 2 );
add_filter( 'script_loader_src', 'remove_css_js_ver', 10, 2 );
Ne zaboravite da na kraju obavezno sačuvate izmene, kako bi one bile primenjene.
Onemogućite hotlinkovanje slika (Image Hotlinking)
Recimo da imate zanimljiv veb-sajt koji sadrži i dosta zanimljivih slika. Ako te slike pritom na bilo koji način unikatne (recimo neko vaše dizajnersko, fotografsko ili drugo umetničko delo), onda je velika verovatnoća da će u nekom trenutku biti hotlinkovane.
Šta je to zapravo hotlinkovanje (hotlinking)?
Ovaj pojam predstavlja povezivanje i ugrađivanje slike sa targetirane veb-stranice na veb-stranicu onoga ko želi da tu sliku (obično neovlašćeno) preuzme. Drugim rečima, vaše umetničko delo na ovaj način postaje sastavni deo veb-stranice onoga koje je hotlinkovao, a da se pritom i dalje nalazi na vašem veb-sajtu i veb-serveru. Kada neko pristupi sajtu onoga ko je hotlinkovao tu sliku, onda će biti preuzeta sa vašeg veb servera, a ne sa servera onoga ko je hotlinkovao.
Već slutite da vam na ovaj način može biti učinjena dvostruka šteta. Pre svega, neko će neovlašćeno preuzeti vašu sliku, što se tehnički ne može smatrati nelegalnim kopiranjem jer se slika i dalje nalazi na vašem sajtu, a drugo – vaš veb-server će dodatno biti opeterećen i koristiće svoje resurse da bi obezbedio sadržaj za veb-sajt onoga ko je hotlinkovao vašu sliku.
Postoji nekoliko načina kako se možete boriti protiv ove pojave, ali to nije predmet ovog teksta pa ih ovde nećemo ni pominjati. Nas pre svega zanima na koji način da sprečimo krađu resursa veb-servera, jer to može negativno da utiče i na brzinu našeg veb-sajta. Dakle, kako da ubrzate veb-sajt?
Odgovor je jednostavan – onemogućićemo hotlinkovanje slika. Objasnićemo kako da to uradite na dva načina, a vi odaberite koji vam više odgovara.
Prvi način je da se ulogujete na vaš cPanel, pronađete sekciju pod nazivom SECURITY i zatim pokrenete aplikaciju HOTLINK PROTECTION. Otvoriće vam se jednostava prozor u kojem ćete odabrati URL-ove kojima ćete dozvoliti pristup, definisati ektenzije fajjlova kojima ćete blokirati direktan pristup i zatim kliknuti na dugme DISABLE. Alternativno možete odabrati URL na koji će pokušaj hotlinkovanja biti preusmeren (recimo želite da stavite neku sliku upozorenja za onoga koji to pokušava).
Drugi način je da ti uradimo tako što ćemo dodati nekoliko linija sledećeg koda u naš .htaccess fajl:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)vasvebsajt.rs/.*$ [NC]
RewriteRule \.(gif|jpg|jpeg|bmp|zip|rar|mp3|flv|swf|xml|php|png|css|pdf)$ - [
Obratite samo pažnju da u 3. liniji koda morate uneti naziv vašeg domena umesto našeg primera vasvebsajt.rs. 4. linija ovog koda definiše za koje će sve fajlove biti onemogućeno hotlinkovanje, pa ukoliko nemate neke od njih, jednostavno ih uklonite iz 4. linije.
Alternativno, i ovde možete postaviti link ka nekoj URL na vašem veb-sajtu sa slikom upozorenja:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.) vasvebsajt.rs /.*$ [NC]
RewriteRule \.(gif|jpg)$ http://www.vasvebsajt.rs/slikaupozorenja.jpg [R,L]
Na ovaj način ćete sprečiti da se bilo ko hotlinkuje slike sa vašeg veb-sajta i preventivno ćete sprečiti da vaš server bude dodatno opeterećen i samim tim uspori rad vašeg veb-sajta.
U ovom tekstu smo objasnili kako da ubrzate veb-sajt.
U sledećem tekstu ćemo vam predstaviti još neke korisne trikove za ubrzavanje vašeg WordPress sajta bez upotrebe plugin-a.
Nenad Mihajlović