С момента появления Lighthouse появились новые параметры, связанные со скоростью страницы. Одним из наиболее важных из этих параметров является First Contentful Paint (FCP). В версии Lighthouse 10, действующей с июня 2024 г., влияние FCP на общий балл составляет 10 %..

Чтобы принять и понять FCP как показатель, важно сначала изучить лежащую в его основе психологию. Концепция аналогична зеркала установлены в лифтах:

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

 

изображения 11.png
Источник: https://web.dev/fcp/

 

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

В Lighthouse цветовая шкала для FCP определяется следующим образом:

  • 0-2 секунды: Зеленый => Быстро
  • 2-4 секунды: Оранжевый => Требует улучшения
  • 4+ секунд: Красный => Медленно

По данным HTTP-архива, количество сайтов, которые можно считать быстро — 25%, а 50% существующих сайтов относятся к категории медленных.

 

изображения 10.png
Источник: https://web.dev/first-contentful-paint/

 

Что можно сделать для улучшения FCP?

Уменьшить время отклика сервера

В целом это можно интерпретировать как необходимые улучшения на стороне сервера и программного обеспечения. Чтобы перечислить проблемы, которые отрицательно влияют на время ответа сервера:

  • Проблема может заключаться в общем доступе к серверу, его конфигурации (т. е. настройках сервера) и ресурсах сервера.. Мощность вашего сервера должна быть увеличена в соответствии с вашим трафиком. В некоторых случаях плохо написанные запросы к базе данных и очень сложные программные компоненты могут серьезно повлиять на время ответа сервера.
  • Неиспользование CDN (сети доставки контента) может привести к задержкам доступа к контенту, что повлияет на FCP.. По мере увеличения размера контента, например, если большой анимированный GIF-файл или видео пытаются вызвать без CDN, а главный сервер находится на другом континенте, вам может потребоваться рассмотреть решения CDN для разрешения FCP.

 

изображения 12.png
Источник: https://gtmetrix.com/blog/first-contentful-paint-explained/

 

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

Например, раньше были такие настройки: когда пользователь хотел войти на сайт, выполнялось перенаправление HTTP на HTTPS, затем, если он был мобильным, перенаправление HTTPS на мобильный (например, https:// с www на https://m), а если страницу удаляли и перенаправляли в другое место с кодом 301, создавалось ощущение, будто пользователя передавали от стола к столу в налоговой инспекции. Это крайний пример для лучшего понимания, но если вы перенаправляете страницу на другой URL-адрес с помощью редиректа 301, а затем перенаправляете эту страницу на другую с помощью 301, вы можете сделать ту же нелогичную настройку.

  • если ты не используйте предварительное подключение или предварительную выборку DNS префиксы при подключении к своим сторонним сервисам и подключении ко многим сторонним сервисам, вы не делаете ничего полезного для FCP.

Уменьшите ресурсы, блокирующие рендеринг

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

изображения 13.png
Источник: https://gtmetrix.com/eliminate-render-blocking-resources.html

Для этого существует метод решения, при котором все JS, CSS и подобные ресурсы, которые блокируют рендеринг страницы, загружаются после времени создания страницы, но изначально видимая часть сайта загружается первой во время загрузки сайта.. Однако для этого необходимо изучить все JS, CSS и подобные ресурсы, а наиболее трудоемкие процессы разделить. Кроме того, использование как можно меньшего количества сторонних сервисов помогает оптимизировать FCP.