
Core Web Vitals это три числа, и почти всё, что о них написано, объясняет, что они измеряют. Куда более полезный вопрос: чей опыт они измеряют, потому что ответ содержится в определении и он определяет, какие выводы вы можете сделать из хорошего результата.
Три метрики, и одна, которая исчезла
Собственные пороги Google, по три диапазона каждый:
- Largest Contentful Paint (LCP): Хорошо 2500 ms или меньше, Требует улучшения 2501 до 4000 ms, Плохо свыше 4000 ms.
- Interaction to Next Paint (INP): Хорошо 200 ms или меньше, Требует улучшения 201 до 500 ms, Плохо свыше 500 ms.
- Cumulative Layout Shift (CLS): Хорошо 0.1 или меньше, Требует улучшения 0.11 до 0.25, Плохо свыше 0.25.
LCP это загрузка: как долго ждать, пока на экран придёт самый крупный элемент. INP это интерактивность: вы касаетесь чего-то, и как долго ждать, пока страница покажет ответ. CLS это визуальная стабильность, и это единственная метрика, которая не является длительностью; это оценка, на сколько сместился макет после того, как вы его уже видели.
First Input Delay больше не входит в список. INP заменил FID и стабилизировался в 2024 году, что важно в основном потому, что любое руководство, написанное до этого, называет метрику, которая уже не измеряется. Если вам подадут отчёт о производительности с колонкой FID, это говорит о другом интернете.
Какие из них чувствует посетитель
Это та часть, которая стоит того, потому что пользователь никогда не сообщает о метрике. Они сообщают об ощущении, и ощущение говорит вам, на какую из трёх смотреть.
“Я сидел и смотрел в пусто.” Это LCP. Страница загрузилась, сервер ответил, и то, за чем пришёл человек, так и не пришло. Ничего не сломалось и никаких ошибок.
“Я коснулся этого и ничего не произошло, поэтому я коснулся ещё раз.” Это INP, и второе касание это диагностическая часть. Страница, которая не показывает ответ в течение пары сотен миллисекунд, нажимается дважды, и поэтому одно намеренное действие становится двумя отправленными.
“Оно прыгнуло, и я попал не туда.” Это CLS. Изображение, которое пришло слишком поздно, или веб-шрифт, пришедший после первой отрисовки, сдвигает кнопку в другое место между моментом, когда глаз принял решение, и моментом, когда палец приземлился.
Таким образом, “сайт чувствует себя медленным” это как минимум три разных дефекта, и слова, которые кто-то выбирает, сужают это ещё до того, как вы что-либо измерили. Это стоит больше, чем кажется, потому что три метрики не имеют ничего общего в основе: LCP это обычно байты и круговые пути, INP это обычно JavaScript, занимающий основной поток, и CLS это обычно макет, для которого вы не зарезервировали место.
75-й процентиль: вся суть
Вот предложение, которое меняет то, как вы читаете результат. Оценка производится на 75-м процентиле загрузок страниц, разделённом между мобильными и настольными устройствами.
Не средняя величина, и не ваш визит. Три четверти загрузок должны быть на уровне порога или ниже него, чтобы страница прошла тест, что означает, что одна загрузка из четырёх может быть хуже, чем ваш хороший результат, пока результат остаётся хорошим. Это не ошибка в метрике; это то, что говорит сама метрика.
Рассуждение Google о выборе этого процентиля опубликовано и стоит того, чтобы знать, так как оно объясняет, почему хвост намеренный: 75-й процентиль обеспечивает, чтобы большая часть посещений испытали целевой уровень производительности, в то время как более высокие процентили придают чрезмерный вес редким плохим впечатлениям. Со ста посещениями, перенос черты на 75-й процентиль требует, чтобы двадцать пять из них были затронуты, прежде чем результат изменится. На 95-м требуется пять.
Таким образом, решение о дизайне заключается в том, чтобы быть устойчивым к выбросам. Стоимость этой устойчивости заключается в том, что реальная, повторяемая проблема, затрагивающая пятую часть ваших посетителей, может бесконечно оставаться под хорошим результатом.
Почему ваш собственный опыт никогда не является измерением
Откройте свой собственный сайт, и вы почти наверняка находитесь в комфортных трёх четвертях, и не по счастливой случайности. Вы на машине, выбранной для разработочных работ, на соединении, за которое вы платите, с уже разогретым кешем, уже загруженными шрифтами и уже установленным service worker, вероятно, рядом с граничным местоположением, которое обслуживает вас в миллисекундах с одной цифрой.
Медленная четверть это кто-то на телефоне среднего уровня в поезде с холодным кешем. Они не аномалия. Это та часть измерения, которую вы не можете достичь со своего стола, и это также та часть, которую результат предназначен терпеть.
Поэтому “для меня это нормально” это верное утверждение, а не доказательство чего-либо, и почему страница может чувствовать себя медленной, пока каждая серверная метрика говорит, что она быстрая.
Что полевой результат не может сделать
Core Web Vitals, как их оценивает Google, это полевые данные: совокупность по населению реальных посещений. Это то, что делает их стоящими иметь, и это также предел.
Совокупность не может ответить на вопрос об одном посещении. Когда конкретный человек говорит, что оформление покупки было невозможно использовать во вторник днём, никакой процентиль не говорит вам, что произошло с ними, и страница, которая проходит тест, говорит вам только, что по крайней мере три четверти посещений были нормальными. Жалоба вполне возможно исходит из четверти, которую порог был предназначен поглощать.
Session Replay
Бесплатное расширение для Chrome. Один щелчок на странице, которая не работает правильно, захватывает снимок экрана, консоль и журнал сети, и дает вам ссылку для вставки в тикет.
Таким образом, эти две вещи выполняют разные работы, и ни одна не заменяет другую. Полевой результат говорит вам, является ли опыт в целом приемлемым и где потратить время на инженерию. Захваченное посещение говорит вам, что произошло с человеком перед вами. Тянуться к первому, когда кто-то спрашивает о втором, это то, как реальный отчёт закрывается как не воспроизводимый.
Что делать с жалобой на медлительность
Три шага, в порядке, который стоит меньше всего.
Прочитайте слова на предмет метрики. Ожидание, неответчивость или движение. Это одно выбирает, какую из трёх исследовать, и исключает две другие.
Получите одно посещение, а не совокупность. Когда это произошло, на каком устройстве и соединении, и что делала страница в то время. Процентиль не может быть сужен до человека, но захваченная сессия уже является одной.
Затем проверьте полевой результат, чтобы узнать, гонитесь ли вы за хвостом или серединой. Если страница проходит и жалоба реальна, вы находитесь в заложенной четверти, и это изменяет решение, а не заканчивает его.
В одном параграфе
Core Web Vitals это LCP на 2500 ms, INP на 200 ms и CLS на 0.1, оценены на 75-м процентиле загрузок и разделены между мобильной и настольной, с FID снятым в пользу INP. Каждый сопоставляется с жалобой, которую фактически делает человек: ожидание, повторное касание или попадание не в ту кнопку. И процентиль означает, что четверть ваших посещений разрешается быть хуже, чем ваш хороший результат, поэтому зелёная приборная панель и недовольный пользователь обычно оба правы, и для её решения нужно одно захваченное посещение, а не лучший средний результат.