Анализ и оптимизация времени TTFB

В широком смысле, TTFB — это метрика, которая показывает время до получения первого байта (сетевого пакета) веб-страницы после отправки запроса со стороны клиента.
Освітній курс від mate.academy: UI/UX Design.
Творчий розвиток навичок дизайну.
Измерение включает запрос DNS, время подключения к серверу и время ожидания обработанного запроса (обработка, перепаковка, отправка страницы). Интересно,что термин часто путают c временем отклика сервера — этот показатель дает возможность оценить скорость реакции на HTTP-запрос при отсутствии сетевой задержки.
На TTFB влияет почти все: сетевые проблемы и задержки, объем входящего трафика, настройки веб-сервера, объем и оптимизированность контента (качество графики, размер css/js/html).
Очевидно, что не на все вышеперечисленные моменты легко повлиять. У вас вряд ли будет возможность самостоятельно улучшить качество сети, а высокий трафик на веб-сайт может быть чем-то плохим только в случае DDoS-атак. Единственное, на что реально повлиять — бекенд, так что займемся тюнингом Nginx.
Анализ TTFB
На просторах Всемирной паутины размещено большое количество ресурсов, посвященных проверке скорости загрузки веб-страниц. Один из самых популярных и уважаемых — https://www.webpagetest.org/
Он предоставляет более, чем исчерпывающую информацию о времени подключения, TTFB, времени инициализации TLS/SSL (если используется), а также о загрузке отдельных элементов веб-страницы.
Інтенсивний курс від laba: Product management.
Від ідеї до успішного продукту.
Для проверки скорости загрузки и целой стопки дополнительных параметров можно использовать браузер. И в Chrome, и в FireFox, и даже в Safari присутствуют соответствующие утилиты разработчика.
Оптимизация Nginx
Оптимальные настройки Nginx представлены в этой статье. Еще раз кратко пройдемся по уже известным параметрам и добавим несколько новых, которые непосредственно влияют на TTFB.
Соединения
Для начала необходимо задать количество “работников” Nginx.
Каждый рабочий процесс способен обрабатывать множество соединений и привязывается к физическим ядрам процессора. Если вы точно знаете, сколько ядер в вашем сервере, то можно задать их количество самостоятельно, или довериться Nginx:
Определение количества рабочих процессов
Кроме этого необходимо задать количество соединений:
Определение количества соединений на один рабочий процесс, в пределах от 1024 до 4096
Професійний курс від laba: Проджект-менеджмент в ІТ.
Ефективне управління проектами.
Запросы
Чтобы веб-сервер мог обрабатывать максимальное количество запросов, необходимо задействовать выключенную по умолчанию директиву multi_accept:
Рабочие процессы будут принимать все соединения
Примечательно, что функция будет полезна только при условии большого количества запросов одновременно. Если же запросов не так много, имеет смысл оптимизировать рабочие процессы, чтобы они не трудились вхолостую:
Рабочие процессы будут принимать соединения по очереди
Улучшение TTFB и времени отклика сервера напрямую зависит от директив tcp_nodelay и tcp_nopush:
tcp_nodelay on; tcp_nopush on;
Активация директив tcp_nodelay и tcp_nopush
Если не слишком вдаваться в подробности, то обе функции позволяют отключить некоторые особенности TCP, которые были актуальны в 90х, когда Интернет только набирал обороты, но не имеют смысла в современных условиях. Первая директива отправляет данные, как только они будут доступны (обходит алгоритм Нейгла). А вторая дает возможность отправлять заголовок ответа (веб-страницы) и начало файла, ожидая заполнения пакета (то есть, включает tcp_cork). Так что браузер сможет начать отображение веб-страницы раньше.
На первый взгляд, функции противоречат друг другу. Поэтому директива tcp_nopush должна использоваться вместе с sendfile. В этом случае пакеты будут заполнены до отправки, т.к. директива работает намного быстрее и оптимальнее, чем метод read+write. После того, как пакет заполнен, Nginx автоматически отключает tcp_nopush, а tcp_nodelay заставляет сокет отправить данные. Включить sendfile очень просто:
Експертний курс від skvot: Unreal Еngine: від інтерфейсу до запуску гри.
Запустіть свою гру з Unreal.
Включение более эффективного, по сравнению с read+write, метода отправки файлов
Так что комбинация всех трех директив снижает нагрузку на сеть и ускоряет отправку файлов.
Буферы
Еще одна важная оптимизация затрагивает размер буферов — если они слишком маленькие, Nginx будет часто обращаться к дискам, слишком большие — быстро заполнится оперативная память.
Для этого потребуется настроить четыре директивы. client_body_buffer_size и client_header_buffer_size задают размер буфера для чтения тела и заголовка запроса клиента соответственно. client_max_body_size задает максимальный размер запроса клиента, а large_client_header_buffers задает максимальное число и размер буферов для чтения больших заголовков запросов.
Оптимальные параметры буферов будут выглядеть так:
client_body_buffer_size 10K; client_header_buffer_size 1k; client_max_body_size 8m; large_client_header_buffers 2 1k;
Размер буфера 10 КБ на тело запроса, 1 КБ на заголовок, 8 МБ на сам запрос и 2 буфера для чтения больших заголовков
Таймауты и keepalive
Правильная настройка времени ожидания и keepalive также может существенно повысить отзывчивость сервера.
Директивы client_body_timeout и client_header_timeout задают время ожидания на чтение тела и заголовка запроса:
client_body_timeout 10; client_header_timeout 10;
Установка времени ожидания, в секундах
При этом в случае отсутствия ответа от клиента при помощи reset_timedout_connection можно указать Nginx отключать такие соединения:
reset_timedout_connection on;
Отключение соединений, превысивших время ожидания
Директива keepalive_timeout задает время ожидания, прежде чем прекратить соединение, а keepalive_requests ограничивает количество keepalive-запросов от одного клиента:
keepalive_timeout 30; keepalive_requests 100;
Установка времени ожидания 30 с и ограничения в 100 запросов на клиент
Ну а send_timeout задает время ожидания при передаче ответа между двумя операциями записи:
Nginx будет ждать ответа 2 с
Кэширование
Включение кэширования существенно улучшит время отклика сервера.
Методы более подробно выложены в материале о кэшировании с Nginx, но в данном случае актуально включение cache-control. Nginx способен отправлять запрос на кэширование редкоизменяемых данных, которые часто используются, на стороне клиента. Для этого в секцию server нужно добавить строчку:
Задание форматов файлов и длительности хранения кэша
Также не помешает закэшировать информацию о часто используемых файлах:
open_file_cache max=10000 inactive=20s; open_file_cache_valid 30s; open_file_cache_min_uses 2; open_file_cache_errors on;
Разрешает кэшировать дескрипторы 10 000 файлов в течение 30 секунд
open_file_cache задает максимальное количество файлов, информация о которых будет храниться, и время хранения. open_file_cache_valid задает время, после которого нужно проверить актуальность информации, open_file_cache_min_uses определяет минимальное количество обращений к файлу со стороны клиентов, а open_file_cache_errors включает кэширование ошибок поиска файлов.
Логирование
Это еще одна функция, которая может незначительно снизить производительность всего сервера и, соответственно, время отклика и TTFB. Так что лучшим решением будет отключить основной лог, а сохранять информацию только о критических ошибках:
access_log off; error_log /var/log/nginx/error.log crit;
Отключение основного логирования
Сжатие Gzip
Полезность Gzip сложно преувеличить. Сжатие позволяет значительно уменьшить трафик и разгрузить канал. Но у него есть и обратная сторона — для компрессии нужно время. Так что для улучшения TTFB и времени отклика сервера его придется отключить.
На данном этапе мы не можем рекомендовать отключение Gzip, так как сжатие улучшает Time To Last Byte, то есть, время, требуемое для полной загрузки страницы. А это в большинстве случаев более важный параметр.
На улучшение TTFB и времени отклика сервера существенно повлияет масштабное внедрение HTTP/2, который содержит встроенные методы компрессии заголовков и мультиплексирование. Так что в будущем, возможно, отключение Gzip будет не таким заметным, как сейчас.
Оптимизация PHP: FastCGI в Nginx
Все современные сайты используют серверные технологии. PHP, к примеру, который также важно оптимизировать. Обычно PHP открывает файл, проверяет и компилирует код, затем выполняет. Таких файлов и процессов может быть множество, поэтому PHP умеет кэшировать результат для редкоизменяемых файлов при помощи модуля OPcache. А Nginx, подключенный к PHP при помощи модуля FastCGI, может сохранять результат выполнения скрипта PHP для моментальной отправки пользователю.
Самое важное
Оптимизация ресурсов и правильные настройки веб-сервера — основные влияющие на TTFB и время отклика сервера факторы. Также не стоит забывать о регулярных обновлениях ПО до стабильных версий, которые несут оптимизации и повышения производительности.
Этот текст был написан несколько лет назад. С тех пор упомянутые здесь инструменты и софт могли получить обновления. Пожалуйста, проверяйте их актуальность.
Waiting TTFB: как ускорить?
В условиях жёсткой конкуренции владельцам web-сайтов приходится использовать все возможности для того, чтобы не только привлечь новых, но и сохранить старых пользователей. Немаловажную роль в этом играет такой параметр как время ответа сервера. Именно на него нужно обращать внимание в том случае, если сайт медленно загружается. Его считают зависимым, требующим проведения комплексной оптимизации для того, чтобы добиться оптимальной скорости, позволяющей сократить количество отказов пользователей.
Ожидание TTFB: что это такое?
Аббревиатура TTFB расшифровывается как “timetofirstbyte”, что переводится как «время до получения первого байта». Её используют для обозначения временного периода после отправки запроса пользователем, который требуется для получения первого байта web-страницы. Чем меньше его показатель, тем быстрее она загружается. По этой причине многие админы и владельцы сайтов задаются вопросом о том, как уменьшить TTFB?
Нормальное время ответа сервера составляет от двухсот пятидесяти до трёхсот пятидесяти миллисекунд. Максимально допустимый показатель – пятьсот миллисекунд, всё что выше – долгий отклик, который определяется в отчёте от сервиса инструментов “PageSpeedInsights”, созданного разработчиками Google, как проблема.
Как проверить время ответа сервера на своём web-сайте?
Разработчики предлагают целый ряд инструментов, которые позволяют проверить время ответа сервера. Они доступны в качестве:
- функций браузера, которые обеспечивают соответствующие данные в режиме «здесь и сейчас» и оптимальны, если отсутствует доступ к соответствующим сервисам;
- отдельных, куда более универсальных сервисов, которые позволяют замерять целый ряд параметров, определяющих скорость загрузки сайта и дают рекомендации по их усовершенствованию.
Разрабатываем и продвигаем сайты
Построенные на современных технологиях и фреймворках
Онлайн сервис “WebPageTest” от “CatchPoint”
Позволяет проверить время ответа сервера через разные браузеры и располагает функцией выбора места расположения. Последнее особенно полезно, поскольку определяет скорость загрузки в зависимости от локации сервера и его удалённости от конечного сервера. В процессе нужно указать доменное имя и выбрать необходимые параметры. Время проверки займёт от нескольких секунд до нескольких минут, а необходимые данные будут представлены в первом столбце таблицы под обозначением “FirstByte”.
Помимо вышеперечисленного, имеется возможность выбора дополнительных опций. В частности, типа подключения, а также блокировки JS, удаление кэш сертификата SSL, выполнение собственного script’а и блокирования определённых доменов. Не забывайте проверить время ответа сервера сайта не только на главной, но и на других важных страницах (категории и товарные карточки).
Онлайн сервис “PageSpeed Insights” от “Google”
Ещё один многофункциональный онлайн-сервис, который поможет не только проверить показатель “waitingTTFB”, но и получить ответ на вопрос, как его уменьшить. Данные доступны сразу по нескольким параметрам и, что самое важное, сервис обозначает ошибки, избавившись от которых, можно получить желаемый результат.
Проверку можно проводить не только со стационарных ПК, но и с мобильных гаджетов. Достаточно указать доменное имя и кликнуть «Анализировать». В ответе будут представлены результаты имитации загрузки web-страницы и соответствующие данные по ней. В модуле «Оптимизация» можно будет увидеть практические рекомендации, которые помогут сократить время ответа сервера, а также показатели экономии времени в миллисекундах.
Комплексный инструмент “NetpeakSpider” от “NetpeakSoftware”
Инструмент, который позволяет проводить комплексный Seo-аудит web-сайта, выявляя все имеющиеся ошибки. Его огромный плюс заключается в способности проводить сканирование времени ответа сервера сайта на всех его страницах. В отчёте, самые медленные из них будут подсвечены.
Процедура проста: достаточно указать доменное имя и выбрать опцию поиска по всему ресурсу. Ценность данного сервиса заключается ещё и в том, что он указывает все имеющиеся ошибки, снижающие скорость загрузки.
Онлайн-инструмент «Аналитика» от “Google”
Он отличается удобством и функциональностью и обеспечивает комплекс статистических данных по пользователям web-сайта. Среди возможностей – замеры TTFB, которое представлено в таблице результатов в разделе «Среднее время ответа сервера».
Для того чтобы получить его нужно перейти в раздел «Поведение», выбрать категорию «Скорость загрузки» и вкладку «Обзор».
Инструменты, встроенные в web-обозреватель
Как уже упоминалось, web-браузеры тоже располагают соответствующими инструментами. Последние доступны в “Chrome” и “Firefox”. Для того чтобы вызвать их достаточно нажать F12 или комбинацию из клавиш Ctrl + Shift + I.
Причины длинного TTFB
На самом деле факторов, способных негативно повлиять на данный параметр очень много. Наиболее распространёнными из них являются следующие:
- отсутствие оптимизации работы с базами данных;
- неправильные настройки сервера;
- устройство пользователя имеет низкую производительность;
- сервер настроен неправильно.
Как оптимизировать время ответа сервера?
В первую очередь нужно устранить большую часть выявленных сервисом “PageSpeedInsights” ошибок, руководствуясь рекомендациями им же предоставленными. Как правило, такой подход даёт хорошие результаты. В то же время, возможны ситуации, когда этого недостаточно. Что делать в таких ситуациях?
Включить серверное кэширование содержимого web-страниц
Это нужно сделать, если отключено, поскольку в таких ситуациях серверу приходится заново генерировать web-страницы, которые запрашивают пользователи. При их определённом количестве и достаточно большом числе запросов, скорость может существенно упасть. Благодаря включению функции кэширования посетитель будет видеть страницу, которая была создана ранее, что уменьшит время загрузки почти в два раза.
Выбрать сервер с должным уровнем производительности
Дефицит производительности сервера всегда негативно сказывается на данном параметре. В том случае, если он действительно имеется в вашем случае, достаточно выбрать другой тарифный план. Выбирайте его с запасом на случай резкого повышения посещаемости. Учитывайте следующее:
- соответствующая дисковая квота и возможности её расширения;
- ограничения аппаратной и технической составляющей;
- разрешённая статическая нагрузка;
- общее значение RAM;
- наличие ограничений на рассылку писем.
Оптимизация базы данных web-сайта
В том случае, если все предпринятые меры не дали желаемого результата, нужно уделить время базе данных. Сложности с ней появляются у тяжёлых web-сайтов с большим количеством страниц, в частности крупные интернет-магазины. В данном случае действует такой принцип: чем большее количество запросов выполняется, тем больше времени требуется на формирование страницы, а, следовательно, и на увеличение времени отклика сервера. Всё это значит, что правильное решение кроется в минимизации количества запросов к базе данных.
Задействовать акселератор PHP
Они представляют собой специальные расширения, которые обрабатывают сценарии, кэшируя байт-коды. Принцип их работы заключается в предварительном кэшировании кода PHP, что позволяет высвободить ресурсы системы во время обработки таких файлов. Акселераторы доступны для использования с любыми web-сайтами. Вы можете использовать: “APC”, “WCE” или любой другой.
Комментарии специалистов “SerpTop”
На TTFB влияют следующие составляющие:
- Контент web-ресурса (скрипты JS, CSS, большое количество модулей, плагинов, тяжёлых изображений, баннеров, видеороликов);
- Мощность устройства и браузер пользователя с большим количеством кэша и расширений;
- Мощности со стороны сервера (hosting, вредоносные вирусы, обмен данными без сжатия файлов).
Ваш web-сайт загружается слишком медленно, из-за чего получает большое количеств отказов от пользователей? Обращайтесь за консультацией в “SerpTop”!
Читайте также
Обзор самых популярных в 2021-ом году frontend-фреймворков для web-разработки
Правильный выбор технологии для программирования web-сайта играет важную роль, поскольку именно она ложится в его основу. Согласно данным опроса, проведённого платформой “Stack Overflow” в 2020-ом году.
23 июля 2021
Как сделать правильный выбор CMS для сайта?
Разработка проекта web-сайта – задача непростая, и подходить к ней нужно комплексно. Один из ключевых моментов – выбор CMS… А вот какую CMS выбрать для сайта – сказать сложно, поскольку нет заведомо какой-либо плохой и хорошей.
25 мая 2020
Лучшие сервисы управления проектами: особенности, плюсы и минусы
Реалии современного мира диктуют свои условия, и в первую очередь они касаются организации работы на предприятиях. Современный бизнес (как средний, так и крупный) нуждается в оперативном управлении.
Оптимизация скорости сайта: как уменьшить время ответа сервера
Время ответа сервера — первое, на что стоит обратить внимание на этапе оптимизации скорости загрузки сайта. В этой статье рубрики «Азбука SEO» я расскажу как измерить скорость загрузки сайта и какие шаги предпринять для улучшения показателя.
Что такое TTFB
Показатель TTFB (Time To First Byte) представляет собой время, которое требуется серверу, чтобы отправить первый байт данных в ответ на HTTP-запрос. Этот показатель важен для оценки производительности веб-сайта. Именно его я и разберу с этой статье.
TTFB одна из ключевых метрик загрузки сайта. В блоге вы можете ознакомиться с остальными метриками, и узнать как отслеживать скорость загрузки сайта.
Специалисты MOZ провели исследование связи TTFB и позиции страницы в выдаче. Самое интересное, что она многие годы не теряет своей актуальности. Главный график в статье ниже.

По рекомендациям Google, показатель TTFB не должен превышать 200 мс. Важно отметить, что хорошим показателем, которому нужно стремиться, является 50 мс. Если время ответа больше, потребуется определить причину и устранить её.
Как проверить TTFB
Есть несколько популярных среди SEO-специалистов способов проверить данный показатель.
Инструменты разработчика браузера
Чтобы проверить TTFB через инструменты разработчика браузера, откройте веб-сайт в браузере, который вы используете для разработки (например, Google Chrome). Нажмите правой кнопкой мыши на странице и выберите «Проверить» или используйте комбинацию клавиш «Ctrl+Shift+I» либо «Cmd+Opt+J», если у вас Mac. Далее:
- Перейдите на вкладку «Network».
- Обновите страницу.
- Отфильтруйте ресурсы ALL.
- Далее выберите текущую загруженную страницу и во вкладке «Timing».
- В списке запросов вы увидите запрос к вашему серверу. Время TTFB будет отображено в строке «Waiting for server response».

Данный способ позволит получить нужную информацию, не используя сторонние ресурсы.
WebPageTest и другие онлайн-сервисы
Существует множество онлайн-сервисов и инструментов, которые могут выполнить тестирование производительности вашего веб-сайта и предоставить информацию о TTFB. Покажу на примере WebPageTest.
Введите URL веб-страницы и запустите анализ. После завершения анализа вы сможете увидеть показатель TTFB в разделе «Page Performance Metrics».

А также, в разделе «Real-World Used Metrics».

Еще одним рекомендованным сервисом для проверки показателя TTFB является PageSpeed Insights. Работать с ним нужно также, как и с WebPageTest.
Netpeak Spider
Netpeak Spider — это инструмент для анализа веб-сайтов, который предоставляет множество функций для SEO-анализа и оптимизации веб-сайтов. Им также можно измерить производительность сайта.
Для измерения TTFB с помощью Netpeak Spider, выполните следующие шаги:
- Запустите Netpeak Spider и введите URL вашего веб-сайта, который вы хотите проанализировать.
- После того как сканирование сайта будет завершено, перейдите к разделу с отчетами или результатами анализа.
- В отчете о сканировании вы найдете различную информацию о веб-сайте, включая данные о времени загрузки страниц. TTFB будет одним из показателей, которые можно найти в этом отчете.
- Вы также можете использовать фильтры и настройки Netpeak Spider, чтобы более подробно анализировать TTFB для конкретных страниц или разделов.

Netpeak Spider предоставляет удобный способ анализа производительности вашего веб-сайта и может быть полезным инструментом для оптимизации TTFB и других аспектов производительности.
Важно! Проверяйте TTFB не только на главной странице, но и на страницах категорий, карточках товаров и блога. Время ответа может отличаться на разных типах страниц и данная информация поможет вам быстрее провести анализ, найти причину задержки и улучшить показатели.
Что может быть причиной высокого TTFB
Плохая производительность сайта и высокий показатель TTFB (Time To First Byte) могут быть вызваны разными факторами, как техническими, так и не техническими. Вот некоторые из наиболее распространенных причин:
- Медленный хостинг. Выбор недостаточно мощного хостинг-поставщика или общего хостинга может сказаться на производительности сайта. Если сервер, на котором размещен ваш сайт, недостаточно производительный или перегружен другими сайтами, это может увеличить TTFB.
- Большой объем данных и неоптимизированные изображения. Загрузка больших изображений и других ресурсов, не оптимизированных для веба, может замедлить загрузку страницы и увеличить TTFB.
- Проблемы с серверной конфигурацией. Некорректная настройка сервера или неоптимизированный стек программного обеспечения (например, Apache или Nginx) может вызвать задержки в обработке запросов и, следовательно, ухудшить TTFB.
- Сетевые задержки. Местоположение сервера и клиента имеют значение. Чем дальше клиент от сервера, тем больше времени потребуется для передачи данных, что может повлиять на TTFB. Использование CDN (Content Delivery Network) может смягчить эту проблему.
- Проблемы с базой данных. Медленные запросы к базе данных, отсутствие оптимизации индексов или использование неэффективных запросов могут сказаться на TTFB, особенно на страницах, где требуется доступ к базе данных.
- Скрипты и код на стороне сервера. Неэффективный код на стороне сервера (PHP, Python, Ruby и т. д.) или большое количество запросов на сервер также может вызвать задержки.
- Отсутствие кэширования. Если ваш сайт не использует кэширование, сервер может каждый раз генерировать страницу заново, что увеличивает TTFB.
- Другие факторы. Неправильно настроенные DNS-записи, проблемы с SSL-сертификатами, вредоносные атаки и прочие технические проблемы и проблемы безопасности также могут влиять на производительность сайта.
Чтобы улучшить производительность сайта и снизить TTFB, рекомендую провести тщательный анализ и оптимизацию каждого из перечисленных аспектов.
Как оптимизировать скорость загрузки сайта
Выберите быстрый и надежный хостинг
Причиной долгого ответа сервера может быть недостаток производительности. Слабый процессор или малый объем оперативной памяти приводят к медленной работе или вовсе «падению» сайта. Поэтому необходимо всегда оставлять потенциал для непредвиденных скачков нагрузки.
Самое простое и поверхностное решение — физический апгрейд «железа» сервера, то есть увеличение объема оперативной памяти и/или обновление процессора.
Не стоит размещаться на бесплатных хостингах, либо на хостингах с ограниченными возможностями. Высококачественный хостинг-поставщик с быстрыми серверами и надежной инфраструктурой может существенно снизить TTFB. Рассмотрите использование VPS (Virtual Private Server) или выделенного сервера, особенно если ваш сайт имеет высокую нагрузку.
Оптимизируйте код и запросы к базе данных
Улучшите эффективность кода на стороне сервера и запросов к базе данных. Это включает в себя уменьшение количества и сложности запросов, например, сократите количество 301 редиректов. Используйте кэширование и оптимизацию индексов базы данных.
Используйте Content Delivery Network (CDN)
CDN помогает ускорить доставку контента до конечного пользователя, уменьшая расстояние между сервером и клиентом. Это может существенно уменьшить задержку при передаче данных и улучшить TTFB.
Балансировка нагрузки
Рассмотрите возможность использования балансировки нагрузки, чтобы равномерно распределять запросы между несколькими серверами. Это может уменьшить нагрузку на каждый сервер и улучшить TTFB.
Используйте кэширование (серверное и браузерное)
Применение кэширования на сервере и на стороне клиента может значительно снизить TTFB. Кэширование позволяет сохранять статические ресурсы и результаты запросов, чтобы избежать повторных вычислений на сервере.
Используйте акселераторы PHP
Акселераторы PHP — это специальные программы или расширения, которые ускоряют выполнение PHP-кода, уменьшая нагрузку на сервер и снижая время ответа сервера на запросы.
Основная идея акселераторов PHP заключается в кэшировании скомпилированных PHP-скриптов. Вместо того чтобы каждый раз перекомпилировать и выполнять PHP-код при обращении к серверу, акселератор сохраняет скомпилированный код в памяти сервера и использует его для быстрого выполнения при последующих запросах.
Использование акселераторов PHP может значительно улучшить производительность вашего веб-сервера и снизить время ответа сервера, особенно на сайтах с большой нагрузкой или приложениях, использующих много PHP-кода.
Некоторые из популярных акселераторов PHP включают в себя:
- Zend OPcache;
- APC (Alternative PHP Cache);
- XCache;
- eAccelerator;
- Windows Cache Extension for PHP;
- PhpExpress.
Использование акселераторов PHP обычно требует установки и настройки на вашем сервере. Они могут значительно ускорить выполнение PHP-скриптов и это улучшит производительность вашего веб-сайта.
Оптимизируйте изображения
Убедитесь, что изображения на вашем сайте оптимизированы. Используйте сжатие и форматы изображений, которые подходят для веба:
- для JPEG изображений используйте jpegtran или jpegoptim;
- для PNG — optipng или pngout;
- либо же используйте формат WebP (с помощью библиотеки WebPJS изображения будут отображаться во всех браузерах).
Оптимизируйте серверную конфигурацию
Настройте ваш сервер для оптимальной производительности:
- Объедините внешние CSS и JavaScript файлы в их минимальное количество. Чем меньше файлов — тем выше скорость и меньше дополнительных запросов к серверу.
- Вынесите внутренние фрагменты JavaScript и CSS из кода в объединенные внешние файлы. При этом не должна ухудшаться скорость загрузки сайта.
- Настройте сжатие на веб-сервере:
- для веб-сервера Apache используйте mod_deflate;
- для Nginx — HttpGzipModule;
- для IIS настройте сжатие HTTP.
Сеть серверов Cloudflare автоматически выполняет сжатие файлов, включая использование алгоритмов сжатия Gzip и Brotli, на своих серверах.
Для оптимизации и сокращения файлов JS і CSS используйте инструмент YUI Compressor. Используйте сжатие данных, настройте кэширование и убедитесь, что сервер обрабатывает запросы эффективно.
Используйте HTTP/2 и HTTP/3
Перейдите на протокол HTTP/2 и HTTP/3, которые поддерживают множественные запросы и ответы, что может существенно улучшить скорость загрузки страниц.
Протокол передачи гипертекста второй версии — текущий стандарт при проверке показателей CWV ( Core Web Vitals ) в Lighthouse. Его основное преимущество перед предыдущей версией в более высокой скорости передачи данных.
Поэтому, если вы видите, что ресурсы не проходят данную проверку, то правильным решением будет обновить протокол до второй или третьей версии.
HTTP/3 — относительно новый протокол передачи гипертекста. Он по умолчанию доступен в браузере Chrome в апреле 2020 года. HTTP/3 позволяет передавать данные еще быстрее при помощи технологии QUIC. Однако необходимо убедиться, что ваш хостинг-поставщик и сервер поддерживают эти протоколы.
На скриншоте ниже цифрами обозначены версии браузеров, а цвет указывает на то, поддерживается ли HTTP/3:
- красный — не поддерживается;
- зеленый — поддерживается;
- хаки — частично поддерживается.

Другими словами, если значительная часть аудитории вашего сайта использует браузер Safari или заходит с устройств Apple — лучше оставаться на версии HTTP/2.
Также необходимо использовать SSL/TLS-шифрование (HTTPS), так как оно является стандартом для обоих протоколов.
Удалите неиспользуемые плагины и скрипты
Используйте только необходимые плагины и скрипты на вашем сайте. Избегайте избыточности, которая может замедлить его работу.
Мониторинг
Регулярно отслеживайте производительность вашего сайта и TTFB, используя инструменты анализа производительности. Реагируйте на проблемы, как только они возникают, и проводите оптимизацию.
Вывод
Проблема снижения TTFB требует комплексного подхода и анализа всех компонентов вашего веб-сайта, начиная от сервера и базы данных, и заканчивая кодом и ресурсами. Регулярное обслуживание и оптимизация помогут вам создать более быстрый и отзывчивый веб-сайт.
Работайте над сокращением времени ответа сервера и не экономьте на производительности процессоров. Если ваш TTFB больше 200 мс, обязательно:
- выберите быстрый и надежный хостинг;
- оптимизируйте код и запросы к базе данных, сократите количество редиректов;
- используйте Content Delivery Network (CDN);
- используйте акселераторы PHP;
- настройте кэширование;
- оптимизируйте изображения;
- оптимизируйте серверную конфигурацию;
- используйте HTTP/2 и HTTP/3;
- удалите неиспользуемые плагины и скрипты;
- проводите мониторинг.
В результате можно значительно уменьшить время ответа сервера.
Этот текст обновлен. Первая версия вышла 20.11.2017 и её автором был Александр Шараевский.
Начала знакомство с SEO в мае 2022, когда решила сменить профессию. Свой путь в Netpeak начала с интернатуры осенью 2022 года. Успешно закончив ее, получила job offer. Сейчас работаю в должности Junior SEO.
Узнайте больше
![]()
125
Что такое TTFB и как улучшить этот показатель
В переводе с английского аббревиатура TTFB расшифровывается как Time To First Byte (время до получения первого байта).
- показатель задержки в передаче данных между браузером и сервером;
- показатель степени загрузки сервера;
- показатель скорости генерации контента движком сайта.
отвечать клиентским запросам как можно быстрее;
быть правильно сконструированным и простым в использовании;
быть доступным для людей с различными физическими недостатками;
использоваться независимо от потребительского браузера – легко обнаруживается современными поисковыми машинами.
Что влияет на TTFB
Сетевые проблемы и задержки, объем входящего трафика, настройки веб-сервера, объем и оптимизированность контента (качество графики,размер css/js/html). Быстрая загрузка страницы зависит как от оптимизации клиентского кода HTML / CSS / JavaScript, так и от работы сервера.
Не на все вышеперечисленные моменты можно легко повлиять.
Инструменты для анализа
Чтобы проверить скорость ответа сервера можно использовать следующие инструменты:
- отладчик в браузере

- данные из Google Analytics

- Google Page Speed Insights

- Netpeak Spider

- webpagetest.org

Как улучшить показатель TTFB
Оптимизировать работу с базой данных
При формировании страниц сервер каждый раз обращается к базе данных, получая необходимую информацию. Запрос занимает определенное время — чем больше запросов, тем дольше генерируются страницы. Чтобы уменьшить количество запросов к базе данных, можно хранить готовый ответ в кэше — вместо пяти запросов будет выполнен всего один.
Выбрать более производительный сервер
Причиной долгого ответа сервера может быть недостаток производительности. Слабый процессор или малый объем оперативной памяти приводят к медленной работе или «падению» сайта, поэтому необходимо оставлять потенциал для непредвиденных скачков нагрузки. Не стоит размещаться на бесплатных хостингах, либо на хостингах с ограниченными возможностями. Позаботьтесь о будущем и используйте VPS или выделенные серверы — это лучшее решение для масштабируемых проектов.
Использовать акселераторы PHP
Каждый раз при загрузке страницы сервер обрабатывает PHP-файлы, но часто при загрузке выполняется один и тот же участок кода. Акселераторы PHP позволяют уменьшить TTFB путем предварительной компиляции PHP-кода. Это снизит нагрузку на процессор, но потребует большего объема оперативной памяти.
- Alternative PHP Cache (APC);
- eAccelerator;
- PhpExpress;
- Windows Cache Extension for PHP;
- XCache;
- Zend OPcache.
Использовать серверное кэширование
При отсутствии кэширования страниц сервер генерирует запрашиваемую страницу при каждом обращении пользователя. Если кэшировать страницу целиком, то при последующем обращении пользователя к файлу сервер не будет генерировать страницу заново, а отдаст пользователю уже сгенерированную страницу.
TTFB с отключённым кэшированием:

Вывод
Если TTFB больше 200 мс:
- оптимизируйте работу с базой данных;
- используйте более производительный сервер;
- используйте акселераторы PHP;
- настройте серверное кэширование страниц.