Найти тему

14 шагов как ускорить сайт на 1С-Битрикс

Оглавление

За последние три года мы оптимизировали производительность многих проектов на 1С-Битрикс. Среди них были как новые сайты, которые размещались на хостинге впервые, так и проекты, перенесённые с других хостингов и корпоративных серверов.

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

На какой результат можно рассчитывать?

Если пройти эти шаги последовательно, то можно увеличить производительность даже очень медленных сайтов, которые показывают 20-30 пунктов по шкале Битрикс, до 100 пунктов и выше.

С помощью правильных настроек вполне реально сделать так, чтобы “тормозной” сайт стал “летать” и радовать посетителей удобством и высокой скоростью.

Итак, вот 14 шагов для оптимизации сайта на 1С-Битрикс:

  • Подобрать более мощное железо на хостинге.
  • Использовать специализированное окружение Битрикс.
  • Минимизировать скрипты и стили.
  • Отследить и исправить медленные запросы.
  • Сжать изображения.
  • Отложить загрузку медиа-контента.
  • Настроить время жизни кэша.
  • Включить CDN.
  • Обновить версию PHP до 7.1 и выше.
  • Отключить лишние модули.
  • Оптимизировать настройки БД.
  • Создать фасетные индексы.
  • Включить тип таблиц InnodDB в базе данных.
  • Настроить innodb buffer pool size.
  • Использовать механизм кеширования memcached.
  • Включить композитный режим.
  • Для сайтов с высокой нагрузкой рассмотреть использование кластера серверов.

Рассмотрим каждый из этих шагов подробнее.

1. Подобрать более мощное железо на хостинге

Производительность сайта зависит от серверных мощностей – количества ядер и частоты процессора, объёма оперативной памяти, типа и ёмкости дисков.

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

Мы знаем, что Битрикс очень чувствителен к частоте процессора, скорости дисков и объёму памяти. Поэтому в шаблонах хостинга Максиплэйс предусмотрено несколько готовых конфигураций.  На них большинство сайтов, которые переезжают к нам с обычных хостингов, сразу начинают показывать более высокую производительность.

Для сайтов компаний и интернет-магазинов с небольшой посещаемостью будет достаточно 1-2 ядер процессора, 2 Гб оперативной памяти и до 30 Гб на SSD-диске. Эта конфигурация подойдет и для тех, кто только запустил сайт и ещё не замерил нагрузку от посещаемости.

Если же ваш сайт достаточно “тяжёлый”, понадобится больше ресурсов. Так, для сайтов с высокой посещаемостью, а также интернет-магазинов с большим каталогом товаров или порталов, например, Битрикс24, мы рекомендуем использовать тариф “MIDDLE” с 4 ядрами процессора, 4 Гб RAM и 80 Гб на SSD-диске.

По стоимости переход с минимальной конфигурации на среднюю сопоставим со стоимостью одного (!) небольшого заказа в интернет-магазине (около 2 тыс. рублей). А результатом может быть как рост заказов за счёт ускорения работы сайта, так и повышение позиций сайта в поисковой выдаче.

После усиления или оптимизации “железа” переходим к настройке окружения и самого сайта.

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

2. Использовать специализированное серверное окружение Битрикс

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

Что даёт использование специализированного окружения?

«1C-Битрикс: Виртуальная машина» – это виртуальный сервер, полностью настроенный, протестированный и предназначенный для оптимальной работы с сайтами на «1С-Битрикс».

В нём уже учтены многие параметры, влияющие на производительность. Набор

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

Если же вы не используете окружение Битрикс, а самостоятельно конфигурируете среду на своём VPS-сервере, обратите внимание на режим использования php как модуль apache. Эту опцию вы увидите в настройках и можете использовать её для ускорения работы Битрикс. При этом есть много нюансов, так как при высокой нагрузке предпочтительным окажется другой режим, и придётся привлекать специалиста.

Поэтому для удобства и скорости развёртывания мы рекомендуем использовать готовое и многократно протестированное окружение BitrixVM. Мы используем его для всех клиентских проектов на платформе Битрикс.

3. Обновить версию PHP до 7.Х

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

Нужно проверить версию PHP и обновить её до 7.x, т.к. новые версии работают быстрее.

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

4. Минимизировать скрипты и стили

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

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

-2

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

//Правильно

use Bitrix\\Main\\Page\\Asset;

Asset::getInstance()->addJs(SITE_TEMPLATE_PATH . "/js/main.js");

Asset::getInstance()->addCss(SITE_TEMPLATE_PATH . "/css/style.css");

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

<? //Неправильно ?>

<script src="/js/main.js"></script>

<link href="/css/style.css" rel="stylesheet">

Уже только это может дать ощутимое ускорение загрузки страниц сайта.

5. Сжать изображения

Основным "тяжелым" ресурсом на веб-странице являются изображения. Чем больше их вес, тем медленнее загружается страница.

Для Битрикса существует отличное бесплатное решение для оптимизации изображений без потери качества. Работает оно буквально в один клик.

-3

Часто веб-мастера упускают оптимизацию изображений, а зря. Нам приходилось встречать сайты, где в плейсхолдеры 300х400 пикселей вставлены картинки размером 1200х1600. 

Представьте, насколько медленно грузится такой интернет-магазин, если в его каталоге 40 тысяч товаров.

6. Отложить загрузку медиа-контента

Что пользователю важнее увидеть в первую очередь: красивые картинки или основной контент сайта? Картинки, безусловно, важны, но лучше первым делом показать структуру и контент. Для решения этой задачи можете воспользоваться плагином JQuery Lazy. Для его работы также необходимо использовать библиотеку JQuery.

  • Подключение плагина в шаблоне сайта
    use Bitrix\Main\Page\Asset;
    Asset::getInstance()->addJs(SITE_TEMPLATE_PATH . "/js/jquery.min.js");
    Asset::getInstance()->addJs(SITE_TEMPLATE_PATH . "/js/jquery.lazyloading.min.js.js");
  • Инициализация плагина для выбранного класса изображений
    $(function () { $('.lazy-img').Lazy(); });
  • Изображениям необходимо добавить выбранный класс .lazy-img, а также заменить атрибут src на data-src
    <img data-src="<?=$arItem["PREVIEW_PICTURE"]["SRC"]?>" class="lazy-img"/>
  • Для решения проблемы с изображениями являющимися background-ом, вместо css свойства background: url(/images/cloud.jpg) следует добавить класс .lazy-img и атрибут data-src для блока
    <div class="lazy-img" data-src="/images/cloud.jpg"></div>

7. Настроить время жизни кеша

Эта настройка определяет частоту обновления информации на странице.

Если информация на сайте обновляется раз в сутки, то ошибочно будет оставлять время жизни кэша по умолчанию (3600 с). Необходимо выставить значение 24 часа (86400 с), иначе каждый час посетитель будет заново загружать контент с сервера. 

Этот параметр важно учитывать и выставлять с учётом периода реального обновления информации на сервере.

8. Проверить, что подключён механизм кеширования memcached

Memcached – это сервис кэширования данных в оперативной памяти на основе хеш-таблицы. Это самый быстрый способ кеширования, так как ОС при наличии ресурсов будет держать последние открытые файлы в памяти. Поэтому убедитесь, что он подключён.

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

9. Подключить CDN

Битрикс предоставляет возможность использовать технологию CDN (Content Delivery Network), которая позволяет загружать картинки, стили и скрипты с сервера, находящегося ближе всего к пользователю. Это увеличивает скорость загрузки всей страницы.

Для включения данной опции необходимо перейти в Настройки - Облако 1С-Битрикс - Ускорение сайта (CDN).

-4

После включения CDN произведите замер скорости загрузки для исключения противоположного эффекта.

В Также в панели есть инструмент измерения скорости загрузки отклика сайта. Он измеряет скорость загрузки сайта у посетителей.

Этот тест показывает четыре зоны - “Очень быстро”, “Быстро”, “Медленно” и “Очень медленно”, а также среднее время загрузки. Рассчитывается для 1000 последних посетителей вашего сайта. Скорость сайта фактически показывает, как быстро отобразился ваш сайт для большинства из этих 1000 посетителей.

-5

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

10. Оптимизировать настройки БД

В настройках БД важно проверить несколько параметров.

Настроить тип таблиц

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

Сайты с этим типом таблиц работают быстрее и надёжнее с точки зрения сохранности данных. Это соответствует рекомендациям Битрикс.

Настроить параметр buffer pool size

Общая рекомендация - проверять и выставлять innodb buffer pool size примерно равным объёму БД.

-6

В шаблоне BitrixVM он настраивается автоматически в зависимости от объема оперативной памяти на сервере.

Создать фасетные индексы

Данный механизм позволяет сэкономить время на выдаче результата запроса.

Например, вы решили найти на сайте информацию о BMW M5. Без использования фасетного индекса поиск осуществлялся бы сначала по маркам автомобилей, а затем по модельному ряду. Фасетные индексы заранее предопределяют возможные варианты и поиск выдаст результат быстрее. 

Для создания фасетного индекса необходимо, чтобы свойства товара присутствовали в умном фильтре. После чего во вкладке Контент - Инфоблоки - Фасетные индексы следует запустить процесс создания индексов.

Остальные шаги по ускорению читайте в нашем блоге https://maxiplace.ru/blog/bitrix/14-shagov-kak-uskorit-bitrix/