Как исправить долгий ответ сервера
Почему Яндекс пишет «долгий ответ сервера»: страницы при обходе грузятся дольше 3 секунд. Причины на хостинге и в CMS и как ускорить ответ.
Сообщение «Долгий ответ сервера» в Яндекс Вебмастере значит, что робот при обходе ждал страницу слишком долго. В справке порог такой: если часть страниц загружается больше 3 секунд, это фиксируют как ошибку. Из-за медленного сервера индексирование может задерживаться. Список адресов лежит в самом сообщении. Справка: диагностика сайта.
Что именно тормозит
Считается время, пока сервер отдаёт саму страницу: от запроса до документа. Картинки, шрифты и скрипты подгружаются уже после этого ответа. Если в Вебмастере долгий ответ, а картинки при этом лёгкие, узкое место в генерации HTML, базе или хостинге.
В браузере это видно в сети по времени до первого байта, TTFB. Главную меряют отдельно от карточки товара, фильтра и поиска по каталогу: часто тормозит не витрина, а один тяжёлый шаблон.
Из-за чего ответ растягивается
- 01Хостинг перегружен: кончается память, диск уходит в подкачку, соседи на общем сервере забирают процессор.
- 02Страница каждый раз собирается заново из базы, кэша готового HTML нет.
- 03Медленные запросы к базе: нет индекса, выборка тянет весь каталог ради одной карточки.
- 04Плагины и модули на каждый просмотр ходят во внешние сервисы: остатки, курсы, отзывы, 1С.
- 05Лишние редиректы до кода 200: с http на https, с www, со слэшем, каждый круг добавляет ожидание.
- 06Резервная копия, антивирус или чужой скрипт на сервере совпали с обходом робота.
Как исправить
Сначала откройте адреса из сообщения Вебмастера и замерьте их сейчас. Инструмент «Проверка ответа сервера» показывает доступность, точное время обхода смотрят в логах сервера: у инструмента другой IP, и ответ может отличаться. Если сейчас страница открывается быстро, сообщение можно не чинить отдельно: при следующем обходе оно уйдёт.
- 01Включите кэш готовой страницы на сервере или в CMS. Повторный заход не должен заново собирать HTML из базы.
- 02Найдите медленный запрос в логе базы и добавьте индекс под него. Тяжёлый отчёт и поиск по каталогу уберите из общего шаблона каждой страницы.
- 03Ответы внешних сервисов заберите заранее и отдавайте из кэша. Пока страница ждёт чужой API, робот ждёт вместе с ней.
- 04Уберите лишние редиректы: у адреса один канонический вид, на него ведёт сразу первый ответ.
- 05Обновите PHP или аналог среды и включите кэш байткода. Памяти должно хватать без подкачки.
- 06Если процессор занят постоянно и кэш уже включён, страницу переносят на сервер с запасом ресурсов, ближе к посетителям.
Как понять, что стало лучше
Повторите замер тех же адресов из списка, не только главной. Первый байт HTML должен приходить заметно раньше трёх секунд, и так на типичной карточке, а не на пустой тестовой странице. Сообщение в Вебмастере снимется после следующего обхода, само по кнопке оно не гаснет в ту же минуту.
Скорость картинок и вёрстки после ответа сервера — отдельный контур. Её смотрят уже по отрисовке страницы, когда документ приходит быстро, а экран всё равно собирается долго.
Вопросы и ответы
Что Яндекс считает долгим ответом сервера?
Время, за которое сервер отдаёт HTML страницы. Если при обходе часть страниц открывается дольше 3 секунд, Вебмастер записывает это как ошибку, и индексация может задержаться.
Картинки входят в этот замер?
Считается ответ с самой страницей, до первого байта HTML. Картинки, шрифты и скрипты подгружаются уже после этого. Лёгкие картинки при долгом ответе означают, что узкое место в генерации HTML, базе или хостинге.
Из-за чего ответ обычно растягивается?
Перегруженный хостинг, сборка страницы из базы без кэша HTML, медленный запрос к базе, поход во внешний сервис на каждый просмотр, лишние редиректы до кода 200, а также бэкап или антивирус в момент обхода.
Когда сообщение в Вебмастере пропадёт?
Сначала замеряют те же адреса, что указаны в ошибке. Инструмент «Проверка ответа сервера» ходит с другого IP, чем робот, поэтому точное время обхода смотрят в логах. Если HTML уже приходит заметно раньше трёх секунд, сообщение снимается на следующем обходе, а не в ту же минуту.