Server

503 Service Unavailable — Penyebab dan Cara Mengatasinya

Diperbarui 2026-08-30Baca ~8 menit

503 Service Unavailable berarti server sedang berjalan, memahami permintaan dengan sempurna, dan menolak melayaninya sekarang. Itu perbedaan penting dibanding 500 atau 502 — tidak ada yang rusak dalam arti biasa, layanannya hanya sementara tidak siap.

Karena itu 503 terbagi menjadi dua kelompok yang sangat berbeda. Kelompok pertama disengaja: Anda mengaktifkan mode maintenance, atau sebuah aturan rate limit sedang bekerja sebagaimana mestinya. Kelompok kedua tidak disengaja: server sudah begitu kewalahan sehingga melindungi diri dengan berhenti menerima permintaan baru. Hal pertama yang harus dilakukan selalu menentukan Anda ada di kelompok mana.

Beda 503 dengan 500, 502, dan 504

Keempatnya adalah error 5xx sehingga terlihat sama bagi pengunjung, tapi penyebabnya ada di tempat yang sama sekali berbeda.

KodeApa yang terjadiDisengaja?
503 Service UnavailableServer menolak pekerjaan saat iniSering kali ya
500 Internal Server ErrorKode gagal di tengah jalanTidak
502 Bad GatewayBackend mati atau balasannya rusakTidak
504 Gateway TimeoutBackend hidup tapi terlalu lambatTidak
💡 503 satu-satunya kode 5xx yang punya varian sepenuhnya sehat. Halaman maintenance yang mengembalikan 503 beserta header Retry-After adalah praktik yang benar, dan Google memahami maksudnya dengan tepat.

Penyebab umum, dari yang paling sering

  • Mode maintenance yang tersangkut. Di WordPress, pembaruan yang gagal meninggalkan file .maintenance di folder root dan situs terus menampilkan 503 sampai file itu dihapus.
  • Worker PHP-FPM habis. Semua proses sibuk, antrean penuh, dan process manager mulai menolak permintaan baru alih-alih mengantre tanpa batas.
  • RAM habis. Kernel membunuh proses untuk membebaskan memori, layanan jadi setengah hidup, dan proxy di depannya mengembalikan 503.
  • Plugin atau tema bermasalah yang membuat PHP gagal massal. Biasanya diselingi 500, dan hampir selalu dimulai tepat setelah sebuah pembaruan.
  • Rate limiting atau aturan anti-DDoS. Cloudflare, ModSecurity, dan modul rate-limit memakai 503 saat memblokir trafik di atas ambang batas.
  • Lonjakan pengunjung melebihi kapasitas server. Artikel yang viral maupun gelombang bot menghasilkan gejala yang persis sama.
  • Layanan backend belum selesai menyala. Setelah reboot, Nginx naik beberapa detik lebih dulu daripada aplikasi dan semua permintaan di jeda itu mendapat 503.

Periksa dengan urutan ini

  • Kalau ini WordPress, periksa file .maintenance di folder root lebih dulu. File itu muncul saat pembaruan terputus, dan menghapusnya adalah perbaikan lima detik.
  • Pastikan layanan backend berjalan. Jalankan "systemctl status php8.2-fpm" atau yang sesuai stack Anda; kalau mati, hidupkan lalu baca log untuk tahu penyebabnya.
  • Periksa RAM dengan "free -m" dan cari jejak OOM killer dengan "dmesg | grep -i oom". Kalau kernel sudah membunuh proses, sisanya hanya akibat.
  • Lihat log PHP-FPM untuk peringatan soal pm.max_children. Kalau ada, worker Anda habis dan yang perlu ditangani adalah bagian lambat yang menahannya, bukan sekadar menambah worker.
  • Baca error log Nginx atau Apache sambil memuat ulang halaman. 503 karena rate limit terlihat sangat berbeda dari 503 karena backend mati, dan log menyatakannya dengan jelas.
  • Kalau situs di belakang Cloudflare, periksa apakah halaman error datang dari Cloudflare atau dari server. Halaman Cloudflare mencantumkan ray ID; kalau begitu, aturannya ada di dashboard mereka.
  • Kalau baru terjadi setelah sebuah pembaruan, nonaktifkan plugin terakhir lewat FTP dengan mengganti nama foldernya. Ini pemeriksaan tercepat saat Anda tidak bisa masuk halaman admin.

Cara memakai 503 dengan benar saat maintenance

Saat Anda sengaja menutup situs untuk pembaruan, 503 justru kode yang tepat — asal Anda menyertakan informasi yang diperlukan.

Selalu sertakan header Retry-After berisi jumlah detik atau waktu tertentu. Header ini memberi tahu mesin pencari bahwa kondisinya sementara dan kapan sebaiknya kembali, alih-alih membiarkan mereka menebak.

Jangan pernah memakai 200 untuk halaman maintenance. Halaman "kami segera kembali" yang mengembalikan kode sukses adalah undangan bagi Google untuk mengindeks halaman itu sebagai pengganti konten asli Anda — dan pemulihannya jauh lebih lama daripada maintenance-nya sendiri.

Jangan pakai 302 ke halaman maintenance. Cara itu menghilangkan URL asli di mata crawler dan menciptakan halaman baru yang tidak Anda inginkan di indeks.

Buat jendela maintenance sesingkat mungkin. Google menoleransi 503 selama beberapa jam hingga beberapa hari tanpa konsekuensi; kalau berminggu-minggu, URL mulai keluar dari indeks.

💡 Kalau Anda membuat halaman maintenance sendiri, uji dengan "curl -I" sebelum mempercayainya. Halaman yang terlihat sempurna bagi manusia bisa saja tetap mengembalikan 200 ke mesin pencari.

Ketika 503 terus berulang

503 yang muncul sesekali saat jam ramai adalah pesan tentang kapasitas, bukan bug yang perlu ditambal. Server sedang mengatakan bahwa permintaan melebihi kemampuannya melayani secara bersamaan.

Langkah pertama yang paling bernilai adalah mengaktifkan page cache. Situs konten yang menyajikan HTML statis memangkas jumlah permintaan yang menyentuh PHP menjadi sebagian kecil, dan banyak kasus 503 berkala hilang sepenuhnya hanya dengan langkah ini.

Berikutnya adalah mencari query lambat. Worker yang tertahan lama persis itulah alasan mereka habis; memperbaiki satu query tanpa index sering membebaskan kapasitas lebih banyak daripada menggandakan jumlah worker.

Baru setelah cache dan optimasi dilakukan, kekurangan sumber daya menjadi kesimpulan yang masuk akal. Tandanya akan jelas: CPU tinggi terus, RAM habis, dan swap aktif tanpa henti bahkan saat trafik normal.

Butuh kapasitas stabil, bukan mentok saat jam ramai?

Cloud VPS NVMe dengan sumber daya khusus dan akses root penuh — atur sendiri worker, cache, dan rate limit. Mulai ฿150/bulan.

Pertanyaan yang Sering Diajukan

WordPress saya 503 setelah update. Bagaimana memperbaikinya?

Masuk ke folder root situs lewat FTP atau File Manager dan hapus file bernama .maintenance. WordPress membuatnya saat memulai pembaruan dan menghapusnya saat selesai; kalau prosesnya terputus, file itu tertinggal dan semua pengunjung mendapat 503.

Berapa lama 503 mulai memengaruhi peringkat?

Beberapa jam hampir tidak berdampak — Google memahami 503 sebagai kondisi sementara dan akan kembali. Kalau berhari-hari, laju crawl menurun, dan setelah sekitar seminggu URL mulai keluar dari indeks. Header Retry-After membantu Google memilih waktu kembali yang lebih tepat.

Bagaimana tahu 503 dari server atau dari Cloudflare?

Halaman error Cloudflare punya branding dan mencantumkan ray ID di bagian bawah; 503 dari server adalah halaman polos Nginx atau Apache. Kalau dari Cloudflare, periksa aturan firewall dan konfigurasi rate-limit mereka, bukan server Anda.

Apakah menaikkan pm.max_children menyelesaikan 503?

Kadang, tapi biasanya arahnya keliru. Setiap worker memakan RAM, jadi menaikkannya berlebihan akan menukar 503 dengan error kehabisan memori. Cari dulu penyebab worker tertahan lama — hampir selalu query lambat atau panggilan API tanpa timeout.