Поддержка и абонентское обслуживание

Сайт не открывается: как за 10 минут понять, где именно сломалось

Пошаговая диагностика недоступного сайта: домен, DNS, хостинг, сертификат, CMS. Что проверить самому и с какими данными идти к подрядчику.

12 минут чтения 0 Дмитрий Акиндинов
Содержание
  1. Сначала одна проверка, которая делит все причины пополам
  2. Что именно показывает браузер: читаем ошибку правильно
  3. Домен: оплачен ли и делегирован ли
  4. DNS: домен есть, а сайта нет
  5. Хостинг: аккаунт, лимиты, диск
  6. Сертификат и редиректы
  7. CMS: белый экран, база, режим обслуживания
  8. Чек-лист: что записать до обращения в поддержку
  9. Сколько времени это занимает и когда звать человека
  10. Что сделать прямо сейчас
  11. Частые вопросы

Первая проверка делит все причины пополам: открывается ли сайт с другого устройства и другой сети. Если только у вас, дело в кэше, DNS или провайдере. Если у всех, дальше по порядку: домен, серверы имён, хостинг, сертификат, сама CMS.

Владелец открывает свой сайт, видит белый экран или ошибку браузера и пишет мне в мессенджер два слова: «сайт лежит». Дальше начинается самое дорогое по времени: я задаю восемь вопросов, он на каждый отвечает через полчаса, и полдня уходит на переписку вместо починки. Эта статья про то, почему не открывается сайт и как за десять минут самому сузить круг подозреваемых до одного слоя: домен, DNS, хостинг, сертификат или CMS. В конце список данных, с которыми в поддержку идти не стыдно.

Дерево диагностики недоступного сайта: домен, DNS, хостинг, сертификат, CMS

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

Сначала одна проверка, которая делит все причины пополам

Прежде чем куда-то лезть, ответьте на вопрос: сайт не открывается у всех или только у вас. Это разные истории с разной ценой.

Три способа за две минуты:

  • откройте сайт с телефона, отключив Wi-Fi (мобильный интернет идёт через другого провайдера и другой DNS),
  • прогоните адрес через сторонний чекер доступности: ping-admin.ru, 2ip.ru, isitdownrightnow.com,
  • попросите коллегу из другого города открыть ссылку.

Если сайт открывается у всех, кроме вас, дальше по этой статье идти почти не нужно: копайте локально. Кэш DNS на компьютере, файл hosts после переезда сайта, расширение браузера, антивирус с фильтрацией https, корпоративный прокси. Сброс кэша DNS в Windows делается одной командой в консоли, запущенной от администратора:

ipconfig /flushdns

На macOS это sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder, на Android проще всего включить и выключить авиарежим. Отдельно перезагрузите роутер: домашние роутеры кэшируют DNS у себя и живут с этим кэшем сутками.

Если сайт не открывается ни у кого, включается вся остальная диагностика.

Что именно показывает браузер: читаем ошибку правильно

Текст ошибки уже наполовину диагноз. Люди его игнорируют, а зря.

Что видно в браузереГде сломалосьПервое действие
Не удаётся найти DNS-адрес серверадомен или DNSwhois и проверка A-записи
Сайт не отвечает, ERR_CONNECTION_TIMED_OUTсеть или хостингping IP, статус хостинга
ERR_CONNECTION_REFUSEDвеб-сервер не запущенпанель хостинга, поддержка
Подключение не защищено, NET::ERR_CERT_DATE_INVALIDсертификатпроверка срока и цепочки
ERR_TOO_MANY_REDIRECTSредиректыhtaccess и настройки CMS
403 Forbiddenправа, фаервол, блокировкаправа файлов, бан по IP
500 Internal Server Errorкод или конфигerror.log
502 / 504php-fpm или таймаутлоги, лимиты, тяжёлый запрос
508 Resource Limit Is Reachedлимиты тарифанагрузка, боты, оптимизация
Белый экран без текстафатальная ошибка PHPWP_DEBUG и лог
Error establishing a database connectionбазадоступы в конфиге, MySQL
Страница-заглушка хостинга или регистратораоплатасчета, срок домена

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

Полезная привычка: смотреть не на картинку в браузере, а на настоящий ответ сервера. Браузер кэширует редиректы, показывает старую страницу из кэша и вообще склонен приукрашивать. Терминал не склонен.

# что реально отдаёт сайт: код, куда редиректит, за сколько
curl -sSI -o /dev/null -w "%{http_code} %{redirect_url} %{time_total}n" https://example.ru/

# вся цепочка редиректов целиком
curl -sIL https://example.ru/ | grep -Ei "^HTTP|^location"

На Windows 10 и 11 curl уже есть, но в PowerShell слово curl подменено на встроенный командлет. Пишите curl.exe, иначе получите непонятную ошибку про параметры.

Домен: оплачен ли и делегирован ли

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

Проверяется одной командой:

whois example.ru | grep -Ei "state|paid-till|nserver|org"

Ответ выглядит примерно так:

nserver:       ns1.timeweb.ru.
nserver:       ns2.timeweb.ru.
state:         REGISTERED, DELEGATED, VERIFIED
org:           Individual entrepreneur
paid-till:     2026.11.14T21:00:00Z

Читаем два поля. paid-till это дата, до которой домен оплачен. state должен содержать слово DELEGATED. Если делегирования нет, домен зарегистрирован, но в интернете его не существует: сайт не откроется и почта на домене умрёт вместе с ним.

Для зоны .ru порядок такой. В день окончания оплаченного периода делегирование снимается, сайт гаснет. Дальше идёт период преимущественного продления примерно на 30 дней: домен ещё ваш, продлить может только текущий администратор, стоит это как обычное продление (в 2026 году порядка 250-400 рублей за год у массовых регистраторов). После этого домен уходит в свободную продажу, и его перехватывают дропкетчеры за минуты. Красивый домен с историей и трафиком назад уже не вернуть ни за какие деньги.

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

Второй сценарий с доменом: он оплачен, но у регистратора висит требование подтвердить данные администратора. Тогда в state появится VERIFICATION FAILED или CLIENT DELETE PROHIBITED вместе с уведомлением на почту. Лечится отправкой документов регистратору, занимает от нескольких часов до пары дней.

DNS: домен есть, а сайта нет

Домен оплачен и делегирован, но сайт не открывается. Смотрим, куда домен показывает.

# что отвечают публичные резолверы
nslookup example.ru 8.8.8.8
nslookup example.ru 77.88.8.8

# а что говорят авторитетные серверы самого домена
nslookup example.ru ns1.timeweb.ru

Сравнивайте IP из ответа с реальным IP вашего сервера (он написан в панели хостинга на главной странице аккаунта). Три типовых расклада:

  1. A-запись отсутствует вообще. Обычно после смены DNS-серверов: домен перевели на другого провайдера, а зону забыли наполнить. Лечится добавлением A-записи на нужный IP.
  2. A-запись показывает на старый хостинг. Классика после переезда. Старый аккаунт уже удалён, домен указывает в пустоту.
  3. Публичные резолверы отвечают одно, авторитетный сервер другое. Это кэш, надо ждать.

Про ожидание отдельно, потому что тут больше всего мифов. Изменения DNS не распространяются «по всему миру за 72 часа» по какому-то расписанию. Работает простое правило: каждый промежуточный резолвер держит ответ у себя ровно столько, сколько указано в TTL записи. Стоит TTL 3600 секунд, значит худший случай ожидания один час. Стоит 86400, ждать до суток. Поэтому перед плановой сменой хостинга TTL опускают до 300 секунд за сутки до переезда, и тогда переключение проходит за пять минут, а не растягивается на сутки.

Если IP правильный, но сайт всё равно не отвечает, проверьте, доходит ли до сервера сеть:

ping -c 4 91.201.52.10
curl -sI --resolve example.ru:443:91.201.52.10 https://example.ru/

Вторая команда полезна тем, что стучится напрямую в нужный IP, минуя DNS целиком. Если так сайт открывается, а по домену нет, проблема стопроцентно в DNS, и с хостингом всё в порядке.

Хостинг: аккаунт, лимиты, диск

Домен в порядке, DNS показывает правильно, сервер пингуется, а сайт молчит или отдаёт 50x. Дальше хостинг.

Проверьте по порядку:

  • Оплата. Аккаунт заблокирован за неоплату, сайты выключены, данные ещё живы. Восстанавливается за минуты после платежа. Проверять в личном кабинете, не в почте.
  • Статус провайдера. У всех крупных хостеров есть страница статуса и телеграм-канал с авариями. У Timeweb, Reg.ru, Beget такое есть. Пять минут чтения канала экономят два часа собственных раскопок.
  • Место на диске. Кончилось место, MySQL не может писать во временные таблицы, сайт падает с ошибкой базы. Забивается обычно логами, бэкапами плагина в папке сайта и кэшем.
  • Лимиты тарифа. CPU, память, число процессов PHP. При превышении shared-хостинг отдаёт 503 или 508 вместо страницы. Причина часто не в росте посещаемости, а в парсерах и ботах.

Если есть SSH, три команды закрывают половину вопросов:

df -h                                        # сколько свободно на диске
du -sh ~/example.ru/public_html/* | sort -h  # кто съел место
tail -n 100 ~/logs/example.ru/error.log      # что ругается прямо сейчас

Пути к логам у каждого хостера свои, но структура похожая: каталог logs рядом с каталогом сайта. Ошибку почти всегда видно в последних строках, вместе с точным именем файла и номером строки. Это тот самый кусок текста, который надо переслать подрядчику вместо фразы «не работает».

Нагрузка от ботов отдельная тема. Мелкий сайт услуг спокойно кладут два-три агрессивных парсера, которые ходят по фильтрам каталога в тридцать потоков. Симптом характерный: сайт то открывается, то нет, в панели хостинга полка по CPU, в access.log сотни запросов в минуту с одного диапазона адресов. Быстрое лекарство: закрыть лишние диапазоны на уровне сервера правилом в .htaccess и попросить хостера подтвердить, что полка именно от них, а не от живых людей.

Сертификат и редиректы

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

Просроченный сертификат браузер показывает красным экраном с кнопкой «всё равно перейти». Для бизнеса это равно недоступности: люди не переходят, а закрывают вкладку. Проверяется так:

echo | openssl s_client -connect example.ru:443 -servername example.ru 2>/dev/null 
  | openssl x509 -noout -subject -dates -issuer

Смотрим три вещи: notAfter (дата окончания), subject (для какого домена выписан) и наличие цепочки. Частая история: сертификат живой, но выпущен только на example.ru, а посетитель приходит на www.example.ru и получает ошибку несоответствия имени. Или наоборот. Бесплатный Let’s Encrypt выпускается на 90 дней и продлевается роботом, поэтому сломанное автопродление вылезает не сразу, а через три месяца, когда все уже забыли, что трогали настройки.

Петля редиректов выглядит как ERR_TOO_MANY_REDIRECTS и почти всегда рождается из двух правил, которые спорят друг с другом. Типовой набор для WordPress: правило в .htaccess, принудительный https в панели хостинга и плагин вроде Really Simple SSL, включённые одновременно. Или siteurl в базе с www, а редирект на сервере убирает www.

Диагностика тем же curl: в цепочке будет видно, как адрес прыгает между двумя вариантами. Лечение простое: оставить ровно один источник правды. Я обычно оставляю правило в .htaccess, а плагин и опцию хостинга выключаю.

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteCond %{HTTP_HOST} ^www.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301]

Порядок правил важен: первое совпадение решает. Если сначала стоит редирект на https, а потом склейка www, посетитель с http://www. сделает два перехода вместо одного. Не смертельно, но лишние 200 миллисекунд на каждом входе.

CMS: белый экран, база, режим обслуживания

Сервер отвечает кодом 200 или 500, сертификат в порядке, а вместо страницы пустота. Значит, дело в самом движке.

Белый экран в WordPress это фатальная ошибка PHP, у которой выключен вывод. Причина в 90 процентах случаев одна из трёх: несовместимый плагин после обновления, несовместимая версия PHP после переключения на хостинге, исчерпанный лимит памяти. Включаем лог и читаем:

// wp-config.php, выше строки "That's all, stop editing!"
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
define( 'WP_MEMORY_LIMIT', '256M' );

После этого текст ошибки появится в wp-content/debug.log вместе с именем плагина. Дальше плагин отключается переименованием его папки через файловый менеджер, сайт оживает. Разбор всех веток этого сценария у меня есть в статье про белый экран WordPress. Важно: после починки WP_DEBUG обязательно выключить, иначе лог разрастётся и в него попадут пути и куски запросов.

Ошибка соединения с базой означает, что PHP не смог достучаться до MySQL. Проверяйте доступы в wp-config.php (или в bitrix/php_interface/dbconn.php у Битрикса) и статус MySQL в панели. Отдельный случай: база на паузе у хостера за неактивность или превышение размера на тарифе.

Режим обслуживания в WordPress включается автоматически на время обновления и выключается сам. Если обновление оборвалось (закрыли вкладку, отвалилась сеть), в корне сайта остаётся файл .maintenance. Удалили файл, сайт вернулся. Пять секунд работы, но люди сидят с ним по два дня, потому что не знают.

У Битрикса аналог другой: сайт мог остаться в состоянии после неудачного обновления ядра, тогда смотрят bitrix/modules/main/classes/ и журнал обновлений в админке.

Чек-лист: что записать до обращения в поддержку

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

  • Точный адрес, на котором воспроизводится: с https, с www или без, с конкретной страницей.
  • Точный текст ошибки или код ответа. Скриншот целиком, с адресной строкой, а не обрезанный кусок.
  • Вывод curl -sSI с кодом ответа и временем.
  • Время начала проблемы с точностью до получаса. Хостинг ищет в логах по времени.
  • Воспроизводится ли с мобильного интернета и из другой сети.
  • Что менялось за последние сутки: обновления плагинов, правки в админке, смена версии PHP, оплата чего-либо, работы подрядчика.
  • Последние 30-50 строк error.log.
  • Ваш внешний IP, если подозреваете блокировку (посмотреть на 2ip.ru).

Последний пункт списка самый недооценённый. Вопрос «что менялось» закрывает больше инцидентов, чем все логи вместе взятые. Сайты редко ломаются сами: почти всегда накануне кто-то что-то обновил, переключил или не оплатил.

Сколько времени это занимает и когда звать человека

По моему опыту раскладка такая. Домен и DNS проверяются за три минуты. Хостинг с доступом в панель за пять. Сертификат и редиректы за пять. CMS дольше всего, от десяти минут до часа, потому что там надо читать логи и отключать плагины по одному.

Звать специалиста разумно в трёх ситуациях. Первая: причина найдена, но лечение требует правки конфигов и базы, а вы этого не делали никогда. Вторая: в логах видны признаки взлома (чужие файлы в uploads, лишние администраторы, редирект на посторонний домен). Третья: сайт приносит деньги прямо сейчас, идёт реклама, и каждый час простоя дороже любой консультации.

Разовая диагностика с починкой у меня обычно занимает от получаса до трёх часов, считается по факту. На абонентском обслуживании такие вещи входят в тариф и не тарифицируются отдельно, потому что в норме до них не доходит: мониторинг присылает уведомление раньше, чем сайт успевает заметить клиент. Цифры и состав пакетов есть в тарифах.

Кстати, про мониторинг. Самая дешёвая страховка от всей этой статьи стоит ноль рублей: бесплатного плана UptimeRobot хватает на десяток сайтов с проверкой раз в пять минут и уведомлением в Телеграм. Плюс отдельная проверка срока домена и сертификата раз в сутки. Как это собрать, я расписывал в материале про мониторинг доступности.

Что сделать прямо сейчас

Если сайт лежит в эту минуту, идите строго по порядку: чужая сеть, whois, nslookup, панель хостинга, curl с заголовками, error.log. На каждом шаге вы либо находите причину, либо вычёркиваете целый слой. Десять минут дисциплины экономят полдня хаотичного тыканья.

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

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

Частые вопросы

Почему не открывается сайт

Причин пять. Домен не продлён, серверы имён отвечают не туда, хостинг заблокирован или упёрся в лимиты, сертификат просрочен, упала сама CMS. Разбирают их именно в этом порядке, снизу вверх от домена.

Как понять, что проблема только у меня

Открыть сайт с мобильного интернета, а не с той же сети. Если там работает, дело в кэше браузера, в DNS провайдера или в блокировке на вашей стороне.

Что делать, если домен не продлён

Продлить. После окончания срока есть период примерно в 30 дней, когда домен ещё ваш и продление стоит как обычное, порядка 250-400 рублей за год. Дальше начинается дорогое восстановление.

Сколько ждать, если проблема в DNS

Столько, сколько стоит время жизни записи. При значении 3600 секунд худший случай это час. Поэтому перед плановым переездом его заранее опускают до 300 секунд.

Передайте техническую часть в надёжные руки.

Слежу за хостингом, бэкапами и обновлениями. Когда что-то пойдёт не так – звоните мне, не своему программисту, не в спортзал и не маме.

Короткие вопросы по теме

Все вопросы по теме "Поддержка и абонентское обслуживание"

Заявка

Обсудим задачу

Напишите имя и телефон, выберите удобный канал. Перезвоню или напишу в течение часа в рабочее время.

Куда удобнее ответить?