Короткий ответ
Почти любая жалоба на скорость сводится к одной метрике, одному решению в сборке и одной строке прайса. Разбираем это соответствие: от пустого первого экрана до кнопки, которая уехала из-под пальца.
LCP — секундомер на одном элементе, который вы выбрали сами
«Ускорьте сайт» почти всегда означает «сдвиньте LCP», хотя заказчик редко называет метрику по имени. Largest Contentful Paint фиксирует ровно один момент — когда дорисовался самый крупный элемент внутри первого экрана, картинка или блок текста, — и отсчитывает его от начала навигации. Ни среднее по странице, ни полное время загрузки, ни число запросов в эту цифру не входят. Цель каталог формулирует без иносказаний в услуге «Ускорение сайта и Core Web Vitals под порог Google»: LCP до 2,5 с.
Раз метрика висит на конкретном элементе, ломают её решения, которые видно в макете, а не в глубине кода: фотография на всю ширину, выгруженная в десктопном разрешении и отданная телефону; заголовок, отказывающийся рисоваться до приезда веб-шрифта; видео в шапке, стартующее раньше первой отрисовки; стили в head, держащие рендер до последнего байта. Ни одно из них не аварийное — каждое кто-то принял осознанно и по причине, казавшейся тогда разумной. Именно поэтому такие решения переживают несколько редизайнов подряд: их некому пометить как ошибку.
Дешевле остальных двух метрик LCP выходит из-за счётного списка действий: пересжать и уменьшить главную картинку, отдать её в современном формате, предзагрузить, снять блокировку первой отрисовки шрифтом, вынести из очереди то, что держит рендер. У каждого действия видимый конец, а результат проверяется тем же прогоном, который снимали до работы, поэтому объём известен заранее — отсюда вилка в часах, а не в днях. Ровно такой проход каталог продаёт как «Зелёный PageSpeed и Core Web Vitals»: категория «Оптимизация», сложность «Нужен опыт», 8 000 – 25 000 ₽ или $200 – $600 за 5-12 часов.
Есть простой признак, что вилка 5-12 часов вам не подойдёт: картинки пережаты, шрифт разблокирован, лишнее вынесено из очереди — а секундомер стоит на месте. Значит, тормозит не то, что отдают, а то, как долго его собирают. Сервер, думающий секунду до первого байта, сжатием изображений не лечится, и правка уезжает в генерацию ответа — это другая работа и другой договор. Начинается она не с ассетов, а с замеров, и в каталоге под это выделена отдельная стадия: 1 день диагностика + 1–3 дня внедрение.
INP — сколько интерфейс молчит после нажатия
Порог каталог называет прямо: INP до 200 мс. Interaction to Next Paint считает то, чего секундомер на загрузке не видит в принципе, — сколько проходит между нажатием, кликом или клавишей и видимым изменением на экране. Метрика смотрит на весь визит, а не на первую секунду, и отчитывается по неудачным взаимодействиям, а не по удачным. Отсюда неочевидное следствие: страница может укладываться в целевые 2,5 с по LCP и заваливать эту метрику на каждой кнопке, потому что за отрисовку и за отзывчивость отвечают разные вещи.
За плохим INP почти всегда стоит одно решение: сколько JavaScript пускают в главный поток, пока человек пытается пользоваться страницей. Фреймворк, заново «оживляющий» уже отрисованный интерфейс; аналитика, пересчитывающая события на каждом скролле; виджет чата; баннер согласия; менеджер тегов, тянущий за собой ещё несколько тегов; запись сессий; скрипт эксперимента, выбирающий вам вариант, — по отдельности ни один не выглядит проблемой, и каждый добавлялся отдельным решением в отдельный месяц. Вместе они выстраиваются в очередь к главному потоку, и нажатие пользователя встаёт в неё последним.
Сжимать здесь нечего, и одного файла, который можно оптимизировать, не существует. Поэтому INP обходится дороже LCP. Работа состоит из удаления, отложенного запуска и перестановки кода, который кто-то добавил намеренно, а у каждой такой строки есть владелец в отделе маркетинга, готовый спросить, почему его инструмент перестал собирать данные. Техническая часть измеряется часами; согласование того, каким скриптам разрешено стартовать до первого взаимодействия, измеряется днями и переговорами.
Вилка часов и расписание обещают разное: первая говорит про объём, второе — про порядок. Каталог поэтому продаёт строку про ускорение не часами, а расписанием: 1 день диагностика + 1–3 дня внедрение при $200 – $800 или 10 000 – 40 000 ₽. Первый день производит знание, а не скорость, и объём следующих дней зависит от его находок.
CLS — цена места, которое забыли зарезервировать
Две предыдущие метрики измеряют время, эта — расстояние. Cumulative Layout Shift складывает, насколько уехали элементы, которых пользователь не трогал, и потому фиксирует провал уже после видимого успеха: страница выглядит загруженной, человек начал читать, и тут приезжает опоздавший блок и сдвигает абзац вниз. Порог каталог записывает как CLS до 0,1. Симптом там же назван словом самих клиентов: сайт «прыгает» при загрузке.
Причины — вариации одной привычки: не резервировать место под то, что приедет позже. Тег изображения без ширины и высоты, из-за чего браузер не может оставить дырку нужного размера; баннер, вставленный скриптом над контентом; плашка про куки, раздвигающая страницу вместо того, чтобы висеть поверх. Дальше — веб-шрифт шире запасного, из-за которого весь текст переносится заново в момент подгрузки, и ленивые блоки, разворачивающиеся по приезде. Общего кода у этих причин нет; общая у них забытая обязанность объявить размер заранее.
Парадокс CLS в том, что чинится он дешевле остальных двух, а держится хуже всех. Правки здесь — атрибуты размеров и зарезервированные контейнеры; архитектуру трогать не приходится, и в чистых часах это самая короткая из трёх работ. Зато отменяется она бесшумно: маркетинговый тег, добавленный через квартал и вставляющий блок над контентом, вернёт смещения на место, и ни одна сборка от этого не покраснеет. Отсюда практический вывод: править надо шаблон, а не сегодняшний набор страниц, иначе следующая кампания оплатит ту же работу заново.
Проверять эту метрику дешевле всего на странице оплаты, и там же дороже всего её игнорировать. На телефоне палец начинает движение раньше, чем страница дособралась, поэтому уехавшая кнопка — не вопрос эстетики, а промах по цели и брошенный заказ. В жалобах всё это приходит без единого технического слова: «нажал не туда», «сайт подписал меня на рассылку, я не соглашался», «выглядит дёшево сделано». Формулировки «у вас разъезжается макет» ждать не стоит — её не произнесёт никто.
Синтетика и полевые данные меряют разное и обновляются по-разному
Разговор о скорости обычно начинается со скриншота PageSpeed Insights и почти никогда — с уточнения, какая из двух цифр на нём имеется в виду. А их там ровно две, и отвечают они на разные вопросы. Синтетический прогон — смоделированное устройство на придушенном канале, запущенное по требованию прямо сейчас. Полевые данные — то же самое, но снятое с браузеров реальных посетителей и усреднённое за скользящий период; присылают всё-таки первое, потому что оно появляется мгновенно и сильнее реагирует на одну пережатую картинку.
В описании услуги «Зелёный PageSpeed и Core Web Vitals» каталог берёт на себя сразу два обязательства, и разделить их полезно. Первое: выход из красной зоны в зелёную считается по мобильным Core Web Vitals, то есть по более строгому профилю, а не по десктопному. Второе: клиент видит цифры до и после — значит, измерение снимается дважды, а не декларируется по факту сдачи. Именно второе обязательство делает работу проверяемой, поэтому фиксировать его стоит раньше, чем начнутся правки.
Дальше идёт место, где чаще всего и ссорятся. Синтетика отзывается на правку в момент деплоя, а полевые данные физически не могут: они сложены из уже состоявшихся визитов и сдвинутся только тогда, когда старые визиты выпадут из скользящего окна. Пока окно не обновилось, вылеченный сайт честно показывает прежние цифры, и ускорить это ничем нельзя. Обещание «поле позеленеет в день выкатки» — описание лабораторного результата, которому дали чужое имя.
Вывод отсюда договорный, а не инженерный. До старта решите, по какому из двух документов принимается работа, и снимите оба показания, пока ничего не тронуто. Синтетический балл проверяется в тот же день; полевые данные проверяются датой в календаре, и отчёт по ним пишется позже — это нормальный срок, а не отговорка. Жульничества нет ни в одном из вариантов, а спор возникает ровно там, где документ не выбрали заранее.
Аудит без правок: зачем в прайсе отдельная строка
Из четырёх услуг, попавших в этот разбор, цена разбита на две части ровно у одной, и сама разбивка полезнее любой цифры внутри неё. Каталог даёт 10 000 – 40 000 ₽ за диагностику с внедрением и отдельной позицией — только аудит без правок, 8 000–15 000 ₽. Долларовая вилка для строки целиком составляет $200 – $800. Срок записан не часами, а этапами: 1 день диагностика + 1–3 дня внедрение.
Делить приходится потому, что одна половина имеет границы, а вторая до поры их не имеет. У диагностики предсказуемый конец: измерили, проследили, приписали каждую медленную миллисекунду к причине и остановились, когда неприписанного не осталось. Внедрение обретает границы только после этого — причиной может оказаться тяжёлая картинка на первом экране, а это короткий проход по ассетам, а может генерация страницы из базы на каждый запрос, и это отдельный проект. Единая фиксированная цена на обе половины поэтому и считается по худшему сценарию.
В прайсе есть место, которое выглядит опечаткой, и разобрать его стоит; дальше идёт пример рассуждения, а не измерение. Потолок аудита без правок — 15 000 ₽, нижняя граница диагностики с внедрением — 10 000 ₽, то есть расследование без починки способно стоить дороже, чем расследование вместе с починкой. Логика тут прямая: аудит оценивается трудностью расследования, а не размером будущей заплатки. Запутанный сайт разбирается дольше простого независимо от того, придётся ли потом что-то в нём править.
У отдельного аудита есть и вполне определённый адресат, и это не тот, кому не хватило бюджета. Это компания со своими разработчиками: рук ей достаточно, не хватает приоритизированного списка причин, который команда возьмёт в ближайший спринт. Платить за такой список по ставке внедрения незачем, поэтому в каталоге он и стоит отдельно — только аудит без правок, 8 000–15 000 ₽. Если внедрять всё-таки решат на стороне, тот же документ уходит подрядчику как техническое задание.
Часы против дней: как выбрать между двумя строками про скорость
Быстрые страницы в каталоге обещают две разные услуги, и различить их проще всего, выписав параметры в столбик. «Зелёный PageSpeed и Core Web Vitals» — категория «Оптимизация», сложность «Нужен опыт», 8 000 – 25 000 ₽ или $200 – $600, срок 5-12 часов. «Ускорение сайта и Core Web Vitals под порог Google» — категория «Скорость», сложность снова «Нужен опыт», 10 000 – 40 000 ₽ или $200 – $800. Последняя строка у них не совпадает по единицам измерения: 1 день диагностика + 1–3 дня внедрение.
Смотреть надо именно на последнюю строку, а не на суммы. Часы и дни здесь не два способа записать одно и то же, а два разных обещания. Вилка в часах говорит про объём: кто-то уже представляет фронт работ и оценивает длительность. Расписание в днях говорит про порядок — первый блок существует затем, чтобы определить содержание следующих, а разброс в хвосте оказывается признанной вслух неопределённостью, а не запасом на всякий случай.
Правило выбора сводится к одному вопросу: что у вас на руках — причина или симптом. Причина звучит словами из предыдущих разделов: тяжёлая картинка на первом экране, шрифт, блокирующий отрисовку, четыре скрипта менеджера тегов до первого взаимодействия. Тогда покупается исполнение, и часовая строка задачу закрывает. Симптом звучит иначе — красный балл, жалоба трафик-менеджера, ощущение «стало медленно», — и в этом случае первым покупают знание, а экономия на этой стадии просто переносит угадывание в счёт.
Общего у двух строк больше, чем кажется, и самое важное общее — не цена. Обе помечены «Нужен опыт», и это не формальность: обе правят путь отрисовки страницы, которая прямо сейчас приносит деньги, а ошибку там видят все посетители одновременно. Вилки цен, наоборот, внизу не различают ничего — обе начинаются с $200. Сложность отвечает на вопрос, кому можно отдать работу; вилка — только на вопрос, сколько этой работы может оказаться.
Адаптив — счёт за вёрстку, а не за скорость
«Адаптация сайта под мобильные» стоит в каталоге рядом с услугами про скорость и решает при этом совсем другую задачу. Формальные параметры такие: категория «Вёрстка», сложность «Новичок», 10 000 – 30 000 ₽ или $150 – $500, 6-16 часов. Описание принципиально не про время загрузки — оно про то, что сайт перестаёт разъезжаться на телефоне: появляется нормальное меню, кнопки становятся кликабельными, текст читаемым, формы рабочими, а основная доля трафика перестаёт отваливаться на первом экране.
Сопоставьте этот список с тремя метриками — пересечений не найдётся ни одного. Метрика скорости отрисовки ничего не знает о том, дотягивается ли палец до меню и читается ли текст без увеличения двумя пальцами, поэтому зелёные LCP, INP и CLS прекрасно уживаются с сайтом, которым на телефоне невозможно пользоваться. Обратная комбинация встречается не реже: идеально резиновая вёрстка при мучительной медленности. Это две независимые поломки, и оплата не той из них — самый частый способ потратить бюджет без единого изменения для пользователя.
Отдельного объяснения требует сочетание сложности «Новичок» и почти трёхкратного разброса 6-16 часов: на первый взгляд одно противоречит другому. Противоречия нет, потому что эти два параметра описывают разные оси. Сложность относится к каждой отдельной правке, и правки действительно рутинные. Ширина вилки относится к тому, сколько раз рутину предстоит повторить, а определяет это число разных шаблонов, а не трудность любого из них.
Практический вывод: своё место в вилке считается самостоятельно, до всякого запроса оценки. Считать надо шаблоны, а не страницы. Одностраничник с шапкой, формой и подвалом — это один макет и нижний край вилки. Магазин с главной, листингом категории, карточкой товара, корзиной, оформлением заказа, личным кабинетом и набором контентных страниц — это семь макетов и больше, у каждого свои брейкпоинты и свой способ ломаться, и именно эта арифметика тянет к верхней границе 6-16 часов.
PWA-обёртка: четыре изменения на телефоне и один риск
«PWA-обёртка: сайт как приложение на телефоне» занимает в каталоге категорию «Мобильное» со сложностью «Нужен опыт» и стоит 8 000 – 25 000 ₽ или $100 – $400 за 6-14 часов. Описание у неё устроено необычно: вместо оценочных обещаний — четыре физических изменения. Сайт ставится на домашний экран, открывается без браузерной строки, работает офлайн и умеет присылать push. К этому добавлены две причины, по которым обёртку вообще берут: она дешевле нативного приложения в десятки раз и не требует прохождения модерации в сторах.
Самая низкая долларовая вилка группы при сложности «Нужен опыт» — сочетание, которое перестаёт удивлять, стоит посмотреть на механизм. Цену внизу держит маленькая площадь работ: файлов правда немного. Уровень сложности держит service worker — код, который встаёт между телефоном и вашим сервером и решает, что отдавать из кеша, а что запрашивать заново. Очертите этот кеш неаккуратно, и вернувшийся клиент увидит вчерашние цены, причём обычное обновление страницы к свежим его не вернёт.
Столь же полезно проговорить, что в эту цену не входит. Исправлением Core Web Vitals обёртка не является, и причина — в источнике полевых данных: они собираются с реальных визитов, а у публичного сайта заметная доля значимых визитов приходится на первые, от людей, которые ничего не устанавливали. Кеш вступает в игру со второго захода и дальше работает всё лучше, а первый оставляет ровно таким же медленным, каким тот и был. Покупка обёртки ради красного LCP — правильная цена за неподходящую услугу.
Зато там, где обёртка окупается, это видно по одному признаку — по частоте возвратов. Продукты, куда заходят еженедельно, а не раз в год. Трекинг заказа, бронирование и личный кабинет, где офлайн-доступ к последнему известному состоянию действительно выручает. Выездные сотрудники на нестабильной связи. И бизнесы, чьи клиенты просят приложение, хотя на деле хотят иконку на экране и уведомление, — и то и другое здесь получают за 6-14 часов, без нативной разработки и без ревью в сторе.
Как по симптому предсказать вилку в прайсе
Всё предыдущее нужно ради одной прикладной возможности — пройти диагностику задом наперёд, от фразы в жалобе к строке каталога, ещё до первого письма подрядчику. «Экран пустой пару секунд, а потом всё появляется разом» указывает на LCP: причина в первом экране и пути отрисовки, а форма работы совпадает с «Зелёным PageSpeed» за 5-12 часов. «Нажимаю кнопку, ничего не происходит, потом происходит всё сразу» указывает на INP, и там причина в коде, занявшем главный поток.
«Нажал не туда, потому что оно уехало из-под пальца» указывает на CLS и на место, которое забыли зарезервировать. «Текст микроскопический, меню уезжает за край» не указывает ни на одну метрику: это «Адаптация сайта под мобильные» — «Вёрстка», «Новичок», 10 000 – 30 000 ₽ или $150 – $500, 6-16 часов. «Клиенты спрашивают, есть ли у нас приложение» — тоже не про скорость: это PWA-обёртка за $100 – $400, и решение по ней принимают, глядя на долю возвращающихся, а не на балл.
Напоследок ещё одна проверка на коленке — снова пример рассуждения, а не опубликованная ставка. Возьмите «Зелёный PageSpeed»: $200 – $600 против 5-12 часов. Поделите нижнюю границу денег на нижнюю границу часов, потом верхнюю на верхнюю — оба результата окажутся одного порядка. Вилка, которая ведёт себя так, масштабируется объёмом работы, а не представлением о платёжеспособности клиента, и ту же проверку можно повторить на любой строке каталога, где опубликованы обе величины.
Три вещи на входе делают первый разговор коротким. Первая — ссылка, чтобы оба показания сняли до того, как что-то тронут. Вторая — устройство, с которого приходят жалобы: мобильный и десктопный профили падают по разным причинам, а каталог целится в мобильный. Третья — честный ответ, можете вы назвать причину или пока только симптом. Именно он выбирает между часовым проходом по оптимизации и диагностикой, которая ровно поэтому продаётся отдельно за 8 000–15 000 ₽.
Вопросы и ответы
Сколько стоит вывести Core Web Vitals в зелёную зону?
«Зелёный PageSpeed и Core Web Vitals» стоит 8 000 – 25 000 ₽ или $200 – $600 за 5-12 часов и рассчитан на сайт, где причины уже названы. Если названного нет и на руках только красный балл, работает вторая строка. «Ускорение сайта и Core Web Vitals под порог Google» стоит 10 000 – 40 000 ₽ или $200 – $800 и идёт как 1 день диагностика + 1–3 дня внедрение. Целевые значения там прописаны: INP до 200 мс, LCP до 2,5 с и CLS до 0,1.
Нужно ли заказывать внедрение, если хочется только понять причины?
Только аудит без правок стоит в каталоге 8 000–15 000 ₽ — против 10 000 – 40 000 ₽ за диагностику с внедрением. Расследование в обоих случаях одинаковое и заканчивается одним и тем же приоритизированным перечнем причин, поэтому команде со своими разработчиками достаточно первого варианта. Отказ от внедрения не урезает выводы: сокращается только объём рук, которые их применяют.
Даст ли PWA-обёртка прирост в PageSpeed?
Нет. «PWA-обёртка: сайт как приложение на телефоне» стоит 8 000 – 25 000 ₽ или $100 – $400 за 6-14 часов, и добавляет она установку на домашний экран, запуск без браузерной строки, офлайн-работу и push-уведомления. Красный LCP зарабатывается на первом визите, а кеш начинает помогать со второго. Скорость поэтому покупается отдельными строками каталога, а обёртка оценивается по повторным визитам.
Чем адаптив под мобильные отличается от работ по скорости?
Предметом работы. «Адаптация сайта под мобильные» относится к категории «Вёрстка», имеет сложность «Новичок» и стоит 10 000 – 30 000 ₽ или $150 – $500 за 6-16 часов. Она чинит неработающее меню, некликабельные кнопки, нечитаемый текст и сломанные формы, тогда как работа по Core Web Vitals касается времени отрисовки и отклика. Зелёные показатели по всем трём метрикам не мешают сайту оставаться неудобным на телефоне.

