503 Service Unavailable
Lỗi HTTP tạm thời cho biết máy chủ không thể xử lý yêu cầu do quá tải hoặc đang bảo trì.
503 Service Unavailable là gì?
Lỗi 503 Service Unavailable là một mã trạng thái HTTP tạm thời (status code 503), báo hiệu rằng máy chủ hiện tại không thể xử lý yêu cầu của người dùng — không phải do lỗi cấu hình hay thiếu nội dung, mà vì máy chủ đang quá tải, đang trong quá trình bảo trì, hoặc chưa sẵn sàng phục vụ (ví dụ: hệ thống backend chưa khởi động xong).
Khác với lỗi 404 (không tìm thấy trang) hay 500 (lỗi máy chủ chung), mã 503 mang tính tạm thời và yêu cầu trình duyệt hoặc công cụ tìm kiếm hiểu rằng trang sẽ hoạt động trở lại sau một khoảng thời gian ngắn.
Tại sao quan trọng trong SEO?
Khi Googlebot hoặc các bot tìm kiếm khác gặp mã 503, chúng hiểu đây là tình huống tạm thời. Vì vậy, thay vì xóa trang khỏi chỉ mục (như khi gặp 404 vĩnh viễn hoặc 410), bot sẽ quay lại kiểm tra sau — thường trong vài giờ đến vài ngày, tùy vào tần suất thu thập và mức độ tin cậy của trang.
Nếu bạn để trang trả về 503 trong thời gian dài (trên 7 ngày liên tục), Google có thể bắt đầu coi đây là tình huống gần như vĩnh viễn và giảm dần khả năng giữ trang trong chỉ mục. Ngược lại, việc sử dụng đúng 503 giúp bảo vệ thứ hạng, tránh mất lưu lượng truy cập tự nhiên đột ngột và duy trì tín nhiệm với công cụ tìm kiếm.
Đây cũng là cách chuyên nghiệp để thông báo cho người dùng và bot rằng: “Chúng tôi biết bạn đang tìm trang này, và sẽ phục vụ lại sớm nhất có thể”.
Cách hoạt động
Khi một yêu cầu HTTP được gửi tới máy chủ (ví dụ: người dùng mở trang chủ), máy chủ kiểm tra trạng thái hệ thống trước khi trả lời. Nếu hệ thống phát hiện:
- Không đủ tài nguyên CPU/bộ nhớ để xử lý thêm yêu cầu,
- Cơ sở dữ liệu đang tắt hoặc không phản hồi,
- Một dịch vụ phụ trợ (API, cache, CDN) đang lỗi hoặc chưa khởi động,
- Hoặc quản trị viên chủ động kích hoạt chế độ bảo trì (maintenance mode),
máy chủ sẽ trả về mã trạng thái 503 kèm tiêu đề Retry-After (tùy chọn), thông báo thời điểm dự kiến phục hồi.
Trình duyệt hiển thị thông báo lỗi mặc định (ví dụ: “Service Unavailable”), còn bot tìm kiếm ghi nhận và lên lịch quét lại theo cơ chế riêng.
Hướng dẫn thực hiện
Để triển khai mã 503 đúng cách, bạn cần đảm bảo cả kỹ thuật và chiến lược:
- Thiết lập chính xác trên máy chủ: Dùng cấu hình Apache (.htaccess hoặc httpd.conf) hoặc Nginx (trong block server/location) để trả về 503 khi cần. Ví dụ Nginx:
return 503; error_page 503 /503.html;
- Thêm tiêu đề
Retry-After: Gửi cùng phản hồi để hướng dẫn bot quét lại. Có thể là số giây (ví dụ:Retry-After: 3600) hoặc ngày giờ chuẩn RFC 1123 (ví dụ:Retry-After: Wed, 01 Jan 2025 12:00:00 GMT). Giá trị này nên phản ánh thời gian bảo trì thực tế — không đặt quá ngắn gây quá tải bot, cũng không quá dài làm chậm phục hồi chỉ mục. - Hiển thị trang lỗi thân thiện: Thiết kế trang 503.html đơn giản, có thông báo rõ ràng (“Đang bảo trì — quay lại sau 30 phút”), logo thương hiệu và nút “Thông báo khi hoạt động lại”. Không chèn JavaScript nặng hoặc hình ảnh không cần thiết.
- Không chặn bot bằng robots.txt: Đảm bảo file robots.txt vẫn cho phép Googlebot truy cập (không chặn
Disallow: /hoặcDisallow: /503.html), vì bot cần đọc mã trạng thái để hiểu ngữ cảnh. - Theo dõi thời gian trả về 503: Sử dụng công cụ như Google Search Console > Báo cáo bao phủ > lọc “Lỗi máy chủ (5xx)” để phát hiện 503 bất thường. Nếu xuất hiện ngoài kế hoạch, cần kiểm tra log máy chủ ngay.
Lỗi thường gặp
Dưới đây là những sai lầm phổ biến khi xử lý mã 503 và cách khắc phục:
| Lỗi | Hệ quả SEO | Cách khắc phục |
|---|---|---|
| Dùng 503 trong thời gian bảo trì kéo dài hơn 1 tuần | Google có thể loại trang khỏi chỉ mục hoặc giảm độ ưu tiên | Giới hạn bảo trì dưới 72 giờ; nếu cần lâu hơn, cân nhắc chuyển sang 503 + trang giới thiệu sản phẩm/dịch vụ thay thế, hoặc dùng 302 redirect tới trang tạm thời có nội dung hữu ích |
Trả 503 nhưng không có tiêu đề Retry-After |
Bot không biết khi nào quay lại → có thể quét lại quá sớm hoặc quá muộn | Luôn thêm Retry-After với giá trị hợp lý (tùy trường hợp) |
| Trả 503 cho toàn bộ trang web khi chỉ một phần bị lỗi | Mất chỉ mục toàn bộ site dù chỉ 1 module API sập | Chỉ áp dụng 503 ở mức route cụ thể (ví dụ: /api/*), không áp dụng toàn domain trừ khi toàn bộ hệ thống ngừng hoạt động |
Ví dụ thực tế
Ví dụ 1: Một sàn thương mại điện tử tiến hành nâng cấp cơ sở dữ liệu vào 2h–4h sáng. Quản trị viên cấu hình Nginx trả 503 cho tất cả yêu cầu từ 1h55 đến 4h05, kèm Retry-After: 300 (5 phút). Trang 503.html hiển thị đồng hồ đếm ngược và nút đăng ký nhận thông báo. Googlebot quét lại sau 5 phút và ghi nhận trang hoạt động bình thường lúc 4h10 — không có thay đổi nào trong chỉ mục.
Ví dụ 2: Một blog cá nhân dùng WordPress gặp lỗi plugin gây treo PHP-FPM. Máy chủ trả 503 toàn cục trong 3 ngày vì không phân biệt được lỗi cục bộ. Kết quả: 42% trang bị loại khỏi chỉ mục trong GSC sau 5 ngày. Sau khi sửa, phải gửi yêu cầu lập chỉ mục thủ công và chờ 2 tuần để phục hồi đầy đủ.
Câu hỏi thường gặp
503 có ảnh hưởng đến thứ hạng không?
Nếu dùng đúng cách và trong thời gian ngắn (dưới 72 giờ), 503 hầu như không ảnh hưởng đến thứ hạng. Google giữ nguyên tín hiệu liên kết và lịch sử thu thập. Nhưng nếu kéo dài hoặc lặp lại thường xuyên, hệ thống có thể đánh giá site thiếu ổn định — điều này gián tiếp làm giảm độ tin cậy trong mắt thuật toán.
503 khác gì so với 502 và 504?
502 Bad Gateway xảy ra khi máy chủ trung gian (ví dụ: reverse proxy, CDN) không nhận được phản hồi hợp lệ từ máy chủ gốc. 504 Gateway Timeout xảy ra khi máy chủ trung gian chờ quá lâu mà không có phản hồi. Còn 503 là máy chủ gốc tự nguyện từ chối phục vụ — tức là nó đang hoạt động, nhưng chủ động không xử lý yêu cầu. Đây là điểm khác biệt then chốt về mặt ý nghĩa và xử lý SEO.
Có nên dùng 302 thay vì 503 khi bảo trì?
Không. 302 là redirect tạm thời — phù hợp khi bạn muốn đưa người dùng tới một trang khác (ví dụ: trang giới thiệu bảo trì), nhưng không truyền đúng ngữ cảnh “máy chủ không sẵn sàng”. Nếu bạn 302 tới trang khác mà trang đó trả 200, Googlebot sẽ lập chỉ mục trang đích chứ không giữ lại trang gốc. Còn 503 giữ nguyên URL gốc trong chỉ mục và đợi phục hồi — đây là hành vi đúng chuẩn.