Kad je stranica spora, prva reakcija je gotovo uvijek ista: "treba nam jači server". Pa se plati skuplji hosting, brzina ostane ista, i svi sliježu ramenima. Istina je neugodnija: kod tipične današnje web stranice server uopće nije problem. Problem je ono što stranica natjera posjetiteljev preglednik da radi.

Glavni krivac: JavaScript kojeg je previše

Prosječna web stranica danas šalje posjetitelju višestruko više JavaScripta nego prije deset godina — analitike, chat widgeti, A/B testing alati, marketing pixeli, slideri, framework od pola megabajta za stranicu koja prikazuje tekst i tri slike. Svaki od tih skriptova preglednik mora skinuti, parsirati i izvršiti — na mobitelu srednje klase to znači sekunde tijekom kojih stranica izgleda učitano, ali ne reagira na dodir.

Ovo je razlog zašto stranica zna biti spora čak i kad se "brzo pojavi": HTML stigne odmah, ali glavna nit preglednika je zagušena izvršavanjem skripti. Google to mjeri metrikom INP (Interaction to Next Paint) i kažnjava u rangiranju.

Ostali osumnjičeni, redom kojim ih treba provjeriti

Neoptimizirane slike. I dalje šampion po ukupnim megabajtima: fotografija od 4000 piksela ugurana u okvir od 400, PNG tamo gdje treba WebP ili AVIF, nula lazy loadinga. Rješenje je dosadno i učinkovito: moderni formati, responsive veličine (srcset), lijeno učitavanje svega ispod prvog ekrana.

Web fontovi. Četiri obitelji fontova u šest rezova = pola megabajta prije nego što se prikaže ijedno slovo. Dva reza, font-display: swap, i problem nestaje.

Tuđi kod (third-party skripte). Chat widget, heatmap alat, video embed, tri analitike od kojih jednu nitko ne gleda. Svaka od tih stvari je tuđi server, tuđi kod i tuđa sporost usred vaše stranice. Pravilo: svaka third-party skripta mora imati vlasnika u firmi koji zna reći čemu služi — inače leti van.

Sporo prvo slovo od servera (TTFB). Tek na četvrtom mjestu dolazi server — i to obično ne kao "slab hosting", nego kao aplikacija koja za svaki posjet iznova sastavlja stranicu i gađa bazu s dvadeset upita. Rješenje je keširanje: gotove HTML stranice servirane s CDN-a umjesto renderiranja u hodu.

Kako pronaći svoj konkretni razlog za 10 minuta

  1. Otvorite PageSpeed Insights i upišite svoju adresu — gledajte mobilne rezultate, ne desktop.
  2. Pogledajte tri broja: LCP (koliko treba da se pojavi glavni sadržaj), INP (koliko brzo stranica reagira) i CLS (koliko sadržaj skače).
  3. Loš LCP → slike i server. Loš INP → JavaScript. Loš CLS → slike bez definiranih dimenzija i ubačeni banneri.
  4. U kartici "Network" developer alata sortirajte resurse po veličini. Prvih pet stavki je vaša lista zadataka.

Zaključak

Spora stranica gotovo nikad nije misterij — to je zbroj odluka koje su se činile bezazlenima: još jedan widget, još jedan font, još jedna skripta "koju samo zalijepiš u head". Brze stranice nisu brze zato što imaju bolji server, nego zato što od posjetiteljevog preglednika traže manje posla. Krenite od JavaScripta i slika, izmjerite prije i poslije, i nemojte platiti jači hosting dok ne vidite brojke.