Кеш может помогать публичным страницам Joomla и почти не затрагивать причину медленного поиска или личного кабинета. Эти сценарии нужно измерять отдельно: где проходит ожидание, какие запросы выполняются и что получает браузер. Так появляется план изменений для конкретного сайта, а не спор о скорости CMS вообще.
Joomla тормозит: отделяем страницы от действий
Фраза «сайт медленный» не указывает место ремонта. Уточните, что именно задерживается: открытие статьи, раздел каталога, поиск по слову, применение фильтра, вход в кабинет или сохранение материала в админке.
Составьте короткий список воспроизводимых сценариев. Для каждого запишите адрес, действие, статус посетителя и время возникновения задержки. Отдельно отметьте, проявляется ли проблема постоянно или во время импорта, резервного копирования и других фоновых работ. Для каталога выборки и фильтры подробнее разобраны в материале о скорости каталога.
Ответ сервера и работа браузера — разные участки
Если Joomla медленно отдает HTML, сжатие фотографий не объяснит эту задержку. Если HTML уже пришел, а страница продолжает собираться, проверять нужно и ресурсы шаблона. В Network браузера видны отдельные запросы и их фазы; Waiting (TTFB) включает сетевую задержку и подготовку ответа сервером, поэтому это не чистое время работы PHP. Такое разделение описано в документации Chrome DevTools.
Для поиска и фильтра посмотрите запрос, который отправляется после действия: он может выполняться отдельно от загрузки страницы. Сопоставьте его время с серверными журналами и профилем выполнения. Общие условия сопоставимых замеров и приемки описаны в статье об ускорении сайта; для Joomla дальше важнее установить, какой участок расширения создает ожидание.
Нагрузка Joomla: модули, плагины и запросы БД
Проверять расширения лучше на тестовой копии с воспроизводимой проблемой. Модуль похожих материалов, блок каталога, плагин обработки содержимого и переопределение в шаблоне — кандидаты на проверку, а не заранее виноватые части. Меняют по одному условию и повторяют то же действие: массовое отключение всего сразу не покажет источник задержки.
Отладочная консоль Joomla позволяет смотреть время и память по этапам, выполненные SQL-запросы, их длительность и повторы. Это описано в документации по отладке Joomla. Диагностический вывод оставляют в тестовом контуре: посетителям не нужны запросы, пути и данные сеанса.
Число запросов само по себе не приговор: нужно найти те, на которые уходит время, и связать их с компонентом, модулем или плагином. Для MySQL план выполнения проверяют через EXPLAIN: он показывает, как оптимизатор собирается обрабатывать запрос и соединять таблицы. Основание для изменения индекса или выборки дает план выполнения MySQL, а не предположение по размеру базы.
Медленный поиск разбирают отдельно: какой компонент его обслуживает, какие области данных он просматривает, сколько результатов выбирает и какие дополнительные блоки строит вместе с выдачей. Сравните несколько поисковых фраз. Если время уходит в конкретную выборку, кеш обычных статей этот запрос не исправит.
Кеш и персональные данные: граница применения
В Joomla различаются кеш целой страницы и кеш вывода компонентов и модулей. При консервативном режиме отдельный модуль может управлять своим кешированием; прогрессивный сохраняет набор модулей страницы целиком. Для стандартных механизмов Joomla документация указывает отсутствие кеширования для вошедших пользователей. Правила описаны в руководстве Joomla по кешу.
Поэтому настройку выбирают по содержимому. Общая статья для гостей и корзина с выбранными товарами требуют разных правил. Кабинет, индивидуальные цены, результаты с учетом прав доступа и формы нельзя включать в общий кеш без проверки изоляции данных. Сторонние расширения и кеш на сервере проверяют отдельно: правило встроенного кеша не доказывает их корректность.
После настройки проверьте не только повторное открытие, но и обновление содержимого. У кеша целой страницы изменение статьи не вызывает автоматической очистки: посетитель может видеть прежнюю версию до истечения срока или очистки. В приемке нужен понятный ответ, когда обновятся данные и какие адреса исключены из кеша.
Шаблон, окружение и приемка изменений
У шаблона проверяют изображения, подключенные скрипты и стили, внешние виджеты: какие ресурсы действительно нужны на медленной странице и какие продолжают загружаться после HTML. Уменьшение картинки не заменяет проверку поиска, как и исправление SQL не отменяет тяжелые ресурсы в браузере.
По окружению нужны факты: версии Joomla и расширений, совместимость с PHP, доступные ресурсы, ошибки и совпадение задержек с фоновой нагрузкой. Более дорогой тариф стоит обсуждать после подтверждения нехватки ресурсов. Если ожидание заканчивается тайм-аутом, это уже отдельная ветка диагностики ошибки 504.
Результат принимают по исходному списку действий в сопоставимых условиях: отдельно с пустым и заполненным кешем, гостем и вошедшим пользователем. Проверяют поиск, фильтры, формы, кабинет и сохранение в админке, если оно было частью жалобы. Для персональных блоков используют две тестовые учетные записи: данные и права одной не должны появляться у другой.
В отчете нужны причина задержки, сделанные изменения и замеры каждого затронутого сценария. Быстрая статья при прежнем медленном поиске означает, что задача поиска еще не решена. Пришлите медленные страницы и действия — составим план диагностики Joomla и проверки изменений.