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

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

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

Разговор про скорость сайта обычно ведут в общих категориях: кэш, сжатие, хостинг. Это правильно, но на практике страницу тормозят конкретные файлы, и у каждого типа свои причины и свои методы лечения. Я в SEO с 2005 года и свожу работу над скоростью к простой процедуре: разложить страницу по типам ресурсов, посмотреть, кто сколько весит и сколько занимает времени, и работать по списку сверху вниз. Ниже — разбор по типам: изображения, шрифты, скрипты, стили и сторонние виджеты.

Начните с весовой раскладки

Прежде чем что-то оптимизировать, нужно знать структуру веса. Откройте инструменты разработчика, вкладку сетевых запросов, обновите страницу с очищенным кэшем и отсортируйте по размеру. Дальше сгруппируйте по типам. Типичная картина для сайта услуг выглядит примерно так.

Тип ресурса Доля веса страницы Главная проблема
Изображения 50–70 процентов Отдаются в исходном размере и старом формате
Скрипты 15–30 процентов Блокируют поток и грузят процессор телефона
Шрифты 3–10 процентов Задерживают появление текста
Стили 2–8 процентов Блокируют первую отрисовку
HTML-документ 1–3 процента Обычно не проблема

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

Изображения: самый тяжёлый и самый благодарный ресурс

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

Что делать Типичный выигрыш Сложность
Привести к реальному размеру отображения В несколько раз Низкая
Перевести в современный формат 25–40 процентов сверху Средняя
Отложенная загрузка ниже первого экрана Резко сокращает стартовый вес Низкая
Задать ширину и высоту в разметке Убирает скачки вёрстки Низкая
Разные размеры под разные экраны До половины веса на мобильных Средняя
Заменить декоративные картинки на CSS Полное исключение запроса Средняя

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

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

Шрифты: маленький вес, заметный эффект

Шрифты редко весят много, но бьют по восприятию сильнее, чем следует из их размера. Браузер сначала скачивает файл, и только потом рисует текст выбранным начертанием. Пока файл едет, пользователь либо видит пустоту, либо видит текст системным шрифтом, который потом прыгает.

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

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

Скрипты: главный пожиратель процессора

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

Приём Что даёт Когда применять
Отложить выполнение до разбора документа Разблокирует отрисовку Почти всегда для собственных скриптов
Асинхронная загрузка Не блокирует поток Для независимых сторонних скриптов
Загрузка по взаимодействию Убирает скрипт со старта совсем Чаты, карты, тяжёлые слайдеры
Удаление неиспользуемых библиотек Минус десятки килобайт и время разбора После ревизии кода
Разделение кода по страницам Не грузить скрипт корзины на статье На сайтах со сложным функционалом

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

Стили: блокируют первую отрисовку

Таблицы стилей браузер обязан скачать и разобрать до того, как покажет страницу. Поэтому важен не столько вес, сколько количество файлов и их положение. Три практических шага. Объединить множество мелких файлов в один — каждое отдельное соединение стоит времени. Убрать неиспользуемые правила: на сайтах, где тему меняли или ставили конструктор, доля мёртвого CSS доходит до половины файла. И разделить стили на критические, нужные для первого экрана, и остальные, которые можно подгрузить следом.

Сторонние виджеты: главный источник неконтролируемого веса

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

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

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

Порядок работ по отдаче

Если делать всё сразу некогда, порядок такой. Сначала изображения — самый большой вес при самой низкой сложности. Затем сторонние виджеты — перевод чата, карт и видео на загрузку по клику. Потом ревизия скриптов и удаление лишнего. Затем шрифты. И в последнюю очередь тонкая работа со стилями. Такой порядок даёт большую часть результата за первые два шага.

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

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

  • Гнаться за максимальной оценкой в тестах скорости. Разница между 85 и 95 баллами почти не ощущается человеком, а времени на неё уходит больше, чем на первые 60.
  • Ставить несколько плагинов оптимизации одновременно. Они конфликтуют и ломают вёрстку чаще, чем ускоряют.
  • Включать отложенную загрузку для изображения первого экрана — это замедляет появление содержимого.
  • Сжимать фотографии до состояния, когда видны артефакты. Товар, снятый в кашу, стоит дороже сэкономленных килобайт.
  • Оставлять счётчики «на всякий случай». Каждый неиспользуемый — это внешний скрипт на каждой странице.
  • Откладывать скрипты, от которых зависит первый экран. Получите пустое место вместо меню или формы.
  • Оптимизировать скорость до того, как решены базовые вещи вроде сжатия на сервере и кэширования в браузере.
  • Проверять результат только на своём компьютере с быстрым интернетом и прогретым кэшем.

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

С какого типа ресурсов начинать? С изображений почти всегда. Они дают самую большую долю веса и правятся без вмешательства в логику сайта. Второй по отдаче шаг — перевод сторонних виджетов на загрузку по клику.

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

Стоит ли переводить все картинки в новый формат? Да, если есть автоматическая конвертация на стороне сервера или в сборке. Вручную это муторно и легко забыть про новые загрузки. Обязательно оставляйте запасной вариант для старых браузеров.

Не потеряю ли я заявки, если чат грузится по клику? Нет, если кнопка выглядит как настоящая и открывает чат мгновенно. Теряют заявки не из-за отложенного чата, а из-за страницы, которая грузилась восемь секунд и её закрыли.

Можно ли заложить скорость сразу при разработке? Это самый дешёвый путь. При создании сайта достаточно сразу задать правила: форматы и размеры изображений, ограниченный набор шрифтов, запрет на подключение библиотек ради одного эффекта. Переделывать потом дороже в разы.

Чеклист

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

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

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

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

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

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

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

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

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

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

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

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

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