В этой статье мы рассмотрим, как настроить и включить critical css в Magento 2.
Что ты такое, critical css?
И HTML, и CSS замедляют вывод страницы. HTML-документ нужно обработать для создания модели DOM, без которой на странице не будет контента. CSS-документ необходимо сначала загрузить, а далее обработать (CSS Object Model).
Чтобы ускорить процесс, необходимо упрощать CSS и использовать media-запросы. Так же увеличению производительности способствует critical css.
Как мы уже говорили выше, все стили CSS, загруженные из внешних файлов, рассматриваются как блокирование рендеринга. Это означает, что веб-страница не будет отображаться, пока эти файлы не будут загружены. Используя critical css, мы предоставляем «критический CSS», встроенный в, и делаем загрузку всех остальных стилей асинхронной.
Асинхронная загрузка достигается путем добавления новой директивы preload в атрибут rel
Для поддержки кроссбраузерности rel=«preload» в Magento используется полифилл.
Важная особенность, в «критический css» входит только видимая часть страницы.
Таким образом, мы можем значительно улучшить время «первого» отображения наших страниц.
Как включить?
Stores — Settings — Configuration — Advanced — Developer
Вкладка Advanced доступна только в developer моде
Выставить Use CSS critical path в yes
Или же воспользоваться командной строкой: bin/magento config:set dev/css/use_css_critical_path 1
Критический CSS должен быть расположен в app/design/frontend/vendor_name/theme_name/theme_name/web/css/critical.css
Как сгенерировать?
Полностью ручной процесс создания достаточно трудоемкий и времязатратный.
Чтобы создать критический CSS для вашей темы, можно использовать генераторы, такие как Penthouse или Critical.
Или же обратиться к достаточно хорошему он-лайн ресурсу.
Необходимо в поле (1) вставить url-адрес на ресурс, а в поле (2) вставить css, который используется на сайте и нажать на кнопку Create
В результате мы получим сгенерированный и минифицированный critical css
Определенную часть ручной работы, выполнить конечно придется:
- Проверка и корректировка сгенерированного critical css
- Не забывайте, так же, что critical.css в Magento — один на все страницы, поэтому важно не забыть про листинг, продуктовую страницу, страницу регистрации и логина