во первых - скорость загрузки зависит от 3 параметров:
1) Скорость исполнения кода на сервере, которая в свою очередь делится на собственно код, и запросы к бд ( которые чаще всего и создают основную нагрузку и тормоза).
2) Скорость передачи данных и объем данных. Первое зависит от расположения сервера, удаленности от точки запроса, канала сервера и канала клиента. Второе, как вы понимаете, обычно зависит от качества и объема кода (html/js/json/картинки), передаваемых от сервера к клиенту.
3) Рендер страницы. Зависит от подключаемых скриптов / стилей, блокировок жс кода и объема и сложности разметки.
Все три параметра влияют на скорость загрузки, но код серверной части можно проверить чисто программно, от есть замер надо производить на сервере, вставив в код таймеры исполнения. Второй и третий параметры можно посмотреть в браузере, в хроме есть анализатор скорости загрузки, такой встроенный спидтест.
Для примерной оценки работы вашего сервиса я бы сравнил ваши показатели с примерно схожими крупными аналогами вашего сайта.
первый раз главная страница прогружалась около 40 секунд
Это ад, не должно так быть в любом случае. Явно говорит о том что архитектура или не продумана, или явно сляпана на коленке, в надежде что "кэш все вытянет".