Performancë
TTFB — koha deri te bajti i parë
Sa gjatë pret shfletuesi para se serveri të nisë përgjigjen; matje e drejtpërdrejtë e shpejtësisë së backend-it.
Çfarë është
TTFB (*Time To First Byte*) është koha nga nisja e kërkesës deri kur mbërrin bajti i parë i përgjigjes.
Ajo përmban katër pjesë: zgjidhjen e DNS-së, hapjen e lidhjes TCP, negociatën TLS, dhe kohën që i duhet serverit për të ndërtuar përgjigjen. Tri të parat janë kryesisht kosto rrjeti dhe distance; e katërta është aplikacioni yt.
TTFB-ja nuk është metrikë e përvojës së përdoruesit — përdoruesi nuk e ndien bajtin e parë. Por ajo është një pikë nisjeje: çdo metrikë tjetër ndodh pas saj.
Pse ka rëndësi
TTFB e lartë e zhvendos gjithçka. Nëse serveri fillon të përgjigjet pas 900 milisekondash, asnjë optimizim i frontend-it nuk mund ta sjellë tekstin e parë para asaj kohe.
Kjo prek drejtpërdrejt metrikën e ngarkimit të elementit më të madh të dukshëm, e cila është matje zyrtare e përvojës. Një TTFB e ngadaltë e bën atë pothuajse të pamundur brenda pragut të mirë.
Shkaqet ndahen qartë. Nëse TTFB është e lartë edhe për një skedar statik, problemi është rrjeti ose serveri. Nëse është e ulët për skedarë statikë dhe e lartë për faqe dinamike, problemi është te aplikacioni — zakonisht pyetje baze të ngadalta ose thirrje drejt shërbimeve të jashtme gjatë ndërtimit të faqes.
Ka edhe pasojë për indeksimin: robotët e kërkimit e kufizojnë ritmin sipas shpejtësisë së përgjigjes.
Si rregullohet
- Ndaje problemin së pari. Krahaso TTFB-në e një skedari statik me atë të një faqeje dinamike.
- Shto cache në nivel serveri për faqe të plota ose fragmente të tyre.
- Ndreq pyetjet e ngadalta. Aktivizo regjistrin e pyetjeve të ngadalta dhe shto indekset që mungojnë.
- Hiq thirrjet e jashtme nga rruga e përgjigjes. Një API i tretë i ngadaltë e bllokon faqen; kryeje atë punë në sfond.
- Përdor një CDN për të ulur distancën fizike.
- Aktivizo HTTP/3 kur është i disponueshëm; ai e zvogëlon koston e shtrëngimit të duarve.
Si e mat ky mjet
Dy analizues e matin nga i njëjti burim, me pragje të ndryshme.
PerformanceAnalyzer::checkTtfb() (services/PerformanceAnalyzer.php:129) merr starttransfer_time dhe jep: nën 200 ms kaluar pa konstatim, 200–600 ms (:136, informativ), mbi 600 ms (:138, paralajmërim me ndikim të lartë).
CoreWebVitalsAnalyzer::estimateTTFB() (services/CoreWebVitalsAnalyzer.php:242) e konverton të njëjtën vlerë në milisekonda dhe jep: mbi 800 ms kritike me −15 pikë (:94), mbi 200 ms paralajmërim me −5 pikë (:100).
Çfarë NUK e mat
Si te koha e plotë, kjo është një matje e vetme nga një vend i vetëm. TTFB-ja ndryshon me distancën gjeografike, me ngarkesën e momentit dhe me faktin nëse përgjigja doli nga cache-i i serverit apo u ndërtua nga e para. Numri i një skanimi nuk është karakteristikë e sajtit.
Matja nuk ndahet në fazat e saj. Nuk dihet sa shkoi te DNS-ja, sa te TLS-ja dhe sa te aplikacioni — pra konstatimi thotë se është ngadalë, por jo pse.
Matet vetëm dokumenti kryesor. Dhe dy analizues raportojnë të njëjtën gjë me pragje të ndryshme (600 ms kundrejt 800 ms), prandaj një faqe me TTFB 700 ms merr njëkohësisht një paralajmërim dhe asnjë konstatim kritik — dy vlerësime që duken kontradiktore në të njëjtin raport.
Kodi që e kryen matjen
services/PerformanceAnalyzer.php:129— PerformanceAnalyzer::checkTtfbservices/CoreWebVitalsAnalyzer.php:242— CoreWebVitalsAnalyzer::estimateTTFB