INP指标表现不佳原因(1): Cookie Banner和4个优化技巧

Rick
Rick
发布于 2024-09-29 / 97 阅读
0

Cookie Banner:是用户体验的守护者,还是网页性能的隐形杀手?

你是否注意到,越来越多的网站上悄然出现了一个小弹窗——Cookie Banner?它就像一位尽职的守门人,提醒访客网站正在使用Cookie,并征求他们的同意,提示着网站不仅能遵守法律,还能提升用户体验和信任度

从2023年开始,数据隐私法律法规,例如欧盟的《通用数据保护条例》(GDPR) 和巴西的《通用数据保护法》(LGPD) 规定,公司必须通过 Cookie 告知用户其数据收集做法并获得用户同意。不遵守这些要求可能会给公司带来高昂的后果,包括巨额罚款、法律后果和用户信任度下降

所以,很多电商网站(尤其是跨境卖家)开始制作 Cookie 横幅,告知用户网站使用Cookie并征得同意收集个人数据。不过,也有调查显示,有 80% 的消费者表示,他们已经离开某个品牌网站,因为该品牌未经他们的同意使用了他们的数据。所以该项工作势在必行。(包括谷歌提到的Chrome开始使用第三方cookie也有关)

但另一方面,它也可能成为网页性能的“隐形杀手”!这是因为Cookie Banner通常会在网页渲染过程中过早地加载,占用了网页渲染前期宝贵的请求资源,这可能会影响网页中的广告或其他内容的加载。

  • LCP(Largest Contentful Paint):大多数Cookie Banner在网页上的展示区域都比较小,所以一般不会被当作当前网页中的最大内容元素。不过,在某些情况下可能会发生这种情况,尤其是在移动设备上,在移动设备上,Cookie Banner会占用大部分屏幕,当横幅中包含一大段文本时,可能就会出现这种情况。

  • INP(Interaction to Next Paint):Cookie Banner通常时导致网页INP较高的原因,主要原因时当用户点击“Accept”按钮后,后台会加载或执行大量的第三方脚本,这会导致浏览器主线程长时间被占用,从而造成网页INP指标变差。

  • CLS(Cumulative Layout Shift):Cookie Banner大多是通过脚本创建并动态插入到网页中去,这可能就会造成网页元素意外的偏移。

第三方Cookie Banner插件:性能杀手?

第三方Cookie Banner插件往往比网站自己开发的解决方案对性能的影响更大。这些插件通常会引入多个外部资源,增加了加载延迟和布局变化的风险,所以在选择插件的时候也需要谨慎选择。

下面介绍一些如何优化Cookie Banner的方式。

4个优化Cookie Banner的实用技巧

如果你的网站代码中,Cookie Banner脚本是同步加载的,那么你应该把它修改为异步加载,所有的非异步加载的脚本都会阻止浏览器解析器,这回导致网页渲染时间变长,LCP指标变差。

<script src="https://cookie-banner.com/script.js" async></script>

注意:如果必须使用同步加载,那么请尽早的建立网络连接(dns-prefetchpreconnect),以确保脚本能够尽快加载。

2. 与第三方插件源尽早建立连接

当使用第三方Cookie Banner展示插件时,最好在<head>中使用dns-prefetchpreconnect来尽早与第三方源建立连接,它们能够让浏览器提前解析域名,减少后续同域名下的资源请求延迟

<link rel="preconnect" href="https://cdn.cookie-banner.com/">

注意:合理使用 dns-prefetchpreconnect 可以提升网页性能,但需要谨慎选择连接的第三方源,并控制使用数量(1-3 个域名)。

3. 预加载Cookie Banner插件

preload 是一种资源提示技术,主要用于告诉浏览器在页面加载时优先加载某些关键资源。

<link rel="preload" href="https://cdn.cookie-banner.com/cookie-script.js">

注意:使用preload时应当只应用于关键资源,过多的预加载可能导致网络资源的浪费,反而影响性能。阅读更多:Preload, Preconnect, Prefetch

4. 减少Cookie Banner导致的页面布局偏移

  1. 为Cookie Banner在DOM中预留空间:

    <div id="cookie-banner" style="min-height:100px;"></div>

  2. 减少使用Cookie Banner加载动画,例如"<font style="color:rgb(32, 33, 36);">sliding animation</font>"

    cookie-banner.gif

  3. 尽量使用系统自带字体,在自定义字体未加载前,浏览器可能会使用默认字体,加载后又替换为目标字体,导致页面布局的偏移。

  4. 使用CSS进行布局管理,通过CSS设置Cookie Banner的位置和样式,确保其在加载后不会引起其他元素的移动。例如,可以使用position: fixed;将横幅固定在页面顶部,这样即使在内容加载时,其他元素的位置也不会受到影响。

如何定位页面偏移元素可以参考google官方文档:https://web.dev/articles/debug-layout-shifts

优化Cookie Banner不仅能提升网页性能,还能改善用户体验。通过合理的加载策略、连接优化和布局管理,可以有效减少Cookie Banner对网页性能的负面影响。在实施这些优化措施时,务必保持对性能指标的监控,以确保用户在网站上的体验始终处于最佳状态,对于谷歌SEO来说,也非常重要。

记住:

  • Cookie Banner虽然重要,但不要让它成为网页性能的绊脚石。

  • 优化Cookie Banner,让用户在享受流畅体验的同时,也能安心浏览你的网站。

让我们一起,打造一个既合规又高效的网络世界!

希望这篇优化后的文章能给您带来帮助!

更多相关文章:

多国数据隐私政策链接:EU’s GDPR, Brazil’s LGPD, South Africa’s POPIA, Thailand’s PDPA, Malaysia’s PDPA