รหัสสถานะ HTTP ที่ถูกต้องที่จะส่งเมื่อไซต์ไม่ได้รับการบำรุงรักษาคืออะไร


88

มีรหัสสถานะ HTTP เพื่อบอกให้ Google (และคนอื่น ๆ ) เลิกใช้งานดัชนีฉันอีกครั้งในภายหลังหรือไม่

โดยทั่วไปแล้วสิ่งที่บอกลูกค้าอย่างมีความหมายว่าไซต์หยุดอยู่ระหว่างการบำรุงรักษา?

สิ่งที่ฉันได้พิจารณาคือ

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

ฉันเอนเอียงไปทางสุดท้าย แต่ก็แค่อยากรู้ว่าอันไหนคือตัวเลือกที่เหมาะสม

คำตอบ:


115

HTTP 503 - บริการไม่พร้อมใช้งานน่าจะเหมาะสมที่สุด

ขณะนี้เว็บเซิร์ฟเวอร์ (เรียกใช้เว็บไซต์) ไม่สามารถจัดการกับคำร้องขอ HTTP ได้เนื่องจากเซิร์ฟเวอร์ทำงานเกินหรือบำรุงรักษาชั่วคราว ความหมายก็คือว่านี่เป็นอาการชั่วคราวซึ่งจะบรรเทาลงหลังจากล่าช้าไปบ้าง

โพสต์นี้ในฟอรัม Google Webmaster Central ยังเกี่ยวข้อง:

ใช่ - 503 คือการตอบสนองของเซิร์ฟเวอร์ที่ถูกต้องสำหรับ "เรากำลังปิด" หากคุณแทนที่หน้า HTML ปกติว่า "เรากำลังปิด" และให้บริการ 200 รายการ Google มีแนวโน้มที่จะได้รับการจัดทำดัชนี

หากคุณให้ Googlebot 503 มันจะหายไปและกลับมาใหม่ในภายหลังโดยไม่ต้องจัดทำดัชนีสิ่งที่คุณให้


อัพเดท:

สำหรับการใช้งาน php คุณอาจสนใจอ่านบทความต่อไปนี้:

นอกจากนี้โปรดสังเกตที่retry-afterส่วนหัวซึ่งคุณสามารถระบุได้ว่าจะลองขอใหม่อีกครั้งภายในกี่วินาที


ดูเหมือนว่าจะใช้ไม่ได้กับ http2 อีกต่อไป - เมื่อฉันส่ง 503 พร้อมหน้าการบำรุงรักษา Chrome จะแสดง ERR_HTTP2_PROTOCOL_ERROR ถ้าฉันส่ง 200 ทุกอย่างก็ดี
Xosofox

8

จากhttp://www.google.com/support/webmasters/bin/answer.py?hl=th&answer=40132

503 (บริการไม่พร้อมใช้งาน) เซิร์ฟเวอร์ไม่พร้อมใช้งานในขณะนี้ (เนื่องจากมีการโหลดมากเกินไปหรือหยุดทำงานเพื่อบำรุงรักษา) โดยทั่วไปนี่เป็นสถานะชั่วคราว


3

ฉันคิดว่า 503 เหมาะสมที่สุดเนื่องจากกลุ่ม 5xx มีไว้สำหรับข้อผิดพลาดของเซิร์ฟเวอร์โดยทั่วไป


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.