Блог про интернет-маркетинг для бизнеса

SEO

Оптимизация скорости сайта: как уменьшить время ответа сервера

58
0
14

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

Что такое TTFB?

TTFB (Time To First Bite) — время до получения первого байта веб-страницы после отправки запроса со стороны клиента. Чем меньше этот показатель, тем быстрее браузер начнет загружать страницу.

Кстати, специалисты MOZ провели исследование о связи TTFB и позиции страницы в выдаче. Главный график в статье:

Специалисты MOZ провели исследование о корреляции TTFB и позицией страницы в выдаче

По рекомендациям Google, показатель TTFB не должен превышать 200 мс, а в идеале должен быть не более 50 мс. Если время ответа больше, потребуется определить причину и устранить её.

Как проверить TTFB?

Использовать отладчик в браузере

Для проверки TTFB можно использовать отладчик браузера. Например, в Google Chrome и Mozilla Firefox отладчик запускается комбинацией клавиш «Ctrl+Shift+I». После этого необходимо выбрать вкладку «Network» (Сеть), перезагрузить страницу и отфильтровать ресурсы по типу HTML (Doc). Далее нужно выбрать текущую загруженную страницу и во вкладке «Timing» в строке «Waiting» будет указано время ответа сервера.

Далее нужно выбрать текущую загруженную страницу и во вкладке «Timing» в строке «Waiting» будет указано время ответа сервера

Получить данные из Google Analytics

Необходимо перейти по пути «Поведение» — «Скорость загрузки сайта» — «Обзор». Далее в блоке «Среднее время ответа сервера (сек.)» будет указан TTFB за выбранный промежуток времени.

Далее в блоке «Среднее время ответа сервера (сек.)» будет указан TTFB за выбранный промежуток времени

Использовать PageSpeed Insights

Также можно использовать инструмент PageSpeed Insights. Введите URL веб-страницы и запустите анализ. После завершения анализа при наличии проблемы с TTFB вы сможете в увидеть это показатель в блоке «Сократите время от сервера».

Также можно использовать инструмент PageSpeed Insights

Использовать Netpeak Spider

Netpeak Spider — десктопный краулер для комплексного SEO-аудита всего сайта. Чтобы узнать время ответа сервера с помощью этого инструмента, вставьте URL в адресную строку, запустите сканирование (кнопка «Старт») и выберите столбец «Время ответа сервера».

Netpeak Spider —  десктопный краулер для комплексного SEO-аудита всего сайта

Кстати, если TTFB страницы составит более 500 мс, Netpeak Spider покажет ошибку средней степени критичности. Все такие страницы можно удобно отфильтровать после сканирования — просто кликните на искомую ошибку в правой панели:

Все такие страницы можно удобно отфильтровать после сканирования — просто кликните на искомую ошибку в правой панели

Использовать сторонние сервисы

Простой и удобный инструмент — Webpagetest. Узнать значение TTFB можно в колонке «First Byte»:

Простой и удобный инструмент — Webpagetest

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

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

Что может быть причиной большого TTFB?

На время ответа сервера плохо влияет:

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

Для определения точной причины необходима помощь опытного программиста и системного администратора.

Как уменьшить время ответа сервера?

Оптимизировать работу с базой данных

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

Например, при формировании блока «с этим товаром также покупают» выполняются следующие запросы:

  1. Определить текущий товар.
  2. Определить количество добавлений текущего товара в корзину.
  3. Определить товар, который добавлялся вместе с текущим в корзину.
  4. Исключить незавершенные заказы.
  5. Сформировать список наиболее часто покупаемых товаров вместе с представленным.

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

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

Переехать на более производительный сервер

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

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

Использовать акселераторы PHP

Каждый раз при загрузке страницы сервер обрабатывает PHP-файлы, но часто при каждой загрузке выполняется один и тот же участок кода. Акселераторы PHP позволяют значительно уменьшить TTFB путем предварительной компиляции PHP-кода. Это уменьшит нагрузку на процессор, но потребует большего объема оперативной памяти.

Популярные акселераторы:

  • Alternative PHP Cache (APC);
  • eAccelerator;
  • PhpExpress;
  • Windows Cache Extension for PHP;
  • XCache;
  • Zend OPcache.

Использовать серверное кэширование

При отсутствии кэширования страниц сервер генерирует запрашиваемую страницу при каждом обращении пользователя. Если кэшировать страницу целиком, при последующем обращении пользователя к файлу сервер не будет генерировать страницу заново, а отдаст пользователю уже сгенерированную страницу.

На тестовом сайте я настроил серверное кэширование страниц — время ответа сервера уменьшилось в десять раз.

TTFB с отключенным кэшированием:

TTFB с отключенным кэшированием

TTFB с включенным кэшированием:

TTFB с включенным кэшированием

Вывод

Работайте над сокращением времени ответа сервера и не экономьте на производительности процессоров. Если ваш TTFB больше 200 мс, обязательно:

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

В результате можно уменьшить время ответа сервера в 5-10 раз.

Читайте также, как ускорить сайт с помощью CDN-сервиса.

Обнаружили ошибку? Выделите ее и нажмите Ctrl + Enter.

Комментарии (7)

  1. 0
    19 дней назад

    Нам массово в ЯВМ начали приходить такие уведомления http://joxi.ru/Y2L417GUnzGxl2 . При этом сайты грузятся хорошо. У кого-то было такое?

    • 0
      Vova Dren
      19 дней назад

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

  2. 1
    25 дней назад
    Главное не брать сервера в панаме =)
  3. 0
    27 дней назад

    Простите, но написано слабо. 

    Или я привык что обычно вы пишете лучше. 


    • 0
      Максим Мирошник
      26 дней назад

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


      Это вводная статья. Дальше будет интереснее ;)

    • 0
      Максим Мирошник
      26 дней назад
      Максим, это 1 часть серии постов про оптимизацию скорости, если Вы об этом. 

Чтобы оставить комментарий, необходимо авторизироваться

Подписаться

на самую полезную рассылку по интернет-маркетингу

Самое

обсуждаемое популярное читаемое