4 способа ускорить загрузку контента через оптимизацию LCP

4 способа ускорить загрузку контента через оптимизацию LCP

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

Что такое показатель LCP

LCP, или Largest Contentful Paint — это время рендеринга самого большого элемента, видимого в области просмотра пользователем: изображения, текстового блока, видео или другого контента.

Какой показатель LCP считается хорошим

Нужно стремиться, чтобы отрисовка самого большого контента происходила не дольше, чем за 2,5 секунды после начала загрузки страницы. Тогда пользователям будет удобно находиться на сайте.

Оценочная шкала LCP
Оценочная шкала LCP

3 способа измерить LCP

Отчет Core Web Vitals в Search Console. Он находится в Отчете об основных интернет-показателях.

Интерфейс Core Web Vitals
Интерфейс Core Web Vitals

PageSpeed Insights — инструмент, который оценивает скорость загрузки страницы по 100 бальной шкале.

Интерфейс PageSpeed Insights
Интерфейс PageSpeed Insights

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

Интерфейс инструмента для проверки скорости сайта
Интерфейс инструмента для проверки скорости сайта

Как улучшить показатель LCP

1. Ускорить время ответа сервера

Чем быстрее браузер получает контент с сервера, тем быстрее загрузка страницы и тем лучше показатель LCP.

Вы можете улучшить TTFB — время до первого байта. Какие есть способы:

1. Обратитесь к рекомендациям по производительности сервера. Многие веб-фреймворки, работающие на сервере, имеют такие рекомендации, нужные для ускорения.

2. Используйте CDN (Content Delivery Network). CDN хранят контент и быстро отдают его клиентам из разных географических точек. Использование CDN коррелирует с улучшением показателей скорости загрузки TTFB, особенно на десктопах.

3. Кэшируйте страницы. Статичный HTML, который редко изменяется, можно закэшировать в браузере пользователя, чтобы при каждом визите не загружать контент заново.

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

5. Устанавливайте сторонние подключения на раннем этапе. На LCP могут влиять запросы сервера к сторонним источникам. Можно дать сигнал браузеру, что страница как можно скорее собирается установить соединение, для этого есть rel=" preconnect ".

<link rel="preconnect" href="https://site.ru>

Другой вариант — dns-prefetch для ускорения поиска DNS, подходит для браузеров, которые не поддерживают preconnect.

<link rel="dns-prefetch" href="https://site.ru">

Можно использовать оба варианта для разных браузеров.

<link rel="preconnect" href="https://site.ru">
<link rel="dns-prefetch" href="https://site.ru">

2. Решить блокировку рендеринга JavaScript и CSS

Браузер преобразовывает разметку HTML в дерево DOM, а потом уже отображает контент. Он не сможет продолжать работу, если обнаружит ресурсы, блокирующие рендеринг: внешние таблицы стилей link rel="stylesheet" и сценарии JavaScript script src="main.js". Чтобы ускорить загрузку содержимого страницы, нужно отложить все некритические JavaScript и CSS.

Неиспользуемый JavaScript и CSS можно найти с помощью Chrome DevTools.

Поиск неиспользуемого CSS и JavaScript
Поиск неиспользуемого CSS и JavaScript

Найденный неиспользуемый CSS можно вообще удалить или переместить в другую таблицу стилей, если он нужен на других страницах сайта.

Если CSS не нужен для начального рендеринга, можно использовать loadCSS для асинхронной загрузки файлов, который использует rel="preload" и onload.

<link rel="preload" href="stylesheet.css" as="style" onload="this.rel='stylesheet'">

Как улучшилось LCP после откладывания некритического CSS
Как улучшилось LCP после откладывания некритического CSS

Критический CSS можно включить в head, если он нужен для верхней части страницы. Встраивание стилей таким образом позволит не делать двусторонний запрос для получения критического CSS.

Как автоматизировать добавление встроенных стилей на сайт:

  • Critical, CriticalCSS и Penthouse извлекают и встраивают верхний CSS;
  • Critters встраивает критический CSS и загружает остальные в отложенном режиме.
Как улучшилось LCP после встраивания критического CSS
Как улучшилось LCP после встраивания критического CSS

Еще полезна минификация или минимизация кода CSS и JavaScript — удаление символов, которые не нужны браузеру для чтения кода. Минификаторы удаляют отступы, интервалы, разделители и комментарии, файл по сути не меняется, но становится легче.

Как улучшилось LCP после минификации CSS
Как улучшилось LCP после минификации CSS

Подписывайтесь на наш ВК и Телеграм, чтобы узнавать последние новости SEO и подсматривать новые фишки продвижения.

3. Ускорить загрузку ресурсов

Время, которое требуется контенту для загрузки, влияет на LCP, так что имеет смысл поработать с элементами на странице.

Что можно сделать:

1. Оптимизировать изображения. Если на сайте много больших по размеру изображений, которые замедляют загрузку страниц, попробуйте lazy loading картинок — постепенную подгрузку, которая обычно зависит от действий пользователя на странице. Еще можно сжать изображения, если они много весят, попробовать формат WebP, обратиться к CDN.

2. Загрузить важное сначала. Критически важные ресурсы, например, шрифты, изображения или видеозаписи, нужно загрузить первым делом. Для придания ресурсу приоритета есть < link rel = "preload" >.

3. Использовать сервис-воркеры. В предыдущем пункте я уже упоминал сервис-воркеры для выборочного кэширования, но их можно использовать и для изображений и других элементов, которые редко обновляют на странице.

4. Использовать gzip или brotli. Эти виды сжатия могут значительно уменьшить размер файлов HTML, CSS и JavaScript при их передаче между сервером и браузером.

Как улучшилось LCP после применения brotli
Как улучшилось LCP после применения brotli

4. Оптимизировать рендеринг на стороне клиента

Есть сайты, которые работают через рендеринг на стороне клиента (CSR) — то есть рендеринг страниц происходит в браузере с использованием JavaScript, все обрабатывается на стороне клиента, а не на сервере.

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

Что можно сделать:

  • минифицировать код JavaScript — сократить и сжать файл;
  • выявить неиспользуемые элементы JavaScript, удалить или отложить их;
  • минимизировать неиспользуемые полифиллы, которые используют для работы сайта в старых браузерах. Сведите к минимуму неиспользуемые полифилы и ограничьте их использование средами, где они необходимы.

В некоторых случаях можно использовать предварительный рендеринг. В таком способе рендер выполняется в headless браузере типа Chrome, который генерирует статические файлы HTML, а их уже подставляют в ответ сервера.

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

Как улучшилось LCP после предварительного рендеринга
Как улучшилось LCP после предварительного рендеринга

Расскажите в комментариях, о каких способах оптимизировать LCP знаете вы!

Начать дискуссию