Скорость сайта

Почему сайт работает медленно не только при загрузке, но и при переходах?

Евгений, Тверь 0

Сайт на WordPress, товаров в каталоге под тысячу. Главная открывается терпимо, а вот переходы между разделами и добавление в корзину тормозят на 3-4 секунды каждый раз. В техподдержке хостинга говорят, что дело не в сервере. С чем это может быть связано?

Дмитрий Акиндинов технический администратор сайтов

ответил

Если тормозит не только первая загрузка, а каждый переход и клик, дело обычно в тяжёлых SQL-запросах к базе данных без индексов и в отсутствии кэша на уровне отдельных блоков страницы, а не только HTML целиком. На каталоге под тысячу товаров без кэша каждая карточка вроде «похожие товары» или фильтр заново бьёт по базе, и хостинг здесь действительно может быть ни при чём.

Проверить это можно плагином Query Monitor — он показывает время каждого SQL-запроса на странице и сразу видно, если один запрос выполняется дольше 200-300 миллисекунд, значит ему не хватает индекса или он написан неоптимально. Часто виноват конкретный плагин: у него собственная логика фильтрации или подсчёта, которая с ростом каталога перестаёт справляться.

Второй частый источник — объектный кэш. Обычный кэш страниц (когда весь HTML сохраняется целиком) не спасает переходы между разделами и действия вроде добавления в корзину, потому что там результат всегда индивидуальный. Здесь помогает объектный кэш вроде Redis или Memcached — он кэширует результаты повторяющихся запросов к базе, а не готовую страницу.

Тезис техподдержки «дело не в сервере» вполне может быть правдой: на тарифе с достаточными ресурсами узкое место чаще всего именно в коде и структуре запросов, а не в мощности железа. Смена хостинга в такой ситуации ничего не даёт — нужно смотреть в сторону оптимизации запросов и кэширования на уровне самого сайта.

Подробный разбор Медленные запросы MySQL: как найти виновника и ускорить сайт

Задать свой вопрос

Вопросы проходят модерацию. Ответ появляется на сайте в течение пары дней.

Похожие вопросы

Все вопросы по теме "Скорость сайта"

Заявка

Обсудим задачу

Напишите имя и телефон, выберите удобный канал. Перезвоню или напишу в течение часа в рабочее время.

Куда удобнее ответить?