Если правильно понял вопрос, то React.lazy + динамический импорт + suspense
Попробовал, кажется помогло, отколол от основного чанка 10% не используемых в начале, ещё основной почему-то уменьшился в два раза. Ещё может знаете, перенёс шрифты с фронта на бэк, и сделал предзагрузку через link preload, в стилях подключил по той же ссылке что и в линк, но шрифты почемуто загрузились дважды. Ещё почему-то не работает gzip хотя в nginx включён, может со стороны реакта тоже что-то нужно сделать?