Задержка запроса документа

Адам Рейн
Adam Raine

Опубликовано: 27 марта 2025 г.

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

Что проверяет инсайт

Анализ проверяет, повлияло ли какое-либо из следующих условий на первоначальный запрос документа:

  • Запрос навигации был перенаправлен один или несколько раз.
  • Серверу потребовалось более 600 мс, чтобы ответить на запрос.
  • Ответ был несжатым.
DevTools сообщает, что задержку документа можно сократить, устранив перенаправления.
DevTools сообщает, что задержку документа можно сократить, устранив перенаправления.

Избегайте перенаправлений

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

HTTP/1.1 301 Moved Permanently
Location: /path/to/new/location

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

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

Сократить время отклика сервера

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

Существует множество возможных причин медленной реакции сервера и множество возможных способов ее устранения:

  • Оптимизируйте логику серверного приложения для более быстрой подготовки страниц. Если вы используете серверный фреймворк, у него могут быть рекомендации по этому вопросу.
  • Оптимизируйте запросы вашего сервера к базам данных или перейдите на более быстрые системы баз данных.
  • Обновите аппаратное обеспечение сервера, увеличив объем памяти или производительность процессора.
  • Используйте CDN для уменьшения сетевой задержки. Это особенно эффективно, если документ можно кэшировать на периферийном узле CDN.

Более подробную информацию см. в руководстве по оптимизации TTFB .

Включить сжатие

Сжатие текста может уменьшить общий размер исходного HTML-документа. Когда браузер запрашивает ресурс, он использует HTTP-заголовок запроса Accept-Encoding чтобы указать, какие алгоритмы сжатия он поддерживает.

Accept-Encoding: gzip, compress, br, zstd

См. также Оптимизация кодирования и размера передаваемых текстовых ресурсов .

Ваш сервер должен вернуть HTTP-заголовок ответа Content-Encoding чтобы указать, какой алгоритм сжатия он использовал.

DevTools сообщает, что запрос документа использует сжатие gzip.
DevTools сообщает, что запрос документа использует сжатие gzip.

Руководство по конкретному стеку

Эта информация также предлагает рекомендации, специфичные для стека, для страниц, использующих следующие технологии:

WordPress

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

Друпал

  • Если установлен модуль перенаправления , просмотрите и удалите ненужные перенаправления.
  • Разгрузите трафик с помощью одного или нескольких модулей кэширования Drupal , таких как Internal Page Cache , Internal Dynamic Page Cache и BigPipe . Используйте их вместе с CDN для дальнейшего сокращения времени отклика. На ваших хостинг-серверах должен использоваться PHP OPcache.
  • Рассмотрите возможность использования кэширования памяти, например Redis или Memcached, для сокращения времени запросов к базе данных.
  • Используйте эффективные темы, модули и более быстрые серверы, чтобы сократить время отклика сервера.

Реагировать

  • Если вы используете React Router, минимизируйте использование компонента <Redirect> для навигации по маршруту .
  • Если вы визуализируете какие-либо компоненты React на стороне сервера, рассмотрите возможность использования renderToNodeStream() или renderToStaticNodeStream() чтобы позволить клиенту получать и обрабатывать разные части разметки, а не все сразу.

Джумла

  • Включите настройку сжатия страниц Gzip (Система > Глобальная конфигурация > Сервер).
  • Шаблоны, расширения и характеристики сервера влияют на время отклика сервера. Рассмотрите возможность поиска более оптимизированного шаблона, тщательного выбора расширения для оптимизации или обновления сервера.

Магенто

Ресурсы