Panduan HTTP Redirect

Penjelasan tentang redirect HTTP sebagai respons 3xx, kode 301/302/303/307/308, cara penerapan, dan perbedaannya dengan tag kanonis.

Pertama kali diterbitkan: 2 Jul 2026 · Terakhir diperbarui: 21 Agu 2026 · Advanced
Bahasa
1 sinyal bukti di halaman ini

Redirect adalah respons HTTP dengan kode status 3xx dan header Location yang mengirim browser serta perayap dari URL lama ke URL baru. Google memperlakukan 301/308 sebagai sinyal kanonisasi kuat dan 302/303/307 sebagai sinyal lemah. Kode 307/308 mempertahankan metode HTTP, sedangkan 301/302 dapat mengubahnya. Gunakan redirect sisi server, CDN, edge, atau CMS; redirect JavaScript dan meta refresh lebih lemah karena bergantung pada rendering. Gunakan redirect ketika hanya satu URL harus tetap ada, dan tag kanonis ketika beberapa versi harus tetap dapat diakses.

TL;DR — sebuah pengalihan adalah sebuah respons HTTP dengan sebuah 3xx kode status dan sebuah Location header — protocol pertama, SEO kedua. Google collapses codes ke dua kanonisasi buckets: permanen (301/308) = kuat sinyal (sinyal consolidate forward), sementara (302/303/307) = weak sinyal (mereka biasanya stay put, tetapi sebuah panjang-lived sementara pengalihan dapat flip). di dalam setiap bucket, 307 dan 308 pertahankan HTTP metode dan isi; 301 dan 302 dapat bukan. menerapkan server-side, di CDN/edge (saya preferensi), atau via sebuah CMS plugin; JS dan tertunda meta-refresh pengalihan adalah lebih lemah karena mereka depend pada perenderan. sebuah single baik pengalihan doesn’t leak PageRank — nyata risks adalah chains (hindari them) dan loops (mesin pencari hanya ignore them). pertahankan pengalihan untuk setidaknya sebuah year. dan sebuah pengalihan adalah bukan sebuah tag kanonis.

apa sebuah pengalihan sebenarnya adalah, di protocol tingkat

pengalihan kode status memiliki standardized metode-penanganan semantics. Evidence for this claim Primary standard or official documentation supporting the adjacent article claim. Scope: Protocol semantics and Search behavior are kept separate; no indexing, ranking, or migration-timing guarantee is inferred. Confidence: high · Verified: RFC 9110: Redirection penelusuran panduan distinguishes permanen dan sementara sinyal while recommending direct server-side pengalihan untuk perpindahan. Evidence for this claim Primary standard or official documentation supporting the adjacent article claim. Scope: Protocol semantics and Search behavior are kept separate; no indexing, ranking, or migration-timing guarantee is inferred. Confidence: high · Verified: Google: Redirects and Search

Banyak tulisan SEO langsung menyatakan “301 berarti permanen” tanpa menjelaskan apa itu redirect. Dasar mekanismenya penting karena menjelaskan semua perilaku berikutnya. Menurut MDN, “redirection is triggered by a server sending a special redirect response to a request. Redirect responses have status codes that start with 3, and a Location header holding the URL to redirect to.” (terjemahan) “Pengalihan dipicu ketika server mengirim respons redirect khusus terhadap suatu permintaan. Respons redirect memiliki kode status yang diawali angka 3 dan header Location yang memuat URL tujuan.”

karena itu sebuah pengalihan adalah dua things travelling together: sebuah 3xx kode status (301, 302, 303, 307, 308…) dan sebuah Location header naming destination. browser atau perayap dibaca itu respons dan re-permintaan URL di Location. kode status adalah semantics — permanen atau sementara, metode-preserving atau bukan — dan Location header adalah address. Everything sebuah SEO cares tentang adalah downstream dari yang mana 3xx kode Anda kirim.

SEO rumusan pada top dari itu, sebagai I put ini di saya 11 jenis dari pengalihan & mereka SEO Impact piece di Ahrefs: “A pengalihan adalah a way to mengirim people dan bots to a baru URL ketika they request the lama URL, tetapi the halaman memiliki changed locations.” (terjemahan) “sebuah pengalihan adalah sebuah cara untuk kirim people dan bot untuk sebuah baru URL ketika mereka permintaan lama URL, tetapi halaman memiliki changed locations.”

mengapa pengalihan penting untuk SEO

Google’s pengalihan documentation frames purpose plainly: “Redirecting URLs adalah the practice of resolving an existing URL to a berbeda satu, effectively telling Anda pengunjung dan Google penelusuran itu a halaman memiliki a baru location.” (terjemahan) “Redirecting URLs adalah practice dari resolving sebuah existing URL untuk sebuah berbeda satu, effectively telling Anda pengunjung dan Google penelusuran itu sebuah halaman memiliki sebuah baru location.” SEO consequence splits cleanly oleh permanence:

  • permanen pengalihan tampilkan baru target di hasil pencarian.
  • sementara pengalihan pertahankan sumber halaman di hasil pencarian.

dan there’s sebuah tautan-equity dimension. Google mempertahankan track dari keduanya ends dari sebuah pengalihan: “ketika you pengalihan a URL, Google mempertahankan track of keduanya the pengalihan sumber (the lama URL) dan the pengalihan target (the baru URL). satu of the URLs akan menjadi the kanonis; yang mana satu, depends on sinyal such sebagai whether the pengalihan adalah sementara atau permanen.” (terjemahan) “ketika Anda pengalihan sebuah URL, Google mempertahankan track dari keduanya pengalihan sumber ( lama URL) dan pengalihan target ( baru URL). satu dari URLs akan menjadi kanonis; yang mana satu, depends pada sinyal such sebagai whether pengalihan adalah sementara atau permanen.” permanen pengalihan consolidate sinyal forward untuk baru URL; sementara ones biasanya leave them dengan lama satu.

pengalihan landscape: 301, 302, 303, 307, 308

di sini’s seluruh family di sebuah summary tingkat — setiap memiliki -nya sendiri deep dive di ini subcluster (melihat “di mana to membuka berikutnya” (terjemahan) “di mana untuk membuka berikutnya”):

  • 301 (Moved Permanently) — workhorse permanen pengalihan. sebuah kuat kanonisasi sinyal; sinyal peringkat consolidate forward. di Google’s perayap dokumentasi: “Google follows the pengalihan, dan Google systems gunakan the pengalihan sebagai a kuat sinyal itu the pengalihan target seharusnya menjadi diproses.” (terjemahan) “Google mengikuti pengalihan, dan Google sistem gunakan pengalihan sebagai sebuah kuat sinyal itu pengalihan target seharusnya menjadi diproses.”
  • 302 (ditemukan) — standar sementara pengalihan. Google mengikuti ini “dan Google systems gunakan the pengalihan sebagai a weak sinyal.” (terjemahan) “dan Google sistem gunakan pengalihan sebagai sebuah weak sinyal.” Weak, bukan zero — leave sebuah 302 di place panjang enough dan ini dapat end up diperlakukan seperti 301.
  • 303 (lihat lainnya) — outlier. ini adalah grouped dengan sementara bucket, dan ini adalah kode behind Post/pengalihan/mendapatkan pola (kirim form, mendapatkan bounced untuk sebuah hasil halaman dengan sebuah GET). ini adalah rare di SEO, dan -nya treatment adalah genuinely murky — sebagai I’ve noted, 303s memiliki sebuah meta refresh treatment dari Google dan dapat behave seperti 301 atau sebuah 302 depending pada bagaimana mereka function.
  • 307 (sementara pengalihan) — sama SEO meaning sebagai sebuah 302, tetapi ini preserves HTTP metode dan isi. Google’s dokumentasi put ini bluntly: 307 adalah “equivalent to 302.” (terjemahan) “equivalent untuk 302.” Anda’ll juga melihat 307s appear automatically pada HTTPS situs itu gunakan HSTS.
  • 308 (permanen pengalihan) — sama SEO meaning sebagai sebuah 301, tetapi ini preserves metode dan isi. Google: 308 adalah “equivalent to 301.” (terjemahan) “equivalent untuk 301.”

Detail pemeliharaan metode—307/308 mempertahankan metode dan isi asli, sedangkan 301/302 mengizinkan klien mengubah POST menjadi GET—tidak mengubah cara Google memeringkat halaman, tetapi sangat penting untuk formulir dan API. Google memperingatkan agar kode tidak dipilih sembarangan: “While Google treats these status codes the same way, keep in mind that they’re semantically different. Use the status code that’s appropriate for the redirect so other clients (for example, e-readers, other search engines) may benefit from it.” (terjemahan) “Walaupun Google memperlakukan kode status ini dengan cara yang sama, kode tersebut berbeda secara semantik. Gunakan kode yang sesuai agar klien lain juga memperoleh manfaat.” Perbandingan lengkap tersedia di tab Cheat Sheets.

bagaimana pengalihan affect crawling, pengindeksan, dan ekuitas tautan

Dua kelompok dengan satu perbedaan utama. Dokumentasi Google menggambarkan redirect permanen—301, 308, meta refresh instan, dan JavaScript location—sebagai keadaan ketika “the indexing pipeline uses the redirect as a signal that the redirect target should be canonical,” (terjemahan) “pipeline pengindeksan memakai redirect sebagai sinyal bahwa tujuan redirect seharusnya menjadi kanonis.” Untuk redirect sementara—302, 303, 307, dan meta refresh tertunda—“the indexing pipeline doesn’t use the redirect as a signal that the redirect target should be canonical.” (terjemahan) “pipeline pengindeksan tidak memakai redirect sebagai sinyal bahwa tujuan redirect seharusnya menjadi kanonis.”

Evidence for this claim Google Search uses a permanent redirect as a signal that the redirect target should be canonical; this is not a guarantee that the target will be indexed or rank in a particular way. Scope: redirect interpretation and canonical signals Confidence: high · Verified: Redirects and Google Search

** PageRank myth adalah dead.** lama chestnut itu pengalihan “lose 10-15% of link equity” (terjemahan) “lose 10-15% dari tautan equity” hasn’t telah benar untuk years. Google’s Gary Illyes menyatakan di 2016 itu “30x pengalihan don’t lose PageRank anymore,” (terjemahan) “30x pengalihan don’t lose PageRank anymore,” dan John Mueller noted ini wasn’t bahkan baru informasi di time. sebuah single, dengan benar implemented pengalihan passes essentially semua dari sebuah halaman’s sinyal nilai. costs come dari chains dan loops, bukan dari existence dari sebuah pengalihan.

Berapa lama redirect dipertahankan. Panduan pemindahan situs Google menyatakan “keep the redirects for as long as possible, generally at least 1 year” (terjemahan) “pertahankan redirect selama mungkin, umumnya setidaknya satu tahun” agar seluruh sinyal dapat dialihkan ke URL baru. Gary Illyes mengemukakan bahwa “after 1 y all signals had time to pass on from A to B.” (terjemahan) “setelah satu tahun, semua sinyal sempat berpindah dari A ke B.” Saya menguji gagasan itu dengan menghapus redirect 301 dari empat artikel Ahrefs. Domain perujuk turun dengan jelas, tetapi lalu lintas hampir tidak turun. Kesimpulan saya tetap berhati-hati: bukti tersebut belum cukup untuk menyatakan secara pasti bahwa redirect permanen terus meneruskan nilai setelah satu tahun. Pilihan aman tetap mempertahankan redirect lama.

rantai pengalihan dan pengalihan loops

  • sebuah rantai pengalihan adalah lebih daripada satu hop antara requested URL dan -nya akhir destination (halaman 1 → halaman 2 → halaman 3). Google mengikuti up untuk 10 pengalihan hops (“oleh default, Google’s crawlers mengikuti up to 10 pengalihan hops” (terjemahan) “oleh default, Google’s perayap ikuti up untuk 10 pengalihan hops”) — tetapi -nya saat ini situs-perpindahan guidance menyatakan untuk hindari chains dan, jika satu adalah unavoidable, pertahankan ini untuk tidak lebih daripada 3 dan fewer daripada 5 hops. Ten adalah sebuah perayap ceiling; 3-untuk-5 adalah practical panduan, bukan sebuah conflicting limit. Chains tambahkan latency, waste anggaran crawling, dan muddy analytics.
  • sebuah pengalihan loop adalah sebuah chain itu eats -nya sendiri tail — sebuah URL pengalihan untuk sendiri, atau back untuk sebuah earlier URL di chain — karena itu ini tidak pernah resolves. browser throw sebuah “too banyak pengalihan” (terjemahan) “too banyak pengalihan” error; mesin pencari simply memberikan up. sebagai John Mueller put ini: “a pengalihan loop adalah a URL itu doesn’t berfungsi, karena itu ini’s essentially a broken link. We ignore ini for penelusuran.” (terjemahan) “sebuah pengalihan loop adalah sebuah URL itu doesn’t berfungsi, karena itu ini adalah essentially sebuah broken tautan. kami ignore ini untuk penelusuran.” Loops juga trap perayap dan waste server resources.

ada juga dated representative panduan behind familiar five-hop angka. di sebuah 2014 webmaster hangout di 46:03, John Mueller described Googlebot following sebagai banyak sebagai five pengalihan di satu perayapan dan, ketika lebih remained, continuing them pada berikutnya perayapan. di 2020 he separately described Google sebagai following up untuk five hops per perayapan attempt. ini historical statements help jelaskan angka, tetapi neither overrides saat ini dokumentasi atau guarantees itu setiap panjang chain akan menjadi resumed pada sebuah particular schedule.

saya independent practitioner pengamatan adalah itu Google sering melakukan pick longer chains back up, dan I gunakan tentang five hops sebagai sebuah fix-priority threshold. itu’s sebuah operational judgment dari apa I’ve seen, bukan sebuah Google platform limit. target ketika Anda control pengalihan adalah masih satu direct hop.

keduanya memiliki mereka sendiri dedicated artikel di bawah.

cara menerapkan pengalihan

There’s tidak single “right” (terjemahan) “right” place untuk put sebuah pengalihan — pick apa Anda dapat maintain:

  • Konfigurasi sisi server. Gunakan aturan Apache .htaccess, nginx, atau skrip sisi server. Ini merupakan pilihan paling andal bagi kebanyakan situs. Pada WordPress, plugin biasanya hanya menyediakan antarmuka yang lebih mudah untuk mengubah .htaccess.
  • CDN atau edge. Aturan Cloudflare, edge worker, dan mekanisme serupa berjalan sebelum permintaan mencapai origin. Saya cenderung memilih redirect di edge, tetapi tetap menganjurkan penerapan yang paling mudah dipelihara oleh tim.
  • Sisi klien: meta refresh. Tag <meta http-equiv="refresh">. Meta refresh instan dibaca Google sebagai permanen, sedangkan yang tertunda sebagai sementara. Mekanisme ini lebih lambat daripada redirect server.
  • Sisi klien: JavaScript. Skrip mengatur window.location. Google dapat mengikutinya hanya jika rendering berhasil. Karena itu, urutan yang dianjurkan untuk redirect permanen adalah 308/301 → meta refresh 0 → JavaScript → crypto.

pengalihan vs. tag kanonis

ini solve berbeda masalah dan mendapatkan conflated constantly.

  • pengalihan — gunakan ini ketika lama URL seharusnya stop resolving untuk -nya sendiri konten entirely. hanya satu URL seharusnya exist going forward. lama address forwards; ini tidak longer menyajikan sebuah halaman dari -nya sendiri.
  • tag kanonis — gunakan ini ketika several URLs harus stay live dan independently accessible, tetapi Anda ingin Google untuk treat satu sebagai diutamakan versi. Think faceted-nav variants, tracking-parameter URLs, atau print versi — semua reachable, semua pointing sebuah rel=canonical di main satu.

Bing frames yang sama pembagian cleanly Dalam December 2025 duplicate-konten post: “gunakan 301 pengalihan to consolidate variants ke dalam a single diutamakan URL. Apply kanonis tags ketika multiple versions harus remain accessible.” (terjemahan) “gunakan 301 pengalihan untuk consolidate variants ke sebuah single diutamakan URL. Apply tag kanonis ketika multiple versi harus remain accessible.” jika sebuah kanonis hint adalah menjadi ignored dan Anda truly ingin consolidation, Anda dapat escalate untuk sebuah pengalihan — tetapi hanya ketika itu duplicate URL doesn’t perlu untuk pertahankan serving -nya sendiri konten.

sebuah note pada Bing

Directionally, Bing agrees dengan Google: permanen perpindahan mendapatkan 301s, dan sementara ones mendapatkan 302s. Bing’s Fabrice Canel memiliki said ini adalah “preferable to gunakan a 302 pengalihan jika Anda destination URL dapat change di dalam 2 days, lain 301 adalah dianjurkan,” (terjemahan) “preferable untuk gunakan 302 pengalihan jika Anda destination URL dapat perubahan di dalam 2 days, lain 301 adalah dianjurkan,” dan miliknya colleague Frédéric Dubut clarified “2 days” (terjemahan) “2 days” wasn’t sebuah hard threshold — “anytime a pengalihan adalah sementara… you seharusnya gunakan 302s.” (terjemahan) “anytime sebuah pengalihan adalah sementara… Anda harus gunakan 302s.” sama mental model, hanya phrased sekitar bagaimana soon target mungkin perubahan.

di mana untuk membuka berikutnya: pengalihan subcluster

ini hub adalah map. setiap topic di bawah adalah -nya sendiri deep dive, nested di bawah ini hub dan listed di sidebar:

** individual pengalihan codes**

  • 301 pengalihan — permanen workhorse: bagaimana ini consolidates sinyal forward, dan ketika untuk gunakan untuk ini.
  • 302 pengalihan — standar sementara pengalihan, mengapa ini adalah sebuah weak (bukan zero) sinyal, dan bagaimana ini dapat drift ke 301 perilaku.
  • 303 pengalihan (lihat lainnya) — Post/pengalihan/mendapatkan kode, mengapa ini adalah rare di SEO, dan mengapa -nya Google treatment adalah genuinely meta refresh.
  • 307 sementara pengalihan — sama SEO meaning sebagai sebuah 302, tetapi ini strictly preserves HTTP metode, dan di mana ini menampilkan up (HSTS, form/API pengalihan).
  • 308 permanen pengalihan — sama SEO meaning sebagai sebuah 301, tetapi ini strictly preserves HTTP metode dan isi.

** head-untuk-head comparisons**

  • 301 vs. 302 pengalihan — permanen vs. sementara, forward vs. backward sinyal consolidation, dan yang mana untuk gunakan ketika.
  • 301 vs. 308 pengalihan — sama SEO meaning, tetapi 308 preserves HTTP metode dan isi.
  • 302 vs. 307 pengalihan — sama story pada sementara side: identical untuk SEO, tetapi 307 mempertahankan metode dan isi untuk forms dan APIs.

** client-side implementations**

  • JavaScript pengalihan — mengapa mereka’re weakest pilihan, bagaimana Google’s render pipeline treats them differently dari sebuah server-side 301, dan ketika mereka’re sebuah acceptable pilihan terakhir.
  • Meta refresh pengalihan — instan vs. tertunda refreshes, mengapa ini berada di antara server-side dan JavaScript di Google’s urutan dari preferensi, dan mengapa ini adalah tidak dianjurkan.

** pitfalls**

  • rantai pengalihan — mengapa untuk pengalihan langsung untuk akhir URL, 10-hop limit, dan bagaimana chains waste anggaran crawling.
  • pengalihan Loops — tidak pernah-resolving pengalihan, mengapa mesin pencari ignore ini, dan cara break cycle.

di Google penelusuran Console

  • halaman dengan pengalihan — apa ini halaman pengindeksan status berarti, mengapa ini adalah biasa dan bukan sebuah error, dan rare cases itu perlu tindakan.
  • pengalihan Error — Google’s four causes (chain too panjang, loop, max URL length, buruk/empty URL), dan bagaimana ini differs dari biasa “halaman dengan pengalihan” (terjemahan) “halaman dengan pengalihan” status.

untuk seluruh HTTP status-kode gambaran ini subcluster sits di dalam — 2xx/3xx/4xx/5xx families dan codes beyond pengalihan — melihat cluster indeks di /technical-seo/http-status-codes/.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.