4种场景下累计Layout Shift为0?

Cumulative Layout Shift of 0 under 4 scenarios?

我在 4 种情况下测试相同的 URL:

  1. 有广告
  2. 没有“普通”广告,但有 Google 个广告
  3. 没有 Google 广告但有正常广告
  4. 没有广告

在每个场景中,我都从 0

获得一个 CLS

怎么可能,因为 url 确实有一些领域正在发生变化。 谢谢!

您正在发生布局偏移,但不是在 Google Page Speed Insights 正在测量的点上。

桌面端广告加载延迟

问题是网站完全加载,然后广告加载。Page Speed Insights 不会看到此更改,因为它已经完成了测试,所以它认为页面的所有四个版本都是一样的。

在手机上根本不会加载广告(不确定这是不是故意的)所以显然它们没有效果。

除了加载到您网站的广告外,我一眼就能看出布局没有任何变化。因为您在图像上定义了高度和宽度,并且其他渲染都是同时发生的,所以没有“折叠上方”的布局变化,这正是 PSI 所关注的。

实验室数据(模拟数据)与现场数据(真实世界数据)不同的原因是导致页面跳转的广告以及 字段数据是在人们浏览页面时收集的,而不是像 PSI 那样只是在页面加载时停止。 你可能会发现这个 explanation on CLS from Addy Osmani 从事 Google Chrome 有用且相关的工作。

如果您打开开发人员工具并打开“Paint Flashing”和“Layout Shift Regions”(在“Rendering”选项卡下),您有两个工具可用于识别导致布局偏移的原因。 (在你的情况下,这几乎完全取决于你提到的广告。)

阻止这种情况的一种方法是像处理图片一样处理广告区域。在他们加载之前给他们一个高度,然后 space 已经为他们分配了。如果无法简单地定义固定高度,您可以使用 padding-top CSS hack 或类似的东西来实现此目的。