Хостинг: как ускорить загрузку сайта. Серверная оптимизация

Все понимают, что медленный интернет-сайт — это очень плохо.

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

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

Хостинг: как ускорить загрузку сайта. Серверная оптимизация

Хостинг и скорость сайта

Введение

Даже при достаточно благополучной ситуации с веб-ресурсом (при быстрой загрузке на современном компьютере и проводном интернете), задержки в загрузке способны приводить к потерям аудитории и сокращению конверсии. Так, известная компания Amazon проводила опыт, в котором выяснила, что каждые 100 мс задержки приводят к уменьшению продаж на 1%.

Более половины аудитории Сети для доступа к сайтам сегодня используют различные мобильные устройства. Значит они могут пользоваться медленными каналами для доступа и процессорами для загрузки интернет-ресурса.

Еще одна причина важности скорости сайта — чисто техническая. В основном, медленные веб-проекты потребляют повышенный объем ресурсов хостинга, который приводит к большим расходам. Тормоза серверной части уменьшают возможности беспроблемно переживать наибольшие пики нагрузки.

Поэтому скоростью интернет-ресурса необходимо заниматься и с технической, и с экономической точек зрения. В данной статье мы сконцентрируемся именно на техническом аспекте ускорения интернет-ресурсов.

Скорость сайта: главные элементы

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

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

Полный процесс загрузки веб-ресурса (первое посещение) выглядит так:

  • Запрос DNS по названию сайта.
  • Подключение к серверу по IP.
  • Установление защищенного соединения при применении HTTPS.
  • Запрос HTML-странички по URL, ожидание сервера (HTTP-запрос).
  • Загрузка HTML.
  • Разбор HTML-документа на стороне веб-браузера, а также построение очереди запросов к ресурсам документа.
  • Загрузка и парсинг стилей CSS.
  • Загрузка, выполнение кода JS.
  • Начало рендеринга странички, выполнение кода JS.
  • Загрузка необходимых веб-шрифтов.
  • Загрузка картинок и прочих элементов.
  • Завершение рендеринга странички, выполнение отложенного кода JS.

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

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

Здесь мы плавно переходим к вопросу о том, как данные метрики получить, а затем интерпретировать.

Хостинг: как ускорить загрузку сайта. Серверная оптимизация

Измерение скорости веб-ресурса

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

  • В первую очередь, это время до первого байта (TTFB) — время от начала загрузки до получения первой порции информации от сервера. Это главная метрика для современной серверной оптимизации.
  • Во-вторых, это начало рендеринга странички (start render). Метрика показывает время до завершения периода «белого экрана» в веб-браузере, когда начинается отрисовка странички.
  • В-третьих, это загрузка главных элементов странички (load time). Сюда входит загрузка, интерпретация всех ресурсов для работы со страничкой, после данной отметки индикатор загрузки странички перестает крутиться.
  • В-четвертых, это полная загрузка странички: время до завершения главной деятельности веб-браузера, загружены все ресурсы.

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

Чем тестировать скорость

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

Одно из наиболее мощных средств — это панель разработчика в веб-браузере. Самая развитая функциональность у панели в браузере Chrome. На вкладке Network здесь можно получить метрики по времени загрузки любых элементов, включая HTML-документ. При наведении на элемент вы можете узнать, сколько времени было потрачено на каждую стадию получения ресурса.

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

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

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

Для оперативной оценки клиентской оптимизации всегда можно использовать сервис Google PageSpeed Insights, однако надо помнить о том, что он в себя не включает большинство очень важных метрик по времени загрузки. Также полезно анализировать время загрузки интернет-ресурса у реальных пользователей. Для этого существуют Google Analytics, Яндекс.Метрике.

Оптимальные ориентиры для времени загрузки веб-ресурса следующие: старт рендеринга около 1 секунды, загрузка странички в пределах 3–5 секунд. В этих рамках время загрузки не будет ограничивать общую эффективность проекта. Данные цифры должны достигаться у пользователей, даже в условиях устаревших устройств и мобильного подключения.

Хостинг: как ускорить загрузку сайта. Серверная оптимизация

Хостинг в Украине и серверная оптимизация

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

Хостинг в Европе

Причина плохой скорости номер один для маленьких проектов. Для текущей нагрузки веб-портала просто не хватает ресурсов, которыми владеет хостинг (как правило, это скорость дисковой системы и CPU). Если можно быстро увеличить данные ресурсы, надо попробовать. В отдельных случаях проблема будет полностью решена.

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

СУБД (сервер БД)

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

Решение проблемы слишком медленных ответов от базы данных разделяется на две стадии: тюнинг СУБД, а также оптимизация запросов и схемы информации. Тюнинг СУБД (к примеру, MySQL) способен дать ускорение в несколько раз. Тонкий тюнинг в силах дать эффект в пределах 10%.

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

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

Влияние программного кода и CMS

Достаточно широко распространено такое мнение, что скорость веб-ресурса зависит лишь от CMS. Владельцы веб-порталов часто пытаются разделить CMS на медленные и быстрые. На самом же деле, это не так.

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

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

Вдобавок, проблемы со скоростью появляются, если система применяется не по назначению. Допустим, система для блогов применяется для создания интернет-магазина. Либо система для небольших проектов используется для создания крупного веб-портала.

Хостинг: как ускорить загрузку сайта. Серверная оптимизация

Кэширование

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

Как правило, кэширование страничек дает возможность уменьшить время отдачи странички до десятков миллисекунд. Разумеется, что в таком случае сервер с легкостью переживает пики посещаемости. Но есть две проблемы: не все можно закэшировать и кэш надо правильно инвалидировать (то есть сбрасывать). Если же проблемы решаются, то кэширование можно советовать как эффективный инструмент серверного ускорения.

Оптимизация TCP, HTTP/2, TLS

Здесь эффект не такой сильный, как в прочих методах, однако он достигается обычной настройкой, то есть полностью бесплатен.

  • В настоящее время тюнинг TCP необходим для крупных проектов.
  • Грамотная настройка TLS (HTTPS) дает возможность получить высокий уровень безопасности.
  • Новая версия HTTP протокола — HTTP/2 должна ускорить загрузку веб-ресурсов. Однако это ускорение не всегда успешно, потому не следует уповать на данный протокол.

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



Хостинг с отличным саппортом — HOSTiQ