Расширения Joomla: какие цифры действительно важны
Количество установленных расширений ничего не говорит о скорости Joomla-сайта. Важнее измерить запросы к базе, вес JavaScript и CSS, время ответа и цену каждого дополнения для обновлений.

На Joomla-сайте с 37 расширениями не обязательно будет больше проблем, чем на сайте с десятью. Но если главная страница отдает 4,8 МБ JavaScript и CSS, выполняет сотни SQL-запросов, а обновление одного компонента ломает шаблон, список установленных дополнений уже превращается в технический долг. Разбирать расширения нужно не по количеству, а по измеримому вкладу в скорость, надежность и обслуживание.
Какие цифры собирать перед выводами
Материал ориентирован на Joomla 5.x. Значения ниже не являются универсальными нормативами: они нужны, чтобы сравнивать сайт с самим собой до и после изменения. Тестируйте одну и ту же страницу, на том же окружении и при одинаковом состоянии кеша.
- Время ответа сервера. Смотрите TTFB — время от отправки запроса до получения первого байта. Его фиксируют браузерные инструменты, Lighthouse, APM или серверные метрики.
- Количество SQL-запросов и их длительность. Системный плагин отладки Joomla может показать запросы на тестовом стенде. Особенно важны повторяющиеся и самые долгие запросы.
- Размер и количество ресурсов. Отдельно считайте JavaScript, CSS, шрифты и изображения, которые добавляет расширение. Вес страницы и число запросов смотрите во вкладке Network браузера.
- Ошибки PHP и JavaScript. Один пропущенный вызов после обновления может быть важнее десятков килобайт в бандле.
- Цена сопровождения. Запишите дату последнего релиза, совместимость с Joomla 5.x, наличие платной лицензии и зависимость от других расширений.
Не смешивайте серверные и клиентские показатели. Большой JavaScript не объясняет медленный первый байт, а быстрый TTFB не означает, что страница быстро становится интерактивной.
Число расширений — плохая метрика риска. Хорошая метрика показывает, что именно изменится, если конкретное расширение отключить.
TTFB[1] — время до первого байта ответа. Это не полное время загрузки страницы: после него браузер еще получает ресурсы, строит DOM и выполняет скрипты.
Как измерять вклад одного расширения
1. Соберите базовую линию
Создайте копию сайта на тестовом домене или локальном стенде. Зафиксируйте версию Joomla 5.x, версию PHP, шаблон, включенные плагины, режим кеширования и адреса трех типов страниц: главная, материал и страница, где расширение используется напрямую.
Для каждой страницы сделайте несколько одинаковых замеров. В браузере сохраните TTFB, полное время загрузки, размер переданных данных, число запросов и ошибки в Console. В отчете рядом с цифрой записывайте условия: мобильный или настольный профиль, холодный или прогретый кеш, авторизованный или анонимный пользователь.
Проверка результата: у вас есть таблица с исходными значениями, а повторный замер той же страницы дает сопоставимые результаты. Если разброс велик, сначала ищите нестабильность сервера, CDN или сети.
2. Найдите расширения, которые участвуют в запросе
В администраторской части Joomla откройте список расширений и разделите их по типу: компоненты, модули, плагины и шаблоны. Удалять ничего не нужно. Сначала отметьте, какие дополнения обязательны для авторизации, платежей, поиска, форм, SEO и редактора.
Затем проверьте плагины, работающие на всех страницах. Расширение, которое выводит один блок только на странице каталога, и плагин, который подключается к каждому запросу сайта, имеют разный радиус действия.
Проверка результата: для каждой страницы из базовой линии понятны расширения, которые должны сработать, и те, которые не должны влиять на нее.
3. Проведите контрольное отключение
На копии сайта отключайте по одному подозрительному расширению и повторяйте тот же замер. Не меняйте одновременно шаблон, кеш и настройки сервера. Иначе вы не узнаете, какое изменение дало результат.
Сравнивайте не только среднее значение. Если пять запусков дали 0,7, 0,8, 0,7, 2,9 и 0,8 секунды, проблема может быть в редком сценарии, блокировке базы или внешнем запросе. Для публичного сайта это иногда важнее ровного, но чуть большего среднего.
Проверка результата: после отключения изменились конкретные метрики, а нужная функция действительно исчезла. Если цифры не изменились, расширение может работать только на другой странице, в админке или при определенном типе пользователя.
4. Проверьте базу и фронтенд отдельно
Панель отладки Joomla используйте только на тестовом стенде: она может раскрыть структуру запросов и служебную информацию. Ищите длинные запросы, повторения одного и того же обращения и резкий рост их числа на странице с фильтрами, сортировкой или поиском.
Во вкладке Network фильтруйте ресурсы по JS и CSS. Сравните страницу с расширением и страницу без него. Важно, загружается ли весь пакет на всех страницах, можно ли ограничить его конкретным пунктом меню и не дублируется ли одна библиотека разными дополнениями.
Проверка результата: у каждого замечания есть адрес страницы, тип ресурса или запрос, время замера и повторяемый способ проверки.
Как читать результаты, а не охотиться за одной цифрой
| Наблюдение | Что это может означать | Следующий шаг |
|---|---|---|
| Вырос TTFB, но фронтенд почти не изменился | Дополнительная работа PHP, SQL-запросы или внешний API | Смотреть серверный профиль и запросы на тестовом стенде |
| TTFB прежний, но выросло полное время загрузки | Тяжелые JS, CSS, шрифты или изображения | Сравнить Network, размеры ресурсов и порядок их загрузки |
| Запросов стало больше, но страница не медленнее | Запросы короткие, а измерение не попало под нагрузку | Проверить холодный кеш и сценарий с фильтрами или поиском |
| После отключения ничего не изменилось | Расширение не участвует в этой странице или эффект скрывает кеш | Проверить другой маршрут и повторить тест с одинаковым кешем |
| После обновления появились ошибки в Console | Конфликт версии, шаблона, библиотеки или собственного кода | Сохранить текст ошибки и проверить совместимость у разработчика |
Сравнивайте дополнения по одинаковой функции. Например, два конструктора форм могут давать близкую скорость, но один подключает ресурсы только на странице формы, а другой — на всем сайте. Тогда различается не только производительность, но и стоимость дальнейшего обслуживания.
Цена расширения, которую не видно в отчете Lighthouse
Скорость — только одна часть оценки. У расширения есть еще несколько видов цены:
- Обновления. Чем больше связей с шаблоном, переопределениями и другими компонентами, тем дороже проверять новый релиз Joomla или PHP.
- Безопасность. Плагин без регулярных обновлений остается включенным кодом, который нужно контролировать. Если он больше не нужен, отключение и удаление снижают поверхность атаки, но перед удалением сделайте резервную копию и проверьте зависимости.
- Данные. Формы, каталоги, поля и интеграции могут создавать собственные таблицы, медиафайлы и записи пользователей. Удаление расширения не всегда означает удаление всех данных.
- Лицензия. Уточняйте срок подписки, ограничения на домены и доступ к обновлениям. Точные условия зависят от разработчика и могут меняться.
- Отказоустойчивость. Если сайт не может принимать заказ без одного внешнего API, это архитектурная зависимость, даже когда расширение почти не влияет на время загрузки.
Полезный итоговый показатель — не рейтинг расширения, а карточка решения: какую задачу оно закрывает, на каких страницах работает, какие ресурсы добавляет, кто отвечает за обновление и чем его заменить при конфликте.
Где измерение легко обманывает
Прогретый кеш может скрыть дорогой первый запрос. Авторизованный пользователь увидит другой набор модулей, чем гость. CDN изменит TTFB, но не устранит тяжелый JavaScript в браузере. А тестовая база из ста материалов не покажет поведение каталога с сотнями тысяч записей.
Не делайте вывод «расширение медленное» по одному запуску. Сначала повторите сценарий, затем проверьте страницу без него и страницу с реальными фильтрами, поиском или отправкой формы. Если проблема появляется только под нагрузкой, одиночный замер в браузере недостаточен: нужны нагрузочный тест и серверные метрики.
Есть и обратная ошибка: отключение расширения улучшило скорость, но убрало обязательную бизнес-функцию. В таком случае вопрос не в том, чтобы любой ценой удалить дополнение, а в том, можно ли ограничить его область работы, отложить необязательные ресурсы или заменить его менее связным решением.
Что сделать дальше
Составьте реестр расширений Joomla 5.x и добавьте к каждой строке четыре поля: назначение, страницы работы, дата последней проверки и измеримый эффект. Раз в месяц проверяйте обновления, ошибки PHP и JavaScript, а после каждого заметного изменения повторяйте базовые замеры.
Первый практический шаг — выбрать одну медленную страницу, снять ее показатели с холодным и прогретым кешем, затем по очереди проверить плагины, работающие на всех страницах. Инвалидация кеша и перенос ресурсов в CDN — отдельные темы; здесь важно сначала установить, какое расширение и в каком сценарии создает проблему.
Создатель презентаций: Структура и текст каждого слайда: заголовки-утверждения, одна мысль на слайд, заметки докладчику.
Спросить за 150 ₽Источники: Joomla Documentation: Debug System Plugin, Joomla Extensions Directory
Частые вопросы
Сколько расширений Joomla можно считать нормальным количеством?
Можно ли измерять производительность на рабочем сайте?
Почему отключение расширения не изменило скорость?
Что важнее: число SQL-запросов или их длительность?
Нужно ли удалять неиспользуемые расширения?
Что делать, если после обновления расширения появились ошибки?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.