TGViewer
<divelopers> <divelopers> @alexnozer_dev · 1.18K subscribers
Post #308 873
Critical CSS

Во многих руководствах по улучшению производительности рекомендуется реализовать технику критического CSS (Critical CSS). То есть выделить стили, важные для начальной области просмотра, и встроить их в <head>.

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

Что считать критическими стилями? Какие размеры начальной области просмотра брать за основу, если их огромное множество? Выносить ли стили скрытых элементов, которые, тем не менее, находятся на начальном экране?

Как эффективно разделять стили на критические и некритические? Как вносить изменения, чтобы критическая часть обновлялась? Как лучше загружать некритическую часть? И ещё много вопросов, ответы на которые не до конца ясны.

Единственное применение, как мне видится, в одностраничных лэндингах. Там весь CSS можно встроить в <head> из-за небольшого объёма кода. Инструменты, такие как penthouse, как раз работают с одной страницей.

Но Critical CSS, как подход, не рационален для лэндингов и в целом. Вряд-ли CSS будет узким местом, а реализация техники может не дать хоть какого-то улучшения. Гарри Робертс в статье несколько раз акцентирует на этом внимание.

Если есть проблема с долгим FCP, то стоит убедиться, а в CSS ли дело. Чаще всего проблема не в нём. Но если проблема действительно из-за большого количества CSS, то стоит применить другие техники оптимизации.

Прежде всего, сократить объём CSS за счёт грамотной стратегии разделения по страницам, разделам или компонентам и загрузкой только там, где это нужно. Это можно использовать в сочетании с элементами <link> в <body>.

Ну и, само собой, стили нужно минифицировать, сжимать хотя-бы через gzip, а лучше через brotli или zstd, проверять поддерживаемые браузеры для предотвращения лишних префиксов и трансформации и кэшировать.

#css #performance
Debugbear Inlining Critical CSS: Does It Make Your Website Faster? | DebugBear Learn what critical CSS is, how to inline it to improve page load performance, and understand the trade-offs before implementing it on your website.
  • 👍 10
  • ❤ 3
  • 💯 2
More from @alexnozer_dev
  1. Sep 21, 2026Реализация пользовательских атрибутов Под конец прошлого года я рассказывал об API пользов…
  2. Sep 14, 2026Подклассы Event вместо CustomEvent Многие библиотеки предоставляют систему событий в качес…
  3. Sep 11, 2026Эволюция стилей в темах Shopify Адам Ватан на днях поделился новостью, что Shopify выкупил…
  4. Sep 9, 2026Persistent Widgets Многие сайты не должны быть SPA. Но иногда эта архитектура продиктована…
  5. Sep 7, 2026Processing Instructions и маркеры В DOM всё представлено в виде узлов (Node) разных типов.…
  6. Sep 1, 2026@scope и потоковая передача HTML Ноам Розенталь поделился интересной техникой, в которой с…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →