Оптимизация скорости сайта: как уменьшить время ответа сервера
Время ответа сервера — первое, на что стоит обратить внимание на этапе оптимизации скорости загрузки сайта. В этой статье рубрики «Азбука SEO» я расскажу, как уменьшить время ответа сервера и сделать сайт более «шустрым».
Скорость ответа сервера — только вершина айсберга. Нужна комплексная оптимизация сайта — оставляйте заявку на услугу:
Что такое TTFB?
TTFB (Time To First Byte) — время до получения первого байта веб-страницы после отправки запроса со стороны клиента. Чем меньше этот показатель, тем быстрее браузер начнет загружать страницу.
TTFB одна из метрик загрузки сайта. Ознакомиться с остальными метриками, и узнать как отслеживать скорость загрузки сайта.
Кстати, специалисты MOZ провели исследование о связи TTFB и позиции страницы в выдаче. Главный график в статье:
По рекомендациям Google, показатель TTFB не должен превышать 200 мс, а в идеале должен быть не более 50 мс. Если время ответа больше, потребуется определить причину и устранить её.
Как проверить TTFB?
Использовать отладчик в браузере
Для проверки TTFB можно использовать отладчик браузера. Например, в Google Chrome и Mozilla Firefox отладчик запускается комбинацией клавиш «Ctrl+Shift+I». После этого необходимо выбрать вкладку «Network» (Сеть), перезагрузить страницу и отфильтровать ресурсы по типу HTML (Doc). Далее нужно выбрать текущую загруженную страницу и во вкладке «Timing» в строке «Waiting» будет указано время ответа сервера.
Получить данные из Google Analytics
Необходимо перейти по пути «Поведение» — «Скорость загрузки сайта» — «Обзор». Далее в блоке «Среднее время ответа сервера (сек.)» будет указан TTFB за выбранный промежуток времени.
Использовать PageSpeed Insights
Также можно использовать инструмент PageSpeed Insights. Введите URL веб-страницы и запустите анализ. После завершения анализа при наличии проблемы с TTFB вы сможете в увидеть это показатель в блоке «Сократите время от сервера».
Использовать Netpeak Spider
Netpeak Spider — десктопный краулер для комплексного SEO-аудита всего сайта. Чтобы узнать время ответа сервера с помощью этого инструмента, вставьте URL в адресную строку, запустите сканирование (кнопка «Старт») и выберите столбец «Время ответа сервера».
Кстати, если TTFB страницы составит более 500 мс, Netpeak Spider покажет ошибку средней степени критичности. Все такие страницы можно удобно отфильтровать после сканирования — просто кликните на искомую ошибку в правой панели:
Использовать сторонние сервисы
Простой и удобный инструмент — Webpagetest. Узнать значение TTFB можно в колонке «First Byte»:
При использовании стороннего ресурса либо прокси загрузка сайта происходит с другого сервера, поэтому результаты могут сильно отличаться — многое зависит от удаленности расположения сервера, с которого происходит загрузка, от сервера, на который проводится загрузка данных.
Проверяйте TTFB не только на главной странице, но и на страницах категорий, карточках товаров. Время ответа может отличаться на разных типах страниц.
Что может быть причиной большого TTFB?
На время ответа сервера плохо влияет:
- медленная работа с базой данных;
- нехватка ресурсов (слабый процессор или недостаточный объем оперативной памяти);
- неправильная конфигурация сервера;
- отсутствие кэширования.
Для определения точной причины необходима помощь опытного программиста и системного администратора.
Как уменьшить время ответа сервера?
Оптимизировать работу с базой данных
При формировании страниц сервер каждый раз обращается к базе данных, чтобы получить необходимую информацию. Каждый запрос занимает определенное время, и чем больше запросов, тем больше общее время генерации страницы.
Например, при формировании блока «с этим товаром также покупают» выполняются следующие запросы:
- Определить текущий товар.
- Определить количество добавлений текущего товара в корзину.
- Определить товар, который добавлялся вместе с текущим в корзину.
- Исключить незавершенные заказы.
- Сформировать список наиболее часто покупаемых товаров вместе с представленным.
Чем больше товаров и совершенных заказов на сайте — тем больше необходимо времени на формирование ответа. Чтобы уменьшить количество запросов к базе данных, можно хранить уже сформированный ответ в кэше — так вместо пяти запросов будет выполнен всего один.
Эту задачу необходимо делегировать команде опытных программистов, которые смогут провести отладку и обнаружить самые «тяжелые» запросы и оптимизировать их.
Переехать на более производительный сервер
Причиной долгого ответа сервера может быть недостаток производительности. Слабый процессор или малый объем оперативной памяти приводят к медленной работе или вовсе «падению» сайта, поэтому необходимо всегда оставлять потенциал для непредвиденных скачков нагрузки.
Не стоит размещаться на бесплатных хостингах, либо на хостингах с ограниченными возможностями. Позаботьтесь о будущем и используйте VPS либо выделенные серверы — это лучшее решение для масштабируемых проектов.
Использовать акселераторы PHP
Каждый раз при загрузке страницы сервер обрабатывает PHP-файлы, но часто при каждой загрузке выполняется один и тот же участок кода. Акселераторы PHP позволяют значительно уменьшить TTFB путем предварительной компиляции PHP-кода. Это уменьшит нагрузку на процессор, но потребует большего объема оперативной памяти.
Популярные акселераторы:
- Alternative PHP Cache (APC);
- eAccelerator;
- PhpExpress;
- Windows Cache Extension for PHP;
- XCache;
- Zend OPcache.
Использовать серверное кэширование
При отсутствии кэширования страниц сервер генерирует запрашиваемую страницу при каждом обращении пользователя. Если кэшировать страницу целиком, при последующем обращении пользователя к файлу сервер не будет генерировать страницу заново, а отдаст пользователю уже сгенерированную страницу.
На тестовом сайте я настроил серверное кэширование страниц — время ответа сервера уменьшилось в десять раз.
TTFB с отключенным кэшированием:
TTFB с включенным кэшированием:
Вывод
Работайте над сокращением времени ответа сервера и не экономьте на производительности процессоров. Если ваш TTFB больше 200 мс, обязательно:
- оптимизируйте работу с базой данных;
- используйте более производительный сервер;
- используйте акселераторы PHP;
- настройте серверное кэширование страниц.
В результате можно уменьшить время ответа сервера в 5-10 раз.
Читайте также, как ускорить сайт
По теме
11 этапов SEO-продвижения сайта
Не знаешь как раскрутить сайт? Мы подготовили 11 этапов SEO-продвижения сайтов в поисковых системах.
Кейс Leroy Merlin: как ежемесячно получать на 10% больше трафика из поисковиков
Как Netpeak работал с сайтом филиала крупного бренда и добился результатов, несмотря на то, что сервера проекта находятся в другой стране.
Как мы делаем SEO-аудит интернет-магазина — пошаговый мануал
Работ по оптимизации всегда много, а выделить приоритеты при продвижении онлайн — непросто. Что стоит проверять и исправлять в первую очередь?
Свежее
Что такое robots.txt и зачем вообще нужен индексный файл
У каждого сайта в топе есть страница, о существовании которой знают только роботы и... SEO-специалисты. Это robots.txt или индексный файл.
Расширенное отслеживание конверсий Google Ads. Принцип работы и настройка
Расширенное отслеживание позволит точнее фиксировать конверсии и иметь больше данных для оптимизаций ваших кампаний. Читайте подробный мануал настройки через Google Tag Manager
Девять онлайн-сервисов для App Store Optimization и локализации приложений в Азии
Обзор сервисов, которые помогут решить вопрос языкового барьера и эффективно продвигать приложения в Азии