Critical CSS помогает сократить время до появления первого экрана сайта. Суть метода — определить CSS-правила, необходимые для начальной отрисовки, встроить их в HTML и организовать загрузку остальных стилей так, чтобы они не задерживали первый показ содержимого.
Однако есть важное условие: метод полезен, когда именно блокирующие CSS-ресурсы ограничивают скорость отрисовки. Если страница тормозит из-за сервера, тяжёлого изображения или JavaScript, выделение критических стилей может почти ничего не изменить.
Для SEO эта техника интересна прежде всего как один из инструментов оптимизации пользовательского опыта и Largest Contentful Paint (LCP), а не как самостоятельный способ повысить позиции.
Почему CSS может задерживать появление первого экрана
Браузеру недостаточно получить HTML-документ. Ему нужно определить, какие стили применяются к элементам, рассчитать расположение блоков и подготовить страницу к отрисовке.
Обычная таблица стилей, подключённая для всех типов экранов, может блокировать первоначальный рендеринг до завершения её загрузки и обработки.
Представим страницу услуг. В одном CSS-файле находятся правила для шапки, первого экрана, длинного списка карточек, всплывающих окон, футера и дополнительных страниц сайта.
При первом открытии браузер может ждать загрузки всего файла, хотя для отображения верхней части страницы нужна только небольшая часть правил.
Critical CSS решает эту задачу разделением:
- Критические стили — правила, без которых первый экран будет выглядеть неправильно.
- Некритические стили — правила, которые можно загрузить позже без ухудшения первоначальной отрисовки.
При этом critical не означает «самые важные CSS-файлы сайта». Это конкретный набор правил для определённого содержимого, состояния страницы и размера экрана.

Что входит в критические стили
Для обычной страницы это могут быть правила, определяющие:
- базовую типографику, фон и цвет текста;
- размеры и расположение шапки;
- сетку первого экрана;
- оформление заголовка и основной кнопки;
- размеры, отступы и позиционирование LCP-элемента;
- мобильные медиаусловия для этих же компонентов.
Критический набор зависит от шаблона. У главной страницы, статьи и карточки товара могут быть разные первые экраны.
Значение имеют и размеры viewport: блок, расположенный ниже первого экрана на компьютере, может оказаться в видимой области мобильного устройства — или наоборот.
Critical CSS и SEO: где есть связь, а где её нет
Самостоятельного подтверждённого фактора ранжирования «наличие Critical CSS» у Google или Яндекса нет.
Связь с поисковой оптимизацией следует рассматривать по разным направлениям.
| Направление | Что действительно происходит |
|---|---|
| Скорость отображения | Устранение блокирующих CSS может улучшить FCP и LCP |
| Core Web Vitals | Улучшение LCP может положительно повлиять на одну из метрик пользовательского опыта |
| Обход страниц | Само по себе встраивание CSS не увеличивает частоту обхода поисковыми роботами |
| Индексирование | Critical CSS не является обязательным условием попадания страницы в индекс |
| Ранжирование | Рост позиций после оптимизации не гарантирован |
Google подтверждает использование Core Web Vitals системами ранжирования, но одновременно подчёркивает, что хорошие показатели не гарантируют высоких позиций.
Яндекс рекомендует сокращать блокирующие ресурсы и оптимизировать скорость загрузки. При этом нет оснований утверждать, что добавление Critical CSS само по себе обеспечивает определённое повышение позиций.
Может ли неправильный CSS мешать индексированию?
Проблемы возникают не из-за отсутствия Critical CSS, а из-за ошибок реализации.
Например, если после оптимизации важный контент оказывается скрытым или интерфейс неправильно отображается при рендеринге, необходимо проверить, что именно видит поисковый робот.
Но важно различать:
- обход — получение URL и ресурсов;
- рендеринг — обработку страницы браузерным движком;
- индексирование — обработку содержимого для поисковой базы.
Оптимизация CSS не заменяет проверку HTTP-ответов, доступности ресурсов, индексационных директив и содержимого HTML.
Как проверить, действительно ли сайту нужен Critical CSS
Начинать следует не с генератора, а с диагностики.
PageSpeed Insights и Lighthouse
Откройте анализируемую страницу в PageSpeed Insights и сравните результаты мобильной и десктопной проверки.
Обратите внимание на:
- FCP (First Contentful Paint) — момент первого отображения содержимого.
- LCP (Largest Contentful Paint) — время появления крупнейшего видимого элемента.
- Render-blocking requests — ресурсы, блокирующие первоначальную отрисовку.
- CLS (Cumulative Layout Shift) — стабильность расположения элементов.
В качестве ориентира хороший LCP — не более 2,5 секунды на 75-м процентиле реальных загрузок.
Это не норматив для размера Critical CSS и не обещание результата от его внедрения.
Если отчёт указывает на блокирующие CSS-файлы, нужно выяснить, действительно ли они задерживают LCP, а не просто присутствуют на странице.
Chrome DevTools: Network, Performance и Coverage
В браузере Chrome откройте DevTools.
В панели Network найдите CSS-ресурсы и оцените последовательность их загрузки. В Performance проверьте, какие запросы относятся к блокирующим отрисовку и когда появляется LCP-элемент.
Для поиска неиспользуемых правил откройте командное меню DevTools сочетанием Ctrl + Shift + P, введите Show Coverage и перезагрузите страницу с включённым сбором данных.
Coverage покажет используемые и неиспользуемые участки CSS.
Но здесь легко ошибиться: неиспользуемый при одном тесте CSS не обязательно лишний.
Он может понадобиться после открытия меню, перехода между вкладками, изменения размеров окна или появления формы. Поэтому удалять весь код, отмеченный как unused, нельзя.

Как настроить Critical CSS и не сломать вёрстку
Сначала стоит проверить более простые способы оптимизации: сокращение неиспользуемых правил, разделение стилей по компонентам, минификацию и удаление лишних зависимостей.
Google отдельно предупреждает, что внедрение inline Critical CSS — продвинутая техника. Многие сайты способны достигать хороших показателей производительности без неё.
Если блокирующие таблицы стилей действительно остаются узким местом, критический CSS можно встроить в документ.
Пример HTML и CSS
Допустим, первый экран содержит шапку сайта и hero-блок с заголовком.
Упрощённый пример критических правил:
<style id="critical-css">
:root {
--ink: #102433;
}
body {
margin: 0;
color: var(--ink);
font-family: system-ui, sans-serif;
}
.site-header {
min-height: 72px;
display: flex;
align-items: center;
}
.hero {
padding: 40px 24px;
}
.hero h1 {
margin: 0;
font-size: clamp(2rem, 5vw, 3.25rem);
}
@media (max-width: 640px) {
.hero {
padding: 24px 16px;
}
}
</style>
Это демонстрационный фрагмент, а не готовый набор для произвольной темы WordPress.
Правила должны соответствовать реальной HTML-разметке и включать все необходимые зависимости. Например, если оформление заголовка зависит от CSS-переменных, сетки родительского блока или шрифта, их тоже необходимо учитывать.
Одного добавления блока style недостаточно. Если после него остаётся большой синхронно подключённый CSS-файл, блокирующий отображение страницы, предполагаемое ускорение может не появиться.
Для некритических стилей иногда применяют отложенное подключение:
<link
rel="stylesheet"
href="/assets/css/noncritical.css"
media="print"
onload="this.media='all'"
>
<noscript>
<link
rel="stylesheet"
href="/assets/css/noncritical.css"
>
</noscript>
В этом примере noncritical.css должен содержать только стили, которые допустимо применять позже. Вариант зависит от выполнения JavaScript и требует проверки без него. Нельзя механически перенести в такой файл все стили сайта: задержанная загрузка необходимых правил может вызвать скачки макета.
Существуют и другие способы организации загрузки. Конкретный вариант выбирают после тестирования, а не по универсальному рецепту.
Что учитывать на WordPress
На WordPress CSS обычно формируется из нескольких источников: темы, глобальных стилей, блоков Gutenberg и плагинов.
При внедрении важно:
- Определить, какие файлы и inline-правила реально участвуют в отображении первого экрана.
- Проверить зависимости стилей темы, блоков и плагинов.
- Подготовить критические наборы для основных шаблонов.
- Убедиться, что автоматическая оптимизация не конфликтует с существующим кешированием или другим механизмом управления CSS.
- Проверить результат после очистки кеша страниц и обновления статических ресурсов.
Для разработки собственных тем WordPress предусмотрен механизм wp_enqueue_style(), позволяющий подключать таблицы стилей с учётом зависимостей.
Не стоит удалять зарегистрированные стили плагинов или вручную переписывать родительскую тему только ради результата в Lighthouse.

Практический сценарий: оптимизация страницы услуг
Рассмотрим типовую ситуацию на WordPress.
У страницы услуг сложный первый экран: меню, крупный заголовок, кнопка заявки и иллюстрация. Ниже располагаются карточки услуг, кейсы, отзывы и форма.
Общие стили включают оформление всех этих блоков. При проверке разработчик видит, что таблица стилей входит в цепочку ресурсов, задерживающих первую отрисовку.
Это условный сценарий, а не результаты измерения конкретного проекта.
Исходная проблема
Загрузка CSS задерживает появление первого экрана. При этом стили карточек, футера и других нижних разделов не нужны для его первоначального отображения.
Что меняют
Сначала сокращают неиспользуемые правила и проверяют, можно ли уменьшить блокирующий файл без дополнительного механизма.
Если этого недостаточно, выделяют необходимые стили шапки и hero-блока. В критический набор добавляют мобильные медиаусловия, размеры текста, отступы и параметры сетки.
Остальные стили разделяют так, чтобы их загрузка не блокировала первый экран и не изменяла уже рассчитанную геометрию.
Как оценивают результат
До и после изменения проводят сопоставимые проверки при одинаковых условиях.
| Критерий | Ожидаемый результат |
|---|---|
| FCP | Первый контент появляется раньше |
| LCP | Крупнейший элемент первого экрана отображается раньше |
| CLS | Не ухудшается |
| Визуальная проверка | Нет кратковременного нарушения оформления |
| Мобильная версия | Шапка, заголовок и элементы управления работают корректно |
| Полная загрузка | Все остальные компоненты получают нужные стили |
Если FCP улучшился, но после загрузки остальных CSS-файлов заголовок перемещается, результат нельзя считать качественным.
Если LCP не изменился, необходимо проверить другие ограничения: TTFB, загрузку главного изображения, шрифты, JavaScript и занятость основного потока браузера.

Ошибки, которые сводят пользу Critical CSS к нулю
Встраивание слишком большого CSS
Если внутрь HTML перенести практически всю таблицу стилей, документ станет тяжелее. Встроенные правила также не смогут использовать отдельное браузерное кеширование так же, как внешний CSS-файл.
Генерация только для одного разрешения
Набор, корректный для рабочего стола, может не содержать необходимых правил мобильной версии.
Задержка действительно критических правил
Отложенная загрузка шрифта, сетки или размеров первого экрана способна вызвать изменение оформления уже после появления контента.
Нарушение порядка CSS
При разделении файлов можно изменить каскад, специфичность или порядок слоёв CSS. В результате одинаковые селекторы начинают применяться иначе, чем до оптимизации.
Дублирование механизмов оптимизации
Несколько плагинов или самостоятельных обработчиков CSS могут повторно встраивать стили, менять порядок файлов или удалять нужные зависимости.
Оценка результата по одному тесту
Одного успешного запуска Lighthouse недостаточно. Лабораторные измерения чувствительны к окружению, а реальные пользователи отличаются устройствами, соединением и состоянием кеша.
Когда Critical CSS лучше не внедрять
Если CSS уже небольшой, нет существенной задержки отрисовки, а LCP ограничивается изображением или сервером, выделение критических правил может оказаться неоправданным усложнением.
Особенно осторожно следует подходить к большим WordPress-сайтам с множеством шаблонов, динамических состояний и плагинов. Поддерживать отдельные критические наборы для разных страниц бывает дороже, чем оптимизировать исходную архитектуру стилей.
Поэтому рабочий критерий простой: Critical CSS нужен не каждому сайту, а тем страницам, где доказано влияние блокирующего CSS на первоначальную отрисовку и есть возможность безопасно разделить стили.
Решение принимают по измерениям. Сначала выясняют причину задержки, затем выбирают минимальное исправление и проверяют его на реальных шаблонах. Если после внедрения первый экран появляется раньше, а вёрстка остаётся стабильной, оптимизация выполнила свою задачу. Для SEO это улучшение технического качества страницы — без обещаний автоматического роста позиций.
FAQ
Когда оптимизация Critical CSS помогает, а когда создаёт новые проблемы
Это CSS-правила, которые нужны браузеру для правильного отображения первого экрана страницы. Вместо ожидания всей таблицы стилей браузер может сразу использовать небольшой набор критических правил. Остальные стили загружаются отдельно. Метод полезен прежде всего тогда, когда большие блокирующие CSS-файлы действительно задерживают первую отрисовку.
Само наличие Critical CSS не является подтверждённым самостоятельным фактором ранжирования. Метод может улучшить скорость отображения страницы и показатели Core Web Vitals, которые учитываются системами ранжирования Google. Яндекс также рекомендует устранять блокирующие рендеринг ресурсы ради скорости сайта. Однако повышение позиций после внедрения не гарантируется.
Да, генераторы могут извлечь правила, необходимые для отображения выбранной страницы и размера экрана. Но результат зависит от состояния страницы во время анализа. Генератор способен пропустить стили мобильного меню, всплывающего окна, нестандартного шрифта или другого динамического элемента. Поэтому автоматически полученный CSS требует проверки и на других разрешениях, и в интерактивных состояниях.
Обычно причина в неполном наборе критических правил, неправильном порядке CSS или слишком поздней загрузке остальных стилей. Возможны изменения размеров текста, смещения блоков, появление неоформленных элементов и рост CLS. Проверьте зависимости от шрифтов, медиаусловия, CSS-переменные и порядок применения каскада.
Временно верните исходный способ загрузки CSS и убедитесь, что проблема исчезла. Затем проверьте полноту критических правил, размер встроенного блока и приоритет загрузки остальных ресурсов. Повторите тесты для основных шаблонов и размеров экранов. Возвращайте оптимизацию только после подтверждения улучшения метрик без визуальных регрессий.
Рейтинг статьи
Материал был полезен?
Оценка помогает понимать, какие материалы стоит обновлять и расширять.


