Сегодня рассмотрим как помочь вашему сайту набрать больше баллов в Google PageSpeed

Для того что бы отключить подгрузку лишних css и js файлов, которые в большинстве случаев не нужны пользователям сайта и являются служебными скриптами - можно воспользоваться данным кодом

<?
AddEventHandler("main", "OnEndBufferContent", "deleteKernelJs"); //Убрать js
AddEventHandler("main", "OnEndBufferContent", "deleteKernelCss"); //Убрать css
AddEventHandler("main", "OnEndBufferContent", "ChangeMyContent"); //Сжать html
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.+?>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);
}
function deleteKernelCss(&$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( '/<link.+?href=".+?kernel_main\/kernel_main\.css\?\d+"[^>]+>/', '/<link.+?href=".+?bitrix\/js\/main\/core\/css\/core[^"]+"[^>]+>/', '/<link.+?href=".+?bitrix\/templates\/[\w\d_-]+\/styles.css[^"]+"[^>]+>/', '/<link.+?href=".+?bitrix\/templates\/[\w\d_-]+\/template_styles.css[^"]+"[^>]+>/', ); $content = preg_replace($arPatternsToRemove, "", $content); $content = preg_replace("/\n{2,}/", "\n\n", $content);
}
//Сжатие HTML
function ChangeMyContent(&$content)
{ global $USER, $APPLICATION; if((is_object($USER) && $USER->IsAuthorized()) || strpos($APPLICATION->GetCurDir(), "/bitrix/")!==false) return; if($APPLICATION->GetProperty("save_kernel") == "Y") return; $search = array( '/\>[^\S ]+/s', '/[^\S ]+\</s', '/(\s)+/s' ); $replace = array( '>', '<', '\\1' ); $content = preg_replace($search, $replace, $content);
}
?>

Стоит отметить что данное решение подходит не для всех сайтов, так как некоторые шаблоны и компоненты все же используют часть кода из служебных скриптов

Готовы сделать всю работу за Вас
от500
  • 30 минут


Поработаем?

Опишите свой запрос, мы расчитаем стоимость вашей задачи.