Observatorul de Bacău este un săptămânal pe hârtie și cotidian online cu știri și informații din județul Bacău.
Odată cu mutarea la Simplenet am făcut optimizarea site-ului pentru îmbunătățirea performanței. Timpul de încărcare al site-ului înainte de mutare era de 6,37 secunde. Prima pagina avea 66 de elemente cu o dimensiune totală de 1105.9 KB.
Problema principală nu era însă dimensiunea paginii, performanțele slabe ale site-ului fiind date de lipsa de optimizare a bazei de date.
Optimizarea bazei de date
Deși e firesc ca un ziar online să aibă o bază de date masivă datorită volumului mare de conținut publicat de-a lungul anilor, am găsit la Observatorul de Bacău o bază de date extrem de mare, de 1.2 GB.
Ca să vă faceți o idee, un export al bazei de date a produs un fișier cu peste 200 milioane de linii.
În baza de date au rămas tabele create de pluginuri vechi, folosite o perioadă și apoi dezinstalate. Am descoperit și un spațiu destul de mare ocupat de indecși, diverse tabele având indecși duplicați.
Ca exemplu, tabela wp_posts avea ~150 MB de date și ~450 MB de indecși, deci de 3 ori mai mult spațiu ocupat de indecși decât de datele propriu-zise.
Am curățat baza de date ștergând indecșii duplicați și eliminând tabelele și datele vechi și nefolositoare. Am făcut apoi o reparare și optimizare. Astfel am reușit să reducem la mai puțin de jumătate dimensiunea bazei de date, ~510MB.
Curățarea fișierelor
Spațiu ocupat pe server era de peste 13 GB. Existau 6 instalări WordPress în diverse foldere și subfoldere, vechi, neactualizate și care nu mai erau folosite.
Acele instalări de WordPress cu toate temele și pluginurile vechi și neactualizate reprezintă potențiale probleme de securitate.
Totodată, am găsit error_logs de dimensiuni foarte mari, de peste 1 GB, cu erori datând din 2008.
După ce am efectuat un backup al întregului cont de găzduire am început să eliminăm tot ce era în plus.
Optimizarea imaginilor
Un alt aspect care afecta performanța site-ului era dată de pozele neoptimizate pentru web.
Aceasta e o problemă obișnuită a ziarelor online. Există mai mulți autori ce publică articole pe site și care, de multe ori, urcă pozele direct la rezoluția făcută de aparatul foto.
Am găsit în galeria WordPress poze la rezoluții foarte mari, chiar și de 12 megapixeli. Acestea ocupau foarte mult spațiu pe disk și afectau viteza de încărcare a paginilor în care acestea erau afișate.
Am identificat aceste poze foarte mari și le-am făcut resize la 1024*1024px, o rezoluție normală pentru vizualizarea pozelor online. După care le-am optimizat pentru a mai scade numărul de KB ocupați pe disk.
Am reușit prin acesta să reducem spațiul ocupat pe disk de la 13 GB până la sub 4 GB.
Optimizare pluginuri
Ziarul avea 22 de pluginuri active, unele dinte ele nerecomandate, cum ar fi WP Postviews care face scrieri destul de ineficiente în baza de date la fiecare afișare a unei pagini.
Am înlocuit pluginurile neperformante cu variante mai bune, am eliminat pluginurile redundante și am scăzut numărul de pluginuri la 16.
Am mai adăugat o combinație de pluginuri care fac page cache (fără să consume multe resurse ale serverului) și database cache.
Pe site există un număr mare de imagini afișate. Am implementat o soluție de încărcare întârziată a imaginilor (Lazy Load) pentru a obține o viteză mai mare. Imaginile din partea de jos a site-ului se încarcă doar atunci când vizitatorii fac scroll.
Am actualizat atât WordPress cât și toate pluginurile la ultimele versiuni. Acest lucru îl recomandăm tuturor proprietarilor de site-uri, de altfel.
Concluzie
Observatorul de Bacău este găzduit acum pe un pachet de găzduire web ssd. După optimizarea făcută, viteza medie de încărcare a site-ului este de 2,65 secunde, cu o îmbunătățire de 60% față de hostingul anterior.
S-ar putea și mai bine. Însă există anumite lucruri externe care afectează negativ viteza de încărcare: widgeturile cu vremea și cursul valutar care preiau date de pe alte servere.
Pentru o viteză mai mare recomandăm o găzduire cloud, schimbarea temei WordPress cu una mai lightweight și, evident, rezolvarea widgeturilor respective.
Lasă un răspuns