Кто ориентируется на PageSpeed Insights рекомендации, они пишут что надо бы убрать блокирующий css и js в конец страницы, для быстрой загрузки. В настройках битрикса - Главный модуль, ставим галочки чтобы перенести в конец страницы, но код и стили не переносятся.
Есть решение - убираем из head $APPLICATION->ShowHead() для неавторизированных пользователей, а для админов оставляем из-за особенностей Эрмитажа и возможности редактировать страницу находясь на ней. Вниз сайта, перед body заносим $APPLICATION->ShowCSS(), $APPLICATION->ShowHeadStrings() и $APPLICATION->ShowHeadScripts(), которые выведут стили и скрипты ядра и шаблона.
Помимо того в head надо оставить вывод ключевых слов и описаний (мета-теги). $APPLICATION->ShowMeta("keywords") и $APPLICATION->ShowMeta("description") - их подключим.
Палим документацию и сорцы у метода ShowHead:
<?php
// CMain::ShowHead()
// /bitrix/modules/main/classes/general/main.php:837
public function ShowHead($bXhtmlStyle=true)
{
echo '<meta http-equiv="Content-Type" content="text/html; charset='.LANG_CHARSET.'"'.($bXhtmlStyle? ' /':'').'>'."\n";
$this->ShowMeta("robots", false, $bXhtmlStyle);
$this->ShowMeta("keywords", false, $bXhtmlStyle);
$this->ShowMeta("description", false, $bXhtmlStyle);
$this->ShowLink("canonical", null, $bXhtmlStyle);
$this->ShowCSS(true, $bXhtmlStyle);
$this->ShowHeadStrings();
$this->ShowHeadScripts();
}
?>
Используем эти функции и разбиваем их для показа разным группам пользователей:
<head>
<?
function ShowHeadCustom($bXhtmlStyle=true) {
global $APPLICATION;
echo '<meta http-equiv="Content-Type" content="text/html; charset='.LANG_CHARSET.'"'.($bXhtmlStyle? ' /':'').'>'."\n";
$APPLICATION->ShowMeta("robots", false, $bXhtmlStyle);
$APPLICATION->ShowMeta("keywords", false, $bXhtmlStyle);
$APPLICATION->ShowMeta("description", false, $bXhtmlStyle);
$APPLICATION->ShowLink("canonical", null, $bXhtmlStyle);
}
global $USER;
if($USER->IsAdmin()){
$APPLICATION->ShowHead();
} else {
ShowHeadCustom();
}
?>
<title><? $APPLICATION->ShowTitle(false) ?></title>
</head>
<body>
...
Ваша разметка
...
<?
function ShowBottomKernel($bXhtmlStyle=true) {
global $APPLICATION;
$APPLICATION->ShowCSS(true, $bXhtmlStyle);
$APPLICATION->ShowHeadStrings();
$APPLICATION->ShowHeadScripts();
}
if(!$USER->IsAdmin()) {
ShowBottomKernel();
}
?>