17 technických tipů
ke zrychlení webů
6. května 2019

Frontendisti Ostrava
vrdl.cz/martin
Martin Michálek: frontend designér, poradce
Martin Michálek
Time To First Byte
První vykreslení
První smysluplné vykreslení
Load
Index rychlosti
Doba do
interaktivity
vrdl.cz/p/http-2
1) HTTP/2
HTTP/1.1
Prvky stránky se
řadí do fronty.
HTTP/2
Prvky stránky
přicházejí
najednou.
developers.google.com
2) Kešování CSS, JS atd. – Opravit max-age
developers.google.com
2) Kešování CSS, JS atd. – Opravit max-age
Cache-Control: max-age=31536000
css-tricks.com
3) Kešování – Opravit invalidaci
<link href="style.css?v=DatumSestavení" …>
<link href="style.css?v=DatumZměny" …>
<link href="style.vDatumZměny.css" …>
vrdl.cz/p/ttfb
4) Komprese – Zkontrolovat gzip
vrdl.cz/p/ttfb
4) Komprese – Zkontrolovat gzip
web.dev
5) Komprese – Zkusit Brotli
6) Kritické zdroje na vlastní doménu
Hlavně CSS, JS,
webfonty,
obrázky nutné
pro první
vykreslení.
7) CSS a JS: rozdělit do malých souborů
<-- Vše: -->
<link href="main.123.css" …>
<link href="lib.456.css" …>
<link href="components.489.css" …>
<-- Nákupní košík: -->
<link href="lib-cart.123.css" …>
<link href="components-cart.456.css" …>
8) CSS: Posílat po komponentách
<link href="components/table.v1.css" rel="stylesheet">
<table class="table"> … </table>
<link href="components/form.v2.css" rel="stylesheet">
<form class="form"> … </form>
css.chobits.ch
8) CSS: Posílat po komponentách
css.chobits.ch
9) JS: Odblokovat vykreslování
❌
9) JS: Odblokovat vykreslování
vrdl.cz/p/js-priority
10) JS: Lazy loadovat co není kritické
10) JS: Lazy loadovat co není kritické
— Lightbox
— Chat
— Vkládaný obsah (YouTube, Mapy…)
— Foxentry, našeptávače…
— Ovládání mega-menu…
11) Webfonty: font-display
font-display.glitch.me
12) Webfonty: preload
<link rel="preload"
href="hlavni-pismo.woff2" 

as="font"
type="font/woff2">
13) Ikony: Nepoužívat ikonfonty
vrdl.cz/p/ikonfonty-vs-svg
13) Ikony: Nepoužívat ikonfonty
vrdl.cz/p/ikonfonty-vs-svg
14) Obrázky: Lazy loading
vrdl.cz/p/lazy-loading
14) Obrázky: Lazy loading
vrdl.cz/p/lazy-loading
15) Obrázky: WebP
vrdl.cz/p/webp
- 30 % datového objemu úvodní stránky

- 25 % čas pro Page Load
<picture>
<source type="image/webp" srcset="img.webp">
<img src="logo.jpg" alt="…">
</picture>
16) Malý DOM
17) UI: Držet prostor komponentám
Děkuji!
vrdl.cz/kurzy
Martin Michálek
@machal

17 technických tipů ke zrychlení webů