Люди, кажется, совершенно неправильно понимают цель метрики Крупнейшая Contentful Paint. Он предназначен для того, чтобы показать вам, когда будет готова большая часть содержимого в верхней части страницы.
Какой элемент является самой большой краской, не так важен, как когда это происходит. Элемент Что полезен только для определения того, что может замедлять работу вашей страницы.
Это основная метрика при определении того, когда контент «в верхней части страницы» раскрашен в достаточной степени, чтобы конечный пользователь увидел страницу как завершенную (это воспринимается как завершенность, все еще могут загружаться материалы, загружаемые ниже по странице / в фоновом режиме).
Предложения разбить абзац, обернуть его в div, сделать его выше и т. Д. И т. Д. бесполезны, они просто перемещают LCP на что-то другое (возможно), чтобы ваша оценка выглядела лучше, но на самом деле не устранение проблемы.
Что вы хотите сделать, так это оптимизировать исходный контент на странице.
Для этого вы хотите использовать только HTML-код «над сгибом» вместе с CSS и JS, необходимыми для содержимого над сгибом.
Затем вы обслуживаете все остальное.
Эта статья является хорошим введением в критический JS и CSS https://www.smashingmagazine.com/2015/08/understanding-critical-css/
Однако вкратце встраивание критических CSS и JS означает, что CSS и JS, необходимые для отображения исходного содержимого на странице, должны быть встроены в HTML. Теперь я предполагаю, что с помощью чего-то вроде Gatsby вы бы встроили критический JS, который отображает содержимое над сгибом, над CSS над сгибом и т. Д., Но принцип тот же.
Ключевым моментом является то, что все вышеупомянутое содержимое сгиба должно обслуживаться (за исключением не векторных изображений) в HTML, чтобы не было времени ожидания для файлов CSS, JS и т. Д.
Так что для ясности вместо: -
- Запрошен HTML (200 мс туда и обратно на сервер)
- HTML загружен и проанализирован, найдены ссылки на CSS и JS, необходимые для рендеринга исходного содержимого страницы.
- CSS и JS запрошены. (200 мс туда и обратно на сервер)
- CSS и JS загружены
- Достаточно для рендеринга страницы.
Вместо этого у вас есть
- Запрошен HTML (200 мс туда и обратно на сервер)
- HTML загружен, все необходимые CSS и JS встроены в HTML
- Достаточно для рендеринга страницы
Может показаться, что это не много, но 200 мс могут иметь огромное значение для воспринимаемой скорости.
Также это упрощенный пример, часто странице требуется 20 или более запросов для отображения содержимого, расположенного выше сгиба. Из-за ограничений на 8 запросов за раз (обычно) это означает, что может быть до 3 циклов приема-передачи по 200 мс в ожидании ответов сервера.
Посмотрев на свой сайт, вы получите ложные показания для критических цепочек запросов, поскольку на начальной странице нет HTML-кода, так как все это отображается с помощью JS. Возможно, именно поэтому вы не думаете, что есть проблема.
Если вы сделаете это, вы получите низкое время FCP и LCP, если ваши изображения оптимизированы.
person
Graham Ritchie
schedule
10.08.2020