Bitrix نحوه نصب ماژول فشرده سازی. ماژول Bitrix چگونه نصب می شود؟ نصب رایگان ماژول Bitrix رایگان از آرشیو

امروز متوجه خواهیم شد نحوه صحیح قالب بندی header.php در Bitrix, چگونه .css و .js را به درستی در header.php قرار دهیم, نحوه اتصال صحیح jQuery به Bitrixو چگونه فشرده سازی فایل های .css و .js را در Bitrix فعال کنیم.

امروزه این یک مشکل بسیار حاد و فوری است. بیشترین تماس‌ها به ماژول‌ها مربوط به خطاهای موجود در اسکریپت‌ها است، زمانی که jQuery به اشتباه در آن گنجانده شده است. header.phpو اغلب چندین jQuery متصل هستند، اما فقط یک کتابخانه jQuery باید در تمام صفحات سایت و اولین کتابخانه در بین تمام اسکریپت های قالب سایت متصل باشد.

یک رکورد در یک سایت وجود داشت، من 7 کتابخانه jQuery متصل را شمردم، فقط یک نفر از جستجوی خطاها خسته شده بود و جایی برای رفتن وجود نداشت، وقتی مشکل پیدا شد و برطرف شد، همه چیز به درستی در سایت شروع به کار کرد.

بنابراین، فایل چقدر باید فرمت شود header.phpقالب سایت در Bitrix:

  1. قبل ازنباید فاصله یا خط تیره وجود داشته باشد
  2. کدگذاری صفحه قبلاً تنظیم شده است </b></li> <li><b>بعد از هدر <title>تمام متا تگ ها لیست شده اند <meta> </b></li> <li><b>پس از متا تگ ها، سبک های سایت .css متصل می شوند <link> </b></li> <li><b>و تنها پس از اتصال استایل‌های css، همه اسکریپت‌های js متصل می‌شوند<script> </b></li> <li><b>Комментарии к IE по возможности лучше опустить в самый конец перед закрывающим тегом </head> </b></li> </ol><h3>Пример header.php для HTML 5 DOCTYPE</h3><blockquote class="bxhtmled-quote"> <?<br> if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();<br> /**<br> * @var CUser $USER<br> * @var CMain $APPLICATION<br> * @var $full_width - переменная в которой будет true если выполнится условие из $arFullWidthPages<br> */<br> ?><!DOCTYPE html><br> <html lang="<?=LANGUAGE_ID?>"><br> <head><br> <meta charset="<?=SITE_CHARSET?>"><br> <title><?$APPLICATION->ShowTitle()?>
    //Тут мета-теги
    $APPLICATION->
    $APPLICATION->
    $APPLICATION->
    ?>




    //Тут канонический url
    $APPLICATION->ShowLink("canonical", null, false);

    //Тут стили шаблона сайта
    $APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH ."/css/uikit.gradient.min.css");
    $APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH ."/css/components/form-password.gradient.min.css");
    $APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH ."/css/components/sticky.gradient.min.css");
    $APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH ."/css/components/placeholder.gradient.min.css");
    $APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH ."/css/jquery.responsive-tabs.css");
    $APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH ."/css/nanoscroller.css");
    $APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH ."/css/scrollup/image.css");
    $APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH ."/css/pace.min.css");

    //Тут выводим стили
    $APPLICATION->ShowCSS(true, false);
    ?>



    //Это встроенная в ядро Битрикс jQuery, если подключать ее, то строку подключения jQuery 1.11.2 выше надо удалить.
    //CJSCore::Init(array("jquery"));

    //Тут скрипты
    $APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH ."/js/uikit/core.min.js");
    $APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH ."/js/uikit/grid.min.js");
    $APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH ."/js/uikit/modal.min.js");
    $APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH ."/js/uikit/dropdown.min.js");
    $APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH ."/js/uikit/scrollspy.min.js");
    $APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH ."/js/uikit/utility.min.js");
    $APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH ."/js/uikit/button.min.js");
    $APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH ."/js/uikit/switcher.min.js");
    $APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH ."/js/uikit/nav.min.js");
    $APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH ."/js/uikit/components/sticky.min.js");
    $APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH ."/js/uikit/components/form-password.min.js");
    $APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH ."/js/pace.min.js");
    $APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH ."/js/jquery.nanoscroller.min.js");
    $APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH ."/js/jquery.responsiveTabs.min.js");
    $APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH ."/js/switchery.min.js");
    $APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH ."/js/readmore.min.js");
    $APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH ."/js/jquery.scrollUp.min.js");
    $APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH ."/js/fn.js");

    //Тут выводим скрипты
    $APPLICATION->ShowHeadStrings();
    $APPLICATION->ShowHeadScripts();
    ?>

    CUtil::GetAdditionalFileURL() - генерирует url к файлу с указанием метки версии файла, т.е. он будет кешироваться в браузере посетителя.

    SITE_TEMPLATE_PATH - это константа указывающая URL от корня сайта до папки текущего шаблона включая имя папки, если измените папку шаблона, то в header.php ничего исправлять уже не придется, он изменится в этой константе, например: /bitrix/templates/папка шаблона сайта/

    Разберем представленный выше код header.php детально, чтобы понимать, что тут для чего подключается.
    Хочу обратить внимание на передаваемые параметры true и false в методах, например ShowMeta() и ShowCSS(), от них зависит стандарт вывода тегов, для HTML 4, HTML 5 в виде , иначе по стандарту xHTML в виде , в данном примере для HTML 5, подробнее читайте в API-документации Битрикс.

    Тут мы выводим мета-теги "описание" и "ключевые слова" для поисковых систем.

    $APPLICATION->ShowMeta("robots", false, false);
    $APPLICATION->ShowMeta("keywords", false, false);
    $APPLICATION->ShowMeta("description", false, false);
    ?>

    Методом SetAdditionalCSS() подключаем стили шаблона, так каждый стиль.

    $APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH ."/css/uikit.gradient.min.css");

    Метод ShowCSS() выводит все стили шаблона и стили, которые могут подключаться в компонентах Битрикс, т.е. вообще все подключенные стили, включая стили ядра Битрикс.

    $APPLICATION->ShowCSS(true, false);
    ?>

    Перед подключением вообще всех скриптов сайта и только для браузера Internet Explorer младше IE 9 я подключаю специальные полифилы функций/методов, которые в нем отсутствуют и вызывают ошибки javascript, возможная самая частая ошибка типа Object doesn"t support property or method "forEach" ...
    Т.е. если какого-то метода нет в IE 8, но он используется в новой jQuery или каком-то плагине, то может повезет и он найдется в этом скрипте, но Вы можете его не подключать, только если нужен.




    А вот и подошли мы к самому интересному, на этом этапе самая частая ошибка подключения jQuery, которая должна выводиться самой первой среди всех остальных подключенных в компонентах или в шаблоне сайта jQuery-плагинах, т.е. ошибок с подключенными где-то в компоненте или шаблоне jQuery-плагинами быть не должно!
    Все плагины и скрипты будут подключаться как положено, после jQuery, а не как у многих, в обратном порядке, это базовое правило подключения плагинов jQuery, знать его нужно всем!


    Методом AddHeadScript() подключаем скрипты шаблона и только после подключения стилей, стили всегда подключайте выше скриптов.

    $APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH ."/js/uikit/core.min.js");

    Ниже два заключительных метода "выводят" :

    • ShowHeadStrings() выводит все скрипты ядра Битрикс, включая встроенную jQuery, если вызывается методом CJSCore::Init(array("jquery"));
    • ShowHeadScripts() выводит скрипты шаблона добавленные с помощью AddHeadScript(), а также специальные стили, JavaScript, либо произвольный html-код, который задается в компонентах с помощью CMain::AddHeadString() и все на свете пользовательское.

    Обратите внимание на порядок, именно в таком порядке!

    $APPLICATION->ShowHeadStrings();
    $APPLICATION->ShowHeadScripts();

    Почему строго в таком порядке?
    Потому что в методе ShowHeadStrings() может выводиться jQuery ядра Битрикс, вызываемая таким образом:

    CJSCore::Init(array("jquery"));

    Я ее специально закомментировал, чтобы Вы это знали, и знали где подключать. Вызываться он может в любом компоненте, в шаблоне, на любой странице сайта, а выводится она именно в этом самом первом методе, если поменять их местами, она окажется в самом низу, вот и ошибка разработки, можно это смело добавлять в чек-лист по разработке сайта.
    Но если Вы выводите встроенную jQuery, значит подключенную ранее вручную jQuery надо удалить со страницы, не забывайте, она должна быть одна на всем сайте!

    Итак, все это подключенное в исходном коде выглядит так:

    Это конечно все круто! Но, как мы видим, к серверу очень много запросов - 93 шт., много подключено всяких файликов, а это заметно сказывается на скорости загрузки страницы, на время ожидания клиентом, мне-то как разработчику очень удобно, наглядно все видно в коде, но посетители мои от этого заметно страдают...


    Оказывается, в Битрикс есть отличные опции в настройках главного модуля, позволяющие:

    • Объединять CSS файлы
    • Объединять JS файлы
    • Подключать минифицированные версии CSS и JS файлов
    • Создавать сжатую копию объединенных CSS и JS файлов - нужно отключить

    Включается сжатие и объединение.css и.js здесь:

    Администрирование -> Настройки -> Настройки модулей -> Главный модуль

    Создавать сжатую копию объединенных CSS и JS файлов - это нужно отключить!
    Потому что при включенной опции Битрикс сжимает вообще все подключенные на сайте скрипты и стили со всех страниц сайта, это и вес им прибавляет, и велика вероятность появления JS-ошибок на странице.

    Лично я столкнулся с такой проблемой, JS-ошибка запросто будет в модуле, где у jQuery-плагина есть js-lang, эти лэнги хранятся в соответствующих php-файлах, вот если на странице сайта подключается какое-то расширение, то Битрикс его также сжимает, скрипт этого расширения будет на всех страницах сайта, а вот лэнги расширения подключаются только на той странице, где вызывается расширение, если jQuery-плагин не видит свой js-lang, то запросто может быть на странице js-ошибка.

    Например, я свой jQuery-плагин подключил как расширение на странице Каталог, тут же и лэнги моего плагина подключаются, вот если включить сжатую копию всех JS-файлов, мой плагин будет на всех страницах сайта в хедере, а лэнг только на странице Каталог, соответственно, когда я открываю например главную страницу сайта или любую другую отличную от Каталога, то в консоли появляется JS-ошибка, т.к. лэнги моего плагина подключаются только на странице Каталог.

    В общем, очень опасная опция, не включайте ее вообще.

    Все, сжатие включено и должно работать.

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


    Наглядно видим, насколько уменьшилось количество файлов, все скрипты шаблона сжаты в один файл, стили также в один файл.
    Количество запросов уменьшилось в разы, время полной загрузки страницы сократилось с 3.8сек. до 1.8сек., запросы к серверу сократились с 93 до 43.


    Заключение

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

    Обязательно изучите все моменты подключения jQuery, скриптов и стилей, их порядок и включайте сжатие на сайте, это существенно ускорит время загрузки страницы и время ее отклика на действия посетителя, облегчит ее и нагрузку на сервер, сайт даже меньше трафика станет потреблять, т.к. каждый файлик на вашем сайте - это трафик!
    Также, советую избавляться от всех малонужных и устаревших jQuery-плагинов, ко многим можно найти замену меньшую в разы и даже лучше по функционалу.

    Это была моя первая статья из курса "Ускорение сайта" , продолжение следует...

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

    На системе 1С-Битрикс работают различные по сложности сайты: новостные ресурсы, визитки, социальные сети, интернет-магазины и тому подобные. Однако со временем страницы сайтов загружаются всё медленнее.

    Проблема в оптимизации изображений Битрикс, которая не производится средствами самой CMS, решается сторонними средствами. Для того чтобы картинки меньше занимали место и загружались быстрее, необходимо использовать плагин для оптимизации изображений в Битрикс. Этим плагином является решение OptiPic.

    Оптимизация изображений сайта на Битрикс через OptiPic позволяет ускорить загрузку сайта в 2–3 раза. Практика уже показала, что ресурсы действительно загружаются быстрее, что отмечают и сами пользователи. Особенно это критично для интернет-магазинов и каталогов, ведь покупатели могут не дождаться загрузки страницы и уйти на ресурс конкурентов.

    Сжатие изображений в Битрикс

    OptiPic - плагин для сжатия изображений Битрикс построен на алгоритме, который выявляет технические данные в файле изображения и удаляет их. Эти данные не влияют на качество и вид картинки, но тем не менее влияют на её размер. В некоторых случаях технические данные занимают до 90% размера файла.

    Поэтому для сжатия картинок в Битрикс применяется OptiPic. Средний показатель уменьшения размера картинок составляет 70%. К тому же достаточно один раз настроить плагин и в дальнейшем он будет работать как с картинками, которые уже загружены на сервер, так и с изображениями, добавляемыми на сайт.

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

    Оптимизация картинок в Битрикс больше не потребует ручного вмешательства администратора. Настройте OptiPic и все необходимые операции будут проводиться автоматически.

    Что такое сжатие изображений

    Оптимизация картинок является специальной обработкой графического файла с целью минимизировать его размер без потери визуального качества.

    Чтобы провести данную процедуру, есть большое количество достаточно сложных алгоритмов. Однако, все они базируются на одной основе - из графического файла нужно удалить все находящиеся там служебные данные (например название программы, которая хранит данный файл и др), а также, при помощи специальных программ соединить/сгладить похожие цвета.

    В результате мы получаем то же изображение, которое визуально никак не изменилось. Однако, объем (вес) этого файла в байтах будет гораздо меньше, чем оригинал. Если провести данную обработку правильно, файл с изображением можно уменьшить до 98%, не теряя при этом качества изображения.

    Это значит, что картинки на страницах сайта будут загружаться в разы быстрее после проведения их оптимизации.

    Что даст оптимизации изображений для вашего сайта

    • Экономия места на диске.
    • Ускорение загрузки страниц.
    • Увеличение конверсии.
    • Более качественное ранжирование сайта при поисковой выдаче.

    Доказано, что ускорение сайта способно улучшить поведенческие факторы, а также поднять конверсию сайта (увеличить продажи). Чем дольше будет загружаться страница сайта, тем меньше покупателей сможет совершить там определенные целевые действия. Если Ваш сайт в Интернете будет работать не достаточно быстро, у Вас есть все шансы упустить свой потенциальный доход. Ускорение работы интернет-ресурса даст возможность улучшить конверсию и благодаря этому значительно увеличить выручку и привлечь больше клиентов.

    Преимущества сервиса OptiPic

    • Отсутствуют ежемесячные платежи.
    • Полная автоматизация.
    • Предоставление бесплатной помощи при подключении.
    • Интернет-адрес (URL) сжатых картинок не изменяется, они и дальше будут храниться у Вас на сайте.
    • Для подключения и использования сервиса не нужно иметь специальных навыков в программировании или администрировании.
    • В системе отсутствуют ограничения на размер изображений.
    • Техподдержка на русском языке.

    Каким образом оптимизация изображений может ускорить сайт?

    Страница любого сайта чаще всего состоит из:

    • изображений;
    • html-кода (текстовое содержание, верстка, разметка);
    • видео;
    • javascript-скриптов с логикой, выполняющихся со стороны браузера;
    • файлов-css со стилями страницы.

    Такой пункт как изображения, занимает на страницах сайта большую часть всего объема и является самой «тяжелой» частью страниц. Уменьшение (оптимизация) изображений бесспорно позволит существенно сделать более быстрой загрузку любого интернет-ресурса.

    Соответственно, если изменить (в меньшую сторону) объем изображений, все страницы сайта начнут грузиться значительно быстрее.

    Сжатие картинок на сайте даст возможность уменьшить их объем до 75-98%, не теряя при этом свое визуальное качество.

    Как подключить OptiPic к 1С-Битрикс для сжатия изображений?

    Зарегистрируйтесь и добавьте свой сайт в личный кабинет

    После прохождения регистрации вам на email придет письмо со ссылкой для активации вашего аккаунта. Перейдите по той ссылке. Далее на нашем сайте зайдите в личный кабинет Профиль > Мои сайты, нажмите кнопку Добавить сайт, укажите URL вашего сайта и нажмите кнопку Подключить сайт.

    Скачайте и установите модуль на свой сайт

    После добавления сайта в систему перейдите на закладку Скачать модуль.

    Там вам необходимо скачать архив с модулем. Распакуйте этот архив и закачайте на свой сайт (в корневую папку сайта). В итоге у вас на сайте должна появиться папка сайт в корне сайта с такой структурой:

    • сайт
      • config.php
      • help.php
      • index.php

    А на сайте после этого должны быть доступной такая страница http://your-domain..php .

    Выберите тариф и пополните счет

    После того как вы закачаете модуль на свой сайт, вам нужно будет активировать индексацию сайта в настройках сайта и дождаться первой индексации сайта системой OptiPic - она проходит в течении 24 часов. Если вы хотите ускорить процесс - отправьте в ручную свой сайт на индексацию.

    После того, как первая индексация завершится, система покажет какой объем изображений (сколько гигабайт?) было обнаружено на вашем сайте. Сделать это можно на вкладке Индекс сжатия и статистика.

    Теперь когда вы знаете объем изображений на своем сайте - приобретите нужный вам пакет и включите сжатие в настройках сайта.

    Как известно, Bitrix Framework состоит из модулей. Собственно, ядро «Битрикс» тоже модуль, так называемый «Главный модуль», дополненный системой установки обновлений SiteUpdate. Стандартных модулей всего 40, в различные редакции они входят в разнообразной комплектации.

    К примеру, минимальная редакция «Старт» включает 4 модуля: «Главный модуль», «Управление структурой», «Информационные блоки» и «Компрессия». А минимальная редакция для интернет - торговли, называемая «Малый бизнес», состоит всего из 28 модулей, включая Главный. А именно:

    1. Главный модуль
    2. Торговый каталог
    3. Фотогалерея 2.0
    4. Управление структурой
    5. Интернет-магазин
    6. Социальные сервисы
    7. Информационные блоки
    8. Валюты
    9. Опросы
    10. Highload-блоки
    11. Монитор производительности
    12. Форумы
    13. SEO-модуль
    14. Облачные хранилища
    15. Облачные хранилища
    16. Блоги
    17. Поиск
    18. Облачные сервисы
    19. Подписка, рассылки
    20. Проактивная защита
    21. Масштабирование
    22. E-mail маркетинг
    23. Компрессия
    24. Перевод
    25. Мобильная платформа
    26. Веб-формы
    27. Мобильное приложение
    28. Технология Push & Pull

    Управление модулями осуществляется в административном разделе по адресу Настройки > Настройки продукта > Модули. Имейте в виду, что установка модуля требует ресурсов хостинга, прежде всего дискового пространства. Поэтому после приобретения редакции вам следует внимательно изучить список установленных модулей, уточнить, какие задачи они выполняют, и неиспользуемые модули удалить (деинсталлировать).

    Бесплатная установка модуля «Битрикс» из Marketplace

    Войдя в административную панель, перейдите на закладку Marketplace. Найдите нужный вам модуль поиском по названию. Кликнув по иконке, перейдите на загрузочную страницу модуля. Нажмите кнопку «Загрузить», затем кнопку «Установить». По окончании установки настройте модуль в разделе Модули административной панели. Для этого перейдите по адресу Настройки > Настройки продукта > Модули, выберите название установленного модуля, и перейдите в настройки, кликнув по нему.

    Бесплатная установка бесплатного модуля «Битрикс» из архива

    Скачайте архив модуля (только из доверенного источника! Иначе вы своими руками откроете хакерам ворота!). Загрузите архив на хостинг в папку /bitrix/modules/ИМЯ МОДУЛЯ. Затем распакуйте архив на хостинге, и удалите файл архива. Войдите в административную панель и перейдите по адресу Настройки > Настройки продукта > Модули. Найдите ваш новый модуль в списке доступных модулей и запустите установку, нажав кнопку «Установить». После окончания вы увидите модуль в списке установленных модулей и сможете его настроить.

    Платная установка модуля «Битрикс» из Marketplace

    В «Битрикс Marketplace» доступны десятки тысяч модулей, за небольшие деньги помогающие ускорить работу сайта, упростить рутинные процедуры по обслуживанию, многократно увеличить скорость работы с торговым каталогом, оказать немалую помощь с поисковой оптимизацией. В каталоге Marketplace 245 готовых интернет – магазинов, 373 готовых сайта, 127 отраслевых решений и 45 решений для SEO.

    Для установки платного модуля «Битрикс» из Marketplace найдите его карточку в каталоге, нажмите кнопку «Купить» и оплатите модуль. Вскоре вы получите от разработчика письмо купоном активации и инструкциями по установке. После этого войдите в панель управления, перейдите на вкладку Marketplace и в разделе Обновление решений перейдите на вкладку Активация купона. Введите код купона. После этого в списке доступных модулей появится название купленного вами модуля. Нажмите кнопку «Установить» и далее действуйте так же, как при установке бесплатного модуля.

    Что будет, если нагрузить фуру и старую клячу грузом в 1 тонну? Правильно: первый поедет на максимальной скорости, а вторая не сможет сдвинуться с места. Так и сайты: у каждого из них свои требования к хостингу, конфигурации, настройкам платформы 1С-Битрикс.

    Каждую неделю в нашу поддержку приходят жалобы на низкую скорость загрузки. В 99,9% случаев оказывается, что проблема кроется в слабеньком хостинге и неправильных настройках. Рассказываем, что делать, если сайт или интернет-магазин тормозит, и как правильно произвести диагностику и самостоятельно увеличить производительность - так, чтобы летал.

    1. Оцените производительность

    Модуль «Монитор производительности» 1С-Битрикс позволит протестировать производительность сайта и сравнить результаты с эталонными показателями. Он укажет на слабые места: сайт, CMS, конфигурация, некачественная разработка или хостинг. Вы можете развернуть ваш сайт или «чистый» 1С-Битрикс на разных площадках и сравнить эти цифры.

    Что нужно знать о показателях производительности:

    • меньше 30 пунктов – забудьте про производительность и быструю загрузку страниц. Показателя «Очень быстро» вам не видать. Тормозить будет все!
    • от 30 до 60 – подойдет для небольших проектов (корпоративные сайты или интернет магазины с небольшим количеством товаров, небольшим количеством SKU и параметров в умном фильтре)
    • от 60 до 100 - конфигурация сервера приемлема, но не оптимальна. Подойдет для большинства проектов. Сайт работать будет, но не на сверхскоростях.
    • от 100 – вы молодцы: не поленились выбрать нормальную хостинг площадку! Админка летает, большие объемы данных из 1С выгружаются на ура, страницы отдаются быстро. Вы спите спокойно и даже не думаете писать в техподдерожку с жалобами на проблемы с загрузкой сайта, ни разу не видели ошибок Request timeout или 502 Bad Gateway.
    • 200 и выше – идеально!

    Как протестировать сайт

    Перейдите в панель производительности: Настройки → Производительность → Панель производительности. Нажмите кнопку «Тестирование производительности» и подождите несколько минут.

    2. Перейдите на PHP7

    3 декабря 2015 года вышла седьмая версия PHP. Она разрабатывалась с упором на увеличение производительности и уменьшение потребления памяти. Тесты это убедительно показывают (пример 1 , пример 2) - прирост производительности после перехода на новое ядро составляет от 40%!

    Сидеть на старых версиях PHP - осложнять жизнь пользователю и делать этот интернет хуже. Если ваш хостинг не поддерживает PHP7, меняйте его (например, на этот с бесплатным переносом). Если ваш сайт не поддерживает PHP7, срочно исправляйтесь. А еще лучше, используйте решения с поддержкой PHP7 - например, от Аспро.

    3. Настройте кеширование

    Использовать композит и автокомпозит - это хорошо и правильно. Но просто включить их - полдела. Чтобы получить ощутимый прирост в скорости, нужно корректно задать время жизни кеша в зависимости от частоты обновления данных на сайте и посещаемости.

    Как не надо:


    Как надо - в зависимости от частоты обновления данных и посещаемости сайта:

    1. Цены на сайте обновляются вручную или несколько раз в неделю.
      Рекомендуемое время кеширования: не менее 172800 секунд (2 суток).
    2. Цены на сайте обновляются один раз в день, выгрузка из 1С или другой системы складского учета происходит ночью.
      86400 секунд (1 сутки).
    3. Нечасто, но бывает: цены обновляются через реал-тайм обмен с 1С и бывает, что несколько раз в течение дня.
      Рекомендуемое время кеширования:
      7200 секунд (2 часа).

    4. Создайте фасетные индексы для умного фильтра

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

    На словах все здорово, на деле - не очень: фасеты редко создают и используют. Попробуйте это сделать и сравните скорость загрузки результатов фильтрации.

    5. Проанализируйте и создайте индексы в базе данных

    Индексы анализируются и создаются здесь: Настройки → Производительность → Индексы → Анализ индексов.

    Нажмите на кнопку «Выполнить анализ собранных SQL запросов». Если появившиеся индикаторы зеленые, все в порядке: индексы созданы. Если индикаторы желтые, создайте их самостоятельно. Инструкция в мануалах 1С-Битрикс

    6. Отключите неиспользуемые модули

    При инциализации ядра 1С-Битрикс подключается большой список модулей. Они отнимают ресурсы, но при этом не нужны для полноценной работы сайта. Отключаем лишние модули - получаем прирост производительности. Перед тем, как это делать, обязательно сделайте резервную копию сайта.

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

    • AD/LDAP интеграция (ldap)
    • Push and Pull (pull)
    • Wiki (wiki)
    • А/B-тестирование (abtest)
    • Веб-аналитика (statistic)
    • Веб-кластер (cluster)
    • Веб-мессенджер (im)
    • Веб-сервисы (webservice)
    • Дизайнер бизнес-процессов (bizprocdesigner)
    • Документооборот (workflow)
    • Календарь событий (calendar)
    • Конструктор отчетов (report)
    • Менеджер идей (idea)
    • Мобильная платформа (mobileapp) - если не подключено мобильное приложение
    • Мобильное приложение для интернет-магазина (eshopapp) - если не подключено мобильное приложение
    • Обучение (learning)
    • Перевод (translate)
    • Почта (mail)
    • Техподдержка (support)
    • Универсальные списки (lists)
    • Управление масштабированием (scale).
    Как это сделать: перейдите в настройки модулей Рабочий стол → Настройки → Настройки продукта → Модули и отключите лишние.

    7. Настройте CDN

    Еще одна неоднозначная вещь, которая может как разогнать сайт, так и заставить его хорошенько притормозить. Что это такое?

    Теория:

    «Модуль Ускорение сайта (CDN), который позволяет загружать весь статический контент вашего сайта (картинки, файлы стилей css, скрипты js) через сеть дистрибуции контента (Content Delivery Network или Content Distribution Network, CDN). Тем самым значительная часть ресурсов сайта загружается посетителем с ближайшего к нему сервера. Это позволяет увеличить скорость загрузки страниц до нескольких раз.

    Также подключение CDN снижает нагрузку на основные серверы сайта. Так как весь статический контент загружается посетителями вашего сайта не напрямую с ваших серверов, а с узлов CDN, которые умеют очень эффективно кэшировать контент, снижается количество обращений непосредственно к вашим серверам» (отсюда)

    Настраивается CDN здесь: Настройки → Облако 1С-Битрикс → Ускорение сайта (CDN).

    Практика

    Не все так однозначно: для кого-то включенный CDN дает реальный прирост производительности, а у кого-то, напротив, снижает скорость загрузки сайта. Выход один: тестировать и замерять результаты.

    8. Включите объединение и сжатие CSS и JS-файлов

    В настройках главного модуля сайта есть волшебный блок, который позволяют улучшить показатели скорости загрузки сайта. Называется он “Оптимизация CSS”. Отмечайте галочками все, сохраняйте изменения и тестируйте скорость загрузки страниц.


    Как это все работает в деталях, читайте . А оценить в количественных и качественных характеристиках эти «до» и «после» поможет старый добрый Google PageSpeed Insights.

    Эта заметка не будет касаться напрямую возможностей Битрикс. Я приведу несколько базовых принципов увеличения скорости работы сайта.1. Необходимо уменьшить количество HTTP-запросов.

    Сайт это не только html-страница, но и картинки, javascript-файлы, файлы стилей. Если мы уменьшим количество этих файлов, то мы увеличим скорость загрузки страницы.

    • файлы стилей можно объединить в один файл
    • файлы javascript также можно объединить в один файл
    • как бы это не звучало странно, но картинки также можно объединить в один файл, называемый css-спрайтом.

    По первому пункту все уже сделано в последних версиях движка 1С-Битрикс. Вы можете включить эти галки в настройке главного модуля.

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

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

    Для реализации третьего пункта необходимо сразу же делать верстку на основе одной картинки. О технологии создания CSS-спрайтов написано немало статей.

    2. Все CSS-файлы необходимо размещать в начале страницы

    Если вы пользуетесь стандартным подходом Битрикс к интеграции верстки в дизайн, то так у вас и будет.

    3. Минимизация кода CSS-файлов и JS-файлов, уменьшение размеров картинок, GZIP-сжатие страницы.

    Для минимизации кода CSS-файла нужно всего лишь поставить галку «Создавать сжатую копию объединенного файла CSS», для минимизации кода javascript-файлов есть специальные решения вроде http://yuilibrary.com/download/yuicompressor/ .

    Для того, чтобы включить GZIP-сжатие в Битрикс достаточно установить модуль Компрессия из стандартной поставки Битрикс.

    4. Используйте Google Libraries для загрузки больших javascript-библиотек

    Хотя бы по мере возможности. Jquery точно стоит подключать таким образом.


    5. Обязательно используйте кеш браузера.

    Для этого необходимо поставить mod_expires для apache2 и настроить его таким образом, чтобы статическая информация кешировалась со стороны браузера на очень долгое время. Например, вот так:

    // код файла.htaccess

    Header append Cache-Control "public" FileETag MTime Size ExpiresActive On ExpiresDefault "access plus 0 minutes" ExpiresByType image/ico "access plus 1 years" ExpiresByType text/css "access plus 1 years" ExpiresByType text/javascript "access plus 1 years" ExpiresByType image/gif "access plus 1 years" ExpiresByType image/jpg "access plus 1 years" ExpiresByType image/jpeg "access plus 1 years" ExpiresByType image/bmp "access plus 1 years" ExpiresByType image/png "access plus 1 years"

    На этом я закончу свой краткий обзор основных принципов увеличения скорости загрузки страниц.




بالا