Google’s new ranking algorithm that launches next year, the Page Experience Update, has metric named CLS, Cumulative Layout Shift. It checks to see if things on the page jump around as it loads. Philip Walton, a Senior Developer Programs Engineer at Google, said that this is measured throughout the entire lifecycle of the page.
He said this during the web.dev Live event at the 1 hour and 57 minute mark. “CLS measures layout shifts that happen during the entire lifecycle of the page,” he said. This is “from when you load the page, until when you unload the page. Even if you leave the page open for days or weeks, it does measure that entire time,” he added.
Here is the video embed at the start time:
Here is the transcript:
So that’s actually a really good point. I’m glad you brought it up.
CLS measures layout shifts that happen during the entire lifecycle of the page. From when you load the page, until when you unload the page. Even if you leave the page open for days or weeks, it does measure that entire time.
Whereas here in DevTools, you ran a trace and you saw the layout shift that happened during that trace. And so in this particular case, CLS was only measuring layout shifts for a small period of time. It’s important that developers keep that in mind because, you know, the actual metric definition is for the entire lifespan of the page. So if you run a Lighthouse trace or a WebPageTest trace, or even in DevTools, and you see a certain value and it’s below 0.1, the threshold I just mentioned, just keep in mind that you have to actually be measuring it the entire time. You know, that’s the measure that counts, is the entire lifecycle of a page.
So you can’t just run the developer tools on a page for a second or so and expect the score to match what you see in the core web vitals Search Console report.
Hat tip to Glenn:
Clarification about CLS from Google’s @philwalton: CLS measures layout shifts during the *entire lifecycle* of the page. In Dev Tools, CLS is measured for a small period of time, but the actual definition is for the entire lifecycle. That’s what counts: https://t.co/8fD1wExH9O pic.twitter.com/8QOQFC8XAA
— Glenn Gabe (@glenngabe) July 1, 2020
Also, FID, First Input Delay, is not in Chrome Dev Tools because it requires user interaction, but Total Blocking Time (TBT) is in Dev Tools and it’s a proxy for First Input Delay.
Forum discussion at Twitter.