Установили последнюю версию Bitrix, ускорили загрузку сайта и на 26% превысили эталонную производительность
Если вы заметили, что сайт стал работать медленнее, возможно, самое время обновить CMS. В кейсе рассказываем, как нам в MediaNation удалось ускорить работу и производительность сайта Consul, с какими проблемами столкнулись в процессе и как боролись с проактивной защитой Bitrix.
Клиент
Consul Holding – старейший российский производитель продукции для сна и отдыха. Продукция компании неоднократно была представлена как к отечественным, так и международным наградам.
Проблема: устаревший сайт
Впервые Consul обратился в MediaNation в 2015 году. Тогда мы разработали интернет-магазин, который помог компании вырасти и
Со временем требования к удобству пользования интернет-магазином росли, и в 2019-2021 гг. мы провели капитальную модернизацию сайта, разработали адаптивную верстку и внедрили новый функционал. В результате удалось в 5 раз
Однако за прошедшее время платформа для разработки на базе Bitrix и версия PHP, которая использовалась на сервере, успела устареть, и сайт стал работать ощутимо медленнее. В 2023 году Consul снова обратился в агентство с задачами:
- Обновить платформу Bitrix до последней версии 8.1.
- Обновить версию 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:
- Настроили правила модуля защиты: для этого нужно открыть административную панель Bitrix и перейти в раздел «Настройки» или «Настройки продукта». В разделе безопасности или проактивной защиты (Proactive Protection) нужно проверить настройки и правила модуля, а затем установить их так, чтобы они не блокировали работу сайта при обнаружении потенциальных угроз.
- Провели логирование и мониторинг: мы включили логирование модуля защиты, чтобы отслеживать события и ошибки. Это помогло бы выявить, какие конкретные запросы или действия приводят к блокировке, и настроить правила соответствующим образом.
- Обновили модуль: в новых версиях могли быть улучшения и исправления, которые улучшили бы совместимость с последними версиями PHP.
Третий этап: Обновили основной сайт consul-coton.ru
На этом этапе обошлось без неожиданностей. После устранения всех ошибок мы успешно перенесли все обновления с тестового сайта на основной.
Результаты
После обновления сайт стал работать быстрее. А за счет критических обновлений платформы Bitrix CMS стала более защищенной и устойчивой.
Показатели работы сайта превзошли все ожидания: производительность стала на 26% выше эталонной. Это означает, что сайт работает эффективнее, чем того ожидают пользователи или устанавливают отраслевые стандарты.
В результате глобального обновления клиент получил сайт, который работает стабильно, без ошибок и сбоев, быстро загружается, мгновенно обрабатывает запросы и сиюминутно реагирует на действия пользователей.