Klijent ti javlja "sajt traje za učitati", PageSpeed Insights pokazuje 30/100, ili sam vidiš da otvaranje stranice traje 5 sekundi. Prvi instinkt: kupiti veći hosting paket. Ali u 80% slučajeva problem nije hosting — već specifične stvari na samom sajtu koje možeš popraviti besplatno u par sati. Ovaj post je dijagnostički flow kroz 10 koraka koje treba proći prije nego potrošiš novac.
Korak 1 (5 min): Izmjeri stvarno stanje
Subjektivni "spor je" nije dovoljno — treba ti broj. Pokreni:
- PageSpeed Insights (Google) — Core Web Vitals + mobile/desktop scores
- GTmetrix — detaljan waterfall, server response time
- WebPageTest — multi-location testing, video record-anje učitavanja
Zabilježi:
- TTFB (Time to First Byte): < 200ms je dobar, > 600ms je spor
- FCP (First Contentful Paint): < 1.8s
- LCP (Largest Contentful Paint): < 2.5s
- CLS (Cumulative Layout Shift): < 0.1
- INP (Interaction to Next Paint): < 200ms
- Total page weight: < 2 MB je razumno
- Broj HTTP requesta: < 80 je razumno
Sada znaš gdje točno boli — TTFB problem (server) vs LCP problem (slike/fontovi) vs CLS problem (layout shift).
Korak 2 (5 min): TTFB — server-side problem
Ako je TTFB > 600ms, server je sporо generira stranicu. Mogući uzroci:
2.1 Sajt nije cache-iran
Najčešći jedan razlog. Svaki request ide kroz PHP i bazu, generira HTML svaki put. Fix:
- Aktiviraj AccelerateWP (WMD) ili LiteSpeed Cache plugin
- Aktiviraj page caching
- Test ponovo — TTFB bi trebao pasti na < 100ms
2.2 wp_options table bloat
WordPress sajtovi sa starije plugin instalacije akumuliraju autoloaded options. Svaka stranica učitava SVE autoloaded options iz baze. Lako 50MB+ bloat.
Provjera kroz phpMyAdmin:
- Select database
- Run query:
SELECT option_name, LENGTH(option_value) AS size FROM wp_options WHERE autoload='yes' ORDER BY size DESC LIMIT 20; - Vidiš top 20 najvećih autoloaded options
- Ako vidiš stari plugin koji ne koristiš, briši njegove options
2.3 Slow query u bazi
Neki plugin ili custom code radi spori join. Aktiviraj Query Monitor plugin u WordPress-u — vidi se koji query traje najduže na svakoj stranici.
Korak 3 (10 min): Slike — najveći obvious win
Slike su 60-80% page weight-a tipičnog sajta. Ako nisu optimizirane, sajt je spor.
3.1 Format
- Konvertiraj sve JPEG/PNG u WebP — 30-50% manji file
- Za grafiku s providnošću: AVIF gdje je podržano
- Plugin: AccelerateWP automatski radi konverziju, ili Imagify/ShortPixel/Smush
3.2 Veličina
Tipičan problem: slika koja se prikazuje na 800px width u browseru se učitava 4000px width. Fix:
- Aktiviraj responsive images (WP to radi automatski s
srcset) - Resize slike prije uploada — ne uploadaj 5000x3000 ako prikazuješ 1200x800
3.3 Lazy load
- Slike ispod fold-a se učitavaju samo kad korisnik scrolla blizu
- WP 5.5+ to radi automatski (atribut
loading="lazy") - Provjeri da nije isključeno preko nekog plugina
Korak 4 (5 min): Render-blocking resources
CSS i JavaScript koji se učitavaju u <head> blokiraju rendering stranice dok se ne preuzmu. Provjeri u GTmetrix waterfall-u koliko je render-blocking.
Fix:
- Defer non-critical JavaScript —
<script defer src="..."> - Async loading za scripts koje nisu interactive —
<script async src="..."> - Critical CSS inline u
<head>, ostalo lazy load - Plugin: AccelerateWP ili WP Rocket rade ovo automatski
Korak 5 (5 min): Fontovi
Custom Google Fonts ili web fonts mogu dodati 200-500ms latency-a. Fix:
- Host fonts lokalno umjesto Google Fonts CDN (smanji external request)
- Koristi
font-display: swapu CSS-u — tekst se prikazuje s fallback fontom dok web font učitava - Preload key fonts:
<link rel="preload" as="font" href="font.woff2" type="font/woff2" crossorigin> - Minimiziraj broj font familija + font weights (npr. ne učitavaj 9 weights ako koristiš 3)
Korak 6 (10 min): Pluginovi — audit
Svaki WP plugin dodaje load. Audit:
- Instaliraj Query Monitor
- Otvori frontend stranicu kao admin
- Klikni Query Monitor toolbar bottom → Plugins tab
- Vidiš koji pluginovi koliko vremena troše
Tipično: 2-3 plugina troše 60-80% vremena. Razmotri:
- Deaktiviraj pluginove koje ne koristiš
- Zamijeni teški plugin lakšim (npr. Yoast → SEOPress ili RankMath Lite)
- Provjeri da nema duplicate funkcionalnosti (više caching pluginova, više SEO pluginova)
Korak 7 (5 min): Database optimization
Baza s milion redova post_meta tabela = sporo. Fix:
- cPanel → phpMyAdmin → odaberi WP database
- Provjeri veličinu tablica (sortiraj po Size)
- Ako wp_options > 50MB → cleanup autoloaded options
- Ako wp_postmeta > 200MB → koristi WP-Optimize plugin za cleanup
- Optimiziraj tablice: SELECT all → Operations → Optimize Table
WP-Optimize ili Advanced Database Cleaner pluginovi automatiziraju:
- Brisanje stale transients
- Brisanje stale revisions postova (default WP čuva sve)
- Brisanje spam komentara, trashed pages
- Optimize tablice
Korak 8 (10 min): CDN
Cloudflare CDN je besplatno i smanji TTFB za 30-50% za globalne posjetitelje:
- Registriraj se na cloudflare.com
- Dodaj svoju domenu
- Promijeni nameservere kod registrara na Cloudflare
- Aktiviraj "Auto Minify" za HTML, CSS, JS
- Aktiviraj "Brotli" compression
- Aktiviraj "Rocket Loader" (s testom — neki sajtovi to ne podržavaju)
Tipičan rezultat: 30% manji bandwidth, 50% brži TTFB za globalne posjetitelje.
Korak 9 (5 min): Vanjski resources
Google Tag Manager, Facebook Pixel, Hotjar, analytics, chat widget... svaki dodaje load. Audit:
- Otvori Dev Tools → Network tab → filter "3rd-party"
- Vidi koji vanjski resources učitavaš
- Razmotri: GTM je 1 request, ali unutar GTM-a možeš imati 20 trackera
- Razmotri server-side tracking (Plausible, server-side GTM) umjesto client-side
Korak 10 (5 min): Hosting performance check
Tek nakon prvih 9 koraka — ako još uvijek je sporo, provjeri hosting:
- cPanel → Metrics → Resource Usage — jesi li u "Faults" zoni?
- Ako jesi konstantno — potreban je veći paket
- Ako nisi — problem je u kodu/pluginovima, ne hostingu
Ekstra check: pokreni server-side TTFB test bez sajta. Stvori praznu PHP file koja vraća "Hello":
<?php echo "Hello"; ?>
Otvori taj file u browseru, mjeri TTFB. Ako je < 100ms — server je brz, problem je u tvom kodu. Ako je > 500ms — problem je server.
Što napraviti POSLIJE dijagnostike
Ako TTFB > 600ms i koristiš shared paket sa 1000+ sajtova
Ovo je realan razlog da nadograđuješ:
- Premium shared paket s manje neighbours-a
- Managed VPS
- Dedicated server
Ako TTFB < 200ms ali LCP > 4s
Server je brz, ali front-end je problem. Ne nadograđuj paket. Investiraj u:
- Image optimization (WebP, lazy load)
- CSS/JS optimization (defer, async, minify)
- Custom theme refactor (možda Elementor je previše teški)
Ako sajt je intermittently spor (radi dobro, onda spor)
Vjerojatno cron job ili backup proces troši CPU. Provjeri:
- cPanel → Cron Jobs — imaš li nešto što se vrti svake minute?
- JetBackup → Scheduled — kada se backup pokreće?
- WP-Cron — možda neki plugin ima cron task koji vrti previše često
Realan računovodstveni primjer
Klijent koji je htio platiti 50% više za veći paket:
- Stari paket: 15 EUR/mj
- Veći paket (predloženi): 30 EUR/mj = +180 EUR/god
- Sajt sporo: PageSpeed 35/100
Što smo napravili:
- Aktivirali AccelerateWP → TTFB 800ms → 80ms
- WebP konverzija slika → page weight 4.2MB → 1.8MB
- Maknuli 6 pluginova koji nisu korišteni
- wp_options cleanup → baza 95MB → 22MB
Rezultat:
- PageSpeed 35 → 88
- Klijent ostao na istom paketu
- Ušteda: 180 EUR/god + sajt mjerljivo bolji nego što bi bio na većem paketu
WMD performance audit
Ako želiš da prođemo dijagnostiku za tebe:
- Pošalji nam URL i opis
- Mi prolazimo kroz 10-korak flow u 1-2 sata
- Šaljemo report s konkretnim akcijskim point-ima
- Implementiramo brze fix-ove (AccelerateWP, WebP, plugin cleanup) — uključeno u managed paket
- Veće optimizacije (theme refactor, custom code) — quote
Tipično u 1-2 dana sajt je 2-3x brži. Bez kupovine novog hosting paketa. Pošalji mail na hello@wmd.hr.