SEO & Pemasaran

301 vs 302 vs 307 vs 308: Redirect Mana yang Harus Dipakai

Memilih redirect yang salah bisa membuat URL lama tetap ada di Google selama berbulan-bulan, atau mengubah pengiriman form menjadi request GET yang kehilangan datanya. Berikut arti setiap kode status, mana yang harus dipakai, dan cara memastikan redirect kamu berjalan dengan benar.

Pemula · 7 menit baca · Diperbarui 30 Oktober 2026

301 vs 302 vs 307 vs 308: Redirect Mana yang Harus Dipakai

Empat redirect sekilas

StatusPermanen?Mempertahankan method dan body?Dipakai untuk
301 Moved PermanentlyYaTidak dijamin (POST bisa berubah jadi GET)Halaman yang pindah, HTTP → HTTPS, perubahan domain
302 FoundTidakTidak dijaminPindah sementara, A/B test, maintenance
307 Temporary RedirectTidakYaPindah sementara untuk endpoint API dan form
308 Permanent RedirectYaYaPindah permanen untuk endpoint API yang menerima POST

Untuk SEO, Google memperlakukan 301 dan 308 sebagai sinyal kuat bahwa URL baru harus menggantikan URL lama, dan meneruskan sinyal peringkat ke URL tersebut. 302 dan 307 memberi tahu Google untuk tetap mengindeks URL lama. Penjelasan lengkap untuk setiap kode ada di referensi HTTP Status Codes.

Mana yang harus dipilih

  • Halaman pindah permanen (slug baru, artikel digabung, domain baru) → 301.
  • HTTP ke HTTPS, www ke non-www → 301 (atau 308).
  • Sementara (halaman promo, maintenance, routing berdasarkan lokasi atau bahasa) → 302.
  • Endpoint API atau handler form dipindah → 308 (permanen) atau 307 (sementara), supaya data POST tidak hilang.

Hindari chain dan loop

Chain adalah /a → /b → /c: setiap lompatan menambah satu round trip, dan crawler bisa berhenti mengikuti setelah beberapa lompatan. Loop (/a → /b → /a) membuat halaman tidak bisa diakses sama sekali. Setelah migrasi, arahkan setiap URL lama langsung ke tujuan akhirnya. Periksa jalur lengkap URL apa pun, termasuk setiap lompatan, status, dan waktunya, dengan Redirect Checker, dan pastikan versi http, https, www, dan non-www semuanya berakhir di tempat yang sama.

Aturan siap pakai

Apache (.htaccess):

Redirect 301 /old-page /new-page
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Nginx:

location = /old-page { return 301 /new-page; }
server { listen 80; server_name example.com; return 301 https://$host$request_uri; }

Vercel (vercel.json): "permanent": true mengirim 308, yang oleh Google diperlakukan seperti 301.

{ "redirects": [ { "source": "/old-page", "destination": "/new-page", "permanent": true } ] }

Ubah spreadsheet berisi daftar URL lama → baru menjadi aturan untuk server apa pun dengan Redirect Generator, atau buat konfigurasi Apache lengkap dengan .htaccess Generator.

Checklist migrasi

  1. Petakan setiap URL lama ke URL baru yang paling relevan, jangan semuanya ke halaman utama, karena Google memperlakukannya sebagai soft 404.
  2. Gunakan 301 (atau 308) untuk perpindahan permanen dan pertahankan minimal selama satu tahun.
  3. Perbarui link internal dan sitemap ke URL baru, sehingga redirect hanya menjadi jaring pengaman.
  4. Uji sampel URL lama, lalu pantau laporan Pages di Search Console untuk melihat 404.

Pertanyaan yang sering diajukan

Apakah redirect 301 menghilangkan nilai SEO?
Tidak. Google meneruskan sinyal peringkat melalui redirect 301 dan 308. Chain yang panjang bisa menunda atau melemahkan proses ini, jadi arahkan langsung ke URL akhir.
Apakah 302 buruk untuk SEO?
Tidak, jika perpindahannya memang sementara. Jika dipakai untuk perpindahan permanen, URL lama akan bertahan di indeks lebih lama dari yang diperlukan. Gunakan 301 sebagai gantinya.
Apa perbedaan antara 301 dan 308?
Keduanya bersifat permanen. 308 menjamin method dan body request tetap sama, sehingga POST tetap POST. Dengan 301, klien bisa beralih ke GET.

Baca juga