Redirect API dan Rules as Code: CI/CD untuk Perubahan URL yang Lebih Aman
Redirect rule adalah konfigurasi traffic produksi. Perlakukan dengan review, validasi, staging, publish, monitoring, dan rollback.

Redirect biasanya dimulai dari perbaikan kecil. URL produk berubah. Artikel bantuan dipindahkan. Landing page campaign ganti slug. Seseorang menambah rule di next.config.js, Cloudflare, plugin CMS, atau Nginx.
Itu masih masuk akal untuk beberapa URL. Saat masuk ke migrasi toko, perubahan domain, campaign WhatsApp dan Instagram, QR code offline, marketplace, affiliate, dan partner traffic, redirect menjadi bagian dari operasi produksi.
Rule redirect menentukan ke mana backlink lama, paid click, email, QR, link partner, dan halaman yang sudah diindeks akan pergi. Ini bukan catatan teknis kecil. Ini konfigurasi traffic.
Model yang lebih aman: simpan redirect sebagai konfigurasi yang bisa di-deploy. Rule dibuat terstruktur, CI melakukan validasi, staging menunjukkan perilaku final, production menerima snapshot berversi, dan rollback siap sebelum traffic dipindahkan.
Kenapa redirect perlu masuk release workflow
Tim engineering sudah melakukan review untuk environment variable, database migration, feature flag, dan middleware. Redirect yang memengaruhi SEO, campaign, atau revenue perlu proses yang sama.
Workflow yang rapuh biasanya seperti ini:
- SEO menyimpan redirect map di spreadsheet
- engineering menyalin sebagian rule ke app config
- marketing mengubah campaign destination di tool lain
- CMS plugin membuat redirect sendiri
- CDN melakukan host normalization
- saat laporan rusak, tidak ada yang tahu layer mana yang menjalankan rule
Rules as code membuat redirect map menjadi artefak yang bisa direview. Formatnya bisa YAML, JSON, Terraform, CSV, atau API payload. Yang penting: ada owner, test, dan rollback.

Rule butuh lebih dari source dan destination
old_url dan new_url cukup untuk membuat redirect. Tapi tidak cukup untuk operasi yang aman.
Gunakan kontrak yang menjelaskan intent:
{
"source": "/harga-lama",
"destination": "/harga",
"status": 301,
"match": "exact",
"queryPolicy": "preserve_allowlist",
"preserveQuery": ["utm_source", "utm_medium", "utm_campaign", "gclid"],
"owner": "growth",
"reason": "konsolidasi halaman harga",
"expiresAt": null
}Untuk ecommerce dan migration, tambahkan priority, locale, country, device, batch, review status, dan fallback.
| Field | Kenapa penting |
|---|---|
status | 301/308 untuk perubahan permanen, 302/307 untuk campaign atau test sementara |
match | Exact, wildcard, regex, host, query, header, atau condition |
queryPolicy | Mencegah hilangnya UTM, click ID, coupon, dan affiliate parameter |
owner | Menentukan siapa yang menangani SEO, support, analytics, atau campaign issue |
batch | Memungkinkan publish dan rollback per grup migration |
expiresAt | Mencegah rule campaign sementara menjadi clutter permanen |
Panduan Google tentang redirect berangkat dari intent: apakah perubahan permanen atau sementara, dan URL mana yang harus muncul di Search. CI tidak menggantikan keputusan itu, tapi bisa mencegah kombinasi yang berbahaya.
API sync mengurangi copy-paste manual
Redirect sering lahir di luar repository. CMS mengubah slug. Catalog ecommerce menghapus produk. Docs team merilis versi baru. Agency SEO mengirim migration map. Partner butuh branded link.
Kalau semua disalin manual, rule akan drift.
Redirect API memberi batas yang lebih jelas:
| Sumber | Perilaku API |
|---|---|
| CMS | Buat atau update redirect saat slug berubah, dengan approval untuk path penting |
| Ecommerce catalog | Kirim produk yang berhenti dijual ke pengganti, kategori, waitlist, atau unavailable page |
| Docs build | Publish path lama bersama release dokumentasi baru |
| Migration spreadsheet | Import batch yang sudah direview, validasi, lalu publish sebagai snapshot |
| Internal tools | Support atau operations bisa request rule tanpa akses CDN |

Cloudflare menyediakan redirect rule lewat Rulesets API. Next.js dan Vercel mendukung redirects berbasis konfigurasi. Itu layer eksekusi. Bagian sulitnya adalah governance: validasi, owner, staging, analytics, dan rollback.
Apa yang perlu dicek CI
CI untuk redirect harus mengetes perilaku, bukan hanya syntax.
Checklist yang berguna:
- duplicate source path
- destination salah format
- owner, reason, atau status kosong
- wildcard atau regex yang menutupi exact rule
- permanent status pada campaign yang punya tanggal akhir
- destination 404, 410, 5xx, atau redirect tak terduga
- redirect chain terlalu panjang
- loop
- UTM, click ID, coupon, atau partner ID hilang
- condition country, device, header, atau query tanpa fallback
- konflik dengan batch lain
Untuk URL penting, gunakan request matrix:
source=/harga-lama
country=ID
device=desktop
query=?utm_source=google&gclid=test
expectedStatus=301
expectedDestination=/harga?utm_source=google&gclid=testDengan begitu, tim tahu hasilnya sebelum traffic nyata datang.

Staging harus menunjukkan route final
Staging untuk redirect harus menjawab: jika URL ini menerima request dengan konteks ini, apa yang akan terjadi di production?
Tampilkan:
- matched rule
- status code
- final destination
- query handling
- condition result
- competing rules
- chain length
- owner dan batch
- diff dari published snapshot
GitHub Actions environments bisa meminta reviewer sebelum deployment. Pola yang sama cocok untuk redirect: CI memvalidasi, staging menunjukkan bukti, production menunggu approval yang tepat.
Rollback adalah requirement
Rollback redirect tidak seharusnya memaksa redeploy origin app.
Simpan published snapshot. Beri tag pada import batch. Pisahkan rule campaign sementara dari migration permanen. Emergency override harus terlihat, bukan tersembunyi di middleware atau CDN.
| Masalah | Respons lebih aman |
|---|---|
| Batch migration salah | Disable atau rollback batch tersebut |
| Halaman penting salah route | Tambahkan exact rule dengan priority lebih tinggi |
| Landing campaign down | Pindahkan sementara ke fallback |
| Regex terlalu luas | Pause pattern dan publish exception |
| Query policy merusak analytics | Restore policy lama dan test URL dengan UTM |
Jika rule bisa memengaruhi search, paid traffic, support, atau sales, rollback adalah bagian dari fitur.
Di mana UrlEdge cocok
UrlEdge cocok saat tim ingin mengotomasi redirect tanpa membuat setiap perubahan URL menjadi origin deploy.
- API untuk domain, rules, publishing, dan automation
- Redirect Management untuk ownership, analytics, snapshots, dan rollback
- Bulk URL Management untuk migration map dan import besar
- Advanced Redirect Rules untuk wildcard, regex, query, dan condition
- Redirect Checker untuk QA route dan status
- Collaboration untuk review antara SEO, marketing, platform, dan agency
Redirect kecil yang benar-benar milik aplikasi bisa tetap di app config. Host normalization sederhana bisa tetap di CDN. Gunakan API dan rules as code saat rule butuh review, evidence, automation, dan recovery cepat.
FAQ
Apa itu redirect rules as code?
Redirect rules disimpan dalam format terstruktur yang bisa direview, lalu melewati validasi, staging, publish, dan rollback.
Apakah semua redirect harus masuk Git?
Tidak. Git cocok untuk rule stabil dan migration artifact. API sync lebih cocok untuk rule dari CMS, ecommerce, partner, atau internal tools.
Apakah CI/CD bisa publish redirect langsung?
Bisa, selama ada validasi, staging evidence, permission, approval untuk perubahan berisiko, dan rollback.
Referensi
Automasi redirect publishing lewat API
Buat, validasi, publish, monitor, dan rollback redirect rules dari workflow deployment.
Lihat APIArtikel Terkait
Lihat semua
Geo Redirects untuk Ecommerce: Toko Negara, Mata Uang, Bahasa, dan Fallback SEO-Safe
Geo redirects membantu pembeli masuk ke toko regional yang tepat, tetapi rule yang terlalu agresif bisa menyembunyikan halaman lokal dari user dan crawler.

Branded Campaign Links untuk UTM, QR Code, dan Traffic Partner
Link kampanye harus terlihat dipercaya, menjaga atribusi analytics, dan tetap bisa diganti setelah masuk WhatsApp, Instagram, QR, iklan, atau materi partner.