Причин может быть масса от конфига сервера, до тяжелых запросов к бд, проблемы с dns, cdn и тд
Возьмем то случай, когда ваш VPS имеет много ресурсов и настроен серьезным специалистом, а значит проблема на стороне опенкарта и плагинов, которые были установлены
Обычно первым делом включают лог тяжелых запросов. Опенкарт в момент создания таблицы выбирает тип таблиц ENGINE=MyISAM. Этот тип может блокировать таблицы, именно поэтому в логе можно встретить простейшие запросы выполняющиеся по 2+ секунды. Лучше перейти на innodb. На просторах гитхаба есть скрипт, который поможет сменить движок хранилища, а так же добавить индексы к таблицам. Кстати, индексы он добавляет всем столбцам, которые содержат подстроку "_id"
https://github.com/lilalaunesau/opencart-turbo
Но одним логом сыт не будешь и поэтому я написал решение, которое покажет время работы каждого контроллера на странице.
Предварительно желательно отключить кеширование mysql. За это отвечают такие параметры конфигурации как
query_cache_size = 0
query_cache_type = 0
С скрина, который прикреплен к этому посту можно сделать вывод, что менюшка не кешируется и грузится около 640мс
Один из моих модулей отрабатывает за 100мс, что тоже не есть хорошо, но с учетом того что на этой странице таблица из 10+ товаров, то норм
Футер тоже можно закешировать сэкономив около 300мс
Если этот пост набирает 5 комментов, то выложу это решение. Напоследок хочу сказать, что продакшн это святое и любые тесты и замеры нужно делать на дев, тест или локальном окружении под присмотром профессионалов. Если я где-то некорректно выразился, то пишите поправим