Website Performance Thomas Puppe auf der NConf Rostock 2023
Slide 2
Hi, ich bin Thomas
đź‘‹
Senior Frontend Developer bei ZEIT Online #a11y, #leanweb, #webperf​
Slide 3
Credits: apple.com, Lee Campbell auf Unsplash, Shiwa ID auf Unsplash
Slide 4
www !== wealthy western web
Slide 5
Slide 6
Slide 7
Website Performance ist ein Wettbewerbsvorteil!
https://www.allegisgroup.com/en-gb/insights/blog/2019/december/5-ways-to-gain-a-competitive-advantage-in-your-chosen-field
Slide 8
https://wpostats.com/
Slide 9
Website Performance
Slide 10
Slide 11
TTFB Download Size Asset Count
Slide 12
TTFB Download Size Asset Count
window loaded DOM content loaded
Aspekte von
Aus Usersicht
Website
schnell / schlank / ruckelt nicht​
Performance Browser / Technologien HTML / CSS / Bilder / JavaScript / Schriften / Video / Audio Priorisierung im Netzwerk und im Browser​ ​
Build / Server Bildformate / Komprimierung / CDN, Cloud / Caching / Netzwerk
Wirkung Objektive Zahlen / Subjektive Wahrnehmung
Kontrolle Messung / Testing / Monitoring / SEO Einfluss
Slide 16
Drei Säulen von Website Performance
A
R
O
Slide 17
Drei Säulen von Website Performance
A
R
O
AVOID
REDUCE
OPTIMIZE
Slide 18
Drei Säulen von Website Performance
A
R
O
AVOID
REDUCE
OPTIMIZE
Benutzen wir alles?
Cachen,
Ladeverhalten und
Brauchen wir alles?​
Komprimieren,
Priorisierung.
​Minimieren.
Slide 19
Drei Fünf Säulen von Website Performance
A
R
O
M
A
AVOID
REDUCE
OPTIMIZE
MEASURE
ATTITUDE
Benutzen wir alles?
Cachen,
Ladeverhalten und
Tooling und
Performance
Brauchen wir alles?​
Komprimieren,
Priorisierung
Monitoring​
Culture​
​Minimieren.
Slide 20
thomaspuppe.de/talks/nconf-2023 Slides und Links
Slide 21
Drei Fünf Säulen von Website Performance
A
R
O
M
A
AVOID
REDUCE
OPTIMIZE
MEASURE
ATTITUDE
Benutzen wir alles?
Cachen,
Ladeverhalten und
Tooling und
Performance
Brauchen wir alles?​
Komprimieren,
Priorisierung
Monitoring​
Culture​
​Minimieren.
Slide 22
AVOID
Slide 23
Avoid Stuff: ungenutzte Sachen finden
Browser DevTools
Avoid Stuff: ungenutzte Sachen finden
Browser DevTools
Request Maps
Slide 26
Avoid Request Maps • requestmap.webperf.tools ​ • requestmap.pages.dev Gute Visualisierung, wenn die Request-Liste in den DevTools nicht ausreicht. Oder um Stakeholder zu beeindrucken!​
Slide 27
Avoid Request Maps • requestmap.webperf.tools ​ • requestmap.pages.dev Gute Visualisierung, wenn die Request-Liste in den DevTools nicht ausreicht. Oder um Stakeholder zu beeindrucken!​
Slide 28
Avoid Request Maps • requestmap.webperf.tools ​ • requestmap.pages.dev Gute Visualisierung, wenn die Request-Liste in den DevTools nicht ausreicht. Oder um Stakeholder zu beeindrucken!​
Slide 29
Avoid Stuff: ungenutzte Sachen finden
Browser DevTools Request Maps
Google Tag Manager ausmisten
Slide 30
Avoid Stuff: ungenutzte Sachen finden
Browser DevTools Request Maps Google Tag Manager ausmisten
Unused CSS/JS via DevTools
Slide 31
Unused CSS/JS
Slide 32
Unused CSS/JS
Slide 33
Unused CSS/JS
Slide 34
Unused CSS/JS
Slide 35
Avoid Code: System Features nutzen
Slide 36
Avoid Code: System Features nutzen
Summary / Details
Slide 37
Summary / Details: HTML Reveal Element
Slide 38
Summary / Details: HTML Reveal Element
Slide 39
Avoid Code: System Features nutzen
System Fonts Summary / Details
Dialog / Modal Feature
Slide 40
Credits: Aishwarya Vijay Kumar auf Dribbble
Slide 41
Slide 42
Slide 43
Avoid Code: System Features nutzen
System Fonts Summary / Details Dialog / Modal Feature
Formular Validierung
Slide 44
Formularvalidierung nativ
Slide 45
Formularvalidierung nativ
Slide 46
Formularvalidierung nativ
Slide 47
Formularvalidierung nativ
Slide 48
Formularvalidierung nativ
Slide 49
Avoid Code: System Features nutzen
System Fonts Summary / Details Dialog / Modal Feature Formular Validierung
System Fonts
Slide 50
Avoid Code System Fonts nutzen Vielleicht kannst du auf Webfonts verzichten. Die System-Schriften auf den Betriebssystemen sind vielfältig.
• https://modernfontstacks.com/ • https://gist.github.com/ don1138/5761014 ​
• https://meowni.ca/ font-style-matcher/​
Slide 51
Avoid Code: System Features nutzen
System Fonts Summary / Details Dialog / Modal Feature Formular Validierung System Fonts
… you get the point!
Slide 52
Drei Fünf Säulen von Website Performance
A
R
O
M
A
AVOID
REDUCE
OPTIMIZE
MEASURE
ATTITUDE
Benutzen wir alles?
Cachen,
Ladeverhalten und
Tooling und
Performance
Brauchen wir alles?​
Komprimieren,
Priorisierung
Monitoring​
Culture​
​Minimieren.
Slide 53
Reduce
Slide 54
Reduce
Caching
Slide 55
Caching und CDN / Proxy Cache​ • deutliches Alarmsignal • wird dir von jedem Testing Tool um die Ohren gehauen • kurze Cache-Zeiten sollten gut begründet sein • immutable nutzen!
Slide 56
Caching und CDN / Proxy Cache​ • deutliches Alarmsignal • wird dir von jedem Testing Tool um die Ohren gehauen • kurze Cache-Zeiten sollten gut begründet sein • immutable nutzen!
Slide 57
Reduce
Caching
Komprimierung
Slide 58
Slide 59
Komprimierung: gzip, brotli •
Gzip als default, drop-in-Lösung ​
•
brotli komprimiert 15–30% besser, aber •
geringerer Browser-Support (93%)
•
dynamische Komprimierung dauert länger
•
Tweaking der 9 gzip und 11 brotli Stufen​
Slide 60
Komprimierung: gzip, brotli •
Gzip als default, drop-in-Lösung ​
•
brotli komprimiert 15–30% besser, aber •
geringerer Browser-Support (93%)
•
dynamische Komprimierung dauert länger
•
Tweaking der 9 gzip und 11 brotli Stufen
🤯
Reduce
Caching Komprimierung Bildformate Responsive Images
Schriften: woff2 Format
Slide 76
Schriften: Woff 2 Format 200
198
• Vergesst andere Formate!
150
•
• Kompatibilität mit alten
100 61 50 0
âś… Browser-Support
ttf Format
woff2 Format
Browsern wollen wir nicht.
Fünf Säulen von Website Performance
A
R
O
M
A
AVOID
REDUCE
OPTIMIZE
MEASURE
ATTITUDE
Benutzen wir alles?
Cachen,
Ladeverhalten und
Tooling und
Performance
Brauchen wir alles?​
Komprimieren,
Priorisierung
Monitoring​
Culture​
​Minimieren.
Slide 82
Slide 83
Optimize
Lazy Loading
Slide 84
Lazy Loading
Slide 85
Lazy Loading via JavaScript​
Slide 86
Lazy Loading via JavaScript​
Slide 87
Lazy Loading via JavaScript​
Slide 88
Lazy Loading via JavaScript​
Slide 89
Lazy Loading nativ
Natives Lazyloading im Browser:
Slide 90
Lazy Loading nativ
Natives Lazyloading im Browser:
Slide 91
Optimize
Lazy Loading
Fassaden
Slide 92
Fassaden
Slide 93
Fassaden
Slide 94
Fassaden
Slide 95
Fassaden
Slide 96
Fassaden •
Videos (youtube/vimeo-lite)
•
Social Media Widgets
•
Chats, Support-Messenger
•
Spiele, Interaktives
•
Dashboards in Apps
•
Formular-Logik
Slide 97
Optimize
Lazy Loading Fassaden
Rel=Preload
Slide 98
Hero-Image
Slide 99
Preload​
Mit Preload-Links können wir im Head einer HTML-Seite dem Browser schon Hinweise geben auf Ressourcen, die während dem Rendern gebraucht werden. Unterstützt: Bilder, Videos, CSS, JS. Schriften!
Cumulative Layout Shift Der Cumulative Layout Shift (CLS) ist eine MaĂźeinheit fĂĽr unerwartetes Verschieben des Layouts einer Website.
CLS ist einer der Core Web Vitals von Google und flieĂźt mit in das Google-Ranking ein!
Platz freihalten gegen Layout-Shift​
aspect-ratio definiert für Box-Elemente automatisch die Höhe anhand der Breite.
Der Wert ist eine Dezimalzahl, die man aber auch durch einen Bruch angeben kann.
Fünf Säulen von Website Performance
A
R
O
M
A
AVOID
REDUCE
OPTIMIZE
MEASURE
ATTITUDE
Benutzen wir alles?
Cachen,
Ladeverhalten und
Tooling und
Performance
Brauchen wir alles?​
Komprimieren,
Priorisierung
Monitoring​
Culture​
​Minimieren.
Measure Speedcurve • kontinuierliches Monitoring • Benchmark mit Konkurrenz​
speedcurve.com
Slide 121
Fünf Säulen von Website Performance
A
R
O
M
A
AVOID
REDUCE
OPTIMIZE
MEASURE
ATTITUDE
Benutzen wir alles?
Cachen,
Ladeverhalten und
Tooling und
Performance
Brauchen wir alles?​
Komprimieren,
Priorisierung
Monitoring​
Culture​
​Minimieren.
Slide 122
Table Captain
13:15 – 14:00 Uhr • How to Start, actually? • Performance Culture: Wie baue ich Performance in unsere Prozesse ein? • Wie bleibe ich schnell? • Best-Practice von ZEIT Online.