bitrix оптимизация для pagespeed

Внимание! Все сообщения на форуме проходят модерацию. Ваше сообщение появится после проверки.
Достаточно обширный вопрос, возможно запишу видео инструкцию на свой ютуб канал.

Но некоторые наводочки:
- Включите объединение и сжатие css и js
- Включите перемещение js вниз страницы
- Включите подключение минифицированных файлов css и js
- Оптимизируйте все картинки на сайте (например так http://optimizilla.com/ru/)
- Включите кеширование и композитный сайт

ВАЖНО! Ниже делаете на свой страх и риск, все очень индивидуально
Отключить служебные css и js (иногда нужны, но скорее редкость)
И сжать html код страницы
Для разделов создаем новый параметр save_kernel - и для разделов, у которых нужно сохранить скрипты уставливаем в параметр Y

В init.php добавляем код
Код
<?
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);
}
?>
Здравствуйте. Помогите пожалуйста. У меня в init.php уже есть код отвечающий за обработку почты. Как объединить Ваш код с моим. Чтобы все работало.
Цитата
Анатолий написал:
Здравствуйте. Помогите пожалуйста. У меня в init.php уже есть код отвечающий за обработку почты. Как объединить Ваш код с моим. Чтобы все работало.
Добрый

Достаточно дописать его в самый низ файла. Но внимательно, делайте это через FTP а не через админку, что бы если что удалить.
Дописал. Почистил кеш, белый экран.
Вот мой код:
Скрытый текст

Куда именно вставлять? Извините, я не программист. подскажите пожалуйста.
Здравствуйте, Михаил!
Благодарю за Ваши решения!
По этому могу сказать, что скрипт сжатия HTML в моём случае делает нерабочими скрипты в теле страницы <script type='text/javascript'></script> с комментариями разработчиков:
Код
{   //with bitrix panel   
if(1)   {   bxPanel.setAttribute('style','margin-bottom:20px !important');   }...

трансформирует в:
Код
{   //with bitrix panel    if(1)   {   bxPanel.setAttribute('style','margin-bottom:20px !important');   }...

и комментарий экранирует дальнейшее.
В моём случае летят 6 скриптов. Но, думаю, я не одинок и у других могут быть подобные ошибки.
Сейчас копаю как: или предварительно очистить комментарии, или как обойти их.
Цитата
Константин написал:
Здравствуйте, Михаил!
Благодарю за Ваши решения!
По этому могу сказать, что скрипт сжатия HTML в моём случае делает нерабочими скрипты в теле страницы <script type='text/javascript'></script> с комментариями разработчиков:
Код
 {   //with bitrix panel   
if(1)   {   bxPanel.setAttribute('style','margin-bottom:20px !important');   }... 

трансформирует в:
Код
 {   //with bitrix panel    if(1)   {   bxPanel.setAttribute('style','margin-bottom:20px !important');   }...
 

и комментарий экранирует дальнейшее.
В моём случае летят 6 скриптов. Но, думаю, я не одинок и у других могут быть подобные ошибки.
Сейчас копаю как: или предварительно очистить комментарии, или как обойти их.

Несколько помогло (нагуглил):
Код
    $search = array(
   '/(?:(?:\/\*(?:[^*]|(?:\*+[^*\/]))*\*+\/)|(?:(?<!\:|\\\|\'|\")\/\/.*))/',
        '/\>[^\S ]+/s',
        '/[^\S ]+\</s',
        '/(\s)+/s'
    );
    $replace = array(
    '',
        '>',
        '<',
        '\\1'
    );

осталась одна проблема (заказ обратного звонка), которую пытаюсь отловить. Сообщу, если получится.
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
 

Стоимость разработки на 1С-Битрикс:

Индивидуальная разработка магазина

от 350 000 руб. от 5-ти недель

Разработка магазина на 1С-Битрикс с нуля. Дизайн, сборка и оптимизация производительности под конкретный проект и требования. Реализация любого функционала без ограничений готовых решений.

Запуск сайта на готовом решении

от 150 000 руб. от 7-ми дней

Вариант для тех, кто не хочет тратить много средств на индивидуальный проект, и не имеет серьезных требований к сайту. Магазин, быстро запускается на базе одного из 200-та готовых решений.

Мобильное приложение

от 400 000 руб. от 5-ти недель

Разработка кроссплатформенного мобильного приложения, которое не уступает нативным решениям как в производительности, так и пользовательском опыте. Публикуется в AppStore, GooglePlay и RuStore

Сайт компании

от 300 000 руб. от 2-х недель

Корпоративный сайт с информационными разделами, каталогом товаров или услуг. Включает формы обратной связи карточек каталога, любое количество статичных и динамичных разделов.

Инфоресурс

от 300 000 руб. от 4-х недель

Информационный ресурс любой сложности. Сайт для СМИ, городской портал или многопользовательская доска объявлений. Внутренние форумы, блоги- по необходимости.

3D‑моделирование, визуализация

от 25 000 руб. от 3-х дней

По вашим фото, чертежам или описанию создадим 3D‑модели и отрендерим набор изображений для каталога товаров: общий вид, крупные планы и технические ракурсы или 360°‑обзор товара.