Кейс MediaNation: установили последнюю версию Bitrix, ускорили загрузку сайта и на 26% превысили его эталонную производительность

2023-11-15 11:10:24 Время чтения 8 мин 420

Если вы заметили, что сайт стал работать медленнее, возможно, самое время обновить CMS. В кейсе рассказываем, как нам в MediaNation удалось ускорить работу и производительность сайта Consul, с какими проблемами столкнулись в процессе и как боролись с проактивной защитой Bitrix.

Клиент

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

Проблема: устаревший сайт

Впервые Consul обратился в MediaNation в 2015 году. Тогда мы разработали интернет-магазин, который помог компании вырасти и увеличить бизнес. 

Со временем требования к удобству пользования интернет-магазином росли, и в 2019-2021 гг.. мы провели капитальную модернизацию сайта, разработали адаптивную верстку и внедрили новый функционал. В результате удалось в 5 раз увеличить количество посетителей сайта, в 4,5 раза увеличить доход и почти в 2 раза уменьшить показатель отказов.

Однако за прошедшее время платформа для разработки на базе Bitrix и версия PHP, которая использовалась на сервере, успела устареть, и сайт стал работать ощутимо медленнее. В 2023 году Consul снова обратился в агентство с задачами: 

  1. Обновить платформу Bitrix до последней версии 8.1.
  2. Обновить версию PHP до версии 8.1.

Решение

Чтобы решить проблему с медленной загрузкой страниц сайта, необходимо было не просто установить критические обновления платформы Bitriх, но и поднять версию PHP на сервере c 7.4 до 8.1, поскольку в этой версии присутствует оптимизация, которая улучшает производительность сайта.Она совместима с более новыми версиями библиотек и фреймворков. Более того, некоторые библиотеки и фреймворки поддерживают только более новые версии PHP, поэтому обновление до последних версий помогает обеспечить наилучшую совместимость.

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

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

Первый этап: Перевели сервер на PHP 8.1

Рядовая процедура по обновлению PHP вылилась в ряд некритических ошибок, которые мы быстро исправили:

Второй этап: Обновили тестовый сайт

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

Этот этап был более объемным и важным. Обновление платформы на тестовом сайте повлекло за собой критические для работы сайта ошибки. Например:

1. В некоторых компонентах пропала информация о ценах. 

По мере изучения проблемы выяснили, что на новой версии платформы не были доступны параметры, которые клиент использовал для отображения цен на сайте: PRICES и MIN_PRICE. Только спустя несколько дней переговоров с технической поддержкой Bitrix мы узнали, что теперь для вывода массива с ценами PRICES необходимо использовать дополнительный параметр в настройке компонента:

"COMPATIBLE_MODE" => "Y"

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

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

Часть модулей просто не отображалась

3. В публичной версии сайта вместо реальной цены в карточках товаров отображалось «0 руб.»

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

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

  1. Настроили правила модуля защиты: для этого нужно открыть административную панель Bitrix и перейти в раздел «Настройки» или «Настройки продукта». В разделе безопасности или проактивной защиты (Proactive Protection) нужно проверить настройки и правила модуля, а затем установить их так, чтобы они не блокировали работу сайта при обнаружении потенциальных угроз.
  2. Провели логирование и мониторинг: мы включили логирование модуля защиты, чтобы отслеживать события и ошибки. Это помогло бы выявить, какие конкретные запросы или действия приводят к блокировке, и настроить правила соответствующим образом.
  3. Обновили модуль: в новых версиях могли быть улучшения и исправления, которые улучшили бы совместимость с последними версиями PHP.

Третий этап: Обновили основной сайт consul-coton.ru

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

Результаты

После обновления сайт стал работать быстрее. А за счет критических обновлений платформы Bitrix CMS стала более защищенной и устойчивой.

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

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