Ошибка 520 бывает только у сайтов, которые стоят за Cloudflare. Посетитель видит его страницу с надписью «Web server is returning an unknown error», владелец видит, что посредник работает, и не понимает, что сломалось. Мы нашли среди сайтов Екатеринбурга один с постоянной 520 и разобрали, что она значит и как искать причину.
Что говорит Cloudflare
Код 520 не входит в стандарт HTTP. Это внутренний код компании: его ставят, когда сайт ответил так, что передать посетителю нечего. Справка описывает ошибку одной фразой: сайт вернул «an empty, unknown, or unexpected response» — пустой, неизвестный или неожиданный ответ.
Там же перечислены частые причины:
- машина сайта упала или неправильно настроена;
- защита на хостинге блокирует адреса посредника;
- заголовки ответа больше 128 КБ — «often due to excessive cookies», чаще всего из-за слишком большого числа кук;
- пустой или испорченный ответ без кода состояния или без тела;
- хостинг принимает соединение HTTP/2, но не соблюдает протокол;
- включена проверка сертификата посредника, а сайт не настроен её принимать.
Отдельно справка замечает, что 520 часто встречается у PHP-приложений, которые роняют веб-сервер.
Где стоит Cloudflare
Cloudflare работает посредником. Домен сайта указывает на его адреса, посетитель приходит к нему, а он уже спрашивает настоящий хостинг. Звеньев три: браузер, Cloudflare, сервер сайта. Ошибка 520 — это сообщение второго звена о третьем.
Поэтому на странице ошибки нарисована схема из трёх блоков. На странице, которую мы видели, подписано: браузер — «Working», узел в Стокгольме — «Working», сайт — «Error». Ниже объяснение: «There is an unknown connection issue between Cloudflare and the origin web server».
Наш замер: 520 больше двух лет
26 сентября 2026 года мы открыли главные страницы 2056 сайтов организаций
Екатеринбурга из OpenStreetMap — по одному запросу на адрес, со строкой
обычного браузера. За Cloudflare стоят 79 из них: это видно по заголовкам
Server: cloudflare и CF-Ray.
Коды у этих 79 сайтов:
| Код | Сайтов |
|---|---|
| 200 | 43 |
| 403 | 20 |
| 301 и 302 | 10 |
| 404 | 2 |
| 444 | 2 |
| 502 | 1 |
| 520 | 1 |
Ошибку 520 вернул сайт гостиницы. Мы проверили его по-разному:
| Как спрашивали | Результат |
|---|---|
| главная, три запроса подряд | 520 все три раза, ответ за 0,5–0,7 секунды |
robots.txt, favicon.ico, несуществующий адрес | 520 на каждом |
| по IPv4 и по IPv6 | 520 |
| по http вместо https | 520 |
| из российской сети | 520 |
| со строкой робота Яндекса | 520 |
Ошибка приходит быстро, меньше чем за секунду, и на любой адрес. Значит, дело не в тяжёлой странице и не в защите от роботов: машина за посредником не отвечает по правилам ни на что.
Как давно это длится, показывает веб-архив. Последний снимок с кодом 200 — 4 октября 2022 года. Следующие три снимка, с 23 августа по 19 декабря 2024 года, — уже 520. Сайт стоит сломанным больше двух лет, а домен по-прежнему продлён и подключён к посреднику.
Что видит браузер и что видит программа
Один и тот же ответ выглядит по-разному. Браузер Chrome получил страницу HTML со схемой из трёх блоков и заголовком «520: Web server is returning an unknown error». Утилита curl получила 16 байт простого текста:
error code: 520
Заголовок Content-Type: text/plain, никакой страницы. Так было и тогда,
когда мы просили HTML заголовком Accept: text/html.
Для владельца это важно. Если сайт проверяет программа-монитор, она увидит код 520 и короткий текст — этого достаточно, чтобы поднять тревогу. А вот монитор, который ищет на странице слово, выдаст ошибку «слово не найдено» и не скажет, в чём дело.
Чем 520 отличается от 502
В той же выборке был сайт адвокатской конторы с ошибкой 502. Страница тоже
фирменная, и тоже приходит на любой адрес: главная,
robots.txt, несуществующая страница.
Разница — в том, кто придумал код. По справке, брендированная страница 502 появляется, когда сайт «responds with a standard HTTP 502 bad gateway». То есть хостинг ответил, и ответил по правилам: «у меня 502». Посредник просто передал это дальше. Значит, у хостинга есть своё звено за спиной — приложение или ещё один прокси, — и сломано именно оно.
520 — другое. Годного ответа HTTP не было вовсе: соединение закрыто, пришла пустота или ответ без кода. Передавать нечего, и посредник ставит свой код.
Таких кодов целое семейство. Все описывают связь между посредником и хостингом:
| Код | Что случилось, по справке |
|---|---|
| 520 | сервер вернул пустой, неизвестный или неожиданный ответ |
| 521 | сервер отказал в соединении |
| 522 | соединение с сервером не установилось за отведённое время |
| 523 | до сервера невозможно добраться |
| 524 | соединение есть, но ответа нет дольше 125 секунд |
| 525 | не удалось установить защищённое соединение с сервером |
| 526 | сертификат сервера не прошёл проверку |
Если 502 — это «хостинг сказал, что сломано звено за ним», то 520 — «хостинг что-то сказал, но не на языке HTTP».
Как найти причину
Посетитель тут ничего не сделает. Владельцу сайта или его подрядчику справка советует такой порядок.
- Журнал ошибок сервера. Найти в нём время, когда пришла 520. Если сервер падает или приложение роняет процесс, это будет видно там.
- Номер запроса. На странице ошибки и в заголовке
CF-Rayстоит номер. С ним поддержка найдёт конкретный запрос. - Страница диагностики. Адрес
/cdn-cgi/traceна домене отдаёт короткую справку: какой узел Cloudflare принял запрос, по какому протоколу, из какой страны. Она работает даже на сломанном сайте — мы открыли её у гостиницы, и она ответила. - Временно убрать Cloudflare. Справка предлагает переключить запись DNS в режим «DNS only» или поставить Cloudflare на паузу. Тогда браузер пойдёт на хостинг напрямую и покажет его настоящий ответ.
- Проверить частые причины. Размер заголовков и кук, настройку HTTP/2, правила защиты, которые могут резать адреса посредника.
Если хостинг ответил 200, а посетитель увидел 520, справка называет вероятную причину: ответ испорчен, например, слишком большие заголовки или сервер рано закрыл соединение. Это видно в аналитике, где рядом стоят код хостинга и код, отданный посетителю.
Что 520 значит для поиска
Робот поисковика получает ту же 520, что и посетитель. Справка Вебмастера предупреждает: если роботу не удалось подключиться к сайту из-за ошибки сервера, «сайт может полностью пропасть из поиска». Там же сказано, что страница с кодом, отличным от 200, «недоступна для роботов и посетителей и не может попасть в поиск».
Короткая 520 на время перезагрузки сервера страшна не больше короткой
502. Опасна постоянная, как у гостиницы из нашей выборки: там 520 отдаёт
даже robots.txt, и робот не может получить с сайта вообще ничего.
Чего мы проверить не смогли
- Причину 520 у гостиницы. Настоящий адрес её хостинга скрыт, и что он отвечает на самом деле, снаружи не видно.
- Какие поломки дают 520, а какие 502. Для этого нужен свой сайт за посредником и машина, которая ломается нарочно. Такого стенда мы не собирали, поэтому в статье только справка и живые сайты.
- Остался ли сайт гостиницы в поиске. Выдачу мы не проверяли.
Границы замера
Выборка — главные страницы 2056 сайтов из одного города, по одному
запросу 26 сентября 2026 года. Разовый обход ловит только постоянные
поломки: 520 на время перезагрузки сервера в него не попадёт. Число сайтов
за Cloudflare определено по заголовкам ответа; сайт, который прячет
заголовок Server, мог остаться неучтённым.
Коротко
- 520 — код Cloudflare, а не стандарт HTTP. Он значит, что сайт ответил пустотой или ответом, который нельзя разобрать.
- Сломан хостинг, а не посредник. Это видно по схеме на странице ошибки: браузер и узел Cloudflare работают, ошибка у сайта.
- 502 за посредником значит другое: хостинг сам ответил «502», а сломано звено за ним.
- Браузер видит страницу Cloudflare, программа — 16 байт текста
error code: 520. - Причину ищут в журнале хостинга, по номеру
CF-Rayи временным отключением посредника. - Постоянная 520 закрывает сайт и для людей, и для роботов: у гостиницы из нашей выборки так больше двух лет.
