Ich finde die von Google entwickelten Core Web Vitals immer noch clever. Als ich mich anfangs um Performance kümmerte, ging es nur darum: Anfragen reduzieren! Dinge cachen! Sachen kleiner machen! Und obwohl all das sehr eng mit Web-Performance zusammenhängt, ist es abstrakt damit verbunden. Tatsächliche Web-Performance für Nutzer sind Dinge wie: Wie lange musste ich warten, bis ich den Inhalt auf der Seite sehen konnte? Wie lange, bis ich tatsächlich mit der Seite interagieren konnte, z. B. in ein Formular tippen oder auf einen Link klicken? Sprangen Dinge störend herum, während ich versuchte, etwas zu tun? Deshalb sind die Core Web Vitals schlau: Sie messen diese Dinge.
Der Lighthouse-Tab in den Chrome DevTools hat sie jetzt

Es ist gut, sie im Auge zu behalten, denn denken Sie daran, abgesehen davon, dass diese Zahlen einen direkten Vorteil für Ihre Nutzer haben, sobald sie auf Ihrer Website sind, könnten sie auch beeinflussen, ob Nutzer überhaupt auf Ihre Website gelangen. Web Core Vitals fließen in SEO ein und sind wichtig für die neuen Karussellanforderungen, die bisher nur AMP-Seiten vorbehalten waren.
Das Nachverfolgen dieser Zahlen bei einmaligen Audits ist nützlich, aber noch nützlicher ist es, sie über die Zeit zu beobachten, um sich vor einem Rückgang zu schützen. Performance-Tools wie Calibre decken sie ab. New Relic hat sie integriert. SpeedCurve verfolgt sie.
Cumulative Layout Shift (CLS) ist eine knifflige Sache. Das ist die Metrik, bei der beispielsweise eine Anzeige am Anfang eines Artikels steht. Die Anfrage für diese Anzeige erfolgt asynchron, daher besteht eine gute Chance, dass die Anzeige spät geladen wird und den Inhalt des Artikels nach unten verschiebt. Das ist nicht nur ärgerlich, sondern ein echter Schlag für die Performance-Metriken und letztendlich für SEO.
Nic Jansmas Beitrag „Cumulative Layout Shift in Practice“ bietet eine tiefe Analyse.
CLS ist nicht nur „macht die Seite das oder nicht?“. Es gibt eine Punktzahl, wie die obige Abbildung zeigt. Ich würde sagen, 0 ist ein gutes Ziel, da es keine Version von CLS gibt, die für irgendjemanden gut ist. Es gibt viele Nuancen, wie das Nachverfolgen „synthetisch“ (z. B. in einem Headless-Browser, insbesondere für Performance-Tools) und mit echten Nutzern auf Ihrer echten Website (was RUM oder Real User Metrics genannt wird). Beides ist nützlich.
Wenn Sie CLS-Probleme haben, die Sie beheben müssen, kann das schwierig sein. SpeedCurve hat neue Werkzeuge, die dabei helfen.
Für jeden Layout-Shift zeigen wir Ihnen den Filmstreifenrahmen direkt vor und direkt nach dem Shift. Dann zeichnen wir eine rote Box um die Elemente, die sich bewegt haben, und heben genau hervor, welche Elemente den Shift verursacht haben. Der Layout-Shift-Score für jeden Shift hilft Ihnen auch zu verstehen, wie sich dieser Shift auswirkt und wie er zur kumulativen Punktzahl beiträgt.

Das würde es ziemlich einfach machen, die Ursachen zu finden und zu beheben, hoffe ich. Insbesondere die kniffligen Fälle. Ich wusste das nicht, aber CLS kann durch weitaus subtilere Dinge verursacht werden, wie Mark Zeman in dem Beitrag aufzeigt. Zum Beispiel:
- Ein Bildkarussell, das sich nur horizontal bewegt, kann CLS auslösen. Das ist ein Dämpfer, da es das ist, was es eigentlich tun soll, aber anscheinend kann man es austricksen, indem man Karussells nur mit CSS-
transformbewegt. - Wenn Sie einen sehr großen Bereich haben, ist es besonders riskant, ihn zu bewegen. Wenn er sich auch nur ein kleines bisschen bewegt, wirkt sich das stark auf CLS aus.
- Flash of Unstyled Text (FOUT) ist eine Ursache für CLS. Obwohl das aus anderen Gründen gut für die Performance ist! Ein Teufelskreis! Es ist eine gute Ausrede, zu perfekten Schrift-Fallbacks zu greifen.
Knifflige, aber wichtige Dinge. Ich muss dringend Performance-Tests in meine CI/CD integrieren, was wirklich helfen wird. Es fühlt sich immer mehr so an, als ob Web-Performance ein eigenes Karrierezweiglein der Webentwicklung ist. Front-End-Webentwickler müssen das wirklich verstehen und in gewissem Umfang helfen, aber wir haben schon so viel zu tun.
Wenn ich Sie richtig verstehe. Ich stimme nicht ganz zu, dass Web-Performance ein Teilgenre ist. Ich denke, es ist einfach Teil des Jobs.
Der Beitrag sagt dasselbe: Es ist ein fortlaufender Teil des Jobs (d.h. es wird nicht verschwinden) und daher müssen wir diese Metriken verstehen und wie unsere Arbeit sie beeinflusst.
Ich bin wirklich sehr frustriert mit FCP, CLS und anderen. Die Seitengeschwindigkeit meiner Website funktioniert nicht richtig.
Ich habe darüber nachgedacht, wie mich das alles an einen großartigen Increment-Artikel erinnert, den ich gelesen habe, bis mir der Autor einfiel.
Ich bin dafür, die Performance zu verbessern, aber ich lehne die Vorstellung ab, dass Google das Recht hat, von oben herab Urteile über Best Practices für Entwickler zu fällen. Ihre erfundenen Begriffe wie CLS sollten auch kein Rankingfaktor sein.
Sie können gerne einen neuen Begriff vorschlagen, Michael. Früher hieß es Layout Jank API. Aber es dient derzeit dazu, einen Zustand eines Seitenaufrufs zu beschreiben. Stimmen Sie zu, dass das Auf- und Abspringen von Inhalten eine schlechte Benutzererfahrung ist? Denn wenn ja, sind Sie und Google auf derselben Seite. Nomenklatur kann sicherlich diskutiert werden. Sie können gerne ein Problem melden.
Hallo Chris, danke für die Information.
Und hier ist eine Story über die Optimierung einer E-Commerce-App mit hohem Traffic (1 Million Sitzungen täglich) in Griechenland. Vielleicht finden Sie sie interessant.
https://engineering.skroutz.gr/blog/speed-the-journey-to-delivering-a-faster-experience-at-skroutz-gr/
Seien Sie sich bewusst, dass Core Web Vitals und insbesondere CLS nicht gut mit PWAs und Single Page Apps harmonieren. Sie können in Lighthouse einen anständigen CLS haben, aber Core Web Vitals können viel höher sein, da er mit der Zeit, die ein Nutzer auf Ihrer Seite verbringt, weiter ansteigt.
Diese Metriken und Konzepte haben es dem gewöhnlichen Entwickler ermöglicht, sich mit Details zur Performance zu befassen, die er zuvor nicht kannte. Ich stimme auch der Idee zu, dass das für alle gut ist. Und was manche oft übersehen, ist, dass sich dies weiterentwickelt und im Laufe der Zeit angepasst wird.
Sie könnten auch das hier als hilfreich empfinden, Chris, gerade erst vor ein paar Tagen veröffentlicht: einige Änderungen daran, wie CLS zukünftig behandelt wird, mit Änderungen, die derzeit in Canary 88 live sind.
https://chromium.googlesource.com/chromium/src/+/master/docs/speed/metrics_changelog/2020_10_cls.md
Habe bemerkt, dass web.dev (also Google) dieses kostenlose eBook anbietet: Optimize for Core Web Vitals