Menú
Está libre
registro
hogar  /  Navegantes/ Principios para aumentar la velocidad de carga de páginas. Módulo de compresión Bitrix Módulo de compresión Bitrix

Principios para aumentar la velocidad de carga de páginas. Módulo de compresión Bitrix Módulo de compresión Bitrix

Esta nota no se relacionará directamente con las capacidades de Bitrix. Le daré algunos principios básicos para aumentar la velocidad de su sitio web. 1. Es necesario reducir el número de solicitudes HTTP.

Un sitio no es solo una página html, sino también imágenes, archivos javascript, archivos de estilo. Si reducimos la cantidad de estos archivos, aumentaremos la velocidad de carga de la página.

  • los archivos de estilo se pueden combinar en un solo archivo
  • Los archivos javascript también se pueden concatenar en un solo archivo
  • No importa lo extraño que suene, las imágenes también se pueden combinar en un archivo, llamado sprite css.

Sobre el primer punto, ya se ha hecho todo en Últimas Versiones motor 1C-Bitrix. Puede habilitar estas casillas de verificación en la configuración del módulo principal.

Por lo tanto, durante el desarrollo, puede tener tantos archivos de estilo como necesite, y cuando envíe a producción, active las casillas de verificación y todos los archivos css se fusionarán en uno.

En cuanto al segundo punto, lamentablemente, no encontré soluciones listas para usar, aunque de hecho la solución debería ser exactamente la misma que para CSS.

Para implementar el tercer punto, debe hacer inmediatamente un diseño basado en una imagen. Se han escrito muchos artículos sobre la tecnología para crear sprites CSS.

2. Todos los archivos CSS deben colocarse al principio de la página.

Si utiliza el enfoque estándar de Bitrix para integrar el diseño en el diseño, así será.

3. Minimización del código de archivos CSS y archivos JS, reducción del tamaño de las imágenes, compresión GZIP de la página.

Para minimizar el código de un archivo CSS, solo necesita marcar la casilla "Crear una copia comprimida del archivo CSS combinado"; para minimizar el código de los archivos javascript, existen soluciones especiales como http://yuilibrary.com/download / yuicompressor /.

Para habilitar la compresión GZIP en Bitrix, basta con instalar el módulo Compresión de la entrega estándar de Bitrix.

4. Utilice las bibliotecas de Google para cargar grandes bibliotecas de JavaScript.

Al menos en la medida de lo posible. Definitivamente vale la pena conectar Jquery de esta manera.


5. Asegúrese de utilizar la caché del navegador.

Para hacer esto, debe instalar mod_expires para apache2 y configurarlo de tal manera que el navegador almacene en caché la información estática durante mucho tiempo. Por ejemplo, así:

// código para el archivo .htaccess

Encabezado adjuntar Cache-Control "público" FileETag MTime Size ExpiresActive On ExpiresDefault "acceso más 0 minutos" ExpiresByType image / ico "acceso más 1 año" ExpiresByType text / css "más 1 año" ExpiresByType text / javascript "acceso más 1 año" ExpiresByType image / gif "acceso más 1 año" ExpiresByType image / jpg "acceso más 1 año" ExpiresByType image / jpeg "más 1 año de acceso" ExpiresByType image / bmp "más 1 año" ExpiresByType image / png "acceso más 1 año"

En esto terminaré mi breve reseña principios básicos para aumentar la velocidad de carga de páginas.

El sistema 1C-Bitrix se considera uno de los más populares no solo en Mercado ruso, sino también entre desarrolladores extranjeros. Se distingue por la conveniencia de mantener sitios y configuraciones flexibles.

Sitios de diversa complejidad operan en el sistema 1C-Bitrix: recursos de noticias, tarjetas de visita, redes sociales, compras en línea y similares. Sin embargo, con el tiempo, las páginas del sitio web se cargan cada vez más lentamente.

El problema de optimizar las imágenes de Bitrix, que no es producido por el propio CMS, se está resolviendo medios de terceros... Para que las imágenes ocupen menos espacio y se carguen más rápido, debe usar un complemento para la optimización de imágenes en Bitrix. Este complemento es la solución OptiPic.

La optimización de las imágenes del sitio en Bitrix a través de OptiPic le permite acelerar la carga del sitio de 2 a 3 veces. La práctica ya ha demostrado que los recursos se cargan realmente más rápido, lo que lo notan los propios usuarios. Esto es especialmente crítico para las tiendas y catálogos en línea, porque los compradores pueden no esperar a que se cargue la página y acudir al recurso de la competencia.

Compresión de imágenes en Bitrix

OptiPic - complemento para compresión de imagen Bitrix se basa en un algoritmo que detecta datos técnicos en un archivo de imagen y los elimina. Estos datos no afectan la calidad ni la apariencia de la imagen, pero sí afectan su tamaño. En algunos casos, los datos técnicos ocupan hasta el 90% del tamaño del archivo.

Por tanto, para comprimir imágenes en Bitrix, se utiliza OptiPic. La reducción media del tamaño de la imagen es del 70%. Además, basta con configurar el plugin una vez y en el futuro funcionará tanto con imágenes que ya se han subido al servidor como con imágenes añadidas al sitio.

Comprimir imágenes sitio en Bitrix se ejecuta en segundo plano y no requiere grandes poder computacional... Para los visitantes del recurso, no sucederá nada excepto para acelerar la carga de páginas. Sin embargo, los administradores podrán ver cómo, con el tiempo, el complemento libera espacio en el disco duro del servidor al reducir el tamaño de las imágenes.

La optimización de imágenes en Bitrix ya no requerirá la intervención manual del administrador. Configure OptiPic y todas las operaciones necesarias se realizarán automáticamente.

¿Qué es la compresión de imágenes?

La optimización de imágenes es un procesamiento especial de un archivo gráfico para minimizar su tamaño sin perder calidad visual.

Para llevar a cabo este procedimiento, existe una gran cantidad de algoritmos bastante complejos. Sin embargo, todos se basan en la misma base: del archivo gráfico debe eliminar todos los datos de servicio que se encuentran allí (por ejemplo, el nombre del programa que almacena Este archivo y otros), además de utilizar programas especiales unir / suavizar colores similares.

Como resultado, obtenemos la misma imagen que no ha cambiado visualmente. Sin embargo, el tamaño (peso) de este archivo en bytes será mucho menor que el original. Si gastas este procesamiento correctamente, el archivo de imagen se puede reducir hasta en un 98% sin perder calidad de imagen.

Esto significa que las imágenes de las páginas del sitio se cargarán muchas veces más rápido una vez optimizadas.

¿Qué optimizará las imágenes para su sitio web?

  • Ahorro de espacio en disco.
  • Aceleración de la carga de la página.
  • Mayor conversión.
  • Mejor clasificación de sitios web en los resultados de búsqueda.

Se ha demostrado que acelerar un sitio web puede mejorar los factores de comportamiento, así como aumentar la conversión del sitio web (aumentar las ventas). Cuanto más tiempo se cargue la página del sitio, menos compradores podrán realizar ciertas acciones específicas allí. Si su sitio en Internet no funciona lo suficientemente rápido, tiene todas las posibilidades de perder sus ingresos potenciales. Acelerar el trabajo de un recurso de Internet permitirá mejorar la conversión y, gracias a ello, incrementar significativamente los ingresos y atraer más clientes.

Beneficios del servicio OptiPic

  • No hay pagos mensuales.
  • Automatización total.
  • Proporcionar ayuda gratis cuando está conectado.
  • La dirección de Internet (URL) de las imágenes comprimidas no cambia, seguirán almacenándose en su sitio.
  • Para conectarse y utilizar el servicio, no es necesario tener conocimientos especiales de programación o administración.
  • No hay restricciones sobre el tamaño de las imágenes en el sistema.
  • Soporte técnico en ruso.

¿Cómo puede la optimización de imágenes acelerar un sitio web?

La página de cualquier sitio suele constar de:

  • imágenes;
  • código html (contenido de texto, diseño, marcado);
  • video;
  • scripts javascript con lógica ejecutada desde el lado del navegador;
  • archivos css con estilos de página.

Un elemento como las imágenes ocupa la mayor parte del volumen completo de las páginas del sitio y es la parte "más pesada" de las páginas. Sin duda, la reducción (optimización) de imágenes permitirá acelerar significativamente la carga de cualquier recurso de Internet.

En consecuencia, si cambia (hacia abajo) el volumen de imágenes, todas las páginas del sitio comenzarán a cargarse mucho más rápido.

La compresión de imágenes en el sitio permitirá reducir su volumen hasta en un 75-98% sin perder su calidad visual.

¿Cómo conectar OptiPic a 1C-Bitrix para la compresión de imágenes?

Regístrese y agregue su sitio a su cuenta personal

Después de pasar registro recibirá un correo electrónico con un enlace para activar su cuenta. Siga ese enlace. Más adelante en nuestro sitio web, vaya a Área personal Perfil> Mis sitios, haga clic en el botón Agregar sitio, especifique la URL de su sitio y haga clic en el botón Conectar sitio.

Descargue e instale el módulo en su sitio web

Después de agregar el sitio al sistema, vaya a la pestaña Descargar módulo.

Allí debe descargar el archivo con el módulo. Desempaquete este archivo y cárguelo en su sitio web (en carpeta raíz sitio). Como resultado, su sitio debe tener una carpeta de sitio en la raíz del sitio con la siguiente estructura:

  • sitio
    • config.php
    • help.php
    • index.php

Y en el sitio después de eso, la siguiente página http: //your-domain..php debería estar disponible.

Elige una tarifa y recarga tu cuenta

Después de cargar el módulo en su sitio, deberá activar la indexación del sitio en la configuración del sitio y esperar la primera indexación del sitio por parte del sistema OptiPic; se necesitan 24 horas. Si desea acelerar el proceso, envíe su sitio manualmente para indexarlo.

Una vez completada la primera indexación, el sistema mostrará cuántas imágenes (¿cuántos gigabytes?) Se encontraron en su sitio. Puede hacer esto en la pestaña Índice de compresión y estadísticas.

Ahora que conoce el volumen de imágenes de su sitio: compra el paquete que necesitas y habilite la compresión en la configuración del sitio.

Hoy lo averiguaremos cómo diseñar correctamente header.php en Bitrix, cómo incluir correctamente .css y .js en header.php, cómo conectar correctamente jQuery en Bitrix y cómo habilitar la compresión de archivos .css y .js en Bitrix.

Es muy afilado y problema real hoy dia. Las llamadas de módulo más comunes están relacionadas con errores en los scripts cuando jQuery está conectado incorrectamente en header.php, y muy a menudo se incluyen varios jQuery, pero solo se debe incluir una biblioteca jQuery en todas las páginas del sitio y la primera entre todos los scripts de plantilla del sitio.

Había un registro en un sitio, conté 7 bibliotecas jQuery conectadas, solo una persona fue torturada para buscar errores y no había ningún lugar adonde ir, cuando se encontró y solucionó el problema, todo comenzó a funcionar correctamente en el sitio.

Entonces, ¿qué tan correctamente se debe formatear el archivo? header.php plantilla de sitio en Bitrix:

  1. Parte delanterano debe haber espacios ni guiones
  2. La codificación de la página se establece antes </b></li> <li><b>Después del titular <title>enumera todas las metaetiquetas <meta> </b></li> <li><b>Después de que se incluyan los estilos de sitio .css de las metaetiquetas <link> </b></li> <li><b>Y solo después de conectar los estilos .css, todos los scripts .js están conectados<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С-Битрикс.

    Каждую неделю в нашу поддержку приходят жалобы на низкую скорость загрузки. В 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.