Проблема производительности – актуальная тема аудитов и предмет волнения владельца сайта. Производительность оказывает существенное влияние на удобство пользователей и является значимым фактором ранжирования сайта в поисковых системах.
В этой статье мы рассмотрим основные проблемы производительности сайтов на Битриксе и дадим понимание, как и с помощью чего это можно исправить.
Почему сайт тормозит
В интернете нередко можно встретить как кто-то ругает Битрикс, называя его медленным и непроизводительным, но на практике, чаще всего, проблема скрывается в других аспектах: слабая конфигурация сервера, неверные настройки Битрикса, плохое качество кода и т.п.
Эти причины можно классифицировать на две группы: те, что происходят на стороне сервера и те, что происходят на стороне клиента, т.е. обрабатываются в браузере пользователя.
Рассмотрим эти группы и причины поподробнее.
Проблемы на стороне сервера
Любой аудит сайта начинается с исследования серверной части сайта, так как серверная часть влияет на другие подсистемы. В отличие от клиентской части, здесь гораздо больше исследований.
В основном причины на стороне сервера – это:
- Слабый хостинг и некорректная конфигурация сервера.
- Ошибки в настройках окружения системы.
- Низкое качество кода и ошибки разработки.
- Неоптимальная архитектура проекта .
Хостинг и конфигурация сервера
Битрикс достаточно требователен к ресурсам сервера и оптимальности его настройки. От этого зависит корректность работы всего сайта, поэтому стоит в первую очередь проверить его.
Проверить производительность конфигурации сервера можно в Настройки / Производительность / Панель производительности.
Все подсистемы по оценке не должны быть меньше эталонной и оптимально настроены. Если производительность конфигурации и среднее время отклика ниже эталонного значения – это не повод для паники. Проверьте оценки остальных подсистем, и если они в пределах эталонной оценки, то проблема, скорее все, скрывается в backend-коде сайта.
Просадка конфигурации в пороговом значении и уменьшение времени отклика зачастую кроется в коде обработчиков событий, в коде решений сторонних разработчиков и даже в системных модулях. Также просадка происходит во время выполнения каких-либо операций на сайте – обмен с 1С, выполнение агентов. Так что учитывайте это.
Решить проблему с обработчиками событиями вам поможет специалист, а вот отключить лишние модули вы можете самостоятельно. Но не забудьте сделать бекап сайта перед выполнением этих действий, вдруг удалите что-то важное и нарушите работу сайта.
Отключение системных модулей можно выполнить через панель администратора в Настройки / Настройки продукта / Модули, а решения сторонних разработчиков, загруженные на сайт – Marketplace / Установленные решения.
Претендент на отключение почти на каждом сайте – это модуль «Веб-аналитики».
Если оценки сервера показывают низкие значения, то рекомендуется переехать на другой хостинг. Хостинг Syncweb полностью удовлетворяет всем требованиям системы 1С-Битрикс: Управление сайтом.
Ошибки в настройках окружения системы
В процессе работы задействованы многие модули, расширения и программы сервера. Корректно они работают или нет, можно узнать на странице полной проверки сайта: Настройки / Инструменты / Проверка системы.
В идеале не должно быть никаких замечаний, а если проблемы есть – то рядом, в кнопке со знаком вопроса будет рекомендация по решению проблемы.
Помимо этого, мы рекомендуем перевести работу агентов на крон. Это уменьшит нагрузку на сервер и улучшит точность выполнения заданий.
Также ключевой частью производительности является кеширование. Поэтому обязательно проверьте, что оно работает. Это можно узнать на странице проверки производительности Настройки / Производительность / Панель производительности вкладка Битрикс.
Помимо кеширования, должны быть оптимально настроены все настройки.
Еще одной важной частью системы является – сервер базы данных. Отчет о работе базы данных можно найти в Настройки / Производительность / Сервер базы данных.
Параметров здесь много и в идеале не должно быть значений, окрашенных в красный цвет. Кроме того, вносить изменения самостоятельно в конфигурацию MySQL может быть опасной затеей – лучше обратиться к специалисту.
Низкое качество кода и ошибки разработки
В Битриксе есть инструмент, который умеет проверять нагруженность страниц, скорость их работы и ошибки компонентов на этих страницах. Так как это тоже относится к ключевым факторам производительности – он расположен на странице Настройки / Производительность / Панель производительности.
Инструмент отображает только отчет о том, как работают страницы при реальной нагрузке, с помощью замера производительности. Считается нормой, если среднее время отклика страницы ниже 0,5 секунд. Если у вас есть тяжелые страницы, то следующий шаг – воспользоваться режимом «Отладка» в публичной части сайта.
С помощью него вы сможете увидеть какие компоненты создают большую нагрузку среди других компонентов на странице, где не срабатывает кеш и другое.
Зачастую этих мер хватает, чтобы вычислить «неприятеля» и исправить ошибку, но иногда проблема гораздо глубже. Тогда хороший специалист проверяет уже качество кода, изучая на предмет того, что является причиной плохой производительности компонента.
Неоптимальная архитектура проекта
Такие ошибки могут существенно оказывать влияние на работу сайта, особенно если это какое-то расширение обрабатывающее данные товаров. Суть в том, что разработчик в виду своей некомпетенции мог написать усложненную логику алгоритма решения. Такой код со временем может постепенно замедлять сайт вместе с ростом данных на сайте, до тех пор пока это не начнет бросаться в глаза.
Такие проблемы трудоемкие и в некоторых случаях легче переписать все заново, чем изучать текущее решение и задаваться вопросами «Почему разработчик сделал так, а не вот так?» или «Зачем было сделано это решение?».
Другой пример, это размещение в коде скриптов для обращения к внешним сервисам – запрос курса валюты, запрос к службе доставки и т.п. Обращение к сервисам, иной раз, может занимать значительно долгое время и страница будет тормозить. Лучший способ, если он позволяет быть – вынести подобный код на агента и записывать данные в отдельную таблицу базы данных, ну а в другом случае делать AJAX-запрос, а вместо отображения установить заглушку.
Проблемы на стороне клиента
Так как подобные проблемы касаются отрисовки в браузере, то для этого используются инструменты, такие как Google PageSpeed Insights. В отчете PageSpeed Insights вы сможете найти проблемы десктопной и мобильной версии сайта. Эти ошибки также связаны с качеством frontend-кода, разработанной верстки проекта и его дизайна – то есть всего, что касается отображения.
Причиной плохой производительности на стороне клиента являются:
- Не оптимизированная графика.
- Избыточные стили и скрипты.
- Большое дерево тегов.
- Отсутствие требуемого уровня сжатия ресурсов.
- Сторонние тяжелые подключения.
Не оптимизированная графика
В готовых решениях, как правило, графика оптимизирована и не требует каких-либо доработок. Но если сайт делал разработчик, то он с легкостью мог забыть про этот момент. Идея решения данной проблемы том, что графика должна сжиматься до того размера, в котором она будет использоваться для вывода на сайте, а не в полном размере. Для этого программисты используют специальные функции.
Еще одна проблема – это вывод картинок сразу при открытии страницы. Все вместе картинки будут грузится долго, препятствуя работе пользователя с сайтом. Но на современных сайт используется технология отложенной загрузки картинок – lazyload. Благодаря этому сайт загружается очень быстро и картинки появляются не сразу, а плавно и постепенно.
Избыточные стили и скрипты
Избыточность порождается в процессе редизайна и доработок верстки сайта в виде забытого закомментированного кода или неиспользуемых плагинов и скриптов. Это порождает некий хаос и беспорядок в коде, который оказывает влияние на скорость отрисовки страницы. К сожалению, мы не можем порекомендовать решения лучше ручной проверки скриптов и стилей.
Большое дерево тегов
Слишком глубокое дерево тегов оказывает плохое влияние на скорость открытия страницы. Если с другими проблемами можно обойтись по простому, то этот пункт будто и требует провести анализ верстки сайта. Процедура трудная и выполняется вручную.
Отсутствие требуемого уровня сжатия ресурсов
В Битриксе для решения этой проблемы есть настройки, которые включают создание сжатой версии CSS и JS файлов, возможности склеивания скриптов и стилей, а также перемещения JS в конец страницы. Это делается на странице Настройки / Настройки продукта / Настройки модулей / Главный модуль.
В настройках, как минимум, необходимо включить объединение и создание сжатой копии скриптов, а вот перемещение в конец страницы может что-то сломать. Поэтому здесь на свой страх и риск, нужно все проверять.
Стоит отметить, что эти настройки могут отладить только те скрипты и стили, которые подключены с помощью специальных методов SetAdditionalCSS и AddHeadScript или их аналогов в ядре d7. Остальные подключения будут проигнорированы.
Сторонние тяжелые подключения
К сторонним плагинам и скриптам относятся Яндекс.Метрика, Google Аналитика, а также различные виджеты и онлайн чаты. Такие скрипты могут оказывать существенное влияние на скорость загрузки сайта. Причем одни из них адаптированы к загрузке через отложенные функции, но есть и другие, которые создают проблемы.
Чтобы решить эту проблему создается отложенная функция для загрузки плагина или скрипта. В другом случае необходимо подумать над удалением плагина, либо оставить все как есть.
Заключение
С помощью приведенных рекомендаций и инструкции, вы сможете ускорить свой сайт и решить проблемы производительности самостоятельно. В другом случае, при возникновений трудности и ощущения глубины проблемы понадобится специалист, знающий платформу. За этим вы можете обратиться к нам и заказать аудит сайта.