Optimalizace rychlosti: jak pomoci na backendu?
Backend hraje v optimalizaci rychlosti webu zásadní roli, protože správná optimalizace na straně kódu a serveru může eliminovat zpoždění, která často vznikají při zpracování požadavků a doručování obsahu.
Tento článek cílíme především na backendové vývojáře nebo správce serverové infrastruktury.
Vliv backendu na metriky rychlosti
Na začátek si pojďme říct, že rychlostní metriky nejsou jenom o frontendu. Backend má vliv na spoustu metrik, konkrétně i na ty ze sady Core Web Vitals.
Rychlost backendu měříme za pomocí metriky Time To First Byte (TTFB). Ideální hodnota metriky TTFB je do 0,8 sekundy. TTFB má přímý vliv na rychlost načtení webu, konkrétně na Largest Contentful Paint (LCP), rychlost načtení největšího prvku stránky.
Dobře to ilustruje následující zjednodušený graf. V případě, že TTFB zabere 2,6 sekundy, máme na webu problém a už nesplníme limit pro metriku LCP, který je 2,5 sekundy. V takovém případě vás už sebelepší frontendová optimalizace nezachrání a musíte sáhnout po optimalizaci backendové.
Čas backendu a čas frontendu dohromady tvoří hodnotu metriky LCP.
TIP: Optimalizace rychlosti je jedním z klíčových faktorů pro úspěch webu. Rychlý web nejenže zlepšuje uživatelský zážitek, ale také může přispívat k lepšímu hodnocení v SEO.
Kromě LCP má backend vliv také na jednu z pomocných Web Vitals metrik, kterou je First Contentful Paint (FCP), rychlost vykreslení jakéhokoliv obsahu.
Obecné tipy, jak zrychlit backend
Potenciálních míst, kde čas metriky TTFB optimalizovat je nekonečně. K výše rozepsanému seznamu ještě můžeme přidat pár „evergreen“ bodů, mezi které patří:
- Zvyšte výkon serveru (CPU, paměť)
Dostatečné zdroje serveru mohou rychleji zpracovat požadavky. - Optimalizujte databázi
Vylaďte nastavení databáze, efektivní dotazy a využijte indexy. - Používejte cache
Implementujte caching na úrovni databáze, paměti (např. Redis) nebo HTTP cache na často opakované dotazy či endpointy, aby se eliminovala potřeba opětovného načítání dat z databáze. - Pozor na mnohonásobné přesměrování
Dlouhé roundtripy prodlužují celkový čas načtení stránek. - Optimalizujte DNS a síťové latence
Nastavte optimalizovaný DNS a uložte jej do cache, aby bylo načítání co nejrychlejší. V některých případech může pomoci i přesun serverů do regionů blíže cílovému publiku.
Jak může backendový vývojář pomoct s rychlostí webu?
Následující tipy nejsou zaměřené přímo na optimalizaci metriky TTFB, ale mohou pomoci zlepšení rychlosti webu obecně.
Komprese dat, Brotli, GZIP
Brotli a GZIP jsou způsoby bezztrátové komprese, které šetří datový objem při stahování textových souborů jako CSS nebo JS ze serveru do prohlížeče. Málokdo už ale ví, že GZIP a Brotli mají takzvané úrovně komprese. U GZIPu je jich 9, u Brotli dokonce 11.
Obecně u komprimace doporučujeme nastavit úroveň 6. Vyšší úrovně než 6 nepřináší zásadní rozdíly ve velikosti souborů a čím vyšší stupeň komprimace, tím vyšší náročnost na výkon serveru a čas.
Pro fonty (WOFF a WOFF2) kompresi nepoužívejte, ty jsou již komprimované ze své podstaty formátu. Pokud nemáte s nastavováním komprese zkušenosti, nejprve si úroveň komprese otestujte. Služby jako Cloudflare umí dobrou úroveň komprese vyřešit automaticky za vás.
Ignorování UTM parametrů
Často se stává, že weby používají cache, která je invalidovaná, pokud je v URL adrese nějaký parametr. Důležité je si ale uvědomit, že UTM parametr z pohledu obsahu neznamená žádnou změnu, využíváme je pouze pro analytické nástroje.
Ignorování UTM parametrů v cache může být dobrý optimalizační krok, protože vás může zbavit dvojité distribuce u metriky TTFB, která je velmi typická pro verzi s cache a bez cache.
Ukázkový příklad dvou různých skupin uživatelů u metriky TTFB – zelená ke cachovaná, ta druhá nikoliv.
Upgrade backendového stacku
Údržba a zvyšování verzí technologií na vývojovém prostředí je velmi důležitá. Často dochází v nových verzích ke zvyšování výkonu, což pomoct rychlosti na vašem projektu a eliminujete tím také vznik technologického dluhu.
Například u PHP můžete porovnávat jednotlivé verze pomocí benchmarků. U frameworku Laravel může zvýšením verze dojít ke slušnému nárůstu odbavených requestů za sekundu.
Výkon a počet odbavených requestů PHP verze 8.3 je vyšší než u starších verzí.
Nové formáty obrázků (WebP, AVIF)
Formáty webových obrázků prošly v posledních letech zajímavým vývojem a v současné době můžeme používat dva nové formáty WebP a AVIF. Jejich hlavní výhodou je vyšší datová úspornost. Oba dva formáty již můžete nyní bez obav používat, protože jsou podporované ve všech moderních prohlížečích.
S formátem WebP můžete pracovat v PHP nativně, z důležitých parametrů zmíníme $quality
, který nastavuje výstupní kvalitu obrázku.