Bali, Indonesia
Insights

Rutin Cek Masa Aktif Domain Pelanggan agar Tiket Website Mati Tidak Berulang

November 3, 2026
0:00
Tiket 'website tidak bisa dibuka' biasanya langsung bikin kita membuka server: cek load, restart web server, baca error log. Padahal cukup sering servernya sehat-sehat saja, dan masalahnya ada di domain yang sudah lewat tanggal expiry atau sedang ditahan registry. Pelanggan jarang sadar, karena email pengingat perpanjangan masuk ke alamat lama atau ke folder spam. Artikel ini membahas cara menelusuri gejalanya dari DNS sampai status domain, lalu cara menjadikan pengecekan ini kebiasaan sebelum tiket masuk.
Domain yang bermasalah jarang dilaporkan sebagai masalah domain. Pelanggan menulis 'website down', 'email tidak masuk', atau 'muncul halaman iklan aneh'. Di sisi browser, gejalanya biasanya salah satu dari ini:
  • Error DNS_PROBE_FINISHED_NXDOMAIN atau 'server IP address could not be found'. Artinya resolver tidak menemukan domain tersebut.
  • Situs terbuka, tapi yang tampil halaman parkir milik registrar, bukan website pelanggan.
  • Situs dan email mati bersamaan. Ini petunjuk kuat, karena web dan mail biasanya berjalan di layanan yang berbeda, dan yang bisa mematikan keduanya sekaligus adalah DNS atau domainnya sendiri.
Pola terakhir ini yang paling layak diingat. Kalau web, email, dan semua subdomain mati di waktu yang sama, sementara pelanggan lain di server yang sama aman, curigai domainnya dulu sebelum menyentuh server.
Langkah pertama adalah memastikan server bukan sumber masalah, supaya kita tidak menghabiskan waktu di tempat yang salah. Caranya sederhana. Akses situs langsung ke IP server dengan header Host yang benar, atau cek apakah situs lain di server yang sama normal. Kalau server merespons dengan konten yang benar saat DNS dilewati, berarti web server, PHP, dan database tidak bermasalah. Ada dua hal yang sering menyesatkan di tahap ini. Pertama, restart layanan. Kalau setelah restart situs 'terasa' kembali normal untuk sebagian orang, itu biasanya kebetulan, bukan perbaikan. Kedua, monitoring uptime yang mengecek berdasarkan IP. Monitoring seperti ini tetap hijau walaupun domainnya mati, karena memang tidak pernah melewati DNS publik. Kalau banyak tiket down masuk bersamaan dari domain yang berbeda-beda, kemungkinan besar masalahnya di server atau jaringan, bukan expiry. Cara memilahnya ada di artikel Tiket Mana Didahulukan Saat Banyak Pelanggan Lapor Down di Jam yang Sama. Domain expired hampir selalu muncul sebagai tiket tunggal dari satu pelanggan.
Setelah server terbukti sehat, lihat domainnya. Ada dua sumber yang perlu dibandingkan: data registrasi (whois atau RDAP) dan delegasi DNS yang terlihat dari internet.
BASH
# Status, tanggal expiry, dan nameserver dari data registrasi
# (format output berbeda per registry, sesuaikan pola grep bila perlu)
whois example.com | grep -iE 'expir|status|name server'

# Nameserver yang benar-benar dipublikasikan
dig +short NS example.com

# Status jawaban DNS: perhatikan NOERROR atau NXDOMAIN di bagian header
dig example.com A
Yang dicari ada tiga. Tanggal expiry, baris status, dan apakah nameserver di whois sama dengan yang kamu harapkan. Kalau tanggal expiry sudah lewat, atau nameserver tiba-tiba berubah ke nameserver milik registrar padahal pelanggan tidak pernah mengubahnya, hampir pasti registrar sudah memindahkan domain ke halaman parkir. Kalau dig mengembalikan NXDOMAIN sementara whois masih menunjukkan domain terdaftar, perhatikan baris status. Domain dengan status hold memang tetap terdaftar, tapi delegasinya tidak dipublikasikan di zona TLD, sehingga resolver menganggapnya tidak ada. Whois punya kelemahan: formatnya tidak seragam, dan beberapa registry membatasi query. RDAP (Registration Data Access Protocol) adalah penggantinya yang mengembalikan JSON terstruktur, jadi lebih enak diproses script. Untuk satu domain, misalnya:
BASH
# rdap.org me-redirect ke server RDAP registry yang sesuai, jadi -L wajib
curl -sL 'https://rdap.org/domain/example.com' | jq -r '.status[], (.events[] | select(.eventAction == "expiration") | .eventDate)'
Catatan: tidak semua ccTLD menyediakan RDAP. Kalau hasilnya kosong atau error, kembali ke whois atau cek langsung di panel registrar.
Baris status di whois memakai kode EPP (Extensible Provisioning Protocol), misalnya clientHold. Di RDAP, status yang sama ditulis dengan huruf kecil dan spasi, misalnya client hold. Tidak semua status berarti masalah. clientTransferProhibited, misalnya, hanya kunci transfer dan normal ada di domain sehat. Yang relevan untuk kasus website mati:
Status (EPP)ArtinyaEfek ke situs
autoRenewPeriodRegistry sudah memperpanjang otomatis, registrar menunggu pembayaranBiasanya masih resolve, tapi registrar bisa memarkir domain
clientHoldRegistrar menahan domain, misalnya karena belum dibayar atau verifikasi registrant belum selesaiDelegasi dicabut, resolver menjawab NXDOMAIN
serverHoldRegistry yang menahan domainSama, tidak resolve, dan registrar sendiri mungkin tidak bisa langsung melepasnya
redemptionPeriodDomain sudah dihapus registrar dan masuk masa tebusTidak resolve, pemulihan biasanya ada biaya tambahan
pendingDeleteMenunggu dihapus permanen dari registryTidak bisa dipulihkan, domain akan tersedia untuk didaftarkan siapa saja
Lama tiap fase berbeda per TLD dan per registrar, jadi jangan menjanjikan angka ke pelanggan sebelum mengecek kebijakan registrar mereka. Yang bisa kita sampaikan dengan pasti: makin jauh statusnya bergeser ke bawah tabel, makin mahal dan makin sempit peluang pemulihannya. Domain yang sudah redemptionPeriod perlu segera dieskalasi ke pemilik akun registrar, bukan ditunggu. Satu status lagi yang sering terlewat adalah hold karena verifikasi email registrant. Domain baru atau domain yang data kontaknya baru diubah bisa ditahan kalau email verifikasi tidak diklik. Tanggal expiry-nya masih jauh, jadi kalau kita hanya melihat tanggal, kasus ini lolos dari pengecekan. Karena itu baris status selalu dibaca, bukan hanya tanggalnya.
Ini sumber kebingungan terbesar di tiket. Pelanggan bilang situsnya mati, tapi kamu bisa membukanya, atau sebaliknya. Penyebabnya cache di resolver. Saat delegasi dicabut, resolver yang masih menyimpan record NS dan A domain tersebut di cache tetap menjawab dengan data lama sampai TTL-nya habis. Resolver yang cache-nya sudah kosong akan bertanya ulang ke server TLD dan mendapat NXDOMAIN. Akibatnya, situs bisa terlihat hidup dari satu ISP dan mati dari ISP lain, atau hidup di laptop kantor tapi mati di HP pelanggan. Jadi 'saya bisa buka kok' bukan bukti domain sehat. Kalau ingin melihat kondisi terkini tanpa cache resolver lokal, tanyakan langsung ke nameserver TLD, atau bandingkan jawaban dari beberapa resolver publik. Begitu cache semua resolver habis, situs akan mati untuk semua orang. Jendela waktu inilah yang sebaiknya dipakai untuk menghubungi pelanggan. Efek yang sama berlaku untuk email. Server pengirim yang masih punya cache MX akan tetap mengirim untuk sementara, lalu mulai menunda atau bounce setelah cache habis. Pola 'email sebagian masuk, sebagian tidak' di hari-hari setelah expiry biasanya berasal dari sini, bukan dari masalah queue di server.
Menemukan domain expired saat tiket sudah masuk berarti pelanggan sudah merasakan downtime. Cara yang lebih tenang adalah mengecek daftar domain yang di-host secara berkala, misalnya seminggu sekali lewat cron, lalu menghubungi pelanggan yang domainnya mendekati expiry. Daftar domain bisa diambil dari control panel atau dari konfigurasi web server. Caranya tergantung setup. Setelah itu, script sederhana sudah cukup:
BASH
#!/usr/bin/env bash
# domains.txt: satu domain per baris
# ponytail: belum ada fallback whois untuk TLD tanpa RDAP; tambahkan kalau banyak baris 'no-rdap'
while read -r d; do
  data=(curl -sL "https://rdap.org/domain/d")
  exp=(echo "data" | jq -r '.events[]? | select(.eventAction == "expiration") | .eventDate' 2>/dev/null)
  st=(echo "data" | jq -r '[.status[]?] | join(",")' 2>/dev/null)
  echo "d{exp:-no-rdap} ${st}"
  sleep 2  # jeda supaya tidak kena rate limit
done < domains.txt
Output-nya cukup diurutkan berdasarkan tanggal, lalu domain yang expiry-nya kurang dari beberapa minggu atau yang statusnya mengandung hold atau redemption ditandai untuk ditindaklanjuti. Script ini sengaja hanya membaca data dan tidak mengubah apa pun. Batasnya juga jelas: domain yang tidak didukung RDAP akan muncul sebagai no-rdap dan perlu dicek manual. Perlu diingat juga bahwa kita biasanya bukan pemegang akun registrar pelanggan. Tugas support di sini adalah memberi tahu lebih awal dan menjelaskan statusnya dengan bahasa yang jelas, bukan memperpanjang domain atas nama mereka. Pesan seperti 'domain kamu expired pada tanggal sekian dan saat ini berstatus clientHold di registrar, silakan perpanjang lewat akun registrar' jauh lebih berguna daripada 'ada masalah DNS'. Untuk tiket situs mati berikutnya, urutannya bisa dibuat tetap. Pastikan server merespons saat DNS dilewati. Kalau server sehat, jalankan dig dan whois atau RDAP, lalu baca tanggal expiry dan baris statusnya. Ingat bahwa cache resolver bisa membuat situs tampak hidup bagi sebagian orang. Prosesnya kurang dari satu menit, dan kalau dijalankan rutin lewat cron, sebagian tiket jenis ini bisa dicegah sebelum pelanggan sempat menulisnya.