Звонит клиент — владелец магазина детской одежды. Голос напряжённый: «Сергей, покупатели пишут, что сайт не открывается. Белый экран и какая-то ошибка 500 на сайте. Мы в пятницу запустили рекламу на 120 тысяч, а тут такое.»
Заходим на сайт. На главной — всё работает. Каталог — тоже. А вот страница оформления заказа выдаёт «500 Internal Server Error». Белые буквы на белом фоне отчаяния.
Рекламу уже открутили на 40 тысяч за выходные. Покупатели приходили, набирали товары в корзину, нажимали «Оформить заказ» — и получали ошибку 500 на сайте. Сколько заказов потерялось? По логам насчитали 186 попыток оформления. При среднем чеке в 3 200 рублей это почти 600 тысяч рублей за два дня.
Причина? PHP-скрипт оформления заказа упёрся в лимит памяти после обновления модуля доставки. Исправили за 40 минут. Но деньги — уже ушли.
И знаете, что самое обидное? Эту ситуацию можно было предотвратить. Если бы за сервером кто-то наблюдал, проблема обнаружилась бы через минуты, а не через два дня. Но давайте по порядку — разберём, что такое ошибка 500, как она влияет на ваш бизнес и как с ней бороться.
Ошибка 500 на сайте — что это такое без технических терминов? Это сигнал, что сервер не смог выполнить запрос. Не потому что вы ввели неправильный адрес (это ошибка 404). Не потому что у вас нет доступа (это 403). А потому что внутри сервера что-то сломалось и обработка запроса прервалась.
Представьте ресторан. Вы сели за стол, сделали заказ. Официант ушёл на кухню — и не вернулся. Через пять минут выходит менеджер и говорит: «Извините, у нас что-то случилось на кухне, мы не можем выполнить ваш заказ.» Что именно случилось? Не сообщают. Может, повар уронил кастрюлю. Может, закончился газ. Может, кухня горит.
Ошибка 500 на сайте — это именно такой ответ: «что-то пошло не так, но мы не скажем что». И в этом её главное коварство. Код 500 — самый неинформативный из всех серверных ответов. Он не говорит ни причину, ни способ решения. Чтобы разобраться, нужно лезть в серверные логи.
Для владельца магазина ошибка 500 на сайте, что это означает на практике: вы не исправите её сами. Это не «перезагрузите страницу» и не «почистите кэш браузера». Это проблема на стороне сервера, и нужен человек, который в этом сервере разбирается.
Серверный сбой с кодом 500 может случиться на любом сайте. Но на Битриксе он случается чаще — и почему ошибка 500 на Битриксе это особая история, важно понять каждому владельцу магазина.
Битрикс — мощная система. Десятки модулей, интеграции с 1С, сложная логика скидок, персональные цены, многоуровневые каталоги. Каждый из этих модулей — это PHP-код, который потребляет память и процессорное время сервера. Чем больше модулей и сложнее логика — тем выше шанс, что что-то пойдёт не так.
Вот пять главных причин ошибки 500 на Битриксе, которые мы видим регулярно:
Каждая из этих причин — серверная. Разработчик сайта может про них ничего не знать. Хостер скажет «у нас всё работает». А владелец магазина видит только результат: покупатели не могут оформить заказ из-за ошибки 500 на сайте.
А теперь — самое неприятное. Серверный сбой, который вы видите, — это ещё полбеды. Гораздо хуже те ситуации, когда ошибка 500 на сайте существует, что это происходит — покупатели знают, а вы нет.
Как это возможно? Очень просто.
Вы — владелец магазина. Вы заходите на свой сайт, проверяете главную, каталог, пару товаров. Всё работает. Прекрасно. Но вы не проверяете каждую из 8 000 товарных страниц. Не проверяете страницу оформления заказа с пятью товарами из разных категорий при доставке в Новосибирск. Не проверяете AJAX-запрос обновления корзины на мобильном телефоне. Не проверяете, что происходит, когда три покупателя одновременно применяют промокод на товар со скидкой.
А покупатели — проверяют. Каждый день. И часть из них натыкается на ошибку 500 на сайте в тех сценариях, о которых вы даже не подозреваете.
Вот реальный пример. Магазин строительных материалов. Владелец уверен: сайт работает нормально. Мы подключили мониторинг и за первую неделю зафиксировали 347 серверных сбоев. Все — на страницах фильтрации каталога. Когда покупатель выбирал фильтр «цемент + фасовка 50 кг + цена до 500 рублей», сервер не справлялся с запросом к базе данных и отдавал код 500. Владелец никогда не пользовался фильтрами на собственном сайте. А покупатели — пользовались. Каждый день. Десятки раз.
347 сбоев за неделю. Это 347 человек, которые хотели купить, но не смогли. Скрытая ошибка 500 на сайте — что это, если не невидимая дыра в выручке? Вы не увидите её в Метрике, потому что технически визит состоялся. Покупатель дошёл до нужной страницы — просто вместо товаров увидел белый экран.
Другой случай. Магазин автозапчастей. Сбой возникал только при добавлении в корзину товара с персональной скидкой по купону. Без купона — всё работало. С купоном — белый экран. Купонами пользовались постоянные клиенты — то есть самая ценная аудитория. Они получали ошибку, звонили в магазин, но администратор не понимал, в чём дело: «У меня всё открывается.» Проблема жила три месяца, пока не поставили мониторинг.
Три месяца скрытый сбой тихо уничтожал лояльных клиентов. Представьте, сколько их ушло за это время. И ни один из них не написал в поддержку «у вас ошибка 500 при применении купона на товар артикула XYZ». Люди просто уходят молча.
Посчитаем на конкретных цифрах, сколько стоит серверный сбой для типичного интернет-магазина.
Средний интернет-магазин на Битриксе получает 3 000–10 000 посетителей в день. Конверсия в заказ — 1,5–3%. Допустим, у вас 5 000 посетителей и конверсия 2%. Это 100 заказов в день.
Теперь допустим, что 5% посетителей сталкиваются со скрытыми серверными сбоями. Это 250 человек в день. Из них какая-то часть ушла бы и без ошибки — но исследования показывают, что около 40% пользователей, столкнувшихся с серверной ошибкой, не возвращаются. Вообще. Это не «попробую позже». Это «пойду в другой магазин».
Делаем арифметику. 250 человек × 40% = 100 потерянных потенциальных покупателей в день. При конверсии 2% — это 2 заказа в день. При среднем чеке 4 000 рублей — 8 000 рублей ежедневных потерь. За месяц — 240 000 рублей. За год — почти 3 миллиона.
И это только прямые потери от ошибки. Есть ещё косвенные:
Сначала — как тушить пожар, если сайт выдаёт ошибку 500 прямо сейчас. Потом — как сделать так, чтобы пожар не повторялся.
Ошибка 500 — это симптом. Причина — всегда в логах сервера. Нужно открыть лог ошибок веб-сервера (обычно это файл error.log) и лог PHP. Там будет написано, что именно сломалось: нехватка памяти, синтаксическая ошибка в PHP-файле, таймаут запроса к базе данных или что-то ещё.
Проблема: большинство владельцев магазинов не имеют доступа к серверным логам, и это абсолютно нормально — вы не обязаны разбираться в системном администрировании. Но кто-то должен иметь этот доступ и уметь читать логи. Если такого человека нет — это первое, что стоит исправить.
Увеличить лимит памяти PHP. Поднять таймаут. Почистить диск от старых бэкапов. Исправить права доступа. Откатить проблемное обновление модуля. Конкретное решение зависит от конкретной причины — универсального рецепта нет.
Обычно исправление занимает от 20 минут до 2 часов. Но только если человек знает, что искать. Если не знает — можно провозиться день и сделать хуже. Мы видели случаи, когда владелец магазина по совету из форума менял настройки PHP прямо на боевом сервере. Сайт «починился» — но через два часа упал окончательно, потому что новые настройки съели всю оперативную память.
Исправить ошибку 500 на сайте — это потушить пожар. А мониторинг — это пожарная сигнализация. Разница между ними — это разница между «починить за 40 минут» и «потерять 600 тысяч за выходные».
Что должен отслеживать мониторинг:
При правильном мониторинге вы узнаёте о проблеме до того, как о ней узнает покупатель. У нашего клиента с магазином детской одежды, с которого мы начали эту статью, после установки мониторинга за полгода не было ни одного инцидента с потерей заказов. Не потому что серверные сбои перестали возникать — а потому что мы их ловили и исправляли раньше, чем ошибка 500 на сайте успевала добраться до покупателей.
Мониторинг — это софт. Но кто-то должен реагировать на его сигналы. Три часа ночи, суббота, мониторинг прислал алерт: «ошибки на странице оформления заказа». Кто встанет и починит?
Варианта три. Сисадмин в штате — дорого, от 80 000 рублей в месяц, и для одного магазина избыточно. Разработчик сайта — он про код, а не про сервер, это разные профессии. Сервис на абонентке — команда, которая мониторит, реагирует, бэкапит и обновляет. Мы построили «Апельсин Код» вокруг третьего варианта — не потому что он «лучший», а потому что для владельца интернет-магазина он самый рациональный по соотношению цены и покрытия рисков.
Чаще всего — нет. В 90% случаев это техническая проблема: нехватка ресурсов, ошибка в коде или конфликт обновлений. Но иногда — да, внедрённый вредоносный код может вызывать ошибку 500. Если ошибка 500 на сайте появилась без видимых причин и не связана с обновлениями — проверка на взлом лишней не будет.
Если сбой кратковременный — за пару часов ничего страшного не произойдёт. Поисковые роботы вернутся позже и увидят нормальную страницу. Но если страницы отдают код 500 регулярно или в течение нескольких дней, Яндекс начнёт исключать их из индекса. Google ведёт себя аналогично. Восстановление позиций после такого занимает недели, а иногда — месяцы, если страницы были конкурентными по высокочастотным запросам.
Если у вас есть доступ к серверу и вы понимаете, что такое логи — можно попробовать. Но для владельца магазина честный ответ такой: ошибка 500 на сайте, что это для вас — задача для администратора сервера, а не для разработчика сайта (он отвечает за код, а не за сервер) и не для хостера (он отвечает за физическое оборудование, а не за настройки вашего проекта).
Каждый час простоя — это потерянные заказы. Если ошибка на странице оформления заказа — реагировать нужно в минутах, не в часах. Если на второстепенной странице — в часах, не в днях. Но лучше всего — не реагировать на уже случившееся, а предотвращать через мониторинг, чтобы ошибка 500 на сайте не успевала нанести урон.
Ошибка 500 на сайте — что это в итоге? Это не мелочь и не «глюк, который сам пройдёт». Это конкретная серверная проблема, которая стоит конкретных денег. Особенно опасны скрытые ошибки сайта — те, которые видят покупатели, но не видите вы. Они не отображаются в обычной аналитике, не вызывают тревогу у хостера и не попадают в отчёты разработчика.
Три вещи, которые можно сделать уже сегодня:
Если вы столкнулись с регулярными сбоями или подозреваете, что ваш интернет-магазин теряет заказы из-за скрытых технических неполадок, не стоит откладывать решение в долгий ящик. Наша команда регулярно занимается администрированием серверов и глубокой диагностикой веб-проектов. Мы поможем проанализировать логи ошибок, оптимизировать базу данных и настроить надежный круглосуточный мониторинг.
Доверить стабильную работу своего бизнеса профессионалам и оперативно устранить любые серверные неполадки вы можете на support.orangecode.ru. Квалифицированная поддержка поможет вовремя заметить проблемы в системе и защитить ваш сайт от внезапных падений.