Как повысить скорость загрузки сайта

Анатолий Кузнецов
Анатолий Кузнецов
SEO-оптимизатор с 20-летним стажем. Автор блога hozyindachi.ru о продвижении и доработке сайтов.

Как повысить скорость загрузки сайта

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

Из чего складывается время загрузки

Разложим путь от клика до полностью готовой страницы на этапы. Каждый из них измеряется отдельно и лечится по-своему.

Этап Что происходит Кто отвечает
Сеть и DNS Поиск адреса сервера, установка соединения, TLS Хостинг, DNS-провайдер, настройки протокола
Ответ сервера (TTFB) Генерация HTML: запросы к базе, шаблонизация Код, база данных, кэш, мощность сервера
Загрузка ресурсов Скачивание стилей, скриптов, шрифтов, изображений Вес и количество файлов, порядок подключения
Рендеринг Построение и отрисовка страницы браузером Блокирующие ресурсы, тяжёлые скрипты
Интерактивность Страница начинает отвечать на действия Объём выполняемого JavaScript

Ключевая мысль: этапы последовательны только частично. Если сервер думает две секунды, никакая оптимизация картинок эти две секунды не вернёт. И наоборот, мгновенный сервер не спасёт страницу, которая тянет тридцать скриптов сторонних сервисов.

TTFB: первый подозреваемый

Время до первого байта — это интервал между запросом и первым куском ответа. Оно показывает, сколько сервер потратил на подготовку страницы. Хорошее значение измеряется сотнями миллисекунд, плохое — секундами.

Типичные причины большого TTFB, в порядке частоты встречаемости:

  • Нет кэширования результата. Каждый запрос заново собирает страницу из базы, хотя её содержимое не менялось неделями.
  • Медленные запросы к базе. Отсутствие индексов, выборка всего каталога вместо нужной страницы, десятки запросов в цикле.
  • Дешёвый общий хостинг. На сервере сотни сайтов, ресурсы делятся между всеми, и ваш ответ ждёт очереди.
  • Синхронные обращения к внешним сервисам. Страница на сервере ждёт ответа от чужого API — курса валют, остатков на складе, виджета отзывов.
  • Устаревшая версия языка и окружения. Обновление интерпретатора на пару мажорных версий иногда даёт ускорение без единой правки в коде.

Проверять TTFB надо не с одного компьютера и не один раз: он плавает в зависимости от нагрузки. Разница между первым и повторным запросом покажет, работает ли кэш.

Вес страницы: где он набирается

Второй крупный источник задержек — объём того, что браузер должен скачать. Здесь порядок вклада почти всегда один и тот же.

Ресурс Типичная доля веса Что делать
Изображения Наибольшая Современные форматы, реальные размеры, отложенная загрузка
Скрипты Вторая по величине Убрать неиспользуемое, разнести по страницам, отложить
Шрифты Заметная Оставить нужные начертания, локальный хостинг, подмена на системный
Стили Небольшая Удалить неиспользуемые правила, объединить
Видео и встраивания Может быть решающей Подгружать по клику, ставить превью-картинку

С изображениями работает простое правило: браузер не должен скачивать пиксели, которые не будут показаны. Фотография шириной три тысячи точек, выведенная в блоке шириной четыреста, — это выброшенный трафик. Отдавайте несколько размеров под разные экраны и обязательно указывайте размеры в разметке, иначе страница будет прыгать при загрузке.

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

Рендеринг: почему страница «белая» несколько секунд

Даже лёгкая страница может показываться медленно, если браузеру мешают начать отрисовку. Блокирующие ресурсы — стили и скрипты, подключённые так, что построение страницы останавливается до их загрузки.

  • Скрипты в начале документа без атрибутов отложенной загрузки блокируют разбор HTML.
  • Один огромный файл стилей задерживает первую отрисовку целиком, хотя для первого экрана нужна малая его часть.
  • Шрифт, который грузится до отрисовки текста, оставляет пользователя перед пустым местом. Настройка отображения запасного шрифта решает проблему.
  • Контент, который дорисовывается скриптом после загрузки, появляется позже и вызывает смещение всего, что ниже.

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

Какие метрики измерять

Мерить «сайт грузится за столько-то секунд» бессмысленно: у разных пользователей разные каналы и устройства. Работайте с набором метрик, каждая из которых отвечает за свой этап.

Метрика Что отражает На что смотреть
TTFB Скорость работы сервера Разброс между запросами, эффект кэша
Отрисовка крупнейшего элемента Когда пользователь видит основной контент Что именно является этим элементом
Задержка отклика на действие Готовность страницы к взаимодействию Объём скриптов, выполняемых при загрузке
Смещение макета Стабильность вёрстки Изображения и блоки без заданных размеров
Общий вес и число запросов Нагрузку на канал Долю каждого типа ресурсов

Отдельно разделяйте лабораторные и полевые данные. Лабораторный тест — это замер в искусственных условиях, он хорош для сравнения «до и после». Полевые данные собираются с реальных посетителей и отражают то, что видит ваша аудитория на своих телефонах в своих сетях. Расхождение между ними нормально; решения принимайте по полевым, а гипотезы проверяйте лабораторными.

Что даёт наибольший эффект

Если расставить работы по соотношению «результат к трудозатратам», порядок получается примерно такой.

  • Кэширование готового ответа. Самая крупная разовая победа на любом сайте с динамической генерацией страниц.
  • Ревизия сторонних скриптов. Бесплатно, быстро, часто снимает секунды с интерактивности.
  • Работа с изображениями. Форматы, размеры, отложенная загрузка. Даёт стабильный выигрыш по весу.
  • Сжатие текстовых ресурсов и корректные заголовки кэша. Настраивается на сервере один раз.
  • Перенос на нормальный хостинг. Если TTFB не лечится кодом, лечится железом.
  • Сеть доставки контента. Осмысленна при географически распределённой аудитории, бесполезна при аудитории одного города.
  • Микрооптимизация стилей. Последний пункт: трудоёмко, эффект скромный.

Порядок не догма, но начинать с последнего пункта точно не стоит. Сначала измерьте, потом решайте: конкретный сайт может страдать от одной-единственной причины, и тогда весь остальной список не нужен.

Скорость и позиции: как это связано на самом деле

Скорость — фактор ранжирования, но слабый и пороговый. Ускорение с трёх секунд до одной вряд ли само по себе поднимет вас с двадцатого места на первое: если контент не отвечает запросу, быстрая страница останется быстрой и ненужной. Зато медленный сайт теряет дважды — на обходе роботом и на пользователях, которые уходят до загрузки.

Экономически скорость почти всегда окупается через конверсию, а не через позиции. И работает это одинаково для органики и для платного трафика: медленная посадочная одинаково сжигает и SEO-визиты, и бюджет на контекстную рекламу.

Чего делать не стоит

  • Гнаться за максимальным баллом в сервисе оценки. Балл — это модель, а не выручка; после определённого предела вы ломаете функциональность ради цифры.
  • Включать агрессивную минификацию и объединение файлов без последующей проверки: чаще всего именно так ломаются формы и корзина.
  • Ставить полностраничный кэш на сайт с динамическими формами и персонализацией, не разобравшись с исключениями.
  • Оптимизировать только главную. Пользователи из поиска приходят на внутренние страницы, и мерить надо их.
  • Откладывать загрузку изображений первого экрана: пользователь увидит пустоту вместо главной картинки.
  • Подключать сеть доставки контента как универсальное лекарство от медленного сервера. Она ускоряет отдачу статики, а не генерацию страницы.
  • Сравнивать замеры, сделанные в разное время суток и с разных устройств, и делать из этого выводы.

Частые вопросы

Какая скорость считается нормальной? Ориентир простой: основной контент должен появляться примерно за две секунды на мобильном интернете среднего качества, а сервер отвечать за доли секунды. Абсолютные цифры менее важны, чем то, что вы не хуже конкурентов в своей выдаче.

Почему сервис показывает разные результаты при повторных проверках? Замер зависит от загрузки тестового узла, состояния кэша, работы сторонних скриптов. Делайте несколько прогонов и смотрите на медиану, а не на единичный результат.

Ускорит ли сайт переход на более дорогой тариф хостинга? Поможет, если узкое место — процессор или память сервера, то есть если у вас большой TTFB и он растёт под нагрузкой. Если страница весит десять мегабайт, тариф не изменит ничего.

Нужно ли ускорять сайт, если трафик небольшой? Да, но с оглядкой на приоритеты. При малом трафике деньги обычно быстрее приносят работа с семантикой, SEO-статьи и продающие блоки. Скорость становится критичной, когда посетители уже идут и вы теряете их на загрузке.

Влияет ли скорость на индексацию? Косвенно. Робот выделяет на сайт ограниченное время: чем быстрее отвечает сервер, тем больше страниц он успевает обойти за визит. На крупных каталогах это заметно, на сайте из тридцати страниц — почти нет.

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

  • Замерены TTFB, отрисовка основного контента, отклик и смещение макета — на типовых страницах, а не только на главной.
  • Проверена разница между первым и повторным запросом: кэш работает.
  • Есть полевые данные от реальных посетителей, отдельно по мобильным и десктопу.
  • Изображения отдаются в современных форматах и в размере, соответствующем месту вывода.
  • У всех изображений и встраиваемых блоков заданы размеры, макет не прыгает.
  • Проведена ревизия сторонних скриптов, неиспользуемые отключены.
  • Скрипты не блокируют разбор документа, критичные стили приходят первыми.
  • Шрифты ограничены нужными начертаниями, текст не ждёт их загрузки.
  • Сжатие текстовых ресурсов включено, заголовки кэша выставлены.
  • После каждой оптимизации проверены формы, корзина и оформление заказа.
  • Результат зафиксирован до и после, чтобы понимать, что именно сработало.

Скорость — редкий случай, когда техническая работа видна невооружённым глазом. Но добиться её можно только измерением: не догадками про картинки, а последовательным разбором этапов. Найдите свой длинный этап — и большая часть проблемы решится одним изменением.

Если нужно раскрутка сайта в Яндексе — помогу вывести сайт в топ Яндекса и удержать позиции.

Увеличьте позиции и продажи вашего сайта

Профессиональное SEO-продвижение с гарантией результата. Выберите подходящую услугу:

Анатолий Кузнецов — SEO-оптимизатор

Остались вопросы по продвижению?

Меня зовут Анатолий Кузнецов, я SEO-оптимизатор с 20-летним стажем. Разберу ваш сайт, отвечу на вопросы и подскажу, что улучшить для роста позиций в Яндексе и Google.

Связаться со мной →

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

 Нажимая «оставить комментарий» вы принимаетеправила конфиденциальности 

Прокрутить вверх