Создать URL
Генератор Правила транслитерации Как сделать ЧПУ Блог Вопросы и ответы Создать URL
Практика

Критический CSS и первый экран

Файл стилей блокирует отрисовку страницы. Разберём приём, который убирает эту задержку для первого экрана.

Что такое критический CSS

Браузер не начинает показывать страницу, пока не получит и не разберёт подключённые стили: файл стилей считается блокирующим ресурсом. Если общий файл весит сотни килобайт, посетитель какое-то время видит пустой экран, хотя HTML уже пришёл.

Критический CSS — это небольшой набор правил, которого достаточно для оформления первого экрана: шапки, заголовка и главного блока. Его вставляют прямо в HTML страницы, а остальные стили подгружают без блокировки отрисовки.

ЗапросстраницыHTML скритическим CSSв шапкеПервый экрануже виденОстальные стилизагружаютсяфоном
ЗапросстраницыHTML скритическим CSSв шапкеПервый экрануже виденОстальные стилизагружаютсяфоном
Порядок загрузки при использовании критического CSS

Как это выглядит в коде

Схема простая: правила первого экрана лежат в блоке style, а основной файл подключается так, чтобы не задерживать отображение.

<head>
  <style>
    /* правила первого экрана */
    .header { display: flex; height: 64px; }
    .hero { min-height: 320px; }
  </style>
  <link rel='preload' href='/css/main.css' as='style'
        onload="this.onload=null;this.rel='stylesheet'">
  <noscript><link rel='stylesheet' href='/css/main.css'></noscript>
</head>

Блок noscript нужен, чтобы страница осталась оформленной у тех, у кого скрипты отключены, и чтобы робот увидел итоговое оформление.

Что считать критическим

  • Стили шапки и навигации, видимой без прокрутки.
  • Оформление главного заголовка и первого смыслового блока.
  • Размеры главного изображения, чтобы не было смещений макета.
  • Запасной шрифт для заголовка, пока загружается основной.

Всё остальное — подвал, всплывающие окна, вкладки, отзывы, слайдеры ниже первого экрана — в критический набор не входит.

Способы получить критический набор

Как получить критический CSS
СпособПлюсыМинусы
Вручную для каждого шаблонаТочный результат, ничего лишнегоТрудоёмко и быстро устаревает
Автоматическая выборка при сборкеНе нужно вести набор правил вручнуюРезультат нужно проверять глазами
Один небольшой общий файлПростота, нет дублированияНе даёт максимального выигрыша

Риски и ограничения

Отдельный набор для каждого шаблона. Первый экран главной, категории и карточки товара выглядит по-разному, поэтому один набор правил подходит не всем.

  • Мигание оформления. Если в критический набор попало не всё нужное, страница сначала показывается «голой», а затем перестраивается.
  • Дублирование правил. Часть стилей окажется и во встроенном блоке, и в основном файле: это увеличивает вес HTML.
  • Устаревание. После смены дизайна набор нужно пересобирать.

Если общий файл стилей небольшой (десятки килобайт), сначала стоит минифицировать его и убрать неиспользуемые правила: часто этого хватает. Про то, что чаще всего замедляет первый экран, — в статье про LCP.

Частые вопросы

Что такое критический CSS?

Небольшой набор правил, достаточный для оформления первого экрана; его вставляют в HTML, а остальные стили загружают без блокировки отрисовки.

Нужен ли критический CSS каждому сайту?

Нет: если общий файл стилей небольшой и хорошо сжат, выигрыш может быть незаметным, а сложность возрастёт.

Как проверить, что первый экран отображается правильно?

Открыть страницу на медленном соединении без кеша и убедиться, что оформление не «мигает» при догрузке основного файла стилей.

Готовый адрес можно собрать прямо сейчас: откройте генератор ЧПУ — он транслитерирует фразу по таблице Яндекса, уберёт служебные слова и покажет длину адреса.

Читайте также