belmo996
Dobro znana faca
- Tu od
- 30 Pro 2012
- Postova
- 247
Optimizacija WordPress stranice
Po krugovima Developera i dan danas kruži glasina kako je WordPress, popularna CMS platforma, jako spora te da se na zahtjevnijim projektima ne može koristiti.Taj mit je vrlo vjerovatno nastao prilikom nedovoljne informisanosti osoba koje koriste WordPress u krajnju ruku i samih Developera.U ovom tekstu ću Vam pokazati da WordPress moze raditi sasvim dobro u nekom normalnom okruženju.
Glavne stvari koje uzrokuju sporo učitavanje stranice su:
- Nedovoljno optimizovan sadržaj (pretežno slike i ostale datoteke)
- Loše izrađena tema (uglavnom piratske teme)
- Velika upotreba bespotrebnih Plugin-a.
Ovo je tzv. Gruba klasifikacija ,a u nastavku ću Vam dati konkretne primjere i riješenja.
1.OPTIMIZUJTE SADRŽAJ KOJI DODAJETE
Na ovome savjetu se neću puno zadržati jer je sve prilično jasno.Jedan od glavnih uzroka spore WordPress stranice jesu ogromne slike, čak i po nekoliko megabajta.Savjetujem Vam da radite optimizaciju slika manuelno tj. u PhotoShopu, bez dodatnih WordPress plugina.Zašto je to tako objasniti ću Vam u nastavku teskta.
2.ODVOJITE STATIČKI SADRŽAJ NA SUBDOMEN
Sigurno ste mogli primjetiti, posebno kod većih stranica, da se neke slike nalaze na subdomeni.U praksi to izgleda ovako:
Kod:
http://static.vasdomen.com/slika1.jpg
Ovo je jako dobra praksa, posebno za one koji imaju dosta statičkog sadržaja.Sigurno se pitate kako ovo uraditi na WordPressu ? Vrlo jednostavno.
Potrebno je da otvorite wp-config.php datoteku i da dodate 2 linije koda:
PHP:
define("WP_CONTENT_URL", "http://static.vasdomen.com" );
define("COOKIE_DOMAIN", "http://www.vasdomen.com");
Prethodno ste trebali kreirati gore navedeni subdomen preko Vašeg Hosting cPanel-a.
3.OBRATITE PAŽNJU NA VAŠE CSS I JS DATOTEKE
Nekada CSS i JS(Javascript) datoteke mogu imati nekoliko hiljada linija koda.Te datoteke, kao takve, mogu znatno usporiti Vašu stranicu zbog obima koda, a i zbog veličine samog fajla.
Šta uraditi ?
Umanjite (Minify) Vaše CSS i JS datoteke.Kada to uradite Vaš cijeli kod unutar jedne datoteke će biti složene u samo par linija koda.Kod kao takav će se znatno brže učitati i servirati krajnjem korisniku.
Kako umanjiti (minify) kod ?
Postoji dosta Plugina u domenu WordPressa koji rade taj posao, ali ćemo mi opet iz opravdanih razloga, koje ću iznijeti kasnije, uraditi to manuelno. Od manuelnih alata ja bih Vam preporučio sljedeći http://refresh-sf.com/yui/ .
4.UPOTREBA PLUGINA
Plugini su jedna jako korisna komponenta WordPressa, koja je uvedena u verziji 1.2, 2007 godine.Mogu slobodno reći da su oni dobrim dijelom zaslužni za današnju popularnost WordPressa.Danas na wordpress.org imate oko 33.000 Plugina za preuzimanje.Plugini mogu dosta olakšati neke stvari, no kao i kod svega i ovdje postoje one loše strane koje se upravo vežu za brzinu WordPress stranice odnosno optimizaciju.
Glavni problem je to što krajnji korisnici misle da Plugin servira samo ono što mi želimo, a ne znaju da se jezgra Plugina sastoji od nekoliko hiljada linija koda, kao i dosta drugih fajlova (CSS fajlovi, JS itd.) koji se naravno moraju učitati.
Glavni savjet je da *KORISTITE PLUGINE SAMO GDJE BAŠ MORATE*.
Mnogo puta sam bio u prilica da, kroz razna admin sučelja, vidim kako korisnici imaju instaliran veliki broj Plugina.Uglavnom se radilo o Pluginima koji rade jako jednostavne stvari,čiji se krajnja funkcija može dobiti samo kroz par linija napisanog koda.Jedan od primjera je WP OpenGraph Plugin .Kako bi izbjegli korištenje ovog Plugina potrebno je dodati samo par linija koda u header.php između <head> tagova.
PHP:
<?php if( is_single() ) : ?>
<meta property='og:title' content='<?php the_title(); ?>' />
<meta property='og:url' content='<?php the_permalink(); ?>' />
<meta property='og:image' content='<?php $image_id = get_post_thumbnail_id(); $image_url = wp_get_attachment_image_src($image_id,'large', true); echo $image_url[0]; ?> ' />
<?php endif; ?>
I eto, dobili smo ono što WP OpenGrah Plugin radi.
5.OPTIMIZACIJA PLUGINA
Kao sto sam u prethodnom poglavlju rekao, mnogi plugini učitavaju dosta svojih stylesheetova i Javascript fajlova na mjestima gdje to uopšte nije potrebno.Uzmimo za primjer Plugin Contact Form 7.Ukoliko imamo kontakt formu samo na jednoj stranici npr. Kontakt , zašto da dozvolimo učitavanje CSS i JS fajlova na indexu i ostalim stranicama ?
Ono što trebamo uraditi jeste da deregistriramo stylesheet odnosno Javascript fajl.
Kako deregistrirati CSS (stylesheet) fajl ?
Prije svege kopirajte cijeli CSS od plugina u CSS od vaše teme(style.css).Zašto ? Poznato je da se brže učitava stranica kada ima 1 veći CSS fajl, nego 20 manjih.Deregistraciju CSS fajla vršimo tako što određeni kod dodamo u functions.php :
PHP:
add_action('wp_print_styles', 'deregsitracija_css, 100');
function deregistracija_css() {
wp_deregister_style('contact-form-7');
}
Deregistracija JS odnosno jQuery fajla se vrši na sličan način, ponovo je potrebno zalijepiti određeni kod u functions.php.Bitno je to da ovdje nećemo lijepiti sav kod u jedan fajl, jer može doći do konflikta.Pošto se Contact Form 7 plugin učitava samo na Kontakt stranici, onemogućiti ćemo mu učitavanje na drugim dijelovima WordPress stranice:
PHP:
add_action('wp_print_scripts', 'deregistracija_js', 100);
function deregistracija_js() {
wp_deregister_script('contact-form-7');
if( is_page('Kontakt') ) {
wp_enqueue_script('contact-form-7');
}
}
Treba napomenuti da contact-form-7 prestavlja handler od istoimenog Plugina.
6.NE TESTIRAJTE PLUGINE NA LIVE STRANICI
Prilikom odabira Plugina potrebno je i tesirati isti kako bi vidjeli da li je to ono što želimo.Sve je to super, no testiranje Plugina na live WordPress stranici i nije baš pametno raditi.Zašto ? Prilikom instalacije Plugina u našoj bazi dolazi do stvaranja novih polja, odnosno ta ista baza se puni.I ako mi tesiramo 10-20 plugina, naša baza će se doslovno prebukirati i doći će pada brzine stranice.Brisanje Pluginaovdje neće biti baš od pomoći.
Kada želite testirati neki Plugin ili više njih radite to na nekoj Test stranici ili lokalno.Na taj način ćete učiniti uslugu vašoj bazi, a i samoj WordPress stranici.
7.AZURIRANJE PLUGINA
Vrlo bitna stvar je da ažurirate Plugine kada izađe odgovarajuća nadogradnja za njih.Ovime nećete postići samo ubrzanje stranice odnosno plugina, već ćete izbjeći i sigurnose propuste koji se mogu često javiti unutar nekog plugina.Kroz ovo poglavlje ću napomenuti to da koristite samo provjerene Plugine sa dobrom ocijenom.Izbjegavajte piratske(nulled) Plugine jer pored što sadrže loše napisan kod, mogu imati i zlonamjerne komponente koje mogu nanijeti štetu vašem WordPress sajtu.
8.OPTIMIZACIJA BAZE
S vremena na vrijeme je potrebno uraditi optimizaciju naše baze.Ona može biti prebukirana iz dosta razloga, jedan od njih je naveden u prethodnom objašnjenju.I ovdje postoji dosta Plugina koji rade taj posao, ali ćemo mi raditi na manuelan način, kojim ćemo sačuvati performanse naše WordPress stranice.Ovo je jako dobra prakse za sve vrste stranice koje koriste MySQL tj. koje ne koriste WordPress platformu.Postupak je vrlo jednostavan, većina posla se radi preko PHPMyAdmin-a.Bilo bi lijepo da prije ovog procesa uradite Backup baze, za svaki slučaj, ukoliko to već niste uradili.
Kako uraditi optimizaciju baze ?
Otvorite PHPMyAdmin preko vašeg cPanela.Sa lijeve strane nalazi se lista baza, pronađite vašu WordPress bazu, te je odvorite (klikom na istu).Kada ste otvorili bazu, biti ćete u prilici da vidite listu tablica unutar vaše baze.Označite sve tablice, zatim iz padajućeg menija With selected/ S odabirom odaberite opciju Optimize table/ Optimiziraj tablicu .Odabirom te opcije iz padajućeg menija, vaša baza će biti za kratko vrijeme optimizovana.Ukoliko sve prođe dobro dobiti ćete poruku da je Vaš SQL upit uspješno izvršen.
9.CACHING PLUGINI
Kroz cijelo upustvo vidjeli ste da i nisam pristalica upotrebe Plugina, bar ne bespotrebnih koji samo mogu usporiti WordPress stranicu.Ali ovdje ću spomenuti neke plugine koji su fantastični tj. koji će nam pomoći da ubrzamo našu WordPress stranicu.Radi se o tzv. Caching Pluginima.
Šta to rade Caching Plugini ?
Caching Plugini od svakog vašeg posta kreiraju statički post (HTML) i kao takve ih prezentuju krajnjem korisniku.Ovo je pogodno zbog toga što se izbjegava veliki broj upita ka samom serveru i naravno postiže se znatno brže učitavanje same WordPress stranice.
Danas postoji dosta Plugina za keširanje sadržaja, kako besplatnih , tako i premium.Ja ću Vam izdvojiti tri vodeća besplatna plugina.Plugini su odlično dokumentovani te sve odgovre na vaša pitanje možete naći na stranici plugina.Ta tri Plugina su:
- W3 Total Cache
- WP Super Cache
- HyperCache
10.ZAVRŠNI DIO
Došli smo do kraja.Sada imate otimizovan WordPress sajt, koji bi trebao raditi dosta brže.Za kraj sam ostavio neka objašnjenja, kratke savjete i slične stvari.
Ako uradite sve kao što sam napisao, ne mora značiti da ćete dobiti znatno ubrzanje stranice.Postoji dosta razloga.Jedan od tih je relativno loš server, tako da je to znak da je Vaš WordPress sajt "pretežak" za trenutni hosting paket, te da je vrijeme da pređete na bolju mašinu.Promijene u vidu ubrzanja se vrlo vjerovatno neće primjetiti na svježim WordPress stranicama jer su one u startu jako lagane i sama baza nije preopterecena.Mada uradite ovog zbog same preventive.
Kada preuziumate odnosno kupujete odredjene teme i plugine, obratite pažnju na samu "čistoću" koda.Ukoliko niste "Na vi" sa kodiranjem, pogledajte dobro rejting i recenzije na određenu temu odnosno Plugin.Kao što sam već rekao, izbjegavajte piratske plugine i teme, jer Vam oni neće donijeti ništa dobrsim što ćete nanijeti štetu vašoj WordPress stranici i serveru, kršite Autorska prava.
Ovim tutorialom želim na neki način dati svoj doprinos razvoju foruma, kao i razbiti neke predrasude koje su vezane za WordPress.Nadam se da sam Vam uspio približiti neke stvari, kao i to da je WordPress odlična CMS Platforma.
Napomena: Želim napomenuti da nemam ništa protiv Plugina koje sam pomenuo u tekstu.Oni su tu da posluže kao primjer i bili su odlični za to.