Cumulative Layout Shift (CLS)
(web.dev)Langsames Laden von Bildern/Werbung, asynchrones Verhalten, dynamische DOM-Änderungen usw.
messen, wie stark sich das Layout einer Webseite verändert,
um die visuelle Instabilität zu prüfen, die dazu führen kann, dass Nutzer falsch klicken; eine nutzerzentrierte Performance-Kennzahl
„Ein guter CLS-Wert liegt bei 0,1 oder darunter“
Die Layout Instability API stellt einen Messwert namens Layout Shift Score bereit.
- Layout Shift Score = impact fraction ( wie groß ist das Objekt, das sich bewegt ) * distance fraction ( wie weit bewegt es sich )
- Layout-Änderungen durch Nutzeraktionen sind in Ordnung – wenn es innerhalb von 500 ms eine Nutzereingabe gab, wird `hadRecentInput` gesetzt und kann aus der Berechnung ausgeschlossen werden.
- Statt `height`/`width` zu ändern, `transform:scale()` verwenden
- Statt `top`,`right`,`bottom`,`left` zu ändern, `transform: translate()` verwenden
Methoden zur Verbesserung von CLS
- Für Bilder/Videos immer Größen angeben oder mit CSS Aspect Ratio Boxes usw. den Platz vorab reservieren
- Außer bei Nutzerinteraktionen keine neuen Inhalte über bestehenden Inhalten einfügen
- Übergänge zwischen Zuständen mit Animationen wie CSS Transform umsetzen
4 Kommentare
Wenn sich genau in dem Moment, in dem man drücken will, das Layout plötzlich leicht verschiebt und man dadurch oft falsch tippt, ist das ziemlich nervig – gut, dass es dafür nun endlich eine Möglichkeit zur quantitativen Messung gibt. Meiner persönlichen Einschätzung nach würden die Werte verheerend ausfallen, wenn man das auf den Webseiten von Medienhäusern messen würde.
Bei inländischen Medien gibt es so viele Anzeigen, und diese Anzeigen selbst sind auch noch langsam und flackern, dass schon die Messung an sich wohl bedeutungslos ist ...
Anderes Thema: Ich nutze https://github.com/disjukr/just-news und Tampermonkey, sodass ich bei inländischen Medien nur den Haupttext anschaue. Die Websites sind viel zu unübersichtlich.
Früher hatte ich sogar einmal vor, in Python ein [Programm zu schreiben, das beim Einfügen eines Links zu einem Zeitungsartikel diesen automatisch in einen Link zu einem Portal-Newsartikel umwandelt]. Etwas absurd habe ich dann aber den Quellcode verloren (ich habe ihn versehentlich auf einem RAM-Laufwerk gespeichert und dann neu gestartet), bekam einen Moment der Ernüchterung(?) und habe das Projekt aufgegeben.
Nutzerzentrierte Performance-Metriken
https://web.dev/user-centric-performance-metrics
https://developers.google.com/web/fundamentals/…
Die bisherigen Metriken
loadundDOMContentLoadedsind keine guten Indikatoren.First contentful paint (FCP): Zeitpunkt, an dem die ersten Inhalte auf dem Bildschirm erscheinen
Largest contentful paint (LCP): Zeitpunkt, an dem der größte Textblock oder das größte Bild der Seite angezeigt wird
First input delay (FID): Zeitspanne, nachdem Nutzereingaben möglich sind, bis der Browser tatsächlich darauf reagiert
Time to Interactive (TTI): Zeit vom Laden bis zu dem Punkt, an dem Nutzerinteraktionen möglich sind
Total blocking time (TBT): Gesamte Zeit zwischen FCP und TTI
Cumulative layout shift (CLS): Kennzahl für Layout-Verschiebungen