
Migrasi Website Tanpa Downtime: DNS, Staging, dan Cutover
Checklist praktis migrasi tanpa downtime untuk WordPress dan situs custom: sync staging, TTL DNS, SSL, redirect, search-replace, dan verifikasi pasca-cutover.

Daftar isi
Pencarian “website pindah hosting” biasanya menyimpan satu ketakutan: downtime dan form rusak keesokan paginya. Cutover yang hati-hati menjaga situs lama tetap online sampai stack baru terbukti.
Ini urutan migrasi yang saya pakai untuk situs klien.
Prinsip: jalankan dua environment sampai DNS berpindah
- Bangun dan uji di staging (URL sementara atau override hosts-file).
- Sync konten lagi tepat sebelum cutover.
- Turunkan TTL DNS lebih awal.
- Arahkan DNS hanya setelah HTTPS, redirect, dan smoke test lolos.
- Biarkan host lama tersedia untuk jendela rollback singkat.
“Nol detik” sejati jarang terjadi di DNS shared—tapi overlap terkontrol dalam hitungan menit lebih baik daripada outage kejutan berjam-jam.
Fase 1 — Inventaris
- record DNS saat ini (A, AAAA, CNAME, MX, TXT);
- penyedia SSL dan CDN (Cloudflare proxy on/off);
- versi CMS, plugin, cron, pengirim email transactional;
- ukuran media / database besar;
- URL hard-coded di tema, Elementor, dan tabel options.
Export screenshot DNS sebelum menyentuh apa pun.
Fase 2 — Staging di host baru
- clone file + database;
- search-replace domain lama → domain staging dengan hati-hati (tool sadar data serialized PHP untuk WordPress);
- matikan konflik cache/CDN di staging;
- uji login, form, checkout (bila ada), dan template utama di mobile;
- perbaiki ketidakcocokan versi PHP lebih awal.
Fase 3 — Penguatan pra-cutover
- turunkan TTL ke 300 detik (atau lebih rendah) 24–48 jam sebelum flip bila memungkinkan;
- terbitkan SSL di host baru (atau pastikan Cloudflare Full Strict siap);
- siapkan peta 301 untuk permalink lama / HTTP→HTTPS / www↔apex;
- jadwalkan content freeze atau jendela sync final bersama klien.
Fase 4 — Cutover
-
Sync DB/media final dari production ke host baru.
-
Pasang maintenance atau read-only di situs baru hanya jika ada write aktif selama sync.
-
Update DNS A/CNAME ke origin baru (atau ganti IP origin Cloudflare).
-
Purge cache CDN.
-
Verifikasi:
- homepage + form kontak;
- gembok HTTPS;
- properti Search Console / sitemap;
- email masih terkirim (kredensial SMTP sering rusak setelah ganti host).
Fase 5 — Stabilisasi
- pantau 404 dan log server selama 48 jam;
- biarkan hosting lama tetap dibayar sampai TTL habis drain;
- naikkan TTL lagi setelah stabil;
- dokumentasikan kredensial baru untuk klien.
Catatan khusus WordPress
- update
siteurl/homedengan benar; - regenerate permalink sekali;
- simpan ulang Elementor/CSS jika aset 404;
- hubungkan ulang object cache / cron jika host baru berbeda;
- jangan biarkan
DISALLOW_FILE_EDITmati di production jika itu bagian dari hardening.