Нашел причины - реализация загрузчика. Насколько я понял, он работает быстрее (?) кеша браузера, а чтобы он ждал загрузки css, и уже после нее выполнял загрузку страницы (чтоб не мелькала голая страница без подключенных таблиц стилей), на гитхабе есть отдельная версия загрузчика. По цифрам получается достаточно интересно, хотя все зависит от того, насколько оптимально используются скрипты и таблицы стилей. У меня вот в хедере было прописано внешних 5 css и 10 js-файлов. Я загнал все это добро в загрузчик вот таким образом (jquery-1.7.1.min.js пришлось вынести до загрузчика):
<script type="text/javascript" src="catalog/view/javascript/jquery/jquery-1.7.1.min.js"></script>
<script src="catalog/view/javascript/yepnope.1.5.4-min.js"></script>
<script type="text/javascript">
yepnope(['/catalog/view/theme/default/stylesheet/stylesheet.css', '/catalog/view/javascript/jquery/ui/themes/ui-lightness/jquery-ui-1.8.16.custom.css', '/catalog/view/javascript/jquery/colorbox/colorbox.css', '/catalog/view/theme/default/stylesheet/carousel.css', '/catalog/view/theme/default/stylesheet/livesearch.css', <?php foreach ($styles as $style) {echo "'/".$style['href']."', "; } ?>'/catalog/view/javascript/jquery/jquery.tooltip.js', '/catalog/view/javascript/jquery/ui/jquery-ui-1.8.16.custom.min.js', '/catalog/view/javascript/jquery/ui/external/jquery.cookie.js', '/catalog/view/javascript/jquery/colorbox/jquery.colorbox-min.js', '/catalog/view/javascript/jquery/tabs.js', '/catalog/view/javascript/jquery/jquery.jcarousel.min.js', '/catalog/view/javascript/common.js', '/catalog/view/javascript/livesearch.js', <?php foreach ($scripts as $script) {echo "'/".$script."', "; } ?> '/catalog/view/theme/default/extra/extra.js' ]);
</script>
В итоге получились такие цифры (отключил все модули, виджеты, метрики и т.п., мерял хромом через встроенный анализ по Timeline):
Без асинхронного загрузчика
Cache off: onload: 3.54 s, DOMContentLoaded: 3.40 s
Cache on: onload: 1.08 s, DOMContentLoaded: 976 ms
С асинхронным загрузчиком
Cache off: onload: 3.27 s, DOMContentLoaded: 3.13 s
Cache on: onload: 934 ms, DOMContentLoaded: 752 ms
Выигрыш есть, но небольшой, возможно результаты будут лучше на более загруженных скриптами и стилями сайтах.
Хорошая идея, надеюсь toporchillo исправит запросы, которые указали выше и выложит на гитхабе, а я всегда готов снова замерять эффективность и написать сюда уже в полном виде, что и как получилось оптимизировать.
Я все тесты сначала делаю локально, чтобы увидеть есть ли смысл вообще переносить изменения в реальный магазин. Сегодня ночью попробую все эти изменения с начала темы проверить на самом магазине, пока посетителей будет мало чтобы ничего не сломать, как я умею :)