Проще всего сделать имитацию хода загрузки. Первым грузите блок с заглушкой и загрузкой, например:
getbootstrap.com/components/#progress-animated
потом в js после полной загрузки или при ready делаете display:none; для заглушки. Заполнение индикатора хода загрузки теоретически можно привязать к крупным фото, например. Через:
$('селектор_крупной_фотки').load(function(){
$('селектор_индикатора').css('width','80%');
});
Полазив в панеле разработчика хром, можно найти таймлайн где видно, какой элемент и когда загрузился, отсюда найти чекпоинты для индикатора.
Но мне кажется, что надо оптимизировать страницы сайта, так что грузились они за 1-2с. Тогда и обычного крутящегося шарика достаточно, не показывая этапы загрузки.