4

在我的网站的 PageSpeed Insights 报告中(site here),它列出了“推迟未使用的 CSS”作为一个机会。我不清楚我究竟需要做什么来解决这个问题。我已经确保列表中的每个 CSS 文件都加载了一个<link rel="preload">标签,这确保了文件是异步加载的(截图)。根据Google 的说明,我什至使用loadCSS来执行此操作。为什么这不能解决“推迟未使用的 CSS?” 听起来这正是我所做的。

我有理由确定 CSS 文件是异步加载的,因为 PageSpeed Insights 不再在“消除渲染阻塞资源”部分中报告它们(它以前这样做过)。

我看过这个以前的 Stack Overflow 问题。这个问题没有公认的答案,而且我相信我的问题有点不同。在那个问题中,OP 询问如何解决“推迟未使用的 CSS”。我特别问为什么rel=preload不解决“推迟未使用的 CSS”。

4

3 回答 3

3

要解决此问题,您需要完全删除页面中未使用的 CSS 规则。异步加载 CSS 文件无助于解决此问题

因此,该建议的命名存在歧义,从而导致混淆。这已在问题中讨论 - https://github.com/GoogleChrome/lighthouse/issues/6588

我同意问题作者的观点;我还看到许多阅读此标签的人(自从 Google Pagespeed Insights 开始使用 Lighthouse 以来)因为他们仍然有渲染阻止 CSS,而他们没有(因为此警告显示任何 css,异步与否,未使用在页面上)。它变得更糟,因为您链接到的页面更多地谈论渲染阻塞和关键 CSS,而不是“删除未使用的 CSS”。它还在更典型的意义上使用“延迟”(加载异步,而不是从页面中删除)。

为解决这一困惑,Lighthouse 团队决定在即将发布的版本中将此建议重命名为删除未使用的 CSS (请参阅https://github.com/GoogleChrome/lighthouse/pull/7235

于 2019-03-05T18:23:03.613 回答
0

首先,我的经验是结果会有所不同,Mobile因为您的努力可能需要一些时间才能在分数中得到回报。对我所做的工作做出了迅速的反应,但在“工作”Desktop之前花了几天的时间。Defer offscreen imagesMobile

对于您的页面,我将提取折叠样式上方的关键 css 并将所有样式表移动到之前</body>,保持您拥有的 Filament Group loadCSS 方法。我对 WP 并不流利,所以我无法进一步说明如何实现这一目标,但谷歌搜索应该可以立即解决这个问题。

如果我能提供更多帮助,请告诉我。快速浏览网站,我喜欢你的工作!

于 2019-03-04T19:35:27.007 回答
0

preload 和 defer 使用 onload javascript,所以..也许你使用的是 noscript 标签?

Pagespeed 看起来像解析标签,并显示你得到的消息。

于 2019-04-09T13:10:55.197 回答