Pasang Custom Domain dan SSL
Cara menghubungkan domain sendiri ke Netlify, Vercel, Cloudflare, dan GitHub Pages — beda A record dan CNAME, masalah domain root, serta SSL yang macet.
Memasang domain sendiri itu sebetulnya cuma dua hal: memberi tahu platform bahwa domain ini milikmu, lalu memberi tahu dunia bahwa domain ini mengarah ke platform tersebut. Yang bikin ribet biasanya satu masalah teknis lama — domain root tidak bisa pakai CNAME — dan sertifikat SSL yang macet tanpa penjelasan.
Panduan ini membahas keduanya, lalu langkah per platform.
Tiga jenis record yang perlu kamu kenal
| Record | Menunjuk ke | Dipakai untuk |
|---|---|---|
A | Alamat IP | Domain root (situsku.com) |
CNAME | Nama domain lain | Subdomain (www.situsku.com) |
ALIAS / ANAME | Nama domain lain | Domain root, kalau penyedia DNS-mu mendukung |
Perbedaan A dan CNAME itu penting karena satu aturan lama di DNS: domain root tidak boleh punya CNAME. Ini bukan batasan platform, tapi spesifikasi DNS itu sendiri.
Masalahnya, platform modern tidak punya IP tetap — mereka pakai jaringan edge yang IP-nya berubah. Jadi mengarahkan domain root ke A record yang statis itu rapuh.
Solusinya ada dua, dan mana yang kamu pakai tergantung penyedia DNS:
- Kalau penyedia DNS-mu mendukung ALIAS, ANAME, atau CNAME flattening — Cloudflare, Netlify DNS, dan Vercel DNS semuanya mendukung — pakai itu. Domain root bisa menunjuk ke nama, dan penyedia menerjemahkannya jadi IP secara otomatis.
- Kalau tidak mendukung — banyak registrar murah begini — pakai
Arecord ke IP yang diberikan platform, dan terima bahwa suatu saat IP itu bisa berubah. Atau pindahkan DNS-mu ke penyedia yang mendukung.
Jadikan www.situsku.com sebagai alamat utama (pakai CNAME, aman), lalu arahkan situsku.com untuk redirect ke sana. Semua platform di bawah bisa melakukan redirect ini otomatis.
Netlify
1. Daftarkan domain
Buka situsmu di dashboard Netlify → Domain management → Add a domain. Masukkan domainmu, lalu Netlify memverifikasi bahwa domain itu belum dipakai akun lain.
2. Arahkan DNS
Ada dua pilihan.
Pakai Netlify DNS (paling mudah). Netlify memberimu empat nameserver seperti dns1.p01.nsone.net. Ganti nameserver di registrar tempat kamu beli domain dengan keempatnya. Setelah itu semua record dikelola dari Netlify, termasuk domain root — CNAME flattening ditangani otomatis.
Pakai DNS eksternal. Kalau kamu ingin nameserver tetap di registrar, tambahkan record ini:
# subdomain www
CNAME www nama-situsmu.netlify.app
# domain root
A @ 75.2.60.5
IP untuk A record itu bisa berubah — selalu pakai nilai yang ditampilkan dashboard Netlify saat itu, jangan salin dari tutorial mana pun termasuk ini.
3. Tunggu SSL
Netlify menerbitkan sertifikat Let's Encrypt otomatis begitu DNS terverifikasi. Biasanya beberapa menit. Kalau macet, ada tombol Renew certificate di halaman Domain management untuk memicu ulang.
Vercel
1. Daftarkan domain
Buka project → Settings → Domains → masukkan domainmu → Add.
Vercel langsung menampilkan record yang perlu kamu buat, sudah disesuaikan dengan domain yang kamu masukkan. Ikuti yang di layar — itu lebih akurat daripada nilai yang ditulis di tutorial mana pun.
2. Arahkan DNS
Bentuk umumnya:
# subdomain www
CNAME www cname.vercel-dns.com
# domain root
A @ 216.198.79.1
Kalau kamu memindahkan nameserver ke Vercel, domain root ditangani otomatis tanpa perlu A record.
3. Pilih mana yang utama
Setelah kedua domain terdaftar, Vercel menanyakan mana yang jadi alamat utama. Yang satunya akan otomatis di-redirect 301 ke sana.
Jangan biarkan situsku.com dan www.situsku.com sama-sama menyajikan isi yang sama tanpa redirect. Bagi mesin pencari itu dua situs berbeda dengan konten identik, dan sinyal peringkatmu terbelah dua.
Cloudflare Workers
Kalau domainmu sudah dikelola Cloudflare, ini yang paling ringkas.
1. Pastikan domain ada di akun Cloudflare
Kalau belum: dashboard → Add a site → masukkan domain → ikuti proses pemindahan nameserver ke Cloudflare. Ini butuh waktu paling lama beberapa jam.
2. Tambahkan custom domain
Buka Worker kamu → Settings → Domains & Routes → Add → Custom domain. Masukkan domain atau subdomainnya.
Selesai. DNS record dibuat otomatis, sertifikat SSL diterbitkan otomatis, dan domain root tidak bermasalah karena Cloudflare memakai CNAME flattening secara bawaan.
3. Kalau domainnya di registrar lain
Untuk custom domain di Workers, domainnya harus dikelola Cloudflare. Tidak ada jalan lain — pindahkan nameserver dulu.
GitHub Pages
1. Arahkan DNS
Untuk subdomain, satu CNAME cukup:
CNAME www namauser.github.io
Untuk domain root, GitHub memakai empat A record. Nilainya stabil dan didokumentasikan resmi:
A @ 185.199.108.153
A @ 185.199.109.153
A @ 185.199.110.153
A @ 185.199.111.153
2. Daftarkan di repositori
Buka repo → Settings → Pages → isi Custom domain → Save.
GitHub membuat berkas CNAME di repositorimu. Jangan hapus berkas itu — kalau hilang, domainnya lepas.
Berkas CNAME harus ikut masuk ke folder hasil build. Untuk Hugo, taruh di static/CNAME. Untuk Vite, taruh di public/CNAME. Kalau tidak, tiap deploy akan menghapusnya dan domainmu lepas berulang kali.
3. Aktifkan HTTPS
Setelah DNS terverifikasi, centang Enforce HTTPS di halaman yang sama. Kalau opsinya masih abu-abu, tunggu — sertifikatnya belum selesai diterbitkan.
Kalau SSL macet
Sertifikat yang tidak selesai-selesai hampir selalu disebabkan salah satu dari empat hal ini.
1. DNS belum sepenuhnya menyebar
Cek dari luar jaringanmu:
dig situsku.com +short
dig www.situsku.com +short
Kalau hasilnya masih kosong atau menunjuk ke tempat lama, tunggu. Penyebaran DNS biasanya hitungan menit, tapi bisa sampai 48 jam kalau TTL record lamamu panjang.
2. Record CAA memblokir penerbit sertifikat
Ini penyebab tersembunyi yang paling sering. Record CAA membatasi siapa yang boleh menerbitkan sertifikat untuk domainmu:
dig situsku.com CAA +short
Kalau ada isinya dan tidak memuat letsencrypt.org, penerbit yang dipakai platformmu ditolak. Tambahkan record ini, atau hapus CAA-nya sama sekali:
CAA @ 0 issue "letsencrypt.org"
3. Proxy Cloudflare aktif di depan platform lain
Kalau DNS-mu di Cloudflare (ikon awan oranye) tapi situsmu di-host di Netlify atau Vercel, verifikasi sertifikat platform itu bisa gagal karena permintaannya tidak sampai ke mereka.
Ubah record jadi DNS only (ikon awan abu-abu), tunggu sertifikat terbit, baru nyalakan proxy lagi kalau memang mau dipakai.
4. Ada record lama yang tertinggal
Record A atau AAAA sisa hosting sebelumnya yang masih nyangkut membuat sebagian permintaan mendarat di tempat yang salah. Bersihkan semua record untuk nama yang sama, sisakan hanya yang baru.
Redirect www dan non-www
Setelah domain aktif, pastikan hanya satu versi yang menyajikan isi, dan satunya redirect ke sana.
Semua platform di atas menyediakan setelan ini di dashboard. Kalau kamu perlu mengaturnya sendiri:
Netlify — di _redirects:
https://situsku.com/* https://www.situsku.com/:splat 301!
Vercel — di vercel.json:
{
"redirects": [
{
"source": "/(.*)",
"has": [{ "type": "host", "value": "situsku.com" }],
"destination": "https://www.situsku.com/$1",
"permanent": true
}
]
}
Setelah domain aktif, jangan lupa
- Perbarui base URL di konfigurasi.
sitedi Astro,baseURLdi Hugo,NEXT_PUBLIC_SITE_URLdi Next.js. Kalau tidak, sitemap dan URL kanonikmu masih menunjuk alamat lama. - Perbarui
og:urldancanonicaldi semua halaman. - Kirim ulang sitemap ke Google Search Console dengan domain baru.
- Cek redirect benar-benar 301, bukan 302. Redirect sementara tidak memindahkan sinyal peringkat.
curl -sSI https://situsku.com | head -3
Keluarannya harus memuat HTTP/2 301 dan header location yang menunjuk ke versi yang kamu pilih.
Ringkasan per platform
| Platform | Subdomain | Domain root |
|---|---|---|
| Netlify | CNAME ke *.netlify.app | Netlify DNS, atau A record |
| Vercel | CNAME ke cname.vercel-dns.com | Vercel DNS, atau A record |
| Cloudflare | Otomatis | Otomatis (wajib DNS di Cloudflare) |
| GitHub Pages | CNAME ke *.github.io | Empat A record GitHub |
Kalau ada yang masih tidak beres setelah semua ini, kemungkinan besar gejalanya ada di 15 error deploy paling umum — nomor 13 dan 14 khusus membahas DNS dan SSL.
Untuk mengatur redirect setelah domainmu aktif, lihat panduan redirect dan rewrite. Gambaran menyeluruh soal deploy ada di panduan lengkap deploy website.