Включаем в главном модуле оптимизацию CSS
На изображении ниже показано, где включить «галки». Стоит учитывать, что иногда включение всех пунктов ломает отображение стилей или работу скриптов. После включения настроек необходимо проверить работу сайта.

Убрираем в главном модуле настройку
Скрин настройки в главном модуле Bitrix

Блокируем загрузку служебных скриптов и стилей
Блокируем загрузку служебных стилей, не нужных обычным пользователям. Код ниже добавлять в init.php. Этот код удаляет ненужные скрипты и стили, которые используются только для админки. Их список нужно ВСЕГДА корректировать
\Bitrix\Main\EventManager::getInstance()->addEventHandler("main", "OnEndBufferContent", "deleteKernelJs"); //включаем событие отложенной загрузки
\Bitrix\Main\EventManager::getInstance()->addEventHandler("main", "OnEndBufferContent", "deleteKernelCss"); //включаем событие отложенной загрузки
function deleteKernelCss (&$content)
{
global $USER;
global $APPLICATION;
$art = [];
if (!$USER->IsAuthorized())
{
if (strpos($APPLICATION->GetCurPage(), 'bitrix') === false &&
strpos($APPLICATION->GetCurPage(), 'catalog') === false &&
strpos($APPLICATION->GetCurPage(), 'order') === false &&
strpos($APPLICATION->GetCurPage(), 'basket') === false)
{
$arPatternsToRemove = Array(
'/<link.+?href=".+?kernel_main\/kernel_main_v1\.css\?\d+"[^>]+>/',
'/<link.+?href=".+?bitrix\/js\/main\/core\/css\/core[^"]+"[^>]+>/',
'/<link.+?href=".+?bitrix\/panel\/main\/popup[^"]+"[^>]+>/',
'/<link.+?href=".+?bitrix\/templates\/aspro_next\/bg_color\/light\/bgcolors[^"]+"[^>]+>/',
'/<link.+?href=".+?bitrix\/templates\/[\w\d_-]+\/styles.css[^"]+"[^>]+>/',
'/<link.+?href=".+?bitrix\/templates\/[\w\d_-]+\/template_styles.css[^"]+"[^>]+>/',
);
$content = preg_replace($arPatternsToRemove, " ", $content);
}
}
}
function deleteKernelJs(&$content) {
global $USER, $APPLICATION;
if((is_object($USER) && $USER->IsAuthorized()) || strpos($APPLICATION->GetCurDir(), "/bitrix/")!==false) return;
if($APPLICATION->GetProperty("save_kernel") == "Y") return;
$arPatternsToRemove = Array(
'/<script.+?src=".+?kernel_main\/kernel_main\.js\?\d+"><\/script\>/',
'/<script.+?src=".+?bitrix\/js\/main\/core\/core[^"]+"><\/script\>/',
'/<script.+?src=".+?bitrix\/js\/main\/core\/core_admin[^"]+"><\/script\>/',
'/<script.+?src=".+?bitrix\/js\/main\/core\/core_ls[^"]+"><\/script\>/',
'/<script.+?src=".+?bitrix\/cache\/js\/s1\/aspro_next\/kernel_main\/kernel_main_v1[^"]+"><\/script\>/',
'/<script.+?>BX\.(setCSSList|setJSList)\(\[.+?\]\).*?<\/script>/',
'/<script.+?>if\(\!window\.BX\)window\.BX.+?<\/script>/',
'/<script[^>]+?>\(window\.BX\|\|top\.BX\)\.message[^<]+<\/script>/',
);
$content = preg_replace($arPatternsToRemove, "", $content);
$content = preg_replace("/\n{2,}/", "\n\n", $content);
}Файл kernel_main.css в режиме сжатия и объединения CSS сохраняет там содержимое style.css кастомных шаблонов компонентов. Поэтому приведенный выше код может «сломать» стили и скрипты сайта.

Об авторе
Сергей Житников - Веб-разработчик
Занимаюсь веб-разработкой более 5 лет. Специализируюсь на создании адаптивных сайтов и веб-приложений на HTML5, CSS3 и JavaScript. Работаю с популярными CMS и фреймворками, а также уделяю большое внимание оптимизации производительности и чистоте кода.
Есть проект или идея? Буду рад помочь!
Связаться со мной