Какой код статуса HTTP нужно отправлять, когда сайт не работает на техническое обслуживание?

87

Есть ли код состояния HTTP, чтобы сообщить Google (и другим) уйти и снова проиндексировать меня позже ?

По сути, тот, который семантически сообщает клиентам, что сайт закрыт на техническое обслуживание?

Я рассмотрел

304 => Not modified
307 => Temporary redirect
410 => Gone
503 => Service Unavailable

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

Алекс
источник

Ответы:

113

HTTP 503 - служба недоступна была бы наиболее подходящей.

Веб-сервер (на котором запущен веб-сайт) в настоящее время не может обработать HTTP-запрос из-за временной перегрузки или обслуживания сервера. Подразумевается, что это временное состояние, которое улучшится после некоторой задержки.

Этот пост на Центральном форуме Google для веб-мастеров также актуален:

Да, 503 - правильный ответ сервера на «Мы закрыты». Если вы замените обычную HTML-страницу с сообщением «Мы закрыты» и выдадите 200, она, скорее всего, будет проиндексирована Google.

Если вы поставите роботу Googlebot 503, он просто уйдет и вернется позже, не индексируя то, что вы ему даете.


ОБНОВИТЬ:

Что касается реализации php, вам может быть интересно ознакомиться со следующей статьей:

Также обратите внимание на retry-afterзаголовок, где вы можете указать, через сколько секунд следует повторить попытку другого запроса.

Даниэль Вассалло
источник
Похоже, это больше не работает с http2 - когда я отправляю 503 со страницей обслуживания, Chrome показывает ERR_HTTP2_PROTOCOL_ERROR. Если я отправлю 200, все в порядке
Xosofox
3

Я считаю, что 503 является наиболее подходящим, поскольку группа 5xx предназначена для ошибок сервера в целом.

Хэм Воке
источник