Website Performance

A presentation at JavaScript Days München in March 2024 in Munich, Germany by Thomas Puppe

Slide 1

Slide 1

Website Performance Thomas Puppe auf den JS Days München 2024

Slide 2

Slide 2

Hi, ich bin Thomas 👋 Senior Frontend Developer bei ZEIT Online #a11y, #leanweb, #webperf​

Slide 3

Slide 3

Slide 4

Slide 4

Hi, ich bin Thomas 👋 Senior Frontend Developer bei ZEIT Online #a11y, #leanweb, #webperf​

Slide 5

Slide 5

Credits: apple.com, Lee Campbell auf Unsplash, Shiwa ID auf Unsplash

Slide 6

Slide 6

www !== wealthy western web

Slide 7

Slide 7

Slide 8

Slide 8

Slide 9

Slide 9

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 10

Slide 10

https://wpostats.com/

Slide 11

Slide 11

Website Performance

Slide 12

Slide 12

Slide 13

Slide 13

TTFB Download Size Asset Count

Slide 14

Slide 14

TTFB Download Size Asset Count window loaded DOM content loaded

Slide 15

Slide 15

TTFB Download Size Asset Count LCP window loaded DOM content loaded CLS INP TTI

Slide 16

Slide 16

LCP CLS DOM content loaded INP window loaded TTFB Asset Download Count Size TTI

Slide 17

Slide 17

Aspekte von Aus Usersicht Website schnell / schlank / ruckelt nicht Performance Browser / Technologien HTML / CSS / Bilder / JavaScript / Schriften / Video / Audio Build / Server Bildformate / Komprimierung / CDN, Cloud / Caching / Netzwerk Wirkung Objektive Zahlen / Subjektive Wahrnehmung Kontrolle Messung / Testing / Monitoring / SEO Einfluss

Slide 18

Slide 18

Drei Säulen von Website Performance A R O

Slide 19

Slide 19

Drei Säulen von Website Performance A R O AVOID REDUCE OPTIMIZE

Slide 20

Slide 20

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 21

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

Slide 22

hands-on Workshop-Anteil lama.thomaspuppe.de 🦙 github.com/thomaspuppe/performance-workshop Dein Projekt 🥰 yoursuperawesomepremiumwebsite.com Credits: mage.space, Ales Nesetril auf Unsplash

Slide 23

Slide 23

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 24

Slide 24

AVOID

Slide 25

Slide 25

Avoid Stuff: ungenutzte Sachen finden Browser DevTools

Slide 26

Slide 26

Browser Developer Tools Network Tab Filter: domain, larger-than, status-code, priority, … https://developer.chrome.com/docs/devtools/network/reference/​

Slide 27

Slide 27

Avoid Stuff: ungenutzte Sachen finden Browser DevTools Request Maps

Slide 28

Slide 28

Avoid Request Maps • requestmap.webperf.tools ​ Gute Visualisierung, wenn die Request-Liste in den DevTools nicht ausreicht. Oder um Stakeholder zu beeindrucken!​

Slide 29

Slide 29

Avoid Request Maps • requestmap.webperf.tools ​ Gute Visualisierung, wenn die Request-Liste in den DevTools nicht ausreicht. Oder um Stakeholder zu beeindrucken!​

Slide 30

Slide 30

Avoid Request Maps • requestmap.webperf.tools ​ Gute Visualisierung, wenn die Request-Liste in den DevTools nicht ausreicht. Oder um Stakeholder zu beeindrucken!​

Slide 31

Slide 31

Request Map Erstelle eine Übersicht über alle Requests: https://requestmap.webperf.tools/ Credit: Pitch Sticker “Cyberpunk”

Slide 32

Slide 32

Avoid Stuff: ungenutzte Sachen finden Browser DevTools Request Maps Google Tag Manager ausmisten

Slide 33

Slide 33

Avoid Stuff: ungenutzte Sachen finden Browser DevTools Request Maps Google Tag Manager ausmisten Unused CSS/JS via DevTools

Slide 34

Slide 34

Unused CSS/JS

Slide 35

Slide 35

Unused CSS/JS

Slide 36

Slide 36

Unused CSS/JS

Slide 37

Slide 37

Unused CSS/JS

Slide 38

Slide 38

Unused CSS/JS vermeiden durch situatives Laden von Code • Aufteilung nach Seitentypen (centerpage.css, article.css, search.css)​ • Vorhandensein von Elementen checken (serverseitig)​ • Dynamisches Laden (clientseitig)

Slide 39

Slide 39

Avoid Code: System Features nutzen

Slide 40

Slide 40

Avoid Code: System Features nutzen System Fonts

Slide 41

Slide 41

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 42

Slide 42

Avoid Code: System Features nutzen System Fonts Summary / Details

Slide 43

Slide 43

Summary / Details: HTML Reveal Element

Slide 44

Slide 44

Summary / Details: HTML Reveal Element

Slide 45

Slide 45

Avoid Code: System Features nutzen System Fonts Summary / Details Dialog / Modal Feature

Slide 46

Slide 46

Credits: Aishwarya Vijay Kumar auf Dribbble

Slide 47

Slide 47

Slide 48

Slide 48

Avoid Code: System Features nutzen System Fonts Summary / Details Dialog / Modal Feature Formular Validierung

Slide 49

Slide 49

Formularvalidierung nativ

Slide 50

Slide 50

Formularvalidierung nativ

Slide 51

Slide 51

Formularvalidierung nativ

Slide 52

Slide 52

Formularvalidierung nativ

Slide 53

Slide 53

Formularvalidierung nativ

Slide 54

Slide 54

Avoid Code: System Features nutzen System Fonts Summary / Details Dialog / Modal Feature Formular Validierung Sharing API

Slide 55

Slide 55

Sharing API

Slide 56

Slide 56

Avoid Code: System Features nutzen System Fonts Summary / Details Dialog / Modal Feature Formular Validierung Sharing API … you get the point!

Slide 57

Slide 57

Avoid Code: System Features nutzen

Slide 58

Slide 58

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 59

Slide 59

Reduce

Slide 60

Slide 60

Reduce Caching

Slide 61

Slide 61

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 62

Slide 62

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 63

Slide 63

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 64

Slide 64

Reduce Caching Caching via ServiceWorker

Slide 65

Slide 65

Browser Caching via Service Worker​ HTTP Cache CDN Server

Slide 66

Slide 66

Browser Service Worker HTTP Cache CDN TabletGothic.woff2 Franziska.woff2 Caching via Service Worker​ Der Service Worker ist wie ein programmierbarer Proxy Server, mit dem sich Requests und Responses per JavaScript ​modifizieren lassen. Er verfügt über einen eigenen Cache.​ Server

Slide 67

Slide 67

Browser Service Worker HTTP Cache CDN TabletGothic.woff2 Franziska.woff2 Caching via Service Worker​ Der Service Worker ist wie ein programmierbarer Proxy Server, mit dem sich Requests und Responses per JavaScript ​modifizieren lassen. Er verfügt über einen eigenen Cache. Dieser Cache ist theoretisch schneller​(praktisch nicht). Dieser Cache speichert deutlich länger bei gleicher TTL.​* Server

Slide 68

Slide 68

Browser Service Worker HTTP Cache CDN TabletGothic.woff2 Franziska.woff2 Caching via Service Worker​ Der Service Worker ist wie ein programmierbarer Proxy Server, mit dem sich Requests und Responses per JavaScript ​modifizieren lassen. Er verfügt über einen eigenen Cache. Dieser Cache ist theoretisch schneller​(praktisch nicht). Dieser Cache speichert deutlich länger bei gleicher TTL.​* Server

Slide 69

Slide 69

Reduce Caching Caching via ServiceWorker Komprimierung

Slide 70

Slide 70

Slide 71

Slide 71

Slide 72

Slide 72

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 73

Slide 73

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 74

Slide 74

Reduce Caching Caching via ServiceWorker Komprimierung Bildformate

Slide 75

Slide 75

WebP / Avif : Vorteile Größe in kB 680 png jpg 69.7 webp 48 32 avif Größe in kB 46.6 png jpg 24.4 webp avif 5.8 1

Slide 76

Slide 76

WebP / Avif : Nutzung

Slide 77

Slide 77

ZEIT Online unterstützt noch kein AVIF.

Slide 78

Slide 78

WebP / Avif : Einsatz Squoosh https://www.smashingmagazine.com/2021/09/modern-image-formats-avif-webp/

Slide 79

Slide 79

WebP / Avif : Einsatz bei ZEITOnline https://img.zeit.de/2023/47/ren-benko-immobilien-signa-gruppe-verluste-bild/wide__1000x562__desktop

Slide 80

Slide 80

Reduce Bildkomprimierung: Testing-Tools​ lokal: Lighthouse im Browser online: webspeedtest.cloudinary.com

Slide 81

Slide 81

Bildkomprimierung Checkt das Potential für Bildkomprimierung auf eurer Website: https://webspeedtest.cloudinary.com/ Credit: Pitch Sticker “Cyberpunk”

Slide 82

Slide 82

Reduce Caching Caching via ServiceWorker Komprimierung Bildformate Responsive Images

Slide 83

Slide 83

Responsive Images Credit: httparchive.org

Slide 84

Slide 84

Responsive Images Credit: httparchive.org

Slide 85

Slide 85

Responsive Images Credit: httparchive.org

Slide 86

Slide 86

Responsive Images Credit: httparchive.org

Slide 87

Slide 87

Reduce Responsive Images Checker 1) DevTools 2) Lighthouse 3) Online Tools wie https://toolsaday.com/seo/ responsive-image-checker

Slide 88

Slide 88

Responsive Images Verwendung 1) Erzeugung https://responsivebreakpoints.com/

Slide 89

Slide 89

Responsive Images Verwendung 1) Erzeugung 2) Einbindung

Slide 90

Slide 90

Reduce Caching Caching via ServiceWorker Komprimierung Bildformate Responsive Images Schriften: woff2 Format

Slide 91

Slide 91

Schriften: Woff 2 Format 200 198 • Vergesst andere Formate! 150 • 100 • Kompatibilität mit alten 80 61 50 0 ttf Format woff Format ✅ Browser-Support woff2 Format Browsern wollen wir nicht.

Slide 92

Slide 92

Reduce Caching Caching via ServiceWorker Komprimierung Bildformate Responsive Images Schriften: woff2 Format Schriften: Subsetting

Slide 93

Slide 93

Reduce Schriften: Subsetting • https://wakamaifondue.com für Schriften-Eigenschaften​​

Slide 94

Slide 94

Reduce Schriften: Subsetting • https://wakamaifondue.com für Schriften-Eigenschaften​ ​ • https://everythingfonts.com/ subsetter als Subsetting-GUI Erkennung der Inhalte​ 13 0 Su bs et Range und automatischer 50 La tin Subsetting-CLI mit Unicode- 61 of f2 web/glyphhanger​als 80 100 Fo rm at • https://www.zachleat.com/ w of f2 ​ 150 w of fF or m at • https://transfonter.org/ 200 tt fF or m at ​ 198

Slide 95

Slide 95

Webfonts Woff2 und Subsetting • Benutzt du woff2? Und/oder andere Formate? Vergleiche die Größe. https://transfonter.org​ ​ • Was kann dein Font-File? https://wakamaifondue.com ​ • Erstelle ein passendes Subset. https://everythingfonts.com/subsetter​ Credit: Pitch Sticker “Cyberpunk”

Slide 96

Slide 96

Reduce Caching Caching via ServiceWorker Komprimierung Bildformate Responsive Images Schriften: woff2 Format Schriften: Subsetting

Slide 97

Slide 97

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 98

Slide 98

Pause Credit: Pitch Sticker “Cyberpunk”

Slide 99

Slide 99

Slide 100

Slide 100

Optimize Lazy Loading

Slide 101

Slide 101

Lazy Loading

Slide 102

Slide 102

Lazy Loading via JavaScript​

Slide 103

Slide 103

Lazy Loading via JavaScript​

Slide 104

Slide 104

Lazy Loading via JavaScript​

Slide 105

Slide 105

Lazy Loading via JavaScript​

Slide 106

Slide 106

Lazy Loading nativ Natives Lazyloading im Browser:

Slide 107

Slide 107

Lazy Loading nativ Natives Lazyloading im Browser:

Slide 108

Slide 108

Lazy Loading nativ Natives Lazyloading im Browser:

Slide 109

Slide 109

loading=lazy Verbreitung: 30% der Seiten im Netz nutzen das loading=lazy Attribut an Bildern. Credit: https://httparchive.org/reports/state-of-images#imgLazy

Slide 110

Slide 110

Lazy Loading nativ kein Throttling: 2 Bilder fast 3G: 7 Bilder slow 3G: 16 Bilder

Slide 111

Slide 111

Lazy Loading nativ Mit loading=lazy übergibt man die Kontrolle an den Browser. Und der macht vielleicht Dinge, die man nicht möchte. Zum Beispiel wird mehr vorgeladen, wenn die Internetverbindung langsam ist! kein Throttling: 2 Bilder fast 3G: 7 Bilder slow 3G: 16 Bilder

Slide 112

Slide 112

Optimize Lazy Loading Fassaden

Slide 113

Slide 113

Fassaden

Slide 114

Slide 114

Fassaden

Slide 115

Slide 115

Fassaden

Slide 116

Slide 116

Fassaden

Slide 117

Slide 117

Fassaden • Videos (youtube/vimeo-lite) • Social Media Widgets • Chats, Support-Messenger • Spiele, Interaktives • Dashboards in Apps • Formular-Logik

Slide 118

Slide 118

Fassaden • Videos (youtube/vimeo-lite) • Social Media Widgets • Chats, Support-Messenger • Spiele, Interaktives • Dashboards in Apps • Formular-Logik

Slide 119

Slide 119

Optimize Lazy Loading Fassaden Layout Shift

Slide 120

Slide 120

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!

Slide 121

Slide 121

LCP CLS DOM content loaded INP window loaded TTFB Asset Download Count Size TTI

Slide 122

Slide 122

Slide 123

Slide 123

Slide 124

Slide 124

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.

Slide 125

Slide 125

Optimize Layout Shift • Chrome DevTools: • → Console Drawer • → Rendering • → Layout Shift • → Core Web Vitals ​ • Chrome Plugins ​ • https://defaced.dev/tools/ layout-shift-gif-generator/​ ​ • npm install -g layout-shift-gif​ ​ • JS Performance Observer API → Tracking​

Slide 126

Slide 126

Layout Shift • Layout Shift mit den DevTools messen: vorher und nachher​ • Platz für “Hero-Image” oder andere Elemente via aspect-ratio frei halten ​ • Bonus: Live-Experiment über die Local Overrides Credit: Pitch Sticker “Cyberpunk”

Slide 127

Slide 127

Exkurs Local Overrides in den Chrome DevTools • → Settings • → Enable Local Overrides • (Permissions)​ • Inspect Tab • → CSS Source • → ändern und speichern • (HTML und JS ebenso)

Slide 128

Slide 128

Optimize Lazy Loading Fassaden Layout Shift Rel=Preload

Slide 129

Slide 129

Hero-Image

Slide 130

Slide 130

Die Spalten im Netzwerk-Tab der Developer Tools lassen sich anpassen. So kann man zum Beispiel den Initiator von Requests anzeigen.

Slide 131

Slide 131

Critical Rendering Path im Browser Credit: https://www.youtube.com/watch?v=ufCVTowBxoY

Slide 132

Slide 132

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 werden nicht nur Bilder, sondern auch Videos, JS Dateien, CSS Dateien.

Slide 133

Slide 133

Hero-Image mit rel=preload

Slide 134

Slide 134

Developer Tools:​ Resource Priority Im Netzwerk-Tab kann man mit der rechten Maustaste die dargestellten Spalten umstellen. Eine davon ist die Priority. Sie zeigt an, ob der Browser dieselbe Vorstellung von Resource Priority hat wie ihr.-

Slide 135

Slide 135

rel=preload Browser Support

Slide 136

Slide 136

rel=preload und Media Queries, Retina

Slide 137

Slide 137

Während Preload Ressourcen auf der aktuellen Seite priorisiert, können mit Prefetch Inhalte vorgeladen werden, die auf späteren Seiten benötigt werden. Prefetch Das funktioniert für HTML-Seiten Bilder, Videos, Styles, JS. Es verbraucht Traffic, sollte also bewusst und gezielt eingesetzt werden. User können es in den Browser-Settings unterbinden. “Quicklink” und “Guess” sind JavaScript Bibliotheken, die das Prefetchen automatisieren.

Slide 138

Slide 138

Slide 139

Slide 139

Slide 140

Slide 140

Optimize Lazy Loading Fassaden Layout Shift Rel=Preload Font Loading

Slide 141

Slide 141

Google Fonts

Slide 142

Slide 142

Google Fonts

Slide 143

Slide 143

Selfhosted Fonts

Slide 144

Slide 144

Optimize Lazy Loading Fassaden Layout Shift Rel=Preload Font Loading Font Display

Slide 145

Slide 145

… und während dem Laden der Webfonts?

Slide 146

Slide 146

… und während dem Laden der Webfonts? Credit: Zach Leatherman: The Mitt Romney webfont problem

Slide 147

Slide 147

… und während dem Laden der Webfonts? Credit: https://dontasktoask.com/

Slide 148

Slide 148

Credits: https://www.fasterize.com/en/blog/web-performance-optimising-loading/

Slide 149

Slide 149

font-display Die font-display CSS-Property an @font-face Definitionen gibt dem Browser die Ladestrategie für Webfonts vor.​

Slide 150

Slide 150

font-display Die font-display CSS-Property an @font-face Definitionen gibt dem Browser die Ladestrategie für Webfonts vor.​

Slide 151

Slide 151

font-display font-display: block; font-display: swap; font-display: fallback; font-display: optional; block swap fallback optional Platz wird freigehalten, System-Font wird Platz wird kurz freigehalten, Wie Fallback, aber der bis die Webfont angezeigt, bis die dann wird Systemfont Browser darf die Webfont geladen ist. Webfont geladen ist. gezeigt, dann die Webfont auch weglassen bei (wenn binnen 3s geladen). langsamen Verbindungen.​ Beim nächsten Seitenaufruf Beim nächsten Seitenaufruf ist die Schrift dann da. ist die Schrift dann da. FOIT FOUT (flash of invisible text) (flash of unstyled text) auto ist der Browser-Default, und das ist in der Regel swap/fallback. Swap wird auch von Google Fonts mitgegeben.

Slide 152

Slide 152

Optimize Lazy Loading Fassaden Layout Shift Rel=Preload Font Loading Font Display

Slide 153

Slide 153

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 154

Slide 154

Measure

Slide 155

Slide 155

Measure DevTools

Slide 156

Slide 156

Measure DevTools • Throttling • Local Source Overrides • Web Vitals Score • Layout Shift • Unused CSS/JS ​ • JavaScript: Memory, Frame Rate,​CPU Flame Graphs devtoolstips.org

Slide 157

Slide 157

Measure DevTools Lighthouse

Slide 158

Slide 158

Measure Lighthouse • Web Vital Scores • konkrete Todos zur Verbesserung • DevTools ​ • CLI npm install -g lighthouse​ ​ • npx lightouse

Slide 159

Slide 159

Measure Pagespeed Insights • Lighthouse, aber online​ pagespeed.web.dev

Slide 160

Slide 160

Measure Pagespeed Insights • Lighthouse, aber online​ pagespeed.web.dev

Slide 161

Slide 161

Measure DevTools Lighthouse Webpagetest

Slide 162

Slide 162

Measure Webpagetest webpagetest.org

Slide 163

Slide 163

Webpagetest Wessen Seite wollen wir checken? 🙋‍♀️ Credit: Pitch Sticker “Cyberpunk”

Slide 164

Slide 164

Measure Webpagetest webpagetest.org und perfproxy.com zum Erzeugen von mehr Experimenten​

Slide 165

Slide 165

Measure DevTools Lighthouse Webpagetest Speedcurve

Slide 166

Slide 166

Measure Speedcurve • kontinuierliches Monitoring speedcurve.com

Slide 167

Slide 167

Measure Speedcurve • kontinuierliches Monitoring • Real User Monitoring speedcurve.com

Slide 168

Slide 168

Measure Speedcurve • kontinuierliches Monitoring • Real User Monitoring • Empfehlungen speedcurve.com

Slide 169

Slide 169

Measure Speedcurve • kontinuierliches Monitoring • Real User Monitoring • Empfehlungen • Benchmarks speedcurve.com

Slide 170

Slide 170

Measure Speedcurve speedcurve.com

Slide 171

Slide 171

Measure DevTools Lighthouse Page Speed Insights Webpagetest Speedcurve CrUX

Slide 172

Slide 172

Measure CrUX developer.chrome.com/ docs/crux/dashboard/

Slide 173

Slide 173

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 174

Slide 174

Attitude Regression vermeiden

Slide 175

Slide 175

Regression vermeiden • Permanentes Monitoring • Performance Budgets • synthetisch • npm Pakete • ggf RUM • CSS Output • monatliche CrUX Reports • Alerts von Speedcurve, Webpagetest, …

Slide 176

Slide 176

Attitude Regression vermeiden Performance Culture

Slide 177

Slide 177

Performance Culture • Buy-In von der Chefetage • Zahlen • Dashboards • Konkurrenz-Benchmarks und Web Vitals

Slide 178

Slide 178

Slide 179

Slide 179

Performance Culture • Buy-In von der Chefetage • Zahlen • Dashboards • Konkurrenz-Benchmarks und Web Vitals

Slide 180

Slide 180

Performance Culture • Buy-In von der Chefetage • Performance als Feature • Zahlen • in NFRs aufnehmen • Dashboards • BUG-Tickets schreiben • Konkurrenz-Benchmarks und Web Vitals

Slide 181

Slide 181

Third Party

Slide 182

Slide 182

Party

Slide 183

Slide 183

Slide 184

Slide 184

Challenge: Third-Party Inhouse Third-Party Externe Third-Party • Dashboards • Werbung • Scrollytelling • Tracking • Eigenwerbung für zB. Veranstaltungen • Dienste, Social Media

Slide 185

Slide 185

Challenge: Third-Party Inhouse Third-Party Externe Third-Party • Dashboards • Werbung • Scrollytelling • Tracking • Eigenwerbung für zB. Veranstaltungen • Dienste, Social Media Was tun ? • Code Reviews • Dashboards • bisschen Fatalismus

Slide 186

Slide 186

Challenge: Third-Party Inhouse Third-Party Externe Third-Party • Dashboards • Werbung • Scrollytelling • Tracking • Eigenwerbung für zB. Veranstaltungen • Dienste, Social Media Was tun ? Was tun? • Code Reviews • “Fassaden” und Lazy Loading • Dashboards • Kontakt suchen, oder Alternativen • bisschen Fatalismus • viel Fatalismus

Slide 187

Slide 187

Attitude Regression vermeiden Performance Culture Up-to-date bleiben

Slide 188

Slide 188

Up-to-date bleiben • web.dev/fast , web.dev/learn/performance • github.com/davidsonfellipe/awesome-wpo • www.smashingmagazine.com/category/performance/ • perfplanet.com ​ • calibreapp.com/blog • speedcurve.com/blog • debugbear.com/blog ​ • simonhearne.com/posts • csswizardry.com/archive • timkadlec.com/remembers

Slide 189

Slide 189

Dankeschön ❤️

Slide 190

Slide 190

Dankeschön ❤️ www.thomaspuppe.de ​https://webperf.social/@thomaspuppe