Я так понимаю, nuxt каждый раз "на лету" собирает проект и отдает клиенту
нет, билд 1 раз сделался и только с ним и ведётся работа.
Уже десяток сайтов сделаны на nuxt.js и никаких тормозов нет. Сборка на сервере действительно долгая(хотя так его собирать не желательно, но не об этом), но это никак не отражается на работе сайта.
Т.к. у вас тормоза, не обязательно должен виноват быть именно nuxt.js, возможно у вас есть множество мест, которые нужно оптимизировать по части фронта. Если у вас rest api, где вроле бекенда php - то наверно стоит обратить внимание на работу бекенда и оптимизацию mysql запросов(если там мускул). Т.к. если api долго отвечает, то и nuxt будет долго ждать данные, от чего долго будет отображать страницу, знаю, проходил.
Был и есть сейчас проект, который я делал на фрилансе, т.к. у нас 100500к товаров, то на старте проекта, когда мы тестировали, в некоторых местах загрузка страницы могла занимать около минуты, т.к. внутри бекенда(php, yii2) код был организован несколько плохо. Со временем вылизали запросы, сделал кеширование запросов и всё в целом стало ок.
Ну и сам сервер, чем больше сайт, тем больше мощностей нужно. У нас пока 4гб, 2 ядра на Digital Ocean. В ближайших планах увеличить мощности, т.к. приток пользователей становится больше.
Когда только разрабатывали сайт, то у нас было 1гб и 1 ядро. Этого хватило на пару месяцев, т.к. сервер не выдерживал нагрузок. Пришлось увеличить оперативку до 2х гб. А уже готовую версию, как и написал выше, до 4гб и 2 ядра