Přejít na obsah
online
csv0.46.1 · 1d135e2

Rychlý web, který zůstává rychlý

Zrychlit web jednou je snadné; těžší je udržet ho rychlý, když přibývají funkce. Proto pro nás rychlost přestala být jednorázovým auditem a stala se testem, kterým musí projít každá změna.

Ilustrace: čtyři ukazatele skóre na hodnotě 100 nad grafem, na kterém první měření překračují čáru rozpočtu a ostatní zůstávají pod ní.

Zrychlit web jednou je snadné. Těžší je udržet ho rychlý, když průběžně přidáváte funkce: každá nová komponenta, font nebo knihovna stránku trochu ztíží a nikdo si toho nevšimne, dokud web nepůsobí pomalu. Proto jsme přestali brát rychlost jako jednorázový audit a udělali z ní test, kterým musí projít každá změna.

Kde jsme začínali

Když jsme tento web poprvé pořádně změřili, rozvržení při načítání poskakovalo (Cumulative Layout Shift kolem 0,2) a hlavní obsah se na škrceném mobilním připojení objevoval za 4 až 6 sekund. Hlavní styl měl po kompresi 41 KB, hlavně proto, že se návštěvníkům posílaly i komponenty a validační kód určené pro administraci.

Co jsme změnili

  • Návštěvníci dostanou jen kód pro návštěvníky. Knihovna UI administrace a knihovna pro validaci formulářů se už na veřejný web nedostanou. Test projde importy webu a selže, pokud se některá z nich vplíží zpátky.
  • CSS jen pro to, co je na stránce. Hlavní styl se zmenšil z 296 KB na 98 KB a po kompresi na 16 KB.
  • Fonty, které neposouvají rozvržení. Klíčové fonty se načítají předem a stránka už předem nestahuje kód, který možná nikdy nebude potřeba.

Test, který to tak udrží

U každého pull requestu CI sestaví web, servíruje ho stejně jako produkce — HTTP/2, TLS, komprese — a na čtyřech klíčových stránkách třikrát spustí Lighthouse a vezme medián. Rozpočet: každé skóre aspoň 95, největší obsah viditelný za méně než 2 sekundy, posun rozvržení pod 0,1, blokování hlavního vlákna pod 200 ms. Pokud změna rozpočet překročí, CI zčervená a změna se nesloučí. Souběžně běží kontrola přístupnosti, která na stránkách, jež pokrývá, zatím nenachází žádná porušení WCAG AA.

Výsledek

V CI mají stránky skóre 100 ve všech čtyřech kategoriích Lighthouse a hlavní obsah je vidět za méně než sekundu. Na ostrém webu má domovská stránka 100 s hlavním obsahem zhruba za 1,2 sekundy a stránka produktu 98.

Upřímně říkáme i to, co ještě dokonalé není: stránky v japonštině a dalších jazycích CJK jsou pomalejší, protože jejich fonty jsou mnohem větší. To má vlastní úkol.

Proč je to důležité pro vás

Pomalá stránka ztrácí návštěvníky dřív, než přečtou jediné slovo, a všimnou si toho i vyhledávače. Pokud s námi stavíte landing page nebo e-shop, tento rozpočet je jeho součástí — patří k tomu, jak pracujeme, není to příplatek.

Promluvme si o vašem webu