Как сократить время ответа сервера, проверить и настроить TTFB
Когда пользователь переходит по URL-адресу в своем веб-браузере, он отправляет сетевой запрос на получение содержимого. Сервер получает запрос и возвращает содержимое страницы. Для того, чтобы пользователь получил обратно страницу с необходимым ему контентом, сервер должен проделать определённую работу, которая имеет свой чёткий алгоритм. Например, если пользователи просматривают историю своих заказов, сервер должен извлечь историю каждого пользователя из базы данных, а затем вставить это содержимое на страницу. Максимальная оптимизация работы сервера, является одним из способов сократить время, которое пользователи тратят на ожидание загрузки страниц.
В процессе оптимизации работы сайта, время загрузки сервера является первым фактором, который требует внимания. Если с момента отправления пользователем запроса, до момента генерации страницы проходит более 200 миллисекунд, необходимо принять все меры для сокращения этого времени.
Если аудит Google PageSpeed Insights выдал рекомендацию: «Короткое время ответа сервера (время до получения первого байта)», данную ошибку нужно исправить. Помимо самой информации, сервис укажет время, которое потребовалось для получения первого байта. Здесь же, в качестве пояснений указано, что на время ответа влияют темы, плагины и спецификации сервера.
TTFB — что это?
TTFB — это аббревиатура, буквально обозначающая Time To First Byte. Следовательно — это время от момента подачи клиентом запроса, точнее его перехода на сайт, до получения первого байта со стороны страницы. Чем данный показатель ниже, тем быстрее пользователь сможет взаимодействовать с порталом. Если рассматривать идеальные условия, то Google настаивает, что это должно быть 50 мс, а в худшем случае — 200 мс. Время загрузки сервиса, в том числе, влияет и на ранжирование сайта.
Для того, чтобы произвести проверку TTFB, можно воспользоваться несколькими способами:
● Используя настройку браузера в Google Chrome или Mozila при помощи комбинации клавиш «Ctrl+Shift+I»
● Воспользоваться PageSpeed Insights
● Использовать информацию Google Analytics
● Использовать Netpeak Spider
Помимо этого существует ещё множество различных сервисов, позволяющих произвести замеры. При этом, стоит учитывать, что использование сторонних программ может показывать не корректные данные. Это зависит от загрузки сервиса в данный момент, удалённости сервера и других факторов. При этом, важно проверять не только главную страницу сайта, но и страницы результатов — данные могут отличаться и потребовать отдельной оптимизации.
Что оказывает влияние на TTFB
Причин по которым загрузка первого байта будет дольше, нежели того хотелось бы владельцу сервиса пользователю может быть сразу несколько. Определить их наверняка может только опытный специалист. Среди таковых:
● Недостаточность ресурсов со стороны процессора или оперативной памяти
● Медленное взаимодействие с базой данных
● Некорректная настройка конфигурации сервера
● Не применяется кэширование
Всё это приводит к увеличению времени на получение TTFB и снижает конверсию сайта. Пользователи предпочитают не ждать пока загрузится конкретный ресурс, уходя на другую площадку, работающую быстрее.
Как снизить время ответа сервера
Исходя из того, что причин для медленного TTFB несколько, то и путь решения данной проблемы не один. Для начала потребуется выявить, что именно влияет на продолжительность получения первого байта. Первым шагом к улучшению времени отклика сервера является определение основных концептуальных задач, которые должен выполнить сервер, чтобы вернуть пользователю содержимое страницы. После этого потребуется измерить, сколько времени занимает каждая из этих задач. Как только вы определили самые длинные задачи, найдите способы ускорить их.
● Проверьте базы данных. Каждый запрос сервера требует обращения к базам данных. Используйте хостинг-панель сайта, чтобы отсортировать таблицы и выяснить какие из них весят больше всего. После этого осуществите их оптимизацию используя, к примеру, сервис WP-Optimize. Он освободит таблицы от старых плагинов, кэша, неиспользуемых опций и прочего. Перед этим обязательно сделайте резервную копию, чтобы не восстанавливать всё с нуля в случае ошибки.
● Создайте кэш страниц. Эта опция позволит существенно сократить время на TTFB, так как при повторном обращении, серверу не потребуется заново генерировать страницу. Он «поднимет» копию, которую пользователь загружал ранее. Чтобы автоматизировать данный процесс, при работе с WordPress можно пользоваться плагином Hyper Cache.
● Повысьте производительность сервера. Скупой платит дважды. Если вы создаёте свой сайт на бесплатном хостинге или бюджетном сервере, имеющем низкую производительность — не ждите, что ваша страница будет работать быстро. В идеале, лучше всего использовать VPS, либо выделенный IP.
● Использование кэшированных скриптов. При помощи специальных программ, которые называются акселераторами, можно создавать не просто кэш страниц, а целых скриптов сайта. РНР-акселераторы создают резервные копии команд и при повторном обращении используется уже готовый бинарный код. Его не требуется создавать заново. Это существенно экономит миллисекунды. Примерами подобных акселераторов являются: eAccelerator, XCache, PhpExpress, OpCache.
● Взаимодействие со сторонними серверами. Если для корректной работы внутреннему серверу требуется обращение к другим источникам — это существенно замедляет его работу. И чем таковых источников больше, тем хуже это сказывается на скорости. Так как алгоритм и скорость их работы вам не известны, следовательно вы не знаете сколько от них будет поступать ответ. Лучше всего хранить все необходимые данные на одном, внутреннем сервере.
Существует много возможных причин медленного ответа сервера и, следовательно, множество возможных способов улучшения:
Оптимизируйте логику приложения сервера, чтобы подготовить страницы быстрее. Если вы используете серверную платформу, она может содержать рекомендации, как это сделать
● Оптимизируйте, как ваш сервер запрашивает базы данных, или переходите на более быстрые системы баз данных
● Обновите серверное оборудование, чтобы иметь больше памяти или процессора
● Проведите очистку баз данных от различного мусора
● Позаботьтесь о создании кэша страниц и РНР-соединений
Обязательно проведите проверку на всех страницах своего сайта и осуществите их оптимизацию. Это важно не только для пользователя, но и для SEO-продвижения страницы, так как скорость напрямую влияет на ранжирование.
Сократите время ответа сервера (TTFB)
Published on • Updated on
Translated to: English, Español, Português, 한국어
Table of contents
- Медленное время ответа сервера влияет на производительность
- Как улучшить время ответа сервера
- Рекомендации по стекам
- Drupal
- Magento
- React
- WordPress
- Ресурсы
В разделе Opportunities (Возможности) отчета Lighthouse указана метрика TTFB (Время ответа сервера) — это время, которое требуется браузеру пользователя на получение первого байта содержимого страницы.
# Медленное время ответа сервера влияет на производительность
Эта проверка дает неудовлетворительный результат, если браузер ожидает ответа сервера на основной запрос документа более 600 мс. Пользователи не любят, когда страницы загружаются долго. Медленное время ответа сервера является одной из возможных причин долгой загрузки страниц.
Когда пользователи переходят по URL-адресу в браузере, браузер делает сетевой запрос для получения содержимого страницы. Сервер получает запрос и возвращает содержимое страницы.
Серверу может потребоваться проделать много работы, чтобы вернуть страницу со всем содержимым, которое нужно пользователям. Например, если пользователи просматривают историю своих заказов, серверу необходимо получить историю каждого пользователя из базы данных, а затем вставить этот контент на страницу.
Оптимизация сервера для максимально быстрого выполнения подобной работы — это один из способов сократить время, которое пользователи тратят на ожидание загрузки страниц.
# Как улучшить время ответа сервера
Первый шаг к улучшению времени ответа сервера: определить основные концептуальные задачи, которые сервер должен выполнить, чтобы вернуть содержимое страниц; второй шаг: измерить, сколько времени занимает каждая из этих задач. Выявив самые длительные задачи, найдите способы ускорить их выполнение.
Существует множество возможных причин медленных ответов сервера и, следовательно, множество возможных способов улучшения:
- Оптимизируйте логику серверного приложения, чтобы быстрее подготавливать страницы. Если вы используете серверный веб-фреймворк, к нему могут прилагаться рекомендации, как это сделать.
- Оптимизируйте то, как сервер запрашивает базы данных, или перейдите на более быстрые системы баз данных.
- Модернизируйте серверное оборудование: увеличьте объем памяти или используйте более мощные ЦП.
# Рекомендации по стекам
# Drupal
Темы, модули и спецификации сервера влияют на время ответа сервера. Подумайте о поиске более оптимизированной темы, тщательном выборе модуля оптимизации или обновлении сервера. Серверы хостинга должны использовать кеширование операционного кода PHP, системы кеширования памяти, такие как memcached или Redis, чтобы сократить время запросов к базе данных, а также применять оптимизированную логику приложения для более быстрой подготовки страниц.
# Magento
Используйте интеграцию Varnish с Magento.
# React
Если вы выполняете рендеринг каких-либо компонентов React на стороне сервера, подумайте об использовании renderToNodeStream()
или renderToStaticNodeStream()
, чтобы позволить клиенту получать и обрабатывать различные части разметки, а не все сразу.
# WordPress
Темы, плагины и спецификации сервера влияют на время ответа сервера. Подумайте о поиске более оптимизированной темы, тщательном выбора плагина оптимизации и/или обновлении сервера.
# Ресурсы
- Исходный код проверки Reduce server response times (TTFB) (Сократите время ответа сервера (TTFB)).
- Адаптивное обслуживание с Network Information API.
Updated on • Improve article
Уменьшить начальное время отклика сервера
Время до первого байта (TTFB), также известное как время ответа сервера , — это время, необходимое браузеру для получения первого байта в ответ на запрос браузера.
Сокращение TTFB имеет решающее значение для восприятия страницы вашими посетителями, поскольку оно влияет на каждый ресурс, на который ссылается ваш HTML, и напрямую влияет на то, сколько времени требуется для загрузки вашей страницы.
Медленный TTFB может негативно повлиять на ваши интерфейсные ресурсы, поскольку ваши посетители могут видеть только пустую страницу, пока браузер ожидает ответа от сервера.
В первую очередь внутренняя оптимизация, снижение TTFB может дополнить вашу внешнюю разработку, чтобы значительно повысить производительность.
Какова оценка вашего сайта в этом аудите?
Как время ответа сервера влияет на производительность страницы?
Когда пользователь запрашивает вашу страницу, этот запрос необходимо отправить на сервер, а сервер должен сгенерировать соответствующий ответ и отправить обратно ресурсы вашей страницы.
TTFB зависит от множества факторов, но в основном от вашей внутренней производительности (Шаг 2)
Весь этот процесс зависит от множества факторов, таких как скорость передачи по сети , задержка , эффективность кода приложения и производительность сервера .
Проще говоря, если какой-либо из этих элементов работает медленно, это влияет на ваш TTFB .
Медленный TTFB значительно влияет на производительность вашего сайта; ваши посетители увидят пустой экран, ожидая, пока ваш сервер ответит первым байтом.
Это может даже привести к тому, что ваши посетители будут разочарованы и вообще покинут вашу страницу.
Однако быстрый TTFB означает, что ваш посетитель получает быстрый ответ, когда инициирует свой запрос. быстрее
прибывает первый байт, раньше остальные ресурсы вашей страницы могут быть обработаны.Обратите внимание, , что существует множество определений TTFB; GTmetrix считает, что TTFB представляет собой сумму продолжительности перенаправления, продолжительности подключения и продолжительности серверной части.
Хотя этот аудит, в частности, рассматривает начальное время отклика сервера (т. е. продолжительность бэкенда), он сильно влияет на ваш TTFB, и вы должны стремиться оптимизировать TTFB в целом.
TTFB в GTmetrix — это сумма длительности перенаправления, подключения и серверной части.
Как GTmetrix запускает этот аудит?
Этот аудит будет запущен, если начальное время ответа сервера превысит 600 мс .
Как уменьшить время отклика сервера?
Существует несколько стратегий для улучшения времени отклика вашего сервера. Вот некоторые из ключевых:
1) Оптимизация кода вашего приложения (включая запросы к базе данных)
Код приложения имеет решающее значение для оптимизации веб-производительности.
Мы настоятельно рекомендуем обратиться за помощью к разработчику, поскольку сейчас вы имеете дело с основной логикой своего веб-сайта.
Когда вы занимаетесь профилированием кода, некоторые оптимизации включают в себя:
- Оптимизация кодовой базы, повышение эффективности функций
- Сокращение сложных операций или объединение кода для выполнения только при необходимости
- Повышение эффективности запросов к базе данных, удаление ненужных запросов
Чтобы узнать больше об оптимизации кода приложения, прочитайте статью Почему моя страница работает медленно? статья.
2) Внедрение кэширования на стороне сервера
Кэширование — это практика обслуживания предварительно сгенерированной версии вашей страницы по запросу вместо того, чтобы сервер обрабатывал и генерировал страницу по запросу.
Существует множество решений для кэширования на уровне сервера. Ваш хост может уже использовать кэширование на стороне сервера, поэтому обязательно свяжитесь с ним для уточнения.
Для пользователей WordPress (или других CMS)
Пользователи WordPress (или других CMS) могут реализовать кэширование страниц с помощью плагинов кэширования.
Например, установка плагина кэширования, такого как WP Rocket , может помочь сразу же снизить показатель TTFB.
Прочтите наше подробное руководство по оптимизации WordPress с помощью руководства WP Rocket.
3) Модернизация серверного оборудования для увеличения ресурсов процессора или памяти
Если позволяет ваш бюджет, поговорите со своим хостинг-провайдером или разработчиком, чтобы проанализировать использование ресурсов и определить, можете ли вы обновить аппаратные характеристики исходного сервера.
Примечание. Это временное решение — если код вашего приложения ужасно неэффективен, все аппаратные ресурсы мира не сократят время загрузки.
Таким образом, оцените свою ситуацию и взвесьте все за и против, прежде чем принимать решение.
Например, рассмотрите возможность перехода с вашего недорогого плана хостинга, если у вас сложный веб-сайт WordPress.
Примечание. Это оптимизация экспертного уровня
Улучшать этот аудит рекомендуется только опытным разработчикам.
Почему моя страница работает медленно?
Производительность вашей серверной/внутренней части играет решающую роль в производительности вашей страницы. Вот несколько возможных причин, почему это может быть медленным.
Обзор
Производительность вашей страницы складывается из внешних и серверных компонентов. GTmetrix оценивает внешнюю структуру вашей страницы, чтобы убедиться, что она доставляется вашим посетителям максимально оптимально, но оптимизированная серверная часть также является важной частью уравнения, обеспечивающего быстрое и беспрепятственное взаимодействие с сайтом.
Протестируйте свой сайт прямо сейчас!
С оценками «Производительность» и «Структура» легко уделить слишком много внимания внешнему интерфейсу и забыть о серверной части.
Важно помнить, что даже если у вас хорошие показатели производительности и структуры, вы можете сделать свою страницу еще быстрее, оптимизировав серверную часть .
От чего зависит время загрузки моей страницы?
При запросе страницы интерфейсному и серверному компонентам требуется определенное время для завершения своих операций. Поскольку их операции в основном последовательные, их совокупное время можно считать Общее время загрузки страницы .
Внешние и внутренние факторы, влияющие на скорость сайта: Быстрое время состоит из того, что обе эти стороны работают в оптимальной настройке.
Даже после того, как вы оптимизировали интерфейс, прироста скорости все равно можно добиться за счет оптимизации серверной части. Это означает оптимизацию способа создания страницы вашим сервером .
Хорошим показателем производительности сервера является время, необходимое для создания HTML-страницы ( Время создания страницы ). Это помечено как «Время ожидания» на первом элементе каскадного графика (также известном как «Продолжительность серверной части»).
Как правило, это время не должно превышать 600 миллисекунд (или как можно меньше).
Как ускорить работу сервера?
Причин медленной работы сервера может быть много, но их можно разделить на две категории:
- Неэффективный код или SQL
- Узкие места/медленный сервер
Поскольку каждый сайт имеет уникальную платформу и настройку, решение этих проблем зависит от каждого сайта. Одному сайту может потребоваться оптимизация серверного кода, а другому может просто понадобиться более мощный сервер.
Бюджетные ограничения также могут играть роль, поскольку оптимизация кода на стороне сервера для незначительного увеличения скорости может быть более доступной, чем обновление серверов для значительного увеличения скорости. Лучше всего по-настоящему понять свои требования, прежде чем выбирать вариант на стороне сервера.
Для повышения скорости на стороне сервера обычно используются следующие оптимизации:
Оптимизация кода
Языки программирования, такие как PHP, Perl, Python или ASP, обычно объединяются с базами данных, такими как MySQL, PostgreSQL или Microsoft SQL Server, для создания программного обеспечения, такого как WordPress, Drupal, Magento и всевозможных пользовательских платформ.
Это программное обеспечение, как правило, довольно оптимизировано из коробки, но часто существует множество настроек кода или подключаемых модулей, которые снижают производительность в результате неэффективного кода или неоптимизированных запросов к базе данных.
Оптимизация кода включает в себя анализ кода и запросов к базе данных и поиск мест, где код неэффективен, а запросы к базе данных медленны. После обнаружения этих «горячих точек» разработчик должен исправить эти проблемы.
Для кода это часто включает в себя поиск лучшего алгоритма или модификацию кода для обхода узких мест (т. е. места на жестком диске или операций ввода-вывода, пропускной способности и т. д.). Для баз данных это может включать добавление индексов для ускорения запроса, переписывание запроса или изменение структуры базы данных.
Если вам требуется помощь разработчика, рассмотрите возможность использования такой службы, как Fiverr , чтобы найти ее.
Кэширование страниц
Большинство современных веб-сайтов являются динамическими, что означает, что они извлекают информацию из базы данных, вставляют извлеченные данные в шаблоны, а затем предоставляют их вам.
Это происходит каждый раз, когда кто-то запрашивает страницу с сервера, и время, необходимое для выполнения этого процесса, зависит от эффективности кода и мощности указанных серверов.
Без кэширования страниц
Сервер получает запрос, запрашивает контент в базе данных, создает страницу и отправляет сгенерированный HTML-код обратно.
Поскольку сервер обрабатывает тысячи запросов на одну и ту же страницу и, по сути, каждый раз «создает» одну и ту же страницу, почему бы не создать страницу один раз и не отправить эту «готовую» версию всем, кто ее запрашивает? Это называется кэшированием страниц .
С кэшированием страниц
Если сервер получает запрос на ранее сгенерированную страницу, он немедленно возвращает эту версию. Эта версия является «кэшированной» страницей.
Отправка пользователям «кэшированных» версий страниц аналогична передаче им фотокопий флаера. Для вас гораздо быстрее дать им фотокопии, чем перерисовывать и писать содержание каждый раз, когда кто-то просит их.
Если вы используете CMS (например, WordPress, Shopify и т. д.), проще всего реализовать кэширование с помощью плагина, такого как WP Ракета
.Кэширование страниц может быть очень эффективным средством ускорения генерации страниц, но у него есть и свои недостатки:
- Страницы, требующие аутентификации, не могут быть закэшированы (поскольку они часто содержат информацию о пользователе).
- Изменения страниц не отображаются, пока не истечет срок действия кэша страниц.
Более мощные серверы
Давайте определим два популярных термина в мире хостинга:
- Общий хостинг или виртуальный хостинг: Это означает, что, включая ваш веб-сайт, на сервере размещено множество веб-сайтов. Все эти веб-сайты разделяют свою вычислительную мощность и ресурсы.
- Выделенный хостинг: Вы единственный пользователь на сервере. Вычислительная мощность и ресурсы сервера предназначены исключительно для вашего веб-сайта (ов).
Проблемы с общим хостингом
Общий сервер часто имеет недостаточную мощность и перегружен.
Виртуальный хостинг является наиболее доступным, и его можно надежно использовать для создания сайтов для начинающих или в целях разработки.
Однако, когда сайт корпоративного уровня достигает уровня, при котором трафик увеличивается, общий сервер не может предложить многого с точки зрения повышения скорости.
Сравнение выделенного хостинга
Выделенный сервер.
Для более крупных сайтов может потребоваться несколько выделенных серверов (кластеров), которые играют разные роли (запросы к базе данных, обслуживание мультимедиа и т. д.) для ускорения загрузки страниц. Эти серверы рассчитаны на высокую производительность, поэтому их технические характеристики достаточно высоки.
Выделенные серверы обычно резервируются для ресурсоемких веб-сайтов с высокой посещаемостью (вам не понадобится один для небольшого веб-сайта о вашей кошке) и стоят дороже, чем общие серверы.
Однако они необходимы для веб-сайтов корпоративного уровня и предприятий, где их веб-сайт имеет решающее значение.
Результаты
В сочетании с быстрым внешним интерфейсом оптимизация производительности на стороне сервера может привести к потрясающим результатам в отношении времени загрузки страницы.
Как правило, Время создания страницы для сложных динамических сайтов может быть меньше 0,25 секунды .
Нужна помощь в оптимизации?
Мы рекомендуем только те продукты и услуги, которые мы рассмотрели и протестировали сами. Ниже вы найдете партнерские ссылки на наших партнеров по оптимизации. Если вы решите приобрести их услуги по предоставленным ссылкам, мы можем получить комиссию без дополнительных затрат для вас.
Некоторые оптимизации вам не по силам? Найдите разработчика.
Мы рекомендуем искать помощь на Fiverr. Это отличный вариант для владельцев веб-сайтов, которые хотят повысить производительность, но не имеют технических навыков для оптимизации.