Во первых, PageSpeed инсайт это просто попугаи от гугла. Снесите с сайта яндекс метрику и сразу +10-20.
100 попугаев означает лишь только одно - гугл не знает как эту страницу сделать быстрее.
с оценкой 100 страница может открываться 5-10 секунд, а отрисовывающаяся менее секунды иметь оценку на уровне 70-80.
Во вторых, показателей быстродействия гораздо больше.
Как бакендер (и на то, что влияет БД) я бы ориентировался на "Время до передачи первого байта ответа"
Минимум этого отклика 5-7мс. Н-р голый PHP или Symfony с прогретыми кешами, когда для ответа не используется ничего кроме самого PHP.
Страница с одним запросом (SELECT ) по первичному индексу это от 5мс.
Время от реквеста до начала ответа должно быть менее 100мс (в идеале 25-50мс).
Во вторых, мне кажется что вы смотрите время полной отрисовки страницы.
Тут нужно оптимизировать время отрисовки начального фрейма страницы. Если на странице много картинок, то сделать ленивую подзагрузку их. Сперва плейсхолдеры, а к моменту прокрутки скачивать.
Возвращаясь к выносу муськи на другой сервер.
В пределах одного компа лучше с ней работать через сокеты. Стек TCP медленее. А если на другом, то сравнивайте сами, ахз может у Вас там будет 10Гигабитс. Но я бы на это не расчитывал, не те тарифы.
Оптимизируйте запросы. Создавайте оптимальные индексы. Для сложных фильтров стоит подумать о других механизмах.
400к - это не то количество, чтобы уже на нескольких хоститься.
В конце концов возьмите дедик (физический сервер в аренду), а не пару VDS.
P.S. Заниматься глубокой оптимизацией на VPS считаю извращением. Так как никогда не знаешь какой на этой машине окажется оверсейлз (продано 146 процентов ресурсов или больше ). Стоит ли что-то кешировать в оперативе или будет только хуже, когда там виртуалки начнут переключаться и свопиться под большой нагрузкой от соседей по серваку.