
На странице
- Почему производительность сайта важнее, чем когда-либо
- Core Web Vitals: три метрики, определяющие скорость
- Архитектурные решения, определяющие скорость
- Серверный рендеринг и статическая генерация
- Оптимизация изображений: самая быстрая победа
- JavaScript: тихий убийца производительности
- CDN, кэширование и edge-доставка
- Загрузка шрифтов и стратегия CSS
- Бюджеты производительности и непрерывный мониторинг
- Мобильная производительность — отдельная задача
- Встраивание производительности в процесс разработки
- Перестаньте относиться к производительности как к второстепенной
Создание высокопроизводительного сайта — это не про добавление плагина кэширования поверх готового проекта и надежду на лучшее. Это архитектурное решение, которое должно быть принято ещё до написания первой строки кода. И тем не менее большинство команд относятся к скорости как к чему-то, что нужно исправить потом — после того как дизайн зафиксирован, контент загружен и клиент начинает жаловаться на показатели отказов.
Вот реальность: задержка загрузки страницы в одну секунду может снизить конверсию до 20%. Сайты, загружающиеся за одну секунду, конвертируют в 3 раза лучше, чем сайты, загружающиеся пять секунд. Это не гипотетические цифры — они взяты из реальных исследований Cloudflare и Portent. Производительность — это выручка. И если ваш партнёр по веб-разработке не встраивает её на каждом этапе проекта, вы оставляете деньги на столе.

Почему производительность сайта важнее, чем когда-либо
Начнём с цифр, потому что они рассказывают историю, которую сложно игнорировать. Как мы исследовали в нашем руководстве о том, как плохой UX уничтожает SEO и конверсии, проблемы производительности — это часто скрытая UX-проблема, и Google измеряет обе.
Google использует скорость страниц как сигнал ранжирования с 2010 года, но введение Core Web Vitals в 2021 сделало это явным: если ваш сайт медленный — позиции будут ниже. Точка. В 2026 году, с INP (Interaction to Next Paint), полностью заменившим FID как основную метрику, планка стала ещё выше.
Но позиции в SEO — лишь часть картины. Посмотрите, что происходит на стороне пользователя:
- 53% мобильных посетителей уходят, если страница загружается дольше 3 секунд.
- Задержка в 2 секунды увеличивает показатель отказов на 103%.
- 79% онлайн-покупателей, испытывающих плохую производительность, говорят, что не вернутся на этот сайт.
- B2B-сайты, загружающиеся за 1 секунду, конвертируют в 5 раз лучше, чем сайты, загружающиеся за 10 секунд.
Паттерн ясен. Скорость — не технический каприз, это бизнес-метрика. Каждые сто миллисекунд, срезанные с времени загрузки, напрямую переводятся в вовлечённость, лиды и продажи.
И вот что меня раздражает как разработчика: большинство проблем производительности, которые я вижу на сайтах клиентов, полностью предотвратимы. Они вытекают из плохих архитектурных решений, принятых в начале проекта, а не из неразрешимых технических ограничений.
Core Web Vitals: три метрики, определяющие скорость
Если вы собираетесь создать быстрый сайт, нужно говорить на языке измерения производительности. Core Web Vitals Google дают нам три конкретных, измеримых цели:
Largest Contentful Paint (LCP) — Цель: менее 2,5 секунды
LCP измеряет, сколько времени требуется для рендеринга наибольшего видимого элемента на странице. Обычно это hero-изображение, блок заголовка или миниатюра видео. Это то, что пользователи воспринимают как «страница загрузилась». Медленный LCP часто указывает на неоптимизированные изображения, медленные ответы сервера или блокирующие рендеринг ресурсы.
Interaction to Next Paint (INP) — Цель: менее 200 миллисекунд
INP заменил First Input Delay в марте 2024 года и измеряет отзывчивость вашей страницы на взаимодействия пользователей на протяжении всей сессии — не только первого клика. Если ваш сайт ощущается вялым при нажатии кнопки или открытии выпадающего меню — у вас проблема INP. Тяжёлый JavaScript и большие DOM-деревья — обычные виновники.
Cumulative Layout Shift (CLS) — Цель: менее 0,1
CLS отслеживает неожиданные визуальные сдвиги на странице. Пытались ли вы нажать на ссылку на мобильном, а реклама загружалась и сдвигала контент вниз? Это смещение компоновки. Оно вызывается изображениями без заданных размеров, динамически вставляемым контентом и веб-шрифтами, заменяющимися после начального рендеринга.
Эти три метрики дают конкретный фреймворк. Вместо расплывчатой цели «быстрый сайт» вы нацелены на конкретные, измеримые числа, используемые Google для оценки ваших страниц. Каждое архитектурное и оптимизационное решение должно фильтроваться через эти метрики. Если хотите понять, как отслеживать и интерпретировать эти оценки в рамках более широкой практики UX-измерений, наше руководство по UX-метрикам, реально влияющим на бизнес-результаты охватывает Core Web Vitals вместе с полным набором показателей, заслуживающих мониторинга.

Архитектурные решения, определяющие скорость
Вот где большинство проектов идут не так. Команда выбирает технологический стек на основе популярности или знакомства, добавляет конструктор страниц или тяжёлую CMS, накладывает плагины и сторонние скрипты, а затем удивляется, почему PageSpeed Insights показывает оценку 47.
Производительность начинается на уровне архитектуры. Решения о стратегии рендеринга, хостинг-инфраструктуре и организации кода определяют ваш потолок производительности — максимальную скорость, которую ваш сайт когда-либо сможет достичь, независимо от объёма оптимизации позже.
Несколько вопросов, которые стоит задать до начала разработки:
- Как будут рендериться страницы? Клиентский рендеринг, серверный рендеринг, статическая генерация или гибридный подход? У каждого разные профили производительности.
- Какова хостинговая среда? Общий хостинг, VPS, бессерверные функции или edge-вычисления? Время ответа сервера (Time to First Byte) устанавливает базовый уровень для всего остального.
- Сколько JavaScript отправляет фреймворк по умолчанию? Некоторые фреймворки отправляют 200КБ+ JavaScript до того, как вы написали хоть один компонент.
- Может ли сайт отдавать статические ресурсы с CDN? Edge-кэширование может полностью устранить серверные обходы для большинства загрузок страниц.
Правильные ответы зависят от конкретных потребностей проекта. Корпоративный сайт с преимущественно статическим контентом имеет очень разные требования от динамического веб-портала с данными реального времени. Но принцип одинаков: сделайте производительность ограничением дизайна первого класса, а не последним чекбоксом.
Серверный рендеринг и статическая генерация
В 2026 году мир веб-разработки в основном разрешил спор о рендеринге. Сервер-первый — это дефолт, и на то есть причины.
При серверном рендеринге (SSR) сервер отправляет браузеру полностью сформированную HTML-страницу. Пользователь видит контент почти мгновенно, без ожидания загрузки, парсинга и выполнения JavaScript. Это огромный выигрыш для LCP — наибольший элемент контента уже находится в HTML при получении страницы.
Статическая генерация сайтов (SSG) идёт ещё дальше. Страницы пре-собираются при деплое и отдаются как простые HTML-файлы с CDN. Никакой серверной обработки, никаких запросов к базе данных, никаких API-вызовов при запросе. Результат? Time to First Byte, измеряемый в двузначных миллисекундах.
Фреймворки вроде Next.js, Astro и Nuxt дают гранулярный контроль над этим. Вы можете статически генерировать маркетинговые страницы, рендерить на сервере динамический дашборд и рендерить на клиенте только интерактивные виджеты, которые реально в этом нуждаются. Этот гибридный подход — иногда называемый «островковой архитектурой» — позволяет получить лучшее от каждой стратегии рендеринга без компромиссов.
Ключевой инсайт: не рендерите на клиенте то, что можно рендерить на сервере. Каждый кусок контента, приходящий как готовый к отображению HTML, загружается мгновенно — независимо от мощности устройства пользователя или скорости соединения.
Ориентир производительности
Сайты, построенные на современных фреймворках — Next.js или Astro — как правило, набирают 90–100 баллов в PageSpeed Insights против 50–70 для сборок на основе шаблонных CMS. Разница не в настройках — в архитектуре. Когда производительность заложена в фундаменте, оптимизация становится инкрементальной, а не героической.
Оптимизация изображений: самая быстрая победа
Изображения составляют примерно 50% от общего веса большинства веб-страниц. Если вы делаете только одну оптимизацию производительности — сделайте эту.
Вот чеклист, которому мы следуем в каждом проекте в Vezert:
Используйте современные форматы. WebP даёт файлы на 25–35% меньше, чем JPEG при эквивалентном качестве. AVIF может сжать до 50%. Оба имеют отличную поддержку браузерами в 2026 году.
Отдавайте адаптивные изображения. Не отправляйте hero-изображение 2400px на телефон с экраном 390px. Используйте атрибуты srcset и sizes (или компонент изображения вашего фреймворка) для отдачи правильного разрешения для каждого устройства.
Ленивая загрузка изображений ниже линии сгиба. Атрибут loading="lazy" говорит браузеру отложить загрузку изображений, которые пока не видны. Это напрямую улучшает LCP, приоритизируя то, что пользователь реально видит первым.
Задавайте явные ширину и высоту. Без размеров браузер не знает, сколько места резервировать для изображения. Когда изображение загружается, всё ниже него сдвигается — и оценка CLS падает.
Предзагружайте изображение LCP. Если hero-изображение является наибольшим элементом контентной отрисовки — добавьте тег <link rel="preload">, чтобы браузер начал его загружать немедленно, ещё до парсинга CSS.
Используйте CDN с автоматической оптимизацией. Сервисы вроде Cloudflare, Vercel или Imgix могут изменять размер, сжимать и конвертировать изображения на лету на основе запрашивающего устройства. Одна загрузка — бесконечное количество оптимизированных версий.
Я видел сайты, уменьшавшие общий вес страницы на 60–70% только за счёт правильной обработки изображений. Это не маргинальное улучшение — это трансформация.
JavaScript: тихий убийца производительности
JavaScript — самый дорогой ресурс в вебе, байт за байтом. В отличие от изображения, которому нужно только декодирование и отрисовка, JavaScript нужно загружать, парсить, компилировать и выполнять. На Android-телефоне среднего класса (именно такой у большинства ваших пользователей) парсинг 200КБ JavaScript может занять более секунды.
Вот как мы держим JavaScript под контролем:
Разделение кода. Отправляйте только JavaScript, необходимый для текущей страницы. Современные бандлеры (Webpack, Turbopack, Vite) могут автоматически разделять код на меньшие чанки, загружаемые по требованию.
Tree shaking. Убедитесь, что ваш бандлер удаляет неиспользуемый код. Если импортируете одну функцию из утилитарной библиотеки — не должна отправляться вся библиотека.
Откладывайте сторонние скрипты. Аналитика, виджеты чата, тепловые карты, менеджеры тегов — эти скрипты часто добавляют 300–500КБ JavaScript. Загружайте их после интерактивности основного контента, а не до.
Аудируйте зависимости. Та библиотека анимации, добавленная ради одного hover-эффекта? Она может добавлять 80КБ в ваш бандл. Почти всегда есть более лёгкая альтернатива, или можно написать анимацию в CSS.
Используйте атрибуты async и defer обдуманно. Скрипты в <head> без этих атрибутов полностью блокируют рендеринг. Тегируйте их правильно или перемещайте в конец body.
Практическая цель: держите общий JavaScript ниже 150КБ (сжатых) для вашего критического пути рендеринга. Этого достаточно для фреймворка, маршрутизации и базовой интерактивности — без снижения оценки INP.
CDN, кэширование и edge-доставка
Ваш сервер может находиться в Москве. Ваш пользователь — в Токио. Это физическое расстояние добавляет 150–300мс задержки к каждому запросу — и это ещё до того, как сервер начал обрабатывать страницу.
Сеть доставки контента (CDN) решает это, кэшируя ваш контент на серверах, распределённых по всему миру. Когда пользователь в Токио запрашивает вашу страницу — он получает её с сервера в Токио, а не из Москвы. Задержка падает до однозначных миллисекунд.
Но CDN настолько хороши, насколько хороша ваша стратегия кэширования. Вот что мы рекомендуем:
Агрессивно кэшируйте статические ресурсы. CSS, JavaScript, изображения и шрифты не меняются между деплоями. Устанавливайте Cache-Control: max-age=31536000, immutable и используйте имена файлов с хэшем контента, чтобы кэш автоматически сбрасывался при изменении файлов.
Кэшируйте HTML-страницы на edge, где возможно. Для страниц, не меняющихся между запросами (маркетинговые страницы, статьи блога, листинги продуктов), edge-кэширование полностью устраняет сервер. Инструменты вроде Vercel, Netlify и Cloudflare Pages делают это по умолчанию для статического контента.
Используйте stale-while-revalidate для полудинамического контента. Этот паттерн немедленно отдаёт кэшированную версию, пока в фоне загружается свежая копия. Пользователи получают мгновенные ответы, а контент остаётся достаточно свежим.
Осознанно выбирайте то, что НЕ кэшировать. Персонализированный контент, авторизованные страницы и данные реального времени не должны кэшироваться на edge. Держите эти запросы идущими к вашему origin-серверу или бессерверным функциям.
Edge-вычисления идут дальше — запуская серверную логику в CDN-локациях, а не на центральном сервере. Для лендинга, которому нужно отдавать разный контент на основе геолокации или вариантов A/B-тестов, edge-функции дают одновременно персонализацию и скорость.
Нужен сайт с отличной производительностью?
Vezert создаёт сайты с приоритетом производительности, используя современные фреймворки, серверный рендеринг и edge-доставку. Мы не латаем проблемы скорости — мы их предотвращаем.
Поговорить с нашей командойЗагрузка шрифтов и стратегия CSS
Кастомные веб-шрифты — одна из самых незаметных проблем производительности. Одно семейство шрифтов с несколькими начертаниями может добавить 200–400КБ к вашей странице. Хуже того, способ загрузки шрифтов может вызывать смещение компоновки и невидимый текст — оба фактора вредят Core Web Vitals.
Вот подход, который работает:
Ограничивайте семейства и начертания шрифтов. Два семейства шрифтов с двумя начертаниями каждое — обычно достаточно. Каждое дополнительное начертание добавляет ещё один HTTP-запрос и 20–50КБ данных.
Используйте font-display: swap. Это говорит браузеру немедленно отображать текст резервным шрифтом, а затем переключиться на кастомный, когда он готов. Пользователи видят контент быстрее, даже если есть кратковременная вспышка другой типографики.
Предзагружайте основной шрифт. Добавьте <link rel="preload" as="font" crossorigin> для файла шрифта, используемого в секции-герое и основных заголовках. Это говорит браузеру загружать его заблаговременно.
Самохостите шрифты. Загрузка шрифтов с Google Fonts требует DNS-запроса, соединения с fonts.googleapis.com, а затем соединения с fonts.gstatic.com. Самохостинг устраняет эти дополнительные обходы.
Используйте вариативные шрифты там, где возможно. Один файл вариативного шрифта может заменить несколько файлов начертаний, сокращая запросы и общий размер файла на 50–70%.
Для CSS применяются те же принципы: отправляйте меньше, отправляйте быстрее. Встраивайте критический CSS (стили, нужные для контента выше линии сгиба) напрямую в <head>, а остальное откладывайте. Современные фреймворки делают это автоматически, но стоит проверить в production-сборках.
Бюджеты производительности и непрерывный мониторинг
Создать быстрый сайт — одна задача. Поддерживать его быстрым — другая.
Производительность деградирует постепенно. Новый скрипт отслеживания здесь, более тяжёлое изображение там, плохо оптимизированный компонент, проскользнувший через code review. Без активного мониторинга тщательно оптимизированный сайт может потерять 20–30 баллов PageSpeed за несколько месяцев.
Бюджеты производительности устанавливают жёсткие лимиты по ключевым метрикам:
- Общий вес страницы: менее 1,5МБ
- JavaScript-бандл: менее 150КБ (сжатых)
- LCP: менее 2,5 секунды
- INP: менее 200мс
- CLS: менее 0,1
- Time to First Byte: менее 200мс
Эти бюджеты должны применяться автоматически. Интегрируйте Lighthouse CI в ваш пайплайн деплоя, чтобы каждый pull request получал оценку производительности. Если оценка падает ниже порога — деплой блокируется.
Для мониторинга реальных пользователей (RUM) инструменты вроде Vercel Analytics, Sentry Performance или Chrome User Experience Report (CrUX) от Google показывают, как ваш сайт работает для реальных посетителей — не только в лабораторных условиях. Лабораторные тесты выполняются на быстром железе с быстрым соединением. Ваши пользователи — на 4G-телефоне в сельской местности. RUM-данные показывают правду.
Настройте оповещения при регрессии Core Web Vitals. Чем раньше вы поймаете проблему производительности, тем легче её исправить.
Мобильная производительность — отдельная задача
Вот что многие команды делают неправильно: тестируют производительность на MacBook Pro с гигабитным соединением и считают работу сделанной. Но более 60% веб-трафика приходит с мобильных устройств, а мобильная производительность — принципиально другая задача.
Мобильные устройства имеют более медленные процессоры, меньше памяти и часто работают на нестабильных 4G или даже 3G соединениях. JavaScript-бандл, парсящийся за 200мс на вашей машине разработки, может занять 1,5 секунды на Samsung среднего класса.
Как реально выглядит производительность с подходом mobile-first?
- Тестируйте на реальных устройствах. Троттлинг в Chrome DevTools — полезное приближение, но ничто не заменяет тестирование на реальном Android-телефоне за $200. Разница открывает глаза.
- Зоны нажатия важны. Стандарты WCAG 2.2 Google рекомендуют минимальные тач-таргеты 24×24px. Тесные кнопки не только ухудшают удобство использования — они вызывают промахи, триггерят ненужные перерисовки и вредят INP.
- Агрессивно сокращайте JavaScript на мобильном. Рассмотрите отдачу упрощённой версии интерактивных компонентов для мобильных пользователей или полное откладывание некритичной интерактивности.
- Оптимизируйте для переменных условий сети. Service workers могут кэшировать критические ресурсы для офлайн-сценариев или слабого соединения. Адаптивные изображения становятся ещё критичнее при ограниченной полосе пропускания.
Оценка производительности Google — mobile-first. Ваш PageSpeed score, ваши позиции в поиске, оценка Core Web Vitals — всё это основано на мобильном опыте. Если ваш десктопный сайт набирает 95, а мобильный — 60, Google видит 60.
Не доверяйте десктопным оценкам
Google оценивает производительность вашего сайта с использованием mobile-first индексирования. Десктопная оценка PageSpeed в 95 ничего не значит, если мобильная — 60. Всегда оптимизируйте сначала для мобильного, затем проверяйте, что десктопная производительность не деградировала. Мобильная оценка — та, что влияет на ваши позиции.
Встраивание производительности в процесс разработки
Команды, стабильно выпускающие быстрые сайты, не относятся к производительности как к отдельному потоку работ. Она вплетена в каждую фазу проекта.
Во время открытия и планирования:
- Определите бюджеты производительности на основе ориентиров конкурентов и бизнес-целей.
- Выберите технологический стек с характеристиками производительности, соответствующими требованиям.
- Составьте карту критического пути рендеринга для ключевых лендингов.
Во время дизайна:
- Ограничивайте количество уникальных начертаний шрифтов и кастомных анимаций.
- Проектируйте с реальными размерами контента, чтобы изображения были правильно размерованы с самого начала.
- Планируйте прогрессивную загрузку — что пользователи должны видеть первым, вторым, третьим?
Во время разработки:
- Запускайте Lighthouse на каждом pull request.
- Держите сторонние скрипты в отдельном, доступном для аудита списке.
- Используйте нативные функции производительности фреймворка (Next.js Image, автоматическое разделение кода и т.д.).
После запуска:
- Еженедельно мониторьте данные реальной производительности пользователей.
- Проводите ежеквартальные аудиты производительности по бюджетам.
- Относитесь к регрессиям производительности как к багам — исправляйте немедленно.
Так мы подходим к каждому проекту в Vezert — будь то обновление UX/UI-дизайна или полная перестройка. Производительность — не фаза, это дисциплина.
Перестаньте относиться к производительности как к второстепенной
Высокопроизводительный сайт — не роскошная функция. Это базовое ожидание для любого бизнеса, серьёзно относящегося к своему онлайн-присутствию.
Техники не секретны: серверный рендеринг для быстрой начальной загрузки, оптимизация изображений для лёгких страниц, дисциплинированное управление JavaScript для отзывчивых взаимодействий, edge-доставка для глобальной скорости и непрерывный мониторинг, чтобы всё это не деградировало.
Что отличает сайты с оценкой 95+ от остальных — не какой-то один трюк. Это обязательство с первого дня относиться к производительности как к ключевому требованию — в архитектуре, в дизайне, в каждом pull request и при текущем обслуживании.
Если ваш текущий сайт с трудом проходит Core Web Vitals или вы планируете новый проект и хотите убедиться, что производительность заложена в фундамент — свяжитесь с нашей командой. Мы покажем точно, где находятся узкие места и как их исправить — или построим правильно с нуля.
Создайте сайт, загружающийся менее чем за 2 секунды
От планирования архитектуры до мониторинга после запуска — Vezert создаёт сайты, спроектированные для скорости, конверсии и долгосрочной производительности.
Начать проект
На странице
- Почему производительность сайта важнее, чем когда-либо
- Core Web Vitals: три метрики, определяющие скорость
- Архитектурные решения, определяющие скорость
- Серверный рендеринг и статическая генерация
- Оптимизация изображений: самая быстрая победа
- JavaScript: тихий убийца производительности
- CDN, кэширование и edge-доставка
- Загрузка шрифтов и стратегия CSS
- Бюджеты производительности и непрерывный мониторинг
- Мобильная производительность — отдельная задача
- Встраивание производительности в процесс разработки
- Перестаньте относиться к производительности как к второстепенной



