Який правильний код стану 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 призначена для помилок сервера загалом.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.