Отрисовку первого экрана описывают двумя величинами. FCP — момент, когда на белом экране появилось хоть что-то. LCP — момент, когда отрисовался самый крупный элемент. Пороги: 1800 мс и 2500 мс. Ниже — чем их снять и что из этого следует на реальных сайтах.
Чем мерить
Обе величины браузер считает сам, отдаёт по-разному. FCP лежит готовым:
performance.getEntriesByName('first-contentful-paint')[0].startTime
LCP так не берётся: значение уточняется по ходу загрузки, и получить его можно только наблюдателем.
new PerformanceObserver((list) => {
const e = list.getEntries();
const last = e[e.length - 1];
console.log('LCP', Math.round(last.startTime), last.element);
}).observe({ type: 'largest-contentful-paint', buffered: true });
buffered: true обязателен: без него наблюдатель не увидит того, что
случилось до его запуска. Свойство element показывает, какой именно узел
поисковик считает главным, — половина пользы этой проверки в нём.
Готовая проверка скорости сайта делает то же самое без консоли.
Замер
Выборка — 83 сайта Екатеринбурга из живой выдачи, прогнаны браузером 20 сентября 2026 года, окно 1366×768, по одной загрузке. Обе величины отдали 75: один адрес не разрешился, у четырёх сайтов LCP не пришёл вовсе, хотя страница открылась.
| Величина | Медиана |
|---|---|
| Ответ сервера (TTFB) | 576 мс |
| Первая отрисовка (FCP) | 1020 мс |
| Главный элемент (LCP) | 1304 мс |
В порог 2500 мс по LCP уложились 64 сайта выборки из 75, в порог 1800 по FCP — тоже 64.
Две величины говорят одно и то же
Одинаковые 64 — не совпадение. Вердикт «уложился / не уложился» по FCP и по LCP сошёлся у 71 сайта выборки из 75. Расхождение нашлось у четырёх, поровну в обе стороны.
Причина видна в разрыве между величинами. Медиана разрыва — 192 мс. LCP в точности равен FCP у тринадцати сайтов выборки, а меньше двух десятых секунды разрыв у 38 из 75 — у половины.
Вывод для работы: смотреть достаточно LCP. FCP добавляет знание только там, где разрыв большой, — и вот там он добавляет много.
Чинить обычно надо не отрисовку
Первый экран складывается из трёх отрезков. По медианам выборки:
| Отрезок | Медиана |
|---|---|
| До первого байта — дорога и сервер | 576 мс |
| От первого байта до первой краски — разбор страницы | 356 мс |
| От первой краски до главного элемента — дозагрузка | 192 мс |
Медианная доля ожидания сервера в LCP — 54 процента. У 45 сайтов выборки из 75 на неё уходит больше половины всего времени.
Среди одиннадцати сайтов, провалившихся по LCP, у четырёх ответ сервера сам по себе превышает 2500 мс. Никакая работа с картинками там не поможет: экран пустой, потому что страницу ещё не начали отдавать. Крайний случай в выборке — 20,7 секунды до первого байта.
Чем оказывается главный элемент
| Что рисуется последним | Сколько сайтов |
|---|---|
| Картинка | 30 |
| Блок с фоном | 23 |
| Секция | 7 |
| Заголовок | 4 |
| Прочее | 11 |
Совет «оптимизируйте LCP-картинку» подходит меньше чем половине. Если главный элемент — заголовок или текстовый блок, ускорять в отрисовке нечего, и остаётся сервер.
Проверка самого метода
Замер шёл из Европы, а сайты российские, и дорога могла всё исказить. Перепроверили: те же двенадцать адресов прогнали через российский выход. Медиана ответа сервера прямо — 503 мс, через российский адрес — 581 мс. Разница меньше разброса между попытками, направление в обе стороны.
Для сравнения — наш собственный сайт, снятый в тех же условиях по медиане из трёх загрузок:
| Страница | TTFB | FCP | LCP |
|---|---|---|---|
| Главная | 265 | 584 | 584 |
| Блог | 235 | 564 | 564 |
| Проверка скорости | 228 | 548 | 548 |
LCP везде равен FCP: главный элемент — заголовок, и он появляется вместе с первой краской. Замер по петле на самом сервере даёт числа в разы меньше — в нём нет дороги, и сравнивать эти два ряда между собой нельзя.
Границы замера
Один город, один день, по одной загрузке на сайт — для отдельного сайта это мало, для распределения по выборке достаточно. Замер лабораторный: он показывает, что происходит на нашем канале и нашем железе, а не у живых посетителей. Поле реальных пользователей — отдельная история, и у молодого сайта оно пустует.
Коротко
FCP и LCP снимаются одним куском кода в браузере, и в большинстве случаев говорят одно и то же — хватает LCP. Полезнее не сама цифра, а её разбор на три отрезка: у половины сайтов больше половины времени уходит на ожидание ответа сервера, и оптимизация картинок там не меняет ничего.
