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

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

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

Шаг 1. Сайт не работает у всех или только у вас?

Это главный вопрос, и ответ на него экономит больше всего времени. Если сайт не открывается только у вас, чинить сервер бессмысленно. Если не открывается ни у кого, бесполезно чистить кеш браузера.

  • Откройте сайт с телефона через мобильный интернет, отключив Wi-Fi. Это другая сеть, другой провайдер и другие DNS-серверы.
  • Попробуйте другой браузер или режим инкогнито. Так отсекаются расширения, сохранённые cookie и кеш.
  • Отключите VPN и прокси, если они включены. Часть сайтов блокирует адреса популярных VPN, а сам VPN может быть недоступен.
  • Спросите коллегу из другого офиса или проверьте сайт онлайн-сервисом проверки доступности из нескольких точек.

Если сайт открывается с телефона, но не с компьютера, переходите к разделу «Если сайт не открывается только у вас». Если не открывается нигде, читайте дальше.

Шаг 2. Что пишет браузер

Текст ошибки сразу сужает круг причин. Браузер сообщает, на каком этапе всё сломалось: не нашёлся адрес, не установилось соединение, не прошла проверка сертификата или сервер ответил, но ответил ошибкой.

Что видно в браузереГде сломалосьЧастые причины
DNS_PROBE_FINISHED_NXDOMAIN, «Не удаётся найти IP-адрес сервера»DNS: адрес домена не найденИстёк срок регистрации домена, удалены или неверно изменены DNS-записи, у домена не те NS-серверы
ERR_CONNECTION_TIMED_OUT, «Превышено время ожидания»Сеть: сервер не отвечаетСервер выключен или перегружен, хостинг заблокирован за неоплату, закрыт порт в файрволе, DNS указывает на старый сервер
ERR_CONNECTION_REFUSEDСервер доступен, но веб-сервер не принимает соединенияОстановлен nginx или Apache, веб-сервер не запустился после изменения конфигурации
NET::ERR_CERT_DATE_INVALID, «Подключение не защищено»СертификатИстёк SSL-сертификат, не сработало автопродление, неверное время на компьютере посетителя
ERR_CERT_COMMON_NAME_INVALIDСертификатСертификат выпущен на другое имя: например, есть на example.com, но нет на www.example.com
ERR_TOO_MANY_REDIRECTSСайт отвечает, но перенаправляет по кругуКонфликт правил перехода на https или www между CMS, веб-сервером и CDN
Страница хостера «Сайт заблокирован», «Аккаунт приостановлен»ХостингЗакончилась оплата, превышены лимиты тарифа, жалоба на содержимое

Если сервер ответил кодом ошибки

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

  • 403 Forbidden. Доступ запрещён: неверные права на файлы, правило в .htaccess, блокировка по стране или IP-адресу защитой сайта.
  • 404 Not Found. Нет конкретной страницы. Если 404 отдаёт и главная, скорее всего, сайт выложен не в ту папку или сломались правила адресов в CMS.
  • 500 Internal Server Error. Ошибка в коде сайта: после обновления CMS или плагина, из-за неверной строки в .htaccess, нехватки памяти для PHP. Причина записана в журнале ошибок.
  • 502 Bad Gateway. Веб-сервер не получил ответа от приложения за ним (PHP-FPM, Node.js, Python). Приложение упало или перезапускается.
  • 503 Service Unavailable. Сервер перегружен или сайт сознательно переведён в режим обслуживания. Бывает при наплыве посетителей, атаке ботов или во время обновления.
  • 504 Gateway Timeout. Приложение отвечает, но слишком медленно: тяжёлый запрос к базе данных, зависший внешний сервис, нехватка ресурсов.

Шаг 3. Частые причины, когда сайт не работает у всех

Закончилась оплата хостинга или сервера

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

Истёк срок регистрации домена

Признак: браузер пишет, что не может найти адрес сервера, причём у всех и сразу. Вместе с сайтом обычно перестаёт работать почта на домене. Проверьте дату окончания регистрации через WHOIS-сервис или в кабинете регистратора. Если срок истёк недавно, домен ещё можно продлить, но тянуть нельзя: после окончания льготного периода его сможет зарегистрировать кто угодно. Как не допустить этого, подробно описано на странице про мониторинг срока домена.

Истёк SSL-сертификат

Сайт технически работает, но браузер показывает предупреждение о незащищённом подключении, и посетители уходят. Проверить дату можно, нажав на значок слева от адреса в браузере. Частая история: сертификат Let's Encrypt не продлился автоматически после переезда на новый сервер или продлился, но веб-сервер не перечитал конфигурацию. Подробнее на странице о мониторинге SSL-сертификата.

Что-то обновили или поменяли

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

Кончилось место на диске или память

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

Наплыв посетителей или ботов

Рассылка, реклама или упоминание в крупном канале могут привести к сайту больше людей, чем он рассчитан принять. Похожую картину даёт атака ботов. Признаки: сайт открывается через раз, долго грузится, отдаёт 502, 503 или 504. Помогают кеширование, ограничение частоты запросов и защита от ботов на уровне хостинга или CDN.

Изменили DNS, и он ещё не обновился

После смены IP-адреса сервера или NS-серверов домена часть посетителей какое-то время попадает на старый адрес. Записи держатся в кешах столько, сколько указано в их TTL; смена NS-серверов может расходиться до 24–72 часов. В этот период сайт может открываться у одних и не открываться у других.

Как проверить сайт из командной строки

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

nslookup example.com
curl -sI https://example.com
curl -svo /dev/null https://example.com 2>&1 | grep -iE "expire|subject"
  • nslookup показывает, в какой IP-адрес превращается домен. Ответ «не найден» указывает на проблему с доменом или DNS, а незнакомый адрес говорит о том, что записи ведут не на ваш сервер.
  • curl -sI запрашивает только заголовки ответа. В первой строке будет код: 200, 301, 500, 502. Если команда долго молчит и завершается ошибкой соединения, сервер недоступен по сети.
  • Третья команда выводит данные сертификата, в том числе дату окончания срока действия (строка expire date).

Если сайт не открывается только у вас

  1. Сбросьте кеш DNS. В Windows командой ipconfig /flushdns, в macOS sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder. Перезапустите браузер.
  2. Проверьте файл hosts. Строка с доменом сайта в нём направит браузер на старый или чужой адрес. В Windows файл лежит в C:\Windows\System32\drivers\etc\hosts, в macOS и Linux в /etc/hosts.
  3. Отключите VPN, прокси и расширения, в первую очередь блокировщики рекламы и «ускорители». Временно отключите проверку HTTPS в антивирусе.
  4. Проверьте дату и время на компьютере. Если часы ушли на год назад или вперёд, браузер сочтёт сертификат любого сайта недействительным.
  5. Узнайте, не заблокирован ли ваш IP. Защита сайта (файрвол, fail2ban, WAF) после нескольких неудачных попыток входа может заблокировать адрес. Если это ваш сайт, попросите хостера или администратора проверить списки блокировок.

Пошаговый план для владельца сайта

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

  1. Зафиксируйте ошибку. Сделайте снимок экрана, запишите текст ошибки, адрес страницы и время. Это пригодится поддержке хостинга.
  2. Проверьте домен. Не истёк ли срок регистрации, не изменились ли NS-серверы и DNS-записи.
  3. Проверьте хостинг. Баланс, статус услуги, уведомления о блокировках и лимитах в панели.
  4. Проверьте сертификат, если браузер ругается на защищённое соединение.
  5. Посмотрите журналы ошибок веб-сервера и приложения. Для 500, 502 и 504 причина почти всегда записана там.
  6. Вспомните последние изменения и откатите их, если сайт сломался сразу после них.
  7. Напишите в поддержку хостинга с фактами из первого пункта. Конкретное «с 14:05 главная отдаёт 502, вот снимок» решается быстрее, чем «сайт не работает».
  8. Сообщите клиентам, если сбой затянулся. Удобнее всего через заранее подготовленную страницу статуса: клиенты сами видят, что проблема известна.

Не перезагружайте сервер и не переустанавливайте CMS «на всякий случай», пока не посмотрели журналы. Перезагрузка иногда помогает, но стирает следы причины, и через день сбой повторится.

Как узнавать о сбоях раньше клиентов

Самое неприятное в недоступном сайте не сам сбой, а то, что о нём сообщает клиент, когда сайт лежит уже несколько часов. Это решает мониторинг доступности: внешний сервис регулярно открывает сайт и пишет вам, если он не ответил.

В Monitor Linkodium это работает так:

  • сайт проверяется с интервалом от 1 до 60 минут: по коду ответа или по наличию нужной строки на странице, чтобы заметить и случай, когда сервер отвечает, но вместо страницы показывает ошибку;
  • сообщение о сбое с причиной (таймаут, код ответа, ошибка соединения) приходит в Telegram, на почту или на ваш Webhook, а после восстановления приходит второе, с длительностью простоя;
  • отдельно сервис раз в сутки проверяет срок SSL-сертификата и регистрации домена и заранее предупреждает: две частые причины из этой статьи можно исключить вовсе;
  • история проверок и инцидентов хранится 90 дней, по ней видно, когда сайт начал отвечать медленнее, ещё до того, как он перестал открываться.

До 10 сайтов можно поставить на мониторинг бесплатно, подробности на странице тарифов.

Вопросы и ответы

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

Чаще всего виноваты кеш DNS на компьютере, VPN или прокси, расширения браузера, антивирус или блокировка вашего IP-адреса защитой сайта. Проверьте сайт с мобильного интернета: если там он открывается, проблема на вашей стороне.

Что значит ошибка 502 Bad Gateway?

Веб-сервер принял запрос, но не получил ответа от приложения за ним: PHP, Node.js или другого бэкенда. Обычно приложение упало, перезапускается или не справляется с нагрузкой. Смотрите журнал ошибок веб-сервера и приложения.

Сколько ждать, если поменял DNS и сайт не открывается?

Старые записи держатся в кешах столько, сколько указано в их TTL, обычно от нескольких минут до суток. Изменение NS-серверов домена может расходиться до 24–72 часов.

Как узнать, что сайт упал, раньше клиентов?

Подключить мониторинг доступности: сервис проверяет сайт с заданным интервалом и присылает сообщение в Telegram или на почту, если сайт не отвечает. Заодно он предупредит об истечении SSL-сертификата и домена.

Подключите мониторинг за минуту

Вход по коду из письма, без пароля и банковской карты. До 10 сайтов бесплатно.

Начать мониторинг