Начать стоит с измерений. Сперва смотрим, куда уходит время: какие маршруты самые долгие и какие SQL-запросы за ними стоят. Затем подключаем к слою данных кэш на Redis либо Memcached, продумываем, когда и как он сбрасывается, и заранее наполняем его для самых посещаемых страниц. Параллельно наводим порядок в запросах: добавляем индексы, переписываем джойны, убираем лишние повторяющиеся обращения к базе.
Результат должен быть виден в цифрах. Ждём отчёт с замерами до и после, долей попаданий в кэш и графиком нагрузки на базу, а вместе с ним — понятную настройку и короткую памятку, чтобы наша команда могла поддерживать решение сама. Расскажите, с какими похожими задачами по ускорению вы уже справлялись и какой инструментарий предпочитаете.