Svetainės greičio optimizavimas: Core Web Vitals

Kodėl jūsų svetainė lėta ir kam tai turėtų rūpėti

Prisimenu, kaip prieš keletą metų kūriau svetainę vienam klientui. Dizainas – nuostabus, funkcionalumas – puikus, o lankytojai… na, jų beveik nebuvo. Pasirodė, kad svetainė kraudavosi apie 8 sekundes. Aštuonias! Šiais laikais tai amžinybė. Žmonės paprasčiausiai uždarydavo langą ir eidavo kitur.

Google tai suprato seniai ir 2020 metais pristatė Core Web Vitals – tris pagrindines metrikas, kurios parodo, ar jūsų svetainė veikia gerai, ar tik atrodo gražiai. Ir ne, tai nėra dar vienas bereikalingas Google išgalvojimas. Tai realūs rodikliai, kurie tiesiogiai veikia jūsų verslo rezultatus ir SEO pozicijas.

Statistika kalba už save: jei svetainė kraunasi ilgiau nei 3 sekundes, apie 53% mobiliųjų vartotojų ją palieka. E-komercijoje kiekviena papildoma sekundė gali sumažinti konversijas iki 7%. Taigi, jei manote, kad greitis – tai tik techninė smulkmena, turiu jus nuvilti.

Trys Core Web Vitals rodikliai, kuriuos privalote suprasti

Largest Contentful Paint (LCP) – tai laikas, per kurį įkeliamas didžiausias matomas turinio elementas. Paprastai tai būna pagrindinis vaizdas, hero sekcija arba didelis teksto blokas. Google nori, kad šis rodiklis būtų mažesnis nei 2.5 sekundės. Jei jūsų LCP viršija 4 sekundes – tai problema.

Praktiškai tai reiškia: vartotojas atidaro jūsų svetainę ir nori kuo greičiau pamatyti, kas ten yra. Ne tuščią baltą ekraną, ne besisukančią animaciją, o realų turinį. Jei pagrindinis vaizdas užsikrauna po 5 sekundžių, žmogus jau spėja nuspręsti, kad jūsų svetainė – šlamštas.

First Input Delay (FID) arba dabar vis dažniau minimas Interaction to Next Paint (INP) – tai matuoja, kaip greitai svetainė reaguoja į vartotojo veiksmus. Paspaudėte mygtuką, o jis sureagavo tik po sekundės? Tai blogas FID/INP. Google nori matyti mažiau nei 100 milisekundžių (FID) arba mažiau nei 200ms (INP).

Aš pats esu išgyvenęs tą frustraciją, kai spaudai ant mygtuko ir nieko nevyksta. Spaudai dar kartą. Ir dar. O paskui staiga viskas įvyksta tris kartus iš eilės. Tai ne tik erzina – tai verčia žmones išeiti iš svetainės.

Cumulative Layout Shift (CLS) – tai matuoja vizualų stabilumą. Ar jums yra nutikę, kad skaitote tekstą, o staiga viskas pašoka žemyn, nes užsikrovė reklama ar vaizdas? Ir jūs paspaudžiate ne ten, kur norėjote? Tai ir yra CLS. Geras rodiklis – mažesnis nei 0.1.

Kaip išmatuoti savo svetainės rodiklius (ir nesusipainioti)

Gerai, teorija suprantama, bet kaip sužinoti, kokie yra jūsų rodikliai? Yra keletas įrankių, ir visi jie rodo šiek tiek skirtingus rezultatus, kas gali suklaidinti.

PageSpeed Insights – tai pats paprasčiausias būdas. Tiesiog įvedate URL ir gaunate rezultatus. Bet štai kas svarbu: jis rodo du duomenų rinkinius – „Lab data” (laboratoriniai duomenys) ir „Field data” (realūs vartotojų duomenys). Laboratoriniai duomenys – tai simuliacija, o realūs – tai kaip jūsų svetainė veikia tikrų žmonių naršyklėse. Realūs duomenys yra svarbesni.

Google Search Console turi atskirą „Core Web Vitals” skyrių, kuris rodo, kurie jūsų puslapiai turi problemų. Tai puikus būdas identifikuoti konkrečius puslapius, kuriuos reikia taisyti.

Chrome DevTools – jei esate šiek tiek techniniai, galite naudoti Lighthouse auditą tiesiog Chrome naršyklėje. Paspaudžiate F12, einate į „Lighthouse” ir paleidžiate testą. Gauna daug detalesnės informacijos nei PageSpeed Insights.

Svarbus patarimas: nepanikuokite, jei skirtingi įrankiai rodo skirtingus rezultatus. Tai normalu. Svarbu žiūrėti į bendrą tendenciją, o ne į vieną konkretų skaičių.

LCP optimizavimas: kaip paspartinti pagrindinį turinį

Didžiausias kaltininkas dėl lėto LCP paprastai yra vaizdai. Dideli, neoptimizuoti, netinkamo formato vaizdai. Štai ką galite padaryti:

Naudokite modernias vaizdo formatus – WebP arba AVIF užima 30-50% mažiau vietos nei JPEG ar PNG, išlaikant tą pačią kokybę. Taip, ne visi naršyklės palaiko AVIF, bet galite naudoti `` elementą su fallback variantais.

Lazy loading – bet ne pagrindiniam vaizdui! Tai klaida, kurią matau nuolat. Jei jūsų hero sekcijos vaizdas turi `loading=”lazy”`, jis krausis vėliau, o tai pablogina LCP. Lazy loading tinka tik vaizdams, kurie yra žemiau ekrano.

CDN naudojimas – jei jūsų serveris yra Lietuvoje, o vartotojai iš Azijos, jie lauks ilgai. CDN (Content Delivery Network) paskirsto jūsų turinį po visą pasaulį. Cloudflare turi nemokamą planą, kuris puikiai tinka mažesnėms svetainėms.

Preload svarbius resursus – galite nurodyti naršyklei iš anksto pradėti krauti svarbiausius failus:

„`html „`

Dar vienas dažnas nusikaltėlis – lėtas serverio atsakymo laikas (TTFB – Time to First Byte). Jei jūsų WordPress svetainė veikia ant pigiausio shared hostingo, tai bus problema. Investicija į geresnį hostingą ar bent jau caching sprendimą (WP Rocket, W3 Total Cache) gali sumažinti TTFB nuo 2 sekundžių iki 200 milisekundžių.

FID/INP gerinimas: kodėl JavaScript yra jūsų priešas

JavaScript yra nuostabus, bet jis taip pat yra pagrindinis kaltininkas dėl lėtos interaktyvumo. Kiekvienas scriptas, kurį įtraukiate į svetainę, turi būti parsisiųstas, išanalizuotas ir įvykdytas. Tuo metu naršyklė negali daryti nieko kito.

Mažinkite JavaScript kiekį – ar tikrai jums reikia tos jQuery bibliotekos, kuri sveria 90KB, kad padarytumėte paprastą animaciją? Modernūs naršyklės gali daryti daugumą dalykų su vanilla JavaScript arba CSS.

Code splitting – jei naudojate React, Vue ar kitą framework’ą, įsitikinkite, kad naudojate code splitting. Tai reiškia, kad vartotojas parsisiunčia tik tą kodą, kurio jam reikia konkrečiame puslapyje, o ne visą aplikaciją iš karto.

Defer ir async atributai – scriptus, kurie nėra kritiškai svarbūs, galite krauti asinchroniškai:

„`html


„`

`defer` laukia, kol visas HTML bus išanalizuotas, o `async` kraunasi lygiagrečiai ir vykdomas, kai tik pasiruošia.

Trečiųjų šalių scriptai – Google Analytics, Facebook Pixel, chat widgetai, reklamos – visi jie lėtina jūsų svetainę. Naudokite Google Tag Manager, kad geriau kontroliuotumėte, kada ir kaip šie scriptai kraunasi. O dar geriau – paklauskite savęs, ar tikrai jums reikia visų tų įrankių.

Aš pats esu matęs svetaines, kurios turėjo 15+ skirtingų tracking scriptų. Tai ne tik lėtina svetainę, bet ir kelia privatumo klausimų.

CLS sprendimas: kaip sustabdyti šokinėjantį turinį

CLS problemos dažniausiai kyla dėl to, kad elementai neturi nustatytų dydžių. Naršyklė pradeda renderinti puslapį, o paskui užsikrauna vaizdas ar reklama ir viskas pašoka.

Visada nurodykite vaizdo dydžius – net jei naudojate responsive dizainą:

„`html
Aprašymas
„`

Naršyklė naudos šiuos skaičius, kad rezervuotų vietą, net jei vaizdas bus skalojamas CSS.

Rezervuokite vietą dinaminiam turiniui – jei turite reklamų, įterptų vaizdo įrašų ar kitokio dinaminio turinio, naudokite CSS, kad rezervuotumėte vietą:

„`css
.ad-container {
min-height: 250px;
}
„`

Šriftai – kai užsikrauna custom šriftai, tekstas gali „šokti”. Naudokite `font-display: swap` arba `font-display: optional`:

„`css
@font-face {
font-family: ‘Custom Font’;
src: url(‘font.woff2’) format(‘woff2’);
font-display: swap;
}
„`

Animacijos – jei naudojate animacijas, įsitikinkite, kad jos neveikia layout’o. Animuokite tik `transform` ir `opacity` properties, nes jie nekelia reflow.

WordPress specifiniai patarimai

Kadangi didžioji dalis svetainių veikia ant WordPress, verta paminėti keletą specifinių dalykų.

Temos pasirinkimas – kai kurios temos yra tiesiog per sunkios. GeneratePress, Astra, Kadence – tai lengvos temos, kurios iš karto duoda gerus Core Web Vitals rezultatus. Divi ar Avada? Ne taip gerai.

Pagebuilderiai – Elementor, WPBakery ir panašūs įrankiai prideda daug papildomo kodo. Jei jums tikrai reikia pagebuilderio, Oxygen ar Bricks yra greitesni variantai.

Pluginai – kiekvienas pluginas prideda kodo. Peržiūrėkite savo pluginų sąrašą ir ištrinkite tuos, kurių nenaudojate. Yra pluginai, kurie padeda optimizuoti kitus pluginus – Asset CleanUp leidžia išjungti nereikalingus CSS ir JS failus konkrečiuose puslapiuose.

Caching – WP Rocket yra mokamas, bet verta kiekvieno cento. Nemokamas variantas – W3 Total Cache arba WP Super Cache. Bet kuris iš jų drastiškai pagerins jūsų svetainės greitį.

Duomenų bazės optimizavimas – laikui bėgant WordPress duomenų bazė užsipildo šiukšlėmis. WP-Optimize arba panašūs pluginai gali ją išvalyti ir optimizuoti.

Kai optimizavote viską, bet vis tiek nepakanka

Kartais padarote viską teisingai, bet Core Web Vitals vis tiek nėra idealūs. Štai keletas pažangesnių technikų:

Critical CSS – tai reiškia, kad inline įtraukiate tik tą CSS, kuris reikalingas virš ekrano matomam turiniui, o likusį CSS kraunate asinchroniškai. Tai sudėtinga, bet efektyvu. Critical CSS Generator arba Penthouse gali padėti tai automatizuoti.

Resource hints – `preconnect`, `dns-prefetch`, `prefetch` – šie atributai leidžia naršyklei iš anksto pasiruošti prisijungimams prie išorinių domenų:

„`html „`

Service Workers – pažangus caching mechanizmas, kuris gali padaryti jūsų svetainę beveik akimirksniu greitą pakartotiniams lankytojams. Workbox biblioteka palengvina implementaciją.

HTTP/3 ir QUIC – naujesni protokolai, kurie greitesni nei HTTP/2. Daugelis CDN (Cloudflare, Fastly) jau juos palaiko.

Edge computing – vietoj to, kad visas turinys būtų generuojamas jūsų serveryje, dalis logikos gali būti vykdoma CDN edge serveriuose, arčiau vartotojo. Cloudflare Workers ar Vercel Edge Functions tai leidžia daryti.

Bet būkime sąžiningi – dauguma svetainių nepasiekia šio lygio. Jei teisingai optimizavote vaizdus, sumažinote JavaScript, įjungėte caching ir naudojate CDN, jūsų Core Web Vitals turėtų būti geri.

Kas nutinka, kai ignoruojate Core Web Vitals

Google oficialiai patvirtino, kad Core Web Vitals yra ranking faktorius. Tai nereiškia, kad jūsų svetainė staiga nukris į antrą puslapį, jei rodikliai prasti, bet tai tikrai nepadeda. O jei konkurentų svetainės yra greitesnės – jie gaus pranašumą.

Bet svarbiau nei SEO yra vartotojų patirtis ir verslo rezultatai. Yra daugybė tyrimų, kurie rodo tiesioginį ryšį tarp greičio ir konversijų:

– Amazon apskaičiavo, kad kiekviena 100ms vėlavimo kainuoja jiems 1% pardavimų
– Walmart nustatė, kad kiekviena sekundė greičio pagerinimo padidino konversijas 2%
– Pinterest sumažino laukimo laiką 40% ir pamatė 15% padidėjimą registracijų

Tai ne abstraktūs skaičiai – tai realūs pinigai. Jei jūsų e-komercijos svetainė uždirba 10,000 eurų per mėnesį, o greičio optimizavimas pagerina konversijas 10%, tai papildomi 1,000 eurų per mėnesį. Per metus – 12,000 eurų. Ar verta investuoti kelias dienas į optimizavimą? Manau, atsakymas akivaizdus.

Be to, lėta svetainė tiesiog erzina žmones. Ir suerzinti žmonės nesugryžta. Jie nerekomenduoja jūsų draugams. Jie palieka neigiamus atsiliepimus. Greitis – tai dalis jūsų prekės ženklo įvaizdžio.

Kaip išlaikyti gerą greitį ilgalaikėje perspektyvoje

Optimizavote svetainę, Core Web Vitals puikūs – puiku! Bet tai ne vienkartinis darbas. Svetainės laikui bėgant lėtėja. Pridedame naujų funkcijų, pluginų, vaizdų, ir nepastebimai grįžtame prie lėtos svetainės.

Reguliariai testuokite – įsidėkite į kalendorių kas mėnesį patikrinti PageSpeed Insights. Arba dar geriau – naudokite automatizuotus įrankius kaip SpeedCurve ar Calibre, kurie nuolat monitorina jūsų svetainę ir praneša, jei rodikliai pablogėja.

Performance budget – nustatykite limitus. Pavyzdžiui, „jokio puslapio JavaScript neturi viršyti 300KB” arba „LCP turi būti mažesnis nei 2 sekundės”. Kai pridedame naują funkciją, patikriname, ar neviršijame šių limitų.

Dokumentuokite pakeitimus – kai pridedame naują pluginą ar biblioteką, užsirašome. Jei po to pastebime, kad svetainė sulėtėjo, žinome, kur ieškoti kaltininko.

Mokykite komandą – jei su jumis dirba kiti žmonės (turinio kūrėjai, dizaineriai, kiti programuotojai), įsitikinkite, kad jie supranta greičio svarbą. Turinio kūrėjas, kuris įkelia 5MB JPEG vaizdą tiesiai iš fotoaparato, gali sugadinti visą jūsų optimizavimo darbą.

Investuokite į infrastruktūrą – pigus hostingas kainuoja daugiau ilgalaikėje perspektyvoje. Geresnė infrastruktūra reiškia mažiau laiko, praleisto kovojant su techninėmis problemomis, ir geresnę vartotojų patirtį.

Optimizavimas niekada nesibagia. Visada atsiranda naujų technologijų, naujų best practices, naujų galimybių. Bet jei laikysitės pagrindinių principų – optimizuoti vaizdai, minimalus JavaScript, geras caching, greitas serveris – jūsų svetainė bus greitesnė nei 90% konkurentų.

Ir tai jau didelis pranašumas.

Daugiau

Python new metodas: objektų kūrimo kontrolė