Что влияет на скорость сайта? Что влияет на скорость сайта?
LYNXREACTOR

Что влияет на скорость сайта?

Скорость сайта зависит не от одного параметра. Разбираем, что влияет на загрузку страниц и почему быстрый сайт начинается ещё на этапе разработки.

SCROLL

«Сайт медленный» — одна из самых частых претензий, которые можно услышать после запуска.

И почти сразу возникает желание найти одну причину.

Наверное, виноваты изображения. Или хостинг. Или сервер. Или слишком много JavaScript.

На практике всё немного сложнее.

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

Поэтому ускорение сайта начинается не с волшебной кнопки, а с понимания того, что именно занимает время.

Скорость — это не только «сколько секунд загружается сайт»

Когда человек говорит, что сайт загружается долго, он может иметь в виду совершенно разные вещи.

Например:

  • страница долго начинает отображаться;
  • текст появляется быстро, но изображения загружаются позже;
  • кнопки появляются, но некоторое время не реагируют;
  • страница уже открылась, но продолжает активно загружать ресурсы;
  • на мобильном устройстве сайт работает заметно медленнее.

Поэтому одной цифры «скорость сайта — 2 секунды» недостаточно, чтобы понять реальное состояние проекта.

Нужно смотреть на то, как именно пользователь воспринимает загрузку страницы и какие ресурсы создают задержку.

Изображения — частый источник проблем

Большое красивое изображение отлично выглядит на экране.

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

Особенно это заметно на страницах с большими hero-изображениями, галереями и большим количеством фотографий.

Что можно сделать:

  • использовать подходящий формат изображения;
  • сжимать файлы без заметной потери качества;
  • создавать изображения подходящего размера;
  • не загружать огромную фотографию там, где отображается небольшой блок;
  • использовать lazy loading для изображений, которые находятся ниже первого экрана.

При этом оптимизация не означает, что все изображения должны стать маленькими и размытыми.

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

Первый экран особенно важен

Не все ресурсы страницы одинаково важны.

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

А вот главный заголовок, основной контент и ключевое изображение первого экрана влияют на то, насколько быстро пользователь почувствует, что сайт уже работает.

Поэтому полезно разделять ресурсы на критические и второстепенные.

Необязательно заставлять браузер загружать всё одновременно.

JavaScript может сделать сайт тяжелее

Современный сайт часто использует JavaScript для интерактивных элементов.

Модальные окна, слайдеры, фильтры, анимации, аналитика, чаты, карты и другие функции могут быть полезны.

Проблема появляется тогда, когда скриптов становится слишком много или они загружаются без необходимости.

Например, странице с обычным текстом может совершенно не требоваться тяжёлая библиотека, которая используется только в одном редком компоненте.

Поэтому при оптимизации стоит задавать простой вопрос:

«Действительно ли этот скрипт нужен на этой странице?»

CSS тоже имеет значение

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

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

Регулярная очистка и правильная организация фронтенд-кода помогают не только скорости, но и дальнейшей поддержке проекта.

Сервер — только одна часть системы

Когда сайт работает медленно, легко обвинить хостинг.

Иногда причина действительно находится на сервере.

Но далеко не всегда.

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

С другой стороны, хорошо оптимизированный сайт может работать вполне быстро даже без дорогой инфраструктуры.

Поэтому сервер стоит рассматривать как часть всей системы, а не как универсальное объяснение любой проблемы со скоростью.

База данных тоже участвует в загрузке страницы

Динамические сайты часто получают информацию из базы данных.

Если странице нужно выполнить несколько простых запросов, это может практически не ощущаться.

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

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

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

Кэширование может сильно изменить ситуацию

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

Кэширование позволяет сохранять уже подготовленный результат и отдавать его быстрее.

Кэшироваться могут разные элементы:

  • страницы;
  • результаты запросов;
  • изображения;
  • статические файлы;
  • данные внешних сервисов.

Но кэширование требует аккуратной настройки.

Если сделать его неправильно, пользователь может увидеть устаревшую информацию.

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

Сторонние сервисы тоже могут замедлять страницу

Иногда сайт сам по себе работает быстро, но подключает множество внешних сервисов.

Например:

  • аналитика;
  • карты;
  • онлайн-чаты;
  • виджеты социальных сетей;
  • рекламные системы;
  • внешние шрифты;
  • сервисы отзывов.

Каждый дополнительный ресурс может означать ещё один запрос, дополнительный JavaScript или ожидание ответа от внешнего сервера.

Поэтому иногда самый простой способ ускорить сайт — удалить то, что ему на самом деле не нужно.

Шрифты тоже могут быть тяжёлыми

Несколько начертаний одного шрифта могут занимать больше места, чем кажется.

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

Особенно это важно для мультиязычных сайтов.

Поэтому стоит загружать только действительно необходимые варианты шрифтов и использовать современные способы их доставки.

Мобильная версия — отдельная история

Сайт, который быстро работает на мощном компьютере с хорошим интернетом, не обязательно будет таким же быстрым на смартфоне.

На мобильном устройстве могут быть:

  • меньше вычислительных ресурсов;
  • медленнее соединение;
  • более высокая задержка сети;
  • меньше доступной памяти.

Поэтому проверять скорость только на собственном компьютере недостаточно.

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

Чем больше функций, тем больше нужно контролировать

У каждой новой функции есть цена.

Не обязательно денежная.

Она может выражаться в дополнительных запросах, JavaScript, CSS, API-вызовах, изображениях и сложности кода.

Поэтому принцип «добавим ещё одну маленькую функцию» со временем может привести к довольно тяжёлой странице.

Это не означает, что нужно отказаться от функциональности.

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

Как понять, что именно тормозит сайт?

Первое правило — не гадать.

Если сайт кажется медленным, сначала нужно измерить его и определить узкое место.

Проверять стоит:

  • время ответа сервера;
  • размер страницы;
  • количество запросов;
  • размер изображений;
  • JavaScript и CSS;
  • сторонние ресурсы;
  • запросы к базе данных;
  • поведение страницы на мобильных устройствах.

Только после этого имеет смысл выбирать способ оптимизации.

Почему нельзя оптимизировать всё подряд

Представим, что тест показал проблему с большим изображением.

Вместо того чтобы уменьшить его размер, можно потратить несколько дней на переписывание части JavaScript.

Сайт станет чуть лучше, но основная проблема останется.

Поэтому оптимизация должна начинаться с наиболее значимых узких мест.

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

Скорость нужно учитывать ещё до запуска

Многие проблемы производительности дешевле предотвратить, чем исправлять после разработки.

Например, ещё до запуска можно определить:

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

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

Быстрый сайт — это не обязательно сайт без функций

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

Это слишком упрощённый подход.

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

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

Можно иметь красивый сайт с изображениями, интерактивными элементами и сложной логикой — если архитектура проекта позволяет ему работать эффективно.

Короткий чек-лист

Если сайт работает медленно, проверьте:

  • размер и формат изображений;
  • загрузку первого экрана;
  • лишний JavaScript;
  • лишний CSS;
  • сторонние сервисы;
  • шрифты;
  • время ответа сервера;
  • запросы к базе данных;
  • кэширование;
  • мобильную версию;
  • количество и размер загружаемых ресурсов.

И главное — сначала найдите причину, а уже потом начинайте оптимизацию.

Главная мысль

Скорость сайта — это не характеристика одного элемента.

Она складывается из множества решений, принятых на уровне дизайна, контента, фронтенда, серверной части, базы данных и инфраструктуры.

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

Чем раньше учитывается скорость, тем меньше вероятность, что после запуска придётся искать и устранять дорогие узкие места.

Хотите понять, почему ваш сайт работает медленно?

Не всегда проблема находится там, где кажется на первый взгляд. Иногда причина в изображениях, иногда в коде, запросах к базе данных, сторонних сервисах или архитектуре проекта.

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

Обсудить проект →

Полезная статья?
Хорошее решение начинается с правильного вопроса Хорошее решение начинается с правильного вопроса
Практика вместо лишнего шума

Хорошее решение начинается с правильного вопроса

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

Обсудить свой проект →
Услуга
01

Название услуги

Описание

?

Технология

Категория

Описание технологии