Как отключать сайт на обслуживание в 2026 году и не потерять позиции: полный разбор кода 503

Рано или поздно сайт приходится гасить: обновление ядра, патч безопасности PHP, миграция на новый сервер, тяжёлая работа с базой данных. Для владельца сайта, который зарабатывает на трафике, эти несколько минут или часов простоя — не просто технический эпизод. То, какой HTTP-код ответа увидит поисковый робот в этот момент, напрямую решает, останутся ли ваши страницы в индексе и вернётся ли органический трафик (а с ним и доход) в прежнем объёме.
Главное правило короткое: при плановом или аварийном отключении отдавайте код 503 (Service Unavailable). Он сообщает поисковику, что перебой временный, и уже проиндексированные URL нужно сохранить. Но вокруг этого правила есть несколько нюансов, из-за которых многие сайты теряют позиции на ровном месте.
Что такое 503 и как его понимает поисковик
HTTP-код ответа — это сигнал, который сервер отправляет вместе со страницей. Браузеру он нужен, чтобы понять, как себя вести; поисковому роботу — чтобы решить, что делать с URL в индексе.
- 200 OK — всё в порядке, вот содержимое страницы.
- 404 Not Found — страницы нет.
- 503 Service Unavailable — сервис временно недоступен, зайдите позже.
Ключевое слово — «временно». Когда робот видит 503, он понимает: страница существует, просто сейчас её нельзя отдать. Поэтому URL остаётся в индексе, а робот возвращается позже. Как только сайт снова начинает отвечать кодом 200, всё постепенно приходит в норму само собой, без ручных действий.
Шкала кодов: от лучшего к худшему
Если отключения не избежать, коды ответа можно расположить по степени «безопасности» для SEO — от самого безопасного к самому вредному:
503 → 500 → 403 → 404 → 200 (страница ошибки)
- 503 — идеальный вариант: «временно недоступно».
- 500 (внутренняя ошибка сервера) — хуже, но поисковик всё ещё воспринимает это как сбой, а не как «страницы больше нет».
- 403 (доступ запрещён) — неоднозначный сигнал.
- 404 (не найдено) — плохо: вы фактически говорите, что страницы не существует.
- 200 на странице с текстом «Ведутся технические работы» — самый опасный вариант.
Последний пункт — главная ловушка новичков. Если во время работ сервер отдаёт заглушку «Сайт на обслуживании» с кодом 200 OK, поисковик считает, что это и есть полноценная страница. В результате он может проиндексировать саму заглушку вместо вашего контента: вместо статьи или карточки товара в выдаче окажется строчка «Ведутся технические работы». Такое поведение Google подтверждал ещё много лет назад и позиция с тех пор не менялась.
Самая частая ошибка: 503 нельзя отдавать средствами PHP
А вот нюанс, который ломает всю схему. Многие инструкции советуют отдавать 503 с помощью PHP-кода (http_response_code(503) и т.п.). Это работает — но только пока сам PHP жив.
Проблема в том, что чаще всего сайт гасят именно для того, чтобы обновить или перезапустить PHP — например, при экстренном патче безопасности. В этот момент PHP недоступен, а значит, никакой PHP-скрипт код 503 отдать уже не сможет. Запросы начнут отваливаться по таймауту, возвращать 500 или 404 — то есть именно те коды, которых мы хотели избежать.
Вывод: код 503 должен отдавать слой, который продолжает работать, когда PHP выключен. Это может быть:
- правило на уровне CDN (например, кастомная страница обслуживания в Cloudflare);
- конфигурация веб-сервера (Nginx или Apache), не зависящая от PHP;
- временный сервер-заглушка, на который перенаправлен DNS;
- отдельный балансировщик нагрузки.
Представители Google прямо указывали: при отключении PHP-сайтов отдавайте 503 вне PHP — через CDN, настройки веб-сервера или переключение DNS, а не полагайтесь на сам PHP.
robots.txt — особое правило
Отдельно стоит запомнить: файл robots.txt отдавать с кодом 503 нельзя. Если поисковик получает 503 на robots.txt, он трактует это как «сейчас читать правила нельзя» и приостанавливает обход всего сайта целиком. Пока основной сайт на обслуживании, robots.txt должен продолжать отвечать нормально (кодом 200), чтобы робот мог видеть сайт и корректно вернуться позже.
Заголовок Retry-After: подскажите роботу, когда вернуться
Вместе с кодом 503 (или 429) можно отправить HTTP-заголовок Retry-After. Он сообщает краулеру, когда стоит зайти снова. Указать время можно двумя способами:
- количеством секунд:
Retry-After: 3600 - конкретной датой и временем в формате
UTC: Retry-After: Wed, 28 Oct 2026 08:00:00 GMT
Это необязательный, но полезный сигнал: он помогает поисковику не тратить попытки обхода впустую и быстрее вернуться, когда вы закончите работы.
Сколько можно держать 503
503 — это краткосрочная мера. Документация Google прямо не рекомендует держать такой код дольше 1–2 дней: если один и тот же URL отвечает ошибкой сервера несколько дней подряд, он может выпасть из индекса. Формулировка в документации Google однозначна: проиндексированные URL с серверными ошибками какое-то время сохраняются, но в итоге удаляются.
При этом короткие отключения абсолютно безопасны. По комментариям представителей Google, 503 длительностью 10–15 минут время от времени — это вообще не «длительный простой», и беспокоиться не о чем. Полное отключение сайта Google называет крайней мерой, которая должна длиться максимум несколько дней.
Что при этом происходит с краулингом, сниппетами и доходом
Коды 500, 503 и 429 Google использует как сигнал срочно снизить нагрузку от краулера. Если робот массово натыкается на такие ответы, он снижает скорость обхода по всему хосту — включая те URL, которые ещё отдают нормальный контент. Когда ошибок становится меньше, скорость обхода автоматически восстанавливается. Но у замедленного обхода есть прямые последствия для сайта, который зарабатывает на поиске:
- Новые страницы находятся медленнее. Googlebot реже открывает свежие URL — значит, ваши новые статьи или товары попадут в индекс позже.
- Существующие страницы обновляются реже. Изменения цен, наличия, акций доходят до выдачи с задержкой.
- Сниппеты «замораживаются». Пока страница отвечает кодом 503, Google не может обновить title, description, метаданные и структурированные данные (Schema). Для магазина это значит, что в выдаче могут висеть устаревшие цены или статус «в наличии».
- Рекламные кампании могут приостановиться. При проблемах с доступностью сайта рекламные кампании (в том числе Google Ads) могут ставиться на паузу или отклоняться — прямой удар по платному трафику и конверсиям.
Практика: как технически отдать 503
Ниже — рабочие подходы в зависимости от вашей инфраструктуры.
Cloudflare / любой CDN. Настройте страницу обслуживания на уровне CDN (например, через Cloudflare Workers, правила трансформации или кастомную error-страницу). CDN продолжает работать, даже когда ваш origin-сервер или PHP выключены, и может сам отдавать 503 с нужным заголовком Retry-After. Это самый надёжный способ именно для случая «гасим PHP».
Nginx. Можно переключить сайт в режим обслуживания на уровне конфигурации, минуя PHP:
nginx
location / {
return 503;
}
error_page 503 @maintenance;
location @maintenance {
root /var/www/maintenance;
rewrite ^(.*)$ /maintenance.html break;
add_header Retry-After 3600;
}
Важно: правило для robots.txt оставьте отдельным, чтобы он продолжал отдавать 200.
Apache (.htaccess). Через mod_rewrite можно перенаправить все запросы на статическую заглушку с кодом 503, исключив из правила robots.txt и файл самой заглушки. Главное — не завязывать это на PHP-обработчик.
WordPress. Встроенный режим обслуживания и многие плагины по умолчанию отдают 503 — это хорошо. Но обязательно проверьте код ответа руками: часть плагинов и кастомных заглушек отдают 200, и тогда вы попадаете ровно в ту ловушку, о которой шла речь выше. Для патча самого PHP режим обслуживания WordPress не поможет (он на PHP и написан) — нужен уровень выше.
Как проверить, что отдаётся правильный код
Не доверяйте внешнему виду страницы — проверяйте реальный код ответа:
- curl в терминале: curl -I https://ваш-сайт.ru — в ответе смотрите строку
HTTP/… 503и наличиеRetry-After. - DevTools браузера: вкладка Network → кликните на документ → поле Status.
- Search Console: инструмент проверки URL покажет, что именно увидел Googlebot при последнем обходе.
- Онлайн-чекеры кода ответа — для быстрой проверки отдельных URL, в том числе robots.txt.
Проверьте и несколько внутренних страниц, и robots.txt отдельно: частая ошибка — когда 503 случайно накрывает и его.
Сценарии по длительности простоя
- Минуты (до ~15 мин). Короткий перезапуск — можно даже не переживать, но 503 всё равно отдать стоит.
- Часы. Отдавайте 503 с
Retry-After, следите, чтобы robots.txt оставался доступным. - 1–2 дня. Верхняя граница безопасности для 503. Дольше — риск выпадения URL из индекса.
- Дольше 1–2 дней. 503 больше не подходит. Google рекомендует отдавать индексируемую заглушку с кодом 200 — например, упрощённую, но настоящую главную страницу с объяснением ситуации и датой возвращения. Как только сайт снова отвечает кодом 200 на всех URL, обход и индексация восстанавливаются постепенно.
Контекст 2026: версии PHP и AI-краулеры
Тема кода 503 снова стала актуальной из-за ситуации с безопасностью PHP. По состоянию на 2026 год официально поддерживаются только ветки PHP 8.2, 8.3, 8.4 и 8.5; всё, что 8.1 и ниже, достигло конца жизни (PHP 8.1 — 31 декабря 2025 года). Это значит, что всё больше сайтов работает на версиях без регулярных официальных обновлений и вынуждено экстренно накатывать патчи безопасности — то есть гасить PHP. Именно поэтому важно уметь правильно отдавать 503 вне PHP. Если вы ещё на 8.1 или старше — плановый апгрейд до поддерживаемой ветки снизит частоту таких авралов.
Отдельный момент 2026 года — рост доли AI-краулеров (роботов ChatGPT, Claude, Perplexity и др.), которые тоже обходят сайты и формируют видимость в AI-поиске. Корректный код 503 так же важен и для них: вы сообщаете, что перебой временный, и снижаете риск выпасть из источников, на которые ссылаются AI-ответы. Логика та же, что и с Googlebot: временный сбой — это 503, а не 404 и не заглушка с кодом 200.
Чек-лист планового обслуживания
- Заранее решите, каким слоем будете отдавать 503 (CDN, веб-сервер, DNS) — особенно если гасите PHP.
- Настройте отдачу 503 для всех пользовательских URL.
- Добавьте заголовок
Retry-Afterс реалистичным временем. - Убедитесь, что robots.txt отвечает кодом 200, а не 503.
- Проверьте реальный код ответа через curl / DevTools / Search Console.
- Уложитесь в 1–2 дня; если дольше — переходите на заглушку с 200.
- После работ убедитесь, что все URL снова отдают 200, и проследите за восстановлением обхода в Search Console.
Частые ошибки, которые стоят трафика
- Заглушка «Технические работы» с кодом 200 вместо 503.
- Попытка отдать 503 средствами PHP при обновлении самого PHP.
- Код 503 на robots.txt — полная остановка обхода.
- Затянувшееся обслуживание дольше 1–2 дней на коде 503.
- Отсутствие проверки реального кода ответа после настройки.
Итог
Отключение сайта само по себе не роняет позиции — роняет их неправильный сигнал поисковику. Короткий, честный «503 + Retry-After», отданный на уровне выше PHP, с живым robots.txt и возвращением к коду 200 в течение пары дней — это всё, что нужно, чтобы пережить обслуживание без потери индекса, трафика и дохода. Все остальные варианты — 404, таймауты и особенно заглушки с кодом 200 — рано или поздно обойдутся дороже, чем сам простой.
Поделиться статьёй
Отправьте её в соцсети или скопируйте AI-промпт.



