Modul 6 · 6.1
Zaradi česa je spletno mesto počasno in kako to izmerite?
Modul 6: Hitrost · Čas branja: 9 minut
Učni cilj: Po tej lekciji boste znali izmeriti, kje se izgublja čas, in prepoznati razliko med počasnostjo na strežniku in počasnostjo v brskalniku.
Ključni pojmi: TTFB, Core Web Vitals (LCP, INP, CLS), laboratorijski podatki, terenski podatki, PageSpeed Insights, zavihek za omrežje, stiskanje, zunanji skripti, omejitve paketa gostovanja, 503
Najprej merite, nato ukrepajte
"Spletno mesto je počasno" je lahko posledica desetih različnih vzrokov. Kdor brez merjenja hkrati namesti vtičnik za predpomnjenje, vtičnik za optimizacijo slik in večji paket, pozneje ne ve, kaj je pomagalo, ima pa tri stvari več za vzdrževanje. Zato vedno začnite s tremi vprašanji (enakimi kot v priročniku Vašega ponudnika gostovanja):
- Je počasno vse ali samo skrbništvo? Počasno skrbništvo s hitrim javnim delom nakazuje na vtičnike, ki v skrbništvu veliko počnejo, ali na robote, ki napadajo prijavno stran.
- Vedno ali ob določenih trenutkih? Samo ob prometnih obdobjih ali ko teče načrtovano opravilo: takrat Vaš paket naleti na svoje omejitve.
- Pri vseh ali samo pri Vas? Poskusite na telefonu prek omrežja 4G ali 5G ali prosite nekoga drugega, naj preveri. Če je počasno samo pri Vas, je težava v Vaši povezavi ali VPN.
Dve polovici: strežnik in brskalnik
Čas, ki ga obiskovalec čaka, je sestavljen iz dveh delov (lekcija 1.2):
- Strežnik ustvari HTML: spletni strežnik, PHP, vtičniki, podatkovna zbirka. To vidite kot TTFB (time to first byte), čas do prvega bajta odgovora. Web.dev kot splošno pravilo navaja, da naj večina spletnih mest stremi k TTFB 0,8 sekunde ali manj.
- Brskalnik prebere ta HTML in nato pridobi vse, kar je v njem navedeno: slogovne predloge, skripte, pisave, slike, video, merilne kode, klepetalne pripomočke. Šele ko je dovolj tega naloženega, obiskovalec kaj vidi.
Visok TTFB rešujete na strani strežnika: predpomnjenje (lekcija 6.2), manj ali lažji vtičniki, novejša različica PHP, pospravljena podatkovna zbirka (lekcija 6.3) ali več procesorske moči. Nizek TTFB s kljub temu počasno stranjo kaže na stran brskalnika: prevelike slike, preveč skriptov, zunanji elementi.
Core Web Vitals
Google izkušnjo obiskovalcev meri s tremi kazalniki, imenovanimi Core Web Vitals:
| Meritev | Kaj meri | Dobro, če |
|---|---|---|
| LCP (Largest Contentful Paint) | Kako hitro je viden največji del vsebine (pogosto velika fotografija ali naslov) | 2,5 sekunde ali manj |
| INP (Interaction to Next Paint) | Kako hitro se stran odzove, ko kliknete, se dotaknete ali tipkate | 200 milisekund ali manj |
| CLS (Cumulative Layout Shift) | Koliko se postavitev strani premika med nalaganjem | 0,1 ali manj |
INP je marca 2024 nadomestil starejšo meritev FID. Google te podatke med drugim uporablja pri razvrščanju rezultatov iskanja, vendar je glavni razlog za njihovo izboljšanje preprost: obiskovalci zapustijo počasno ali nestabilno stran.
Laboratorijski in terenski podatki
Obstajata dve vrsti meritev, ki dajeta različne rezultate:
- Laboratorijski podatki: test v enem trenutku, z ene lokacije, s simuliranim telefonom in povezavo. Koristno za primerjavo (pred in po spremembi), vendar ne gre za pravega obiskovalca.
- Terenski podatki: meritve pri pravih obiskovalcih z brskalnikom Chrome, v zadnjih 28 dneh. To je tisto, kar obiskovalci dejansko doživijo. Majhna spletna mesta imajo pogosto premalo obiskovalcev za terenske podatke.
PageSpeed Insights (pagespeed.web.dev) prikazuje oboje: zgoraj terenske podatke (če obstajajo), spodaj laboratorijski test z oceno in konkretnimi nasveti. Ne glejte slepo na oceno od 0 do 100. Oglejte si posamezne sestavine: je LCP slab, ker je strežnik počasen (TTFB), ali ker velika fotografija tehta 3 MB?
Vedno testirajte večkrat (številke nihajo) in testirajte tudi običajno stran, ne samo domače strani.
Samostojno preverjanje v brskalniku
Razvijalska orodja Vašega brskalnika (F12) pokažejo, kaj se dejansko dogaja:
- Zavihek Omrežje: osvežite stran z izklopljenim predpomnilnikom (kljukica "Onemogoči predpomnilnik"). Vidite vsako datoteko, ki se naloži, njeno velikost in čas nalaganja. Razvrstite po velikosti: največje datoteke so pogosto slike. Razvrstite po domeni: koliko prihaja od drugih ponudnikov (pisave, merilne kode, videoposnetki)?
- Prva zahteva (sam HTML): kliknite nanjo, zavihek Timing. "Waiting for server response" je TTFB.
- Glave te prve zahteve: ali je prisotno stiskanje (
content-encoding: braligzip) in ali je stran prišla iz predpomnilnika (lekcija 6.2)?
Običajni krivci
V praksi je počasnost pri WordPressu najpogosteje posledica enega od naslednjih vzrokov:
- Brez predpomnilnika strani: vsaka stran se pri vsakem obisku ustvari znova (lekcija 6.2).
- Preveč ali preveč obremenjujočih vtičnikov, zlasti vtičnikov, ki pri vsaki zahtevi kličejo zunanje storitve ali izvajajo zahtevne poizvedbe (lekcija 5.3).
- Velike slike: fotografija s telefona velikosti 5 MB na domači strani (lekciji 4.4 in 6.3).
- Obsežna tema ali orodje za izdelavo strani, ki na vsaki strani naloži veliko skriptov in slogovnih predlog (lekcija 5.1).
- Zunanji elementi: pisave, videoposnetki, klepetalni pripomočki, merilne kode, gumbi za družbena omrežja drugih ponudnikov. Vsak od njih pomeni povezavo z drugim strežnikom, ki je lahko počasen.
- Stara različica PHP (lekcija 8.4).
- Neurejena podatkovna zbirka: na tisoče revizij, neželena vsebina, dnevniške tabele vtičnikov (lekcija 6.3).
- Roboti: pajki (crawlerji), UI-pajki in poskusi prijave zasedajo Vaš paket (lekcija 7.3).
- Paket naleti na svoje omejitve: premalo procesorske moči (CPU), procesov ali pomnilnika za obseg prometa.
Omejitve Vašega paketa
Pri deljenem gostovanju vsak paket dobi stalen delež strežnika: procesorsko moč, pomnilnik, hitrost diska in določeno število hkratnih procesov. Če Vaše spletno mesto porabi več, se upočasni ali pa obiskovalci dobijo sporočilo o napaki 503 (Service Unavailable, pri nekaterih ponudnikih gostovanja "Resource Limit Is Reached"). Pri DirectAdmin s CloudLinux to vidite pri Resource Usage (z "faults", če je bilo Vaše spletno mesto upočasnjeno), z X-Ray pa za vsako stran vidite, kateri vtičnik ali poizvedba porablja čas. Drugi ponudniki gostovanja imajo podobne preglede, včasih le na zahtevo.
Večji paket pomaga, če Vaše spletno mesto dejansko potrebuje več (na primer prometna spletna trgovina). Ne reši pa slabo urejenega spletnega mesta: težava se takrat pozneje vrne. Najprej poiščite vzrok.
Povzetek
- Najprej izmerite: vse ali samo skrbništvo, vedno ali včasih, vsi ali samo Vi.
- TTFB je stran strežnika (ciljajte na 0,8 sekunde ali manj); preostalo je tisto, kar nalaga brskalnik.
- Core Web Vitals: LCP (2,5 s), INP (200 ms) in CLS (0,1); INP je leta 2024 nadomestil FID.
- PageSpeed Insights prikazuje terenske in laboratorijske podatke; zavihek za omrežje pokaže, kaj se dejansko nalaga.
- Največ počasnosti povzročajo odsotnost predpomnilnika, obremenjujoči vtičniki, velike slike in zunanji elementi; večji paket je šele zadnji korak.
Kviz
Naloga
Naloga A6.1: Izmerite TTFB in stiskanje. Vnesite naslov svojega spletnega mesta in, če želite, še eno običajno stran (na primer kontaktno stran). Program vsako stran trikrat prikliče brez piškotkov in prikaže srednji TTFB, velikost HTML ter podatek, ali strežnik HTML pošilja stisnjeno (content-encoding gzip ali br). Primerjajte rezultat s testom v orodju PageSpeed Insights in zabeležite, kaj Vam je padlo v oči.
Dodatno branje
Ti članki opisujejo korake v nadzornih ploščah WebOké; pri drugih ponudnikih delujejo podobno.
- Priročnik DirectAdmin 18.3: Moja spletna stran je počasna
- Priročnik DirectAdmin 17.3: Resource Usage: CPU, pomnilnik in procesi
- Priročnik DirectAdmin 17.4: X-Ray: odkrivanje počasnih strani
- Priročnik DirectAdmin 17.5: 503 ali 'Resource Limit Is Reached': kaj zdaj?
- Moje spletno mesto je počasno ali porablja preveč procesorske moči: tako ga pohitrite
- Core Web Vitals (web.dev, angleško): https://web.dev/articles/vitals
- PageSpeed Insights: https://pagespeed.web.dev/
