Понимание скорости страницы Google и поведение маяка при блокировании ресурсов CSS

У меня есть приложение NextJs, размещенное на Zeit Now, которое я оптимизировал, чтобы оно могло работать в Google Page Speed ​​Insight со счетом 100/100.
Чтобы пройти тест "Устранить блокировку рендеринга JavaScript и CSS в содержимом выше сгиба", мне пришлось сгенерировать критический CSS для целевой страницы, вставить его в <style/> отметить в <head/>и переместить все <link rel="stylesheet"/> до конца тега тела.
Теперь, когда я запускаю аудит с помощью Google Lighthouse, я иногда получаю предупреждение "Уменьшить блокировку стилей рендеринга", а иногда нет.
Когда появится предупреждение, я получу первую значимую краску примерно через 2 с, а когда ее нет, я получу ее примерно через 400 мс.
Итак, мой вопрос, кому я должен доверять?

1 ответ

Решение

Поэтому общее решение, позволяющее избежать блокирования ресурсов CSS при сохранении хорошего первого рисования, состоит в том, чтобы встроить критический CSS с помощью тега '' в <head>и загрузить файлы CSS, используя JavaScript.
Используя NextJS, хорошее решение состоит в том, чтобы встроить критическую CSS, используя index.js (и что-нибудь еще в pages), а затем загрузите все зависимости CSS для каждого компонента, используя require() после проверки process.browser (поскольку он не загружает серверную часть).
По некоторым причинам, Google Page Speed ​​Insight не рассматривал кучу <link rel="stylesheet"/> в конце <body> пометить как блокировку, но Google Lighouse сделал, и это показывает, когда вы смотрите на первую значимую краску.

Другие вопросы по тегам