Apa kode status HTTP yang benar untuk dikirim saat situs sedang dalam pemeliharaan?

88

Apakah ada kode status HTTP untuk memberi tahu Google (dan lainnya) untuk pergi, indeks saya lagi nanti ?

Pada dasarnya, salah satu yang secara semantik memberi tahu klien bahwa situs sedang dalam pemeliharaan?

Yang saya pertimbangkan adalah

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

Saya condong ke yang terakhir, tetapi hanya ingin tahu pilihan mana yang tepat .

alex
sumber

Jawaban:

115

HTTP 503 - Layanan Tidak Tersedia adalah yang paling sesuai.

Server Web (menjalankan situs Web) saat ini tidak dapat menangani permintaan HTTP karena kelebihan beban sementara atau pemeliharaan server. Implikasinya, ini merupakan kondisi sementara yang akan teratasi setelah beberapa penundaan.

Posting di Forum Pusat Webmaster Google ini juga relevan:

Ya - 503 adalah respons server yang benar untuk "Kami ditutup". Jika Anda mengganti halaman HTML biasa yang mengatakan "Kami tutup" dan menayangkan 200 halaman, kemungkinan besar halaman itu akan diindeks oleh Google.

Jika Anda memberikan Googlebot 503, itu akan hilang begitu saja dan kembali lagi nanti tanpa mengindeks apa yang Anda berikan.


MEMPERBARUI:

Mengenai implementasi php, Anda mungkin tertarik untuk membaca artikel berikut:

Perhatikan juga retry-aftertajuknya, tempat Anda dapat menentukan setelah berapa detik permintaan lain harus dicoba ulang.

Daniel Vassallo
sumber
Sepertinya ini tidak lagi berfungsi dengan http2 - saat saya mengirim 503 dengan halaman pemeliharaan, Chrome menampilkan ERR_HTTP2_PROTOCOL_ERROR. Jika saya mengirim 200, semuanya baik
Xosofox
3

Saya akan menganggap 503 sebagai yang paling tepat, karena grup 5xx dimaksudkan untuk kesalahan server secara umum.

Ham Vocke
sumber
3

503 Layanan tidak tersedia

dan04
sumber