Дата: 22.09.2026 Автор: Д. Беляков
Узнать стоимость услуг

Скорость сайта и Core Web Vitals: как ускорить и не потерять позиции



Нужна помощь в продвижении сайта?
Если Вы хотите быстро продвинуть сайт и начать зарабатывать на нём, Вы можете обратиться ко мне,
для этого просто оставьте заявку, а также можно связаться через телеграмм или MAX

Содержание

  1. Почему скорость — это фактор ранжирования
  2. Что такое Core Web Vitals: LCP, CLS, INP
  3. Как измерять: инструменты и метрики
  4. LCP: как ускорить загрузку главного контента
  5. CLS: как убрать сдвиги макета
  6. INP: как ускорить отклик страницы
  7. Изображения: главный источник тормозов
  8. JavaScript: как не убить скорость фреймворками
  9. Сервер и хостинг: что настроить
  10. Кейс 1: ускорение интернет-магазина — LCP с 6.2 до 1.8 с
  11. Кейс 2: лендинг на Tilda — LCP с 4.5 до 2.1 с
  12. Автотесты для скорости: что добавить в CI/CD
  13. Чек-лист по скорости
  14. Заключение

Почему скорость — это фактор ранжирования

Скорость сайта — это не про «пользователям приятно». Это про ранжирование. Яндекс и Google напрямую учитывают скорость при формировании выдачи. Медленный сайт ранжируется ниже, даже если контент лучше.

Почему так: поисковик хочет показать пользователю лучший результат. Если две страницы одинаково релевантны, но одна грузится за 1.5 секунды, а другая за 5 — поисковик выберет первую. Потому что пользователь не ждёт.

Кроме того, скорость влияет на краулинг. Медленный сайт робот сканирует медленнее — меньше страниц попадает в индекс. Это особенно критично для больших сайтов: интернет-магазинов, порталов, агрегаторов.

Я видел сайты, где после ускорения с 5 до 2 секунд трафик вырастал на 20–30% без каких-либо других изменений. Только скорость. Это не магия — это алгоритм.

Что такое Core Web Vitals: LCP, CLS, INP

Core Web Vitals — это три ключевые метрики, по которым Google и Яндекс оценивают скорость и стабильность страницы. Их три:

LCP (Largest Contentful Paint)

Время до отрисовки самого большого элемента на экране. Обычно это изображение, баннер или заголовок. Показывает, через сколько секунд пользователь видит основной контент. Норма: до 2.5 секунд. Плохо: больше 4.

CLS (Cumulative Layout Shift)

Сумма сдвигов элементов макета за время загрузки. Когда страница «прыгает» — кнопка уезжает, текст сдвигается вниз — это CLS. Норма: до 0.1. Плохо: больше 0.25. Высокий CLS раздражает пользователей: они кликают не туда, перечитывают текст.

INP (Interaction to Next Paint)

Время от взаимодействия пользователя (клик, тап, ввод) до отрисовки результата. Заменил FID в 2024 году. Показывает, насколько быстро страница реагирует на действия. Норма: до 200 мс. Плохо: больше 500 мс.

Эти три метрики — основа. Если все три в зелёной зоне — страница считается быстрой. Если хотя бы одна в красной — сайт в группе риска.

Как измерять: инструменты и метрики

Инструменты, которыми я пользуюсь:

  1. PageSpeed Insights — основной инструмент от Google. Показывает LCP, CLS, INP и даёт рекомендации. Проверяю и мобильную, и десктопную версию. URL: pagespeed.web.dev.
  2. Lighthouse (в DevTools) — встроен в Chrome. Показывает те же метрики плюс диаграммы водопада. Удобно для дебага.
  3. Яндекс.Вебмастер → «Эксплуатация» → «Скорость загрузки». Показывает время ответа сервера и загрузки страниц по данным Яндекса.
  4. WebPageTest — детальный анализ: водопад, кадры загрузки, разбивка по типам ресурсов. URL: webpagetest.org.
  5. Chrome UX Report (CrUX) — реальные данные скорости от пользователей Chrome. Доступны через PageSpeed Insights.

Важно: лабораторные данные (Lighthouse) и реальные данные (CrUX) могут отличаться. Lighthouse симулирует загрузку на эталонном устройстве. CrUX показывает, как реально грузится страница у пользователей. Если Lighthouse показывает зелёный, а CrUX — красный, значит, у реальных пользователей устройство слабее или сеть хуже. Нужно оптимизировать именно под реальный профиль.

LCP: как ускорить загрузку главного контента

LCP — самая важная метрика. Если она красная — позиции страдают. Что чаще всего тормозит LCP:

1. Большое изображение

Если LCP-элемент — картинка (баннер, hero-image, фото товара), и она весит 2 МБ — это проблема. Решения:

  1. Сжимайте изображения. WebP вместо PNG/JPEG — на 25–35% меньше.
  2. Указывайте ширину и высоту в атрибутах <img>. Это позволяет браузеру зарезервировать место и не ждать layout.
  3. Используйте fetchpriority="high" для LCP-изображения. Браузер загрузит его первым.
  4. Используйте CDN для изображений. Cloudflare, imgix, Cloudinary — отдают оптимизированные картинки с ближайшего сервера.

3. Медленный ответ сервера (TTFB)

TTFB (Time to First Byte) — время до первого байта. Если сервер отвечает 1.5 секунды — LCP не будет меньше 1.5. Решения:

  1. Кэширование на сервере (Redis, Memcached для динамических страниц).
  2. CDN для статики (Cloudflare, Selectel).
  3. Обновление хостинга. Shared-хостинг за 200 ₽/мес не потянет интернет-магазин. VPS — минимум.
  4. Оптимизация запросов к базе данных. Медленные SQL-запросы — частая причина высокого TTFB.

3. Рендеринг блокируется CSS и JS

Если в <head> подключены 5 CSS-файлов и 10 JS — браузер ждёт их загрузки, прежде чем отрисовать страницу. Решения:

  1. Inline критического CSS. Маленький кусок стилей, нужных для первого экрана — прямо в HTML.
  2. Отложите некритичный JS через defer или async.
  3. Удалите неиспользуемый CSS и JS. Анализ через Coverage в DevTools.
  4. Разделите CSS: критический — в <head>, остальное — перед </body>.

4. Шрифты блокируют рендер

Если шрифт грузится 2 секунды, а текст ждёт шрифт — пользователь видит пустую страницу. Решения:

  1. font-display: swap — браузер показывает текст системным шрифтом, потом меняет на ваш.
  2. Preload шрифтов: <link rel="preload" as="font">.
  3. Subset шрифтов — загружайте только те символы, которые используются (кириллица, цифры, знаки).
  4. Self-host шрифтов — не с Google Fonts, а со своего сервера. Меньше DNS-запросов.

CLS: как убрать сдвиги макета

CLS — метрика, которую проще всего исправить, но которую чаще всего игнорируют. Причины сдвигов:

1. Изображения без размеров

Если у <img> нет атрибутов width и height, браузер не знает, сколько места reserves. Картинка грузится — контент сдвигается. Решение: указывайте размеры для всех изображений.

2. Реклама и виджеты без зарезервированного места

Если рекламный блок вставляется после загрузки — контент сдвигается. Решение: резервируйте место через CSS (min-height для контейнера).

3. Динамический контент

Cookie-баннеры, чат-виджеты, всплывающие формы — появляются после загрузки и сдвигают контент. Решение: фиксируйте их позицию (position: fixed) или резервируйте место заранее.

4. Шрифты с разной шириной

Системный шрифт узкий, ваш — широкий. При замене — контент сдвигается. Решение: font-display: swap и подбор fallback-шрифта с похожей шириной.

INP: как ускорить отклик страницы

INP заменил FID в 2024 году. Он измеряет задержку между действием пользователя и отрисовкой результата. Высокий INP — страница «тормозит» при кликах, скролле, вводе. Причины:

  1. Тяжёлый JS на главном потоке. Большие скрипты блокируют интерактив. Решение: code splitting, lazy loading скриптов.
  2. Сторонние виджеты. Чат, аналитика, реклама — каждый добавляет JS. Решение: загружайте через requestIdleCallback или с задержкой.
  3. Дорогостоящие обработчики событий. Если на scroll или click висит тяжёлый handler — страница тормозит. Решение: debounce/throttle, web workers для тяжёлых вычислений.
  4. Реактивные фреймворки без оптимизации. React/Vue/Angular могут создавать лишние re-render. Решение: memoization, virtual scrolling, оптимизация рендера.

Изображения: главный источник тормозов

В 80% случаев, которые я аудитаю, изображения — главная причина медленной загрузки. Что делаю:

  1. Формат WebP/AVIF. Конвертирую все изображения в WebP (поддержка 97% браузеров) или AVIF (если нужна максимальная компрессия). Экономия 25–40% по сравнению с JPEG/PNG.
  2. Lazy loading. Все изображения ниже первого экрана — через loading="lazy". Браузер не грузит их, пока не доскроллит. Экономия 50–70% трафика при первой загрузке.
  3. Правильные размеры. Не грузить изображение 4000×3000, если на экране оно 400×300. Генерируйте несколько размеров (srcset) и отдавайте нужный.
  4. Атрибуты width и height. На каждом <img> — это устраняет сдвиги (CLS) и ускоряет рендер.
  5. CDN для изображений. Если сайт на одном сервере в Москве, пользователь из Твери получает картинки с задержкой. CDN решает — отдаёт с ближайшего узла.
  6. Background-images — заменить на <img> с lazy load. CSS background не поддерживает lazy loading. Если hero-изображение в CSS — оно блокирует рендер.

JavaScript: как не убить скорость фреймворками

React, Vue, Angular — отличные фреймворки, но они добавляют вес. Бандл React + ReactDOM — 40 КБ gzipped. Плюс библиотеки — 100–200 КБ. Это замедляет первую загрузку. Что делаю:

  1. SSR (Server-Side Rendering). Рендеринг на сервере — пользователь видит HTML сразу, без ожидания JS. Next.js, Nuxt.js — из коробки. Если чистый SPA — используйте prerendering.
  2. Code splitting. Не грузите весь бандл сразу. Разделите на чанки: главная страница — один чанк, страница товара — другой. React.lazy, dynamic import.
  3. Tree shaking. Удалите неиспользуемые экспорты. Webpack/Vite делают это автоматически, но проверьте: Coverage в DevTools показывает, сколько JS не используется.
  4. Откладывайте сторонние скрипты. Google Analytics, Яндекс.Метрика, чат-виджеты — загружайте через 2–3 секунды после загрузки страницы или через requestIdleCallback.
  5. Минификация и сжатие. Babel/terser для минификации. Brotli/gzip для сжатия на сервере. Сжатый бандл в 3–5 раз меньше.

Сервер и хостинг: что настроить

  1. HTTP/2 или HTTP/3. Мультиплексирование — несколько запросов в одном соединении. Быстрее, чем HTTP/1.1.
  2. Brotli или gzip. Сжатие текстовых ресурсов. Brotli эффективнее gzip на 15–20%.
  3. Кэширование. Кэш-контроль headers: Cache-Control: public, max-age=31536000 для статики.
  4. CDN. Cloudflare (бесплатный тариф), Selectel, AWS CloudFront. Отдаёт статику с ближайшего сервера.
  5. VPS вместо shared. Shared-хостинг — общие ресурсы. VPS — выделенные. Для интернет-магазина — минимум.
  6. PHP-FPM + OPcache. Если сайт на PHP — включите OPcache. Кэширует байткод, ускоряет на 30–50%.
  7. Оптимизация базы данных. Индексы на часто запрашиваемых полях. Медленные запросы — в логи.

Кейс 1: ускорение интернет-магазина — LCP с 6.2 до 1.8 с

Сайт: интернет-магазин стройматериалов, 3 200 товаров.

Проблема: LCP 6.2 с, CLS 0.18, INP 480 мс. Трафик стагнировал, конверсия 0.8%.

Что сделано:

  1. Изображения: конвертированы в WebP, добавлен lazy load, указаны размеры. Экономия 60% веса.
  2. CSS: инлайн критического, остальное — async. Удалено 40% неиспользуемого CSS.
  3. JS: code splitting, отложена загрузка Метрики и чат-виджета. Бандл уменьшен с 380 КБ до 120 КБ.
  4. Сервер: включён OPcache, настроен Brotli, подключён Cloudflare CDN. TTFB с 1.4 до 0.3 с.
  5. Шрифты: font-display: swap, preload, subset только кириллицы.
  6. Реклама: зарезервировано место через min-height. CLS снижен.

Результат:

  1. LCP: 6.2 → 1.8 с
  2. CLS: 0.18 → 0.04
  3. INP: 480 → 120 мс
  4. Трафик: рост на 22% за 2 месяца (без других SEO-работ)
  5. Конверсия: 0.8% → 1.4%

Кейс 2: лендинг на Tilda — LCP с 4.5 до 2.1 с

Сайт: лендинг на Tilda, 10 экранов, много анимаций.

Проблема: LCP 4.5 с, CLS 0.15. Tilda по умолчанию грузит все скрипты и картинки сразу.

Что сделано:

  1. Изображения: сжаты до 100 КБ каждое, WebP через Tilda-настройки.
  2. Анимации: отключены на мобильном, оставлены только на десктопе. Анимации — главный тормоз на Tilda.
  3. Шрифты: заменены с Google Fonts на системные (Tilda поддерживает). Экономия 300 мс на DNS-запросах.
  4. Виджеты: отложен чат-виджет, убраны лишние аналитические скрипты (оставили только Метрику).
  5. Меню: упрощено с анимированного на статическое. Меньше JS — быстрее рендер.

Результат:

  1. LCP: 4.5 → 2.1 с
  2. CLS: 0.15 → 0.02
  3. Трафик: рост на 15% за 6 недель
  4. Конверсия: 1.2% → 2.1%

Tilda можно ускорить, если убрать лишнее. Но есть предел: Tilda — конструктор, и её ядро нельзя оптимизировать полностью. Если нужна максимальная скорость — нужен кастомный сайт.

Автотесты для скорости: что добавить в CI/CD

Как разработчик, я автоматизирую проверку скорости, чтобы ловить регрессии до релиза:

  1. Lighthouse CI. Запуск Lighthouse в CI при каждом PR. Пороги: LCP < 2.5, CLS < 0.1, INP < 200. Если метрика ухудшается — билд падает.
  2. Bundle size check. Если бандл вырос на 20% — предупреждение. Лишний вес = медленнее.
  3. Image size check. Если загружено изображение больше 500 КБ без WebP — предупреждение.
  4. TTFB monitoring. Регулярная проверка TTFB на стейджинге. Если > 600 мс — алерт.

Пример конфигурации Lighthouse CI:

js // lighthouserc.js module.exports = { ci: { collect: {
         url: ['https://staging.example.com/'], numberOfRuns: 3,
},
assert: { assertions: { 'largest-contentful-paint': ['error', { max: 2500 }],
'cumulative-layout-shift': ['error', { max: 0.1 }],
'interaction-to-next-paint': ['warn', { max: 200 }],
}, }, },
};

Такой конфиг гоняется в CI и блокирует релиз, если скорость просела. Подробнее про автоматизацию SEO-проверок — в статье автоматизация SEO-тестов.

Чек-лист по скорости

LCP:

  1. [ ] LCP < 2.5 с (мобильный)
  2. [ ] LCP-элемент — сжатое изображение (WebP)
  3. [ ] fetchpriority="high" на LCP-изображении
  4. [ ] Критический CSS — инлайн
  5. [ ] Некритичный JS — defer
  6. [ ] TTFB < 600 мс
  7. [ ] Шрифты — font-display: swap, preload

CLS:

  1. [ ] CLS < 0.1
  2. [ ] width и height на всех <img>
  3. [ ] Место под рекламу и виджеты зарезервировано
  4. [ ] Cookie-баннер и чат — position: fixed

INP:

  1. [ ] INP < 200 мс
  2. [ ] Сторонние скрипты — отложены
  3. [ ] Тяжёлые обработчики — debounce/throttle
  4. [ ] Бандл — минифицирован и разделён

Сервер:

  1. [ ] HTTP/2+
  2. [ ] Brotli/gzip включён
  3. [ ] Cache-Control настроен для статики
  4. [ ] CDN подключён
  5. [ ] VPS, не shared

Изображения:

  1. [ ] WebP/AVIF для всех изображений
  2. [ ] loading="lazy" для ниже первого экрана
  3. [ ] srcset для адаптивных размеров
  4. [ ] Каждое изображение < 300 КБ

Заключение

Скорость — это не «приятный бонус», а технический фактор ранжирования. Медленный сайт теряет позиции, трафик и конверсии. Но ускорение — это не магия, а набор конкретных шагов: сжать изображения, отложить JS, настроить кэш, подключить CDN. Каждый шаг даёт 10–30% улучшения. В сумме — LCP с 6 до 2 секунд, рост трафика на 20% и конверсии на 50%.

Хотите проверить скорость своего сайта и понять, что тормозит? Пришлите URL — бесплатно прогоню через PageSpeed Insights и Lighthouse, покажу, что именно замедляет и как это исправить.

Аудит скорости сайта

Пришлите URL — бесплатно проверю LCP, CLS, INP и покажу, что замедляет сайт. С конкретными рекомендациями по исправлению.

Получить аудит

```


Нужна помощь в продвижении вашей организации?
Пишите мне в Телеграмм или MAX и мы обсудим все детали.




Последние статьи:




Даю согласие на обработку персональных данныхинформация не будет передана 3-м лицаи.