1) отключить дебаг на продакшене, сильно тормозит, проверено
2) включить OpCacher, кеширование опкодов увеличивает быстродействие
3) сделать профилирование, определить узкие места кода. Как правило это запросы... По оптимизации и профилировании запросов есть много информации в интернете. Большинство людей во фреймворках используют ОРМ. Надо помнить, что ОРМ как правило делает НЕ оптимальные запросы.
4) Может стоит какие-то данные закешировать или вычислить при старте фреймворка.
5) если проблема в вычислениях, то часть кода вынести в отдельный микросервис и написать его на чем-то более быстром, например golang. Это выносится на отдельный url ( роутер) и разруливается nginx location. Это уже крайняк...
6) Могут быть проблемы в самой архитектуре приложения, может что-то стоит вынести в отдельные части (воркеры) и подтягивать AJAX или WebSocket уже после загрузки страницы: по запросу запускаем подзадачу, которая по готовности оповестит страницу и та уже вытянет оставшиеся данные .
как, врач не сможет поставить правильный диагноз, не осмотрев пациента, так и тут, не покрутив ручки, не изучив код и архитектуру нельзя, что либо-правильно посоветовать