Оптимизация скорости загрузки сайта на Битрикс
Про важность оптимизации быстродействие сайта сказано уже много, думаем, что не стоит подробно описывать, как важно, чтобы страницы открывались максимально быстро.
Последние исследования оптимизаторов показали, что для Google скорость отдачи страниц является одним из важнейших факторов, влияющих на ранжирование. Конечно, Яндекс тоже учитывает фактор быстродействия при формировании поисковый выдачи, но так как ТОП Яндекса зависит от огромного количества параметров, провести чёткую корреляция зависимости именно быстродействия сайта от положения в поисковой выдачи значительно сложнее, поэтому для Вашего удобства мы будем использовать оценку Google и сделаем допущение, что влияние быстродействия на поисковую выдачу приблизительно одинаково для обоих систем.
В сегодняшней статье мы хотим подробно рассказать, как можно оптимизировать скорость работы Вашего сайта на Битрикс собственными силами. Какие из приложений маркетплейса действительно влияют на быстродействие, а какие почти не влияют при современных методах оценки.
Обращаем внимание нашего уважаемого читателя, что наша статья учитывает последние методики, которые использует Google в анализе быстродействия страниц.
Наша история оптимизации быстродействия сайта является весьма длительным мероприятием иначе сложно сделать какие-либо выводы. В нашем кейсе мы представим несколько замеров, и их корреляцию не только с программными методами оптимизации, но и с использованием более производительного железа.
Ваш сайт переведен на индексирование с приоритетом мобильного контента.
Такое сообщение получают многие владельцы сайтов. Более того, это касается всех новых сайтов, которые раньше отсутствовали в индексе Google. Это означает, что конкретно для Вашего сайта сделан приоритет мобильной выдачи. Изменить этот параметр нельзя, с момент получения этого сообщения большинство запросов на сканирование будет исходить от робота Googlebot для смартфонов.
Как мы с Вами обсуждали выше, скорость загрузки является приоритетной задачей, делаем соответствующий тест.
Как видно из проведенного нами теста, скорость мобильной выдачи на уровне 22 единиц, что не приемлемо с точки зрения Google, поэтому займемся оптимизацией.
Оптимизация изображений для увеличения скорости загрузки контента сайта
Для оптимизации изображений мы использовали сервис ОптиПик, который позволяет сжимать изображения «на лету», при этом обладает простыми настройками и интуитивно понятным интерфейсом.
Для оптимизации нашего, далеко не маленького сайта, потребовалось совсем немного времени, важными свойствами плагина является то, что все изображения имеют оригинальные копии, что позволяет откатить все назад, а также несколько различных степеней сжатия. Все новые изображения сживаются «на лету».
Автоматическая оптимизация верстки для увеличения скорости загрузки сайта, оптимизация css, js
Также, как в предыдущем разделе, оптимизация проводилась с помощью готового модуля, загруженного из маркетплейса Битрикс.
Модуль создает файлы с минимизированным кодом внутри. В коде убираются пробелы, переносы строк и комментарии, сокращаются цветовые обозначения. Это уменьшает вес файлов, а, следовательно, и время загрузки. Вторым важнейшим свойством модуля является встраивание CSS в код страницы.
Благодаря встраиванию CSS, уменьшается количество запросов к серверу, пользователь получает CSS код сразу вместе со страницей. Иногда, если CSS файлы большие, это приводит к уменьшению оценки в Google PageSpeed. Для того, чтобы этого не происходило, встраивайте только небольшие файлы — в этом случае количество запросов к серверу сокращается, а размер HTML кода увеличивается, но не критично.
Влияние хостинга на быстродействие Битрикс управление сайтом
Этот фактор безусловно тоже является важной составляющей хорошего быстродействия сайта. Битрикс является весьма требовательным по отношению к хостингу. Для его быстрой работы необходимо минимум два ядра и 3 ГБ оперативной памяти.
Объём дискового пространства для небольших сайтов является не столь критичным, так как данные кешируются и помещаются в оперативную память.
А вот частота процессора является очень важной составляющей высокого быстродействия сайта.
Нами было протестировано значительное количество как виртуальных, так и физических машин.
Конечно, для больших сайтов с большим количеством посетителей лучше арендовать физический сервер, развернув на нём окружения Битрикса, поставив все необходимые компоненты и оптимизировав базу данных.
Если Ваши запросы являются сильно критичными, мы предлагаем рассмотреть предложение от нашего партнёра — компании Timeweb, которая предлагает действительно очень льготные условия на высокопроизводительные машины с частотой процессора 5 Ггц (раздел VPS / VDS).

Наша статья не является рекламной, мы преследуем просветительские цели для повышения квалификации наших потенциальных клиентов. Обращаем Ваше внимание, что мы абсолютно бесплатно консультируем по этим и другим вопросам, касающимся разработки сайтов на платформе Битрикс или её корпоративного портала Битрикс24.
В следующей части нашей статьи мы подробно рассмотрим ручные методы оптимизации быстродействия сайтов на платформе Битрикс, читайте наш блог, смотрите наши видео, продолжение следует.
Кейс: как ускорить сайт на Bitrix в 3,5 раза
Быстродействие сайта — один из важных факторов не только для удобства посетителей, но и для ранжирования в поисковых системах.
Заказчик обратился к нам с просьбой увеличить скорость загрузки сайта «Пожарный магазин» — это проект на Битрикс, специализирующийся на продаже пожарного оборудования.
- Что из себя представлял сайт до оптимизации
- План действий по оптимизации скорости загрузки Битрикс
- Перенос на VDS и настройка сервера
- Проверка системы
- Работа с БД
- Минификация исходного кода страницы, css и js файлов
- Оптимизация изображений
- Оптимизация JS
- Какие результаты мы получили по итогу работы по оптимизации скорости
Что из себя представлял сайт до оптимизации
На момент начала работ показатели скорости были очень низкими.
Для оценки скорости загрузки веб-страниц мы использовали Google PageSpeed Insight — инструмент Гугл для проверки быстродействия сайта.

Показатели скорости для ПК (слева), мобильных (справа)
А также проанализировали время загрузки страниц через браузер Google Chrome. Данную проверку быстродействия сайта можно провести следующим образом: через F12 открыть вкладку «Network» (предварительно очистив фильтр) и запустить действие клавишей F5

Время загрузки страниц через браузер Google Chrome
Показатели были следующие:

Главная страница — 9,44 сек.

Страница каталога — 9,22 сек.
План действий по оптимизации скорости загрузки Битрикс
- Перенос на VDS и настройка сервера
- Проверка системы
- Работа с БД
- Минификация исходного кода страницы, css и js файлов
- Оптимизация изображений
- Оптимизация JS
Перенос на VDS и настройка сервера
Сайт изначально был на виртуальном хостинге, технология которого подразумевает совместное размещение нескольких ресурсов на общем, уже настроенном сервере, а значит нет возможности установить туда собственное программное обеспечение, которое по умолчанию не поддерживается хостинг-провайдером. Виртуальный хостинг, на котором ранее был сайт, был ограничен версией php, mysql, nginx. Физические ресурсы виртуального хостинга (мощность процессора, оперативная память) распределяются между всеми размещенными на виртуальном хостинге сайтами. Иногда бывает, что один сайт потребляет больше ресурсов, чем положено. В таком случае соседние сайты на хостинге испытывают дефицит в оперативной памяти и мощности процессора: они начинают медленнее загружаться, начинаются сбои.
Было решено перенести сайт заказчика на VDS (Виртуальный Выделенный Сервер).
Так как Bitrix довольно прожорлив и ресурсоёмок, с небольшим заделом на будущее выбрали тариф с 8гб ОЗУ и с 4-х ядерным CPU.
После переноса на VDS установили все необходимые для работы программы (nginx, mysql, php и т.д.).
Важную роль в увеличении скорости сайта сыграла версия php, так как ранее стояла версия 5.6, которая давно уже устарела. Новая (на момент установки) версия 7.2 работает почти в два раза быстрей версии 5.6, что неплохо сказалось на работе сайта.
Еще одним из важных моментов в работе по ускорению сайта является кеширование.
При большом объеме базы данных возникает проблема производительности. Связано это со следующими причинами:
— конкурентные запросы (обращения к массиву информации на чтение или на запись порождают конкурентные запросы);
— очередь из запросов (запросы сами по себе быстрые, но их так много, что БД начинает выстраивать из них очередь);
— запросы медленные, тяжёлые и очень частые.
Для разгрузки наиболее загруженных мест по ресурсам и по времени было настроено кеширование компонентов в Bitrix. Для использования этой технологии достаточно включить автокеширование одной кнопкой на административной панели.

При этом все компоненты, у которых был включен режим автокеширования, создадут кеши и полностью перейдут в режим работы без запросов к БД.
Настроили на сервере Memcached. Он представляет собой огромную хэш-таблицу в оперативной памяти, доступную по сетевому протоколу. Обеспечивает сервис по хранению значений, ассоциированных с ключами. Доступ к хэшу мы получаем через простой сетевой протокол, клиентом может выступать программа, написанная на произвольном языке программирования — в нашем случае это PHP. За счет своей технологи Memcached можно использовать в высоконагруженных web-проектов для решения различных задач, в том числе и для кэширования данных.
Проверка системы
Выполнили проверку системы средствами самого Битрикса, так как результаты проверки могут указать на проблемы, влияющие в том числе и на быстродействие сайта.
В процессе проверки были выявлены проблемы, связанные с работой php, в частности неправильно заданные значения переменных: post_max_size, upload_max_filesize, pcre.recursion_limit и др.
Причины и пути решения выводятся в виде подсказок в результатах проверки. В нашем случае переменные php настраивались в конфигурационном файле init.php.
8 способов увеличить производительность сайта на 1С-Битрикс
От чего зависит скорость загрузки сайтов 1С-Битрикс или интернет магазина. Почему у пользователей много жалоб и претензий на низкую скорость загрузки?
Ежедневно в нашу «поддержку» для пользователей поступают претензии на заторможенность загрузки. При анализе жалоб, установлено, что в 90% случаев на это влияют: слабый хостинг, неправильная конфигурация и настройки платформы 1С – Битрикс. Предлагаем следующее решение этой проблемы.
1. Оцените производительность
Модуль «Монитор производительности» 1С-Битрикс сможет проверить производительность сайта и сопоставить итоги с эталонными показателями. Он покажет на слабые места, а именно: сайт, CMS, конфигурация, низкокачественная разработка или хостинг. Вы сможете развернуть ваш сайт или «чистый» 1С-Битрикс на различных площадках и сопоставить эти цифры.

Все что надо знать о показателях производительности:
- если менее 30 пунктов, то позабудьте про результативность и резвую загрузку страниц, оценки — «очень быстро» вам не видать, тормозить будет всё;
- если от 30 до 60 пунктов, то это приемлемо для малых проектов (корпоративные сайты или интернет — магазины с малым числом товаров, низким количеством SKU и параметров в умном фильтре);
- если от 60 до 100 пунктов, то конфигурация сервера терпима, но не окончательна; она подходит для большинства проектов; сайт функционировать будет, но не так уж быстро;
- если от 100 пунктов, то вы – умники, смогли найти правильную хостинг площадку, «админка» «носится» как угорелая, значительные объемы данных из 1С выгружаются на ура, страницы отзываются быстро; вы безмятежно спите и даже не раздумываете жаловаться в «техподдерожку» на проблемы с загрузкой сайта и ни разу не замечали таких ошибок — Request timeout или 502 Bad Gateway;
- если 200 и больше, это совершенно;
Как протестировать сайт:
Перейдите в панель производительности: Настройки → Производительность → Панель производительности. Нажмите кнопку «Тестирование производительности» и подождите несколько минут.
2. Перекиньтесь на седьмую версию PHP
В декабре 2015 года появилась седьмая версия PHP. Она создана с акцентом на рост производительности и снижения потребления памяти. Тесты это доказательно представляют. Рост производительности после перехода на новое ядро имеет от 40% и более.
Работать на устаревших версиях PHP — разрушать жизнь пользователю и делать этот интернет непривлекательным. Если ваш хостинг не поддерживает седьмую PHP, поменяйте его (например, на этот, с дармовым переносом). Если ваш сайт не поддерживает седьмую версию PHP, спешно поправляйтесь. А еще оптимальнее применяйте решения с поддержкой седьмой версии PHP — например, от Аспро.
3. Настройте кеширование
Применять композит и авто композит — это хорошо и верно. Но попросту подключить их, это полдела. Чтобы приобрести ощутимый рост в скорости, необходимо осторожно задать время жизни кеша в зависимости от частоты подновления данных на сайте и посещаемости.
- Сохранять настройки по умолчанию (120 секунд).
Причина: новый посетитель заглядывает на страницу товара. Складывается кеш. Следующий посетитель забегает на сайт уже спустя час. Кеш надо вырабатывать снова — его время вышло. Итого, кеш генерируется всякий раз при раскрытии страницы. Роста производительности и стремительности не просто нет — она даже понижается. - Не соотносить время существования кеша с частотой обновления данных на сайте и посещаемости сайта.
- Устанавливать для некоторых разделов (новости, статьи) большее время кеширования.
-
Цены на сайте обновляются вручную несколько раз в неделю.
Устанавливаем время кеширования: не менее 172800 секунд (2 суток).
4. Постройте фасетные индексы для умного фильтра
Фасетные индексы убыстряют работу умного фильтра. Как правило, умному фильтру надобно перебрать все товары каталога и сопоставить их свойства с заданными параметрами. Если товаров немало, такой процесс может занять некоторое время. Фасета же заранее просчитывает и прикидывает варианты запросов, сохраняет их в системе и выдает по запросу.
На словах все прекрасно, на деле — не очень: фасеты нечасто создают и применяют. Попытайтесь это сделать и сопоставьте скорость загрузки результатов фильтрации. Инструкция в нашей документации. Инструкция в нашей документации
5. Проанализируйте и образуйте индексы в базе данных
Индексы анализируются и строятся здесь: Настройки → Производительность → Индексы → Анализ индексов.
Надавите на кнопку «Выполнить анализ собранных SQL запросов». Если возникшие индикаторы зеленые, все в порядке — индексы основаны. Если индикаторы желтые, создайте их самостоятельно. Инструкция в мануалах 1С-Битрикс Инструкция в мануалах 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.
8 способов увеличить производительность сайта на 1С-Битрикс
Что будет, если нагрузить фуру и старую клячу грузом в 1 тонну? Правильно: первый поедет на максимальной скорости, а вторая не сможет сдвинуться с места. Так и сайты: у каждого из них свои требования к хостингу, конфигурации, настройкам платформы 1С-Битрикс.
Каждую неделю в нашу поддержку приходят жалобы на низкую скорость загрузки. В 99,9% случаев оказывается, что проблема кроется в слабеньком хостинге и неправильных настройках. Рассказываем, что делать, если сайт или интернет-магазин тормозит, и как правильно произвести диагностику и самостоятельно увеличить производительность — так, чтобы летал.
[spoiler]
1. Оцените производительность
Модуль «Монитор производительности» 1С-Битрикс позволит протестировать производительность сайта и сравнить результаты с эталонными показателями. Он укажет на слабые места: сайт, CMS, конфигурация, некачественная разработка или хостинг. Вы можете развернуть ваш сайт или «чистый» 1С-Битрикс на разных площадках и сравнить эти цифры.

Что нужно знать о показателях производительности:
- меньше 30 пунктов – забудьте про производительность и быструю загрузку страниц. Показателя «Очень быстро» вам не видать. Тормозить будет все!
- от 30 до 60 – подойдет для небольших проектов (корпоративные сайты или интернет магазины с небольшим количеством товаров, небольшим количеством SKU и параметров в умном фильтре)
- от 60 до 100 — конфигурация сервера приемлема, но не оптимальна. Подойдет для большинства проектов. Сайт работать будет, но не на сверхскоростях.
- от 100 – вы молодцы: не поленились выбрать нормальную хостинг площадку! Админка летает, большие объемы данных из 1С выгружаются на ура, страницы отдаются быстро. Вы спите спокойно и даже не думаете писать в техподдерожку с жалобами на проблемы с загрузкой сайта, ни разу не видели ошибок Request timeout или 502 Bad Gateway.
- 200 и выше – идеально!
Оценка производительности. Результаты испытания демо-стенда (тариф RED.Site-3, хостинг RedDock). Решение – универсальный интернет-магазин Аспро: Оптимус
Как протестировать сайт
Перейдите в панель производительности: Настройки → Производительность → Панель производительности. Нажмите кнопку «Тестирование производительности» и подождите несколько минут.
2. Перейдите на PHP7
3 декабря 2015 года вышла седьмая версия PHP. Она разрабатывалась с упором на увеличение производительности и уменьшение потребления памяти. Тесты это убедительно показывают ( пример 1 , пример 2 ) — прирост производительности после перехода на новое ядро составляет от 40%!
Сидеть на старых версиях PHP — осложнять жизнь пользователю и делать этот интернет хуже. Если ваш хостинг не поддерживает PHP7, меняйте его (например, на этот с бесплатным переносом). Если ваш сайт не поддерживает PHP7, срочно исправляйтесь. А еще лучше, используйте решения с поддержкой PHP7 — например, от Аспро.
3. Настройте кеширование
Использовать композит и автокомпозит — это хорошо и правильно. Но просто включить их — полдела. Чтобы получить ощутимый прирост в скорости, нужно корректно задать время жизни кеша в зависимости от частоты обновления данных на сайте и посещаемости.
- Оставлять настройки по умолчанию (120 секунд).
Почему: первый посетитель заходит на страницу товара. Формируется кеш. Второй посетитель заходит на сайт через час. Кеш нужно формировать заново — его время истекло. В итоге кеш генерируется каждый раз при открытии страницы. Прироста производительности и скорости не просто нет — она даже снижается. - Не соотносить время жизни кеша с частотой обновления данных на сайте и посещаемости сайта.
- Задавать для отдельных разделов (новости, статьи) огромное время кеширования.
- Цены на сайте обновляются вручную или несколько раз в неделю.
Рекомендуемое время кеширования: не менее 172800 секунд (2 суток). - Цены на сайте обновляются один раз в день, выгрузка из 1С или другой системы складского учета происходит ночью.
Рекомендуемое время кеширования: 86400 секунд (1 сутки). - Нечасто, но бывает: цены обновляются через реал-тайм обмен с 1С и бывает, что несколько раз в течение дня.
Рекомендуемое время кеширования: 7200 секунд (2 часа).
Фасетные индексы ускоряют работу умного фильтра. Обычно умному фильтру нужно перебрать все товары каталога и сравнить их свойства с заданными параметрами. Если товаров много, такой процесс может занять определенное время. Фасета же заранее просчитывает и составляет варианты запросов, сохраняет в системе и выдает по запросу.
На словах все здорово, на деле — не очень: фасеты редко создают и используют. Попробуйте это сделать и сравните скорость загрузки результатов фильтрации. Инструкция в нашей документации
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.
