Самые распространенные ошибки сайтов, работающих на CMS Битрикс

Сайт можно сравнить с живым организмом — он тоже является сложной системой, в которой время от времени происходят сбои. Причины этих сбоев порой непросто обнаружить, ведь сайт включает в себя множество системных компонентов, каждый из которых влияет на его работу. Сегодня мы рассмотрим основные ошибки, касающиеся кода, алгоритмов и других составляющих интернет-ресурсов, созданных на платформе Bitrix (Битрикс). Эти сведения помогут их владельцам быстрее выявить причины неполадок и оперативно их устранить.

Как понять, что сайту необходимо “лечение”?

Ошибки Битрикс напоминают болезни и травмы — одни не оказывают особого влияния на работу ресурса и этим похожи на мелкие порезы или ушибы, другие, наоборот, могут нанести серьезный урон сайту, как грипп или ковид — здоровью человека. Так, у ошибок есть свои симптомы, и главным из них считается падение производительности сайта. Оно проявляется в том, что у ресурса снижается скорость загрузки компонентов, и, как следствие, уменьшается трафик — пользователи не хотят тратить свое время на ожидание и быстро уходят со страниц. Это негативно сказывается на SEO-показателях и способно привести к ряду неприятных последствий, от потери места в выдаче до получения бана со стороны поисковых систем или провайдера.

Падение производительности достаточно легко обнаружить — потребуется только регулярное наблюдение за скоростью загрузки страниц. В случае с ресурсами, созданными на Битрикс, нужно вынести на рабочий стол специальный инструмент “Скорость сайта”. Он находится во вкладке “Производительность” раздела “Настройки” и представляет собой шкалу, разделенную на сектора. Расположение специального ползунка в одном из них покажет, какой на данный момент является скорость работы сайта. Если загрузка страниц длится дольше, чем 1,5 секунды, производительность считается низкой, и велика вероятность, что работе сайта мешают ошибки, возникшие в коде или других элементах. Далее мы подробно разберем основные типы подобных ошибок и их конкретные виды.

Ошибки, возникшие в Back-end-коде при создании ресурса на PHP или Битрикс API

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

  • Запросы к базе данных, осуществляемые в рамках еще не завершенного цикла. Иногда разработчики излишне усложняют алгоритм загрузки информации из БД, что сильно замедляет работу сайта.
  • Незащищенный доступ к параметрам GET и POST, отвечающим за передачу данных от сайта к пользователю.
  • Предоставление общего доступа к служебным скриптам. Это угрожает безопасности сайта и его данных.
  • Злоупотребление магическими константами, а также отсутствие у технических специалистов пояснений к ним. Магические константы могут менять свое значение в зависимости от алгоритма, в котором задействованы, поэтому им необходимы подробные описания.
  • Наличие мусорных файлов и ненужных кусков кода. Они провоцируют возникновение ошибок в различных алгоритмах Битрикс и значительно замедляют сайт.

Некоторые ошибки связаны напрямую с тем, что Back-end-специалисты, создавшие ресурс, не знакомы со всеми важными особенностями архитектуры Битрикс. Из-за низкого уровня профессионализма программистов могут возникнуть:

  • Нарушения в передаче информации на компьютер пользователя и сбои в кэшировании, вызванные логикой и запросами вне компонентов.
  • Отсутствие оптимизации и падение скорости загрузки, так как ресурсы подключены без использования Asset или CMain.
  • Увеличение времени запросов. Причиной часто становится применение фильтров с LIKE вместо строгого равенства.
  • Нехватка оперативной памяти, вызванная тем, что фильтр не проверяется перед осуществлением запроса.
  • Проблемы с переносом сайта на новый хостинг или домен, связанные с привязкой к числовым идентификаторам. Специалисты рекомендуют использовать символьные.
  • Прекращение работы инструментов, позволяющих неспециалистам управлять данными сайта. Причина зачастую кроется в игнорировании включаемых областей для счетчиков и текстовой информации.

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

Ошибки, связанные с Front-end-программированием и особенностями html, css и javascript

Здесь видов возможных ошибок меньше, а для обнаружения сбоев существуют специальные инструменты — Google PageSpeed Insights или WebPageTest. С их помощью выявляют следующие причины значительного снижения производительности сайта:

  • Присутствие изображений, которые не оптимизированы под страницы. Это могут быть файлы устаревших форматов JPEG и PNG, а также картинки, имеющие слишком большой объем или некорректную кодировку. Их следует заменить на изображения современных форматов JPEG 2000, JPEG XR и WebP, которые отображаются без потери качества и не замедляют сайт.
  • Отсутствие кэширования для статичных файлов. Без него изображения, скрипты и стили будут загружаться на компьютер пользователя с удаленного сервера, что негативно скажется на скорости работы сайта.
  • Необдуманное перемещение всех файлов формата Javascript в конец страницы. В некоторых случаях это может привести к сбоям верстки и возникновению ошибок в работе скриптов сайта. Однако при разумном подходе подобное перемещение файлов Javascript положительно скажется на производительности ресурса. Также рекомендуется перейти на использование минифицированных версий файлов и по возможности объединить их.
  • Большое количество запросов к внешним ресурсам и, как результат, нарушение валидации HTML. Чтобы это не происходило, важно регулярно мониторить сайт на наличие запросов, которые приводят к передаче больших объемов данных.

Ошибки, касающиеся настроек доступа

Они делятся на две категории:

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

Для того, чтобы подобные ошибки не привели к падению трафика и хакерским атакам, важно на постоянной основе проверять настройки доступа к файлам ресурса. Это можно сделать с помощью инструмента “Проверка доступа”. Чтобы открыть его, перейдите в раздел “Настройки”, а затем выберите пункт “Проверка системы” во вкладке “Инструменты”.

Ошибки, диагностируемые “Сканером безопасности”

Этот встроенный инструмент Битрикс умеет эффективно выявлять “прорехи” в безопасности сайта, однако администраторы часто забывают о его существовании. А между тем такая халатность способна привести к серьезным сбоям в работе их ресурсов. На сайтах, где проверка давно не проводилась, “Сканер безопасности” чаще других находит следующие ошибки:

  • Вывод ошибок не отключен;
  • Отсутствие повышенного уровня безопасности для административной группы;
  • Слишком простые пароли (например, у базы данных);
  • Сбои при статистическом анализе уязвимостей;
  • Все системные пользователи имеют доступ к директории хранения файлов сессий.
  • Отключена защита редиректов;
  • Ответ сайта на хост по умолчанию;
  • Сайт может отображаться во фрейме с произвольного домена;
  • В почтовые сообщения включены UID PHP процессов.

Данные ошибки устраняются довольно быстро — “Сканер безопасности” дает специальные рекомендации, как это сделать.

photo
Читайте также:
SEO для 1С Битрикс: какие существуют модули для продвижения


Ошибки, связанные с настройкой кэширования

Здесь можно выделить три типа ошибок:

  • В целом кэш работает, однако некоторые его компоненты отключены. Это не критично для сайта в целом, но при таких настройках скорость загрузки будет ниже, чем при активации всех параметров кэша.
  • Кэширование полностью отключено. В данном случае скорость загрузки сайта может просесть примерно в 14 раз по сравнению с той, которая обычно наблюдается при включенном кэше. Исправление этой ошибки не займет много времени, однако после выполнения всех нужных действий важно следить, чтобы процесс кэширования осуществлялся корректно и не давал сбоев.
  • Отдельные компоненты сайта не поддерживают кеширование. Наиболее сложный случай из всех приведенных. Для устранения подобной ошибки нужна помощь квалифицированного специалиста.

Ошибки, связанные с работой агентов

Грамотно настроенные агенты очень полезны — они позволяют запускать PHP-скрипты с определенной периодичностью. Наиболее распространенная ошибка здесь заключается в том, что если не изменить настройки, по умолчанию агенты будут осуществлять работу в пределах процесса загрузки страницы сайта (хита). Это сильно снизит производительность, поэтому важно перевести работу агентов в фоновый режим. Сделать так поможет использование технологии cron.

Ошибки, вызванные отсутствием оптимизации базы данных

Здесь главной причиной сбоев является то, что владельцы ресурсов оставляют без изменений настройки базы данных, выставленные по умолчанию. Когда сайт начинает работу, некоторые из этих настроек могут оказать негативное влияние на трафик или производительность. Оптимизировать их довольно просто — достаточно зайти в раздел “Настройки”, выбрать вкладку “Производительность”, а затем пункт “Сервер БД”. Встроенный инструмент Битрикс даст рекомендации по оптимизации и подбору актуальных параметров для базы данных. Также вы можете воспользоваться плагинами наподобие MySqlTuner или “Инструментом автоматической проверки и оптимизации таблиц БД”.