ERR_TOO_MANY_REDIRECTS: Cara Memperbaikinya (Semua Browser)

Apa Itu ERR_TOO_MANY_REDIRECTS?
ERR_TOO_MANY_REDIRECTS adalah error browser yang terjadi ketika sebuah website terjebak dalam redirect loop tanpa akhir. Alih-alih memuat halaman, browser terus memantul antar URL — dan setelah mencapai batas redirect, browser menyerah dan menampilkan error ini.
Setiap browser memiliki batas redirect bawaan untuk mencegah loop tanpa akhir menghabiskan resource. Ketika sebuah halaman melebihi batas tersebut, koneksi diputus dan pesan error ditampilkan.
| Browser | Pesan Error | Batas Redirect |
|---|---|---|
| Chrome | This page isn't working — ERR_TOO_MANY_REDIRECTS | 20 redirect |
| Firefox | The page isn't redirecting properly | 20 redirect |
| Safari | Safari Can't Open the Page — too many redirects occurred | 16 redirect |
| Edge | This page isn't working — ERR_TOO_MANY_REDIRECTS | 20 redirect |
Kode status HTTP yang mendasari redirect loop biasanya adalah 301 (redirect permanen) atau 302 (redirect sementara). Loop yang umum terlihat seperti ini: browser Anda meminta URL A, server merespons dengan 301 ke URL B, URL B merespons dengan 301 kembali ke URL A, dan siklus berulang sampai browser mencapai batasnya.
Apa Penyebab Redirect Loop?
Redirect loop terjadi ketika dua atau lebih aturan redirect saling bertentangan. Server mengirim browser ke sebuah URL, dan URL tersebut mengirim browser kembali. Berikut penyebab paling umum:
Kesalahan konfigurasi SSL/HTTPS — Penyebab paling umum. Server Anda memaksa HTTP ke HTTPS, tetapi CDN atau load balancer terhubung ke origin melalui HTTP, menciptakan loop: CDN → HTTP → server redirect ke HTTPS → CDN menghapus HTTPS → HTTP → loop
Cloudflare Flexible SSL — Mode Flexible SSL Cloudflare mengirim permintaan ke origin Anda melalui HTTP. Jika origin Anda juga memiliki redirect HTTP ke HTTPS, terjadi loop tanpa akhir antara Cloudflare dan server Anda
Aturan .htaccess yang bertentangan — Beberapa aturan redirect di
.htaccessyang saling bertentangan, seperti satu aturan memaksa www dan aturan lain memaksa non-www secara bersamaanKetidaksesuaian URL WordPress — WordPress Address (URL) dan Site Address (URL) di Settings > General tidak cocok, atau satu menggunakan HTTP sementara yang lain menggunakan HTTPS
Cookie browser yang usang — Cookie lama yang berisi instruksi redirect atau data sesi yang memaksa browser ke URL yang sudah tidak ada atau sudah dipindahkan
Redirect yang di-cache CDN atau proxy — CDN Anda meng-cache redirect 301 lama yang sekarang bertentangan dengan konfigurasi server Anda saat ini
Konflik konfigurasi server — File konfigurasi Nginx atau Apache dengan blok redirect yang saling bersaing, seperti redirect di server block dan .htaccess secara bersamaan
Cara Mendiagnosis Redirect Loop
Sebelum mencoba perbaikan, identifikasi rantai redirect yang tepat. Ini akan memberi tahu Anda secara persis URL mana yang terlibat dan aturan redirect mana yang menyebabkan loop.
Metode 1: Gunakan curl untuk Melacak Redirect
Cara tercepat untuk melihat rantai redirect adalah dengan curl di terminal Anda. Flag -I hanya mengambil header, -L mengikuti redirect, dan --max-redirs membatasi berapa banyak yang diikuti:
# Trace redirect chain (limit to 10 hops)
curl -ILs --max-redirs 10 https://example.com 2>&1 | grep -i 'HTTP/\|location:'
# Example output showing a redirect loop:
# HTTP/2 301
# location: http://example.com/
# HTTP/1.1 301 Moved Permanently
# Location: https://example.com/
# HTTP/2 301
# location: http://example.com/
# (repeats...)Jika Anda melihat dua URL yang sama berulang-ulang di header Location, Anda telah mengkonfirmasi redirect loop. Perhatikan kode status HTTP — 301 berarti redirect permanen (di-cache oleh browser), 302 berarti sementara (tidak di-cache).
Metode 2: Tab Network di DevTools Browser
Anda juga bisa melacak redirect secara visual di Chrome DevTools:
Langkah 1 — Buka Chrome DevTools dengan
F12atauCtrl+Shift+I(Mac:Cmd+Option+I)Langkah 2 — Buka tab Network dan centang Preserve log (ini menyimpan entri lintas redirect)
Langkah 3 — Muat halaman yang memicu error
Langkah 4 — Lihat urutan request. Setiap redirect muncul sebagai entri terpisah dengan status 301 atau 302. Kolom Location menunjukkan ke mana setiap redirect mengarah
Tab Network menampilkan seluruh rantai redirect secara kronologis. Anda akan melihat polanya — biasanya dua atau tiga URL yang berulang dalam siklus. Gunakan HTTP Headers Checker DNS Robot untuk memeriksa header respons dari luar cache browser Anda.
Metode 3: Redirect Checker Online
Jika Anda tidak memiliki akses terminal, gunakan Redirect Checker DNS Robot untuk melacak seluruh rantai redirect. Masukkan URL dan tool ini akan menampilkan setiap lompatan, kode status, dan tujuan akhir — atau mengkonfirmasi bahwa loop ada. Ini berguna karena memeriksa dari lokasi netral tanpa cookie browser Anda yang mempengaruhi hasil.
Perbaikan 1: Hapus Cookie dan Cache Browser
Mulai dengan perbaikan paling sederhana. Cookie yang usang atau redirect yang di-cache di browser Anda bisa menyebabkan loop meskipun konfigurasi server sudah benar. Ini terutama umum setelah situs bermigrasi dari HTTP ke HTTPS — cookie lama mungkin masih merujuk ke URL HTTP.
Hapus Cookie di Chrome
Hapus cookie untuk situs tertentu saja, bukan semua cookie — ini mempertahankan login Anda di situs lain:
Langkah 1 — Klik ikon gembok (atau ikon tune) di address bar di samping URL
Langkah 2 — Klik Site settings
Langkah 3 — Klik Clear data untuk menghapus cookie dan data cache untuk situs tersebut saja
Langkah 4 — Muat ulang halaman
# Chrome keyboard shortcut to open Clear Browsing Data:
# Windows/Linux: Ctrl + Shift + Delete
# macOS: Cmd + Shift + DeleteAtau, buka chrome://settings/clearBrowserData, pilih Cookies and other site data dan Cached images and files, atur rentang waktu ke All time, lalu klik Clear data.
Hapus Cookie di Firefox dan Safari
Firefox: Tekan Ctrl+Shift+Delete (Mac: Cmd+Shift+Delete), pilih Cookies dan Cache, atur rentang waktu ke Everything, lalu klik Clear Now.
Safari: Buka Safari > Settings > Privacy > Manage Website Data, cari domain yang bermasalah, pilih, lalu klik Remove. Kemudian bersihkan cache dengan Cmd+Option+E.
Perbaikan 2: Periksa Konfigurasi SSL/HTTPS
Kesalahan konfigurasi SSL adalah penyebab #1 redirect loop. Skenario paling umum adalah konflik antara CDN/proxy dan server origin tentang apakah menggunakan HTTP atau HTTPS.
Berikut yang biasanya terjadi: CDN Anda terhubung ke origin melalui HTTP (karena menangani SSL termination), tetapi origin memiliki redirect HTTP ke HTTPS. Origin mengirim CDN kembali ke HTTPS, CDN menghapusnya dan mengirim HTTP lagi — loop tanpa akhir.
Periksa sertifikat SSL Anda — Gunakan SSL Checker DNS Robot untuk memverifikasi sertifikat Anda valid, belum expired, dan mencakup domain yang benar
Samakan protokol — Jika CDN Anda menangani SSL termination, hapus redirect HTTP ke HTTPS di origin, atau konfigurasikan CDN untuk terhubung ke origin melalui HTTPS
Periksa pengaturan force-HTTPS — Jika Anda memiliki redirect di level server (Nginx/Apache) DAN force-HTTPS di level CDN, hapus salah satunya
Verifikasi header X-Forwarded-Proto — Saat berada di belakang proxy, origin Anda harus memeriksa header ini alih-alih protokol koneksi mentah untuk menentukan apakah permintaan asli menggunakan HTTPS
Perbaikan 3: Perbaiki Redirect Loop Cloudflare
Cloudflare adalah pemicu paling umum untuk ERR_TOO_MANY_REDIRECTS karena cara kerja mode SSL-nya. Perbaikan tergantung pada mode enkripsi SSL/TLS yang Anda gunakan.
| Mode SSL | Cara Koneksi ke Origin | Menyebabkan Loop Ketika... |
|---|---|---|
| Flexible | HTTP (tidak terenkripsi) | Origin memiliki redirect HTTP→HTTPS |
| Full | HTTPS (tanpa validasi sertifikat) | Origin redirect HTTPS→HTTP |
| Full (Strict) | HTTPS (validasi sertifikat) | Origin redirect HTTPS→HTTP |
Perbaikan untuk 90% redirect loop Cloudflare: ubah mode enkripsi SSL/TLS dari Flexible ke Full atau Full (Strict). Ini membuat Cloudflare terhubung ke origin Anda melalui HTTPS, menghilangkan loop HTTP ke HTTPS.
Langkah-Langkah Perbaikan Cloudflare
Langkah 1 — Login ke Cloudflare dashboard
Langkah 2 — Pilih domain Anda
Langkah 3 — Buka SSL/TLS > Overview
Langkah 4 — Ubah mode enkripsi ke Full (Strict) jika Anda memiliki sertifikat SSL yang valid di origin, atau Full jika menggunakan sertifikat self-signed
Langkah 5 — Buka SSL/TLS > Edge Certificates dan periksa apakah Always Use HTTPS aktif. Jika origin Anda sudah redirect ke HTTPS, nonaktifkan ini untuk menghindari double redirect
Langkah 6 — Periksa Page Rules dan Redirect Rules untuk redirect URL yang bertentangan
Langkah 7 — Purge cache Cloudflare: buka Caching > Configuration > Purge Everything
Perbaikan 4: Perbaiki Aturan Redirect .htaccess (Apache)
Di server Apache, .htaccess adalah lokasi paling umum untuk aturan redirect — dan tempat paling umum di mana redirect loop bermula. Aturan yang bertentangan, redirect duplikat, atau pemeriksaan kondisi yang hilang semuanya bisa menciptakan loop.
Periksa redirect HTTPS duplikat — Jika panel hosting Anda (cPanel, Plesk) memaksa HTTPS, hapus redirect manual dari .htaccess
Periksa kondisi RewriteCond — Setiap RewriteRule yang melakukan redirect harus memiliki RewriteCond yang mencegahnya berjalan pada URL yang sudah cocok. Tanpa ini, aturan berjalan di setiap permintaan termasuk yang sudah di-redirect
Perhatikan flag [L] — Flag
[L]berarti 'aturan terakhir' tetapi hanya untuk pass saat ini. Jika ada.htaccesslain di subdirektori, ia berjalan lagi. Gunakan[END]di Apache 2.4+ sebagai gantinyaPeriksa header proxy — Di belakang CDN, gunakan
%{HTTP:X-Forwarded-Proto}alih-alih%{HTTPS}untuk mendeteksi protokol asli
# Correct HTTPS redirect behind Cloudflare/CDN:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]Jika Anda tidak yakin aturan mana yang menyebabkan loop, rename .htaccess menjadi .htaccess.bak sementara dan uji apakah situs bisa dimuat. Jika bisa, masalahnya ada di file .htaccess Anda. Aktifkan kembali aturan satu per satu sampai Anda menemukan aturan yang bermasalah.
Perbaikan 5: Perbaiki Redirect Loop WordPress
Redirect loop WordPress biasanya berasal dari tiga sumber: URL yang tidak cocok di Settings, konflik plugin, atau nilai wp-config.php yang salah. Jika Anda tidak bisa mengakses dashboard WordPress karena redirect loop, Anda perlu memperbaikinya langsung melalui database atau file konfigurasi.
Periksa Pengaturan URL WordPress
WordPress memiliki dua pengaturan URL yang harus cocok: WordPress Address (URL) dan Site Address (URL) di Settings > General. Jika satu menggunakan http:// dan yang lain menggunakan https://, atau satu punya www. dan yang lain tidak, Anda akan mendapat redirect loop.
Jika Anda tidak bisa mengakses dashboard, hardcode URL di wp-config.php:
// Add these lines to wp-config.php (above "That's all, stop editing!"):
define('WP_HOME', 'https://example.com');
define('WP_SITEURL', 'https://example.com');
// If behind a reverse proxy (Cloudflare, Nginx proxy):
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
$_SERVER['HTTPS'] = 'on';
}Nonaktifkan Plugin untuk Menemukan Konflik
Plugin redirect dan caching sering menjadi penyebab. Plugin seperti Redirection, Yoast SEO, Really Simple SSL, WP Super Cache, dan W3 Total Cache semuanya bisa menambahkan aturan redirect yang bertentangan dengan pengaturan server atau CDN Anda.
Jika Anda tidak bisa mengakses dashboard, nonaktifkan semua plugin melalui FTP atau SSH:
# Rename the plugins folder to disable all plugins at once:
cd /var/www/html/wp-content/
mv plugins plugins.bak
# If the site loads, rename it back and disable plugins one by one:
mv plugins.bak plugins
# Then rename individual plugin folders to find the culprit:
mv plugins/really-simple-ssl plugins/really-simple-ssl.bakJika menonaktifkan plugin memperbaiki error, aktifkan kembali satu per satu untuk mengidentifikasi plugin yang bermasalah. Penyebab paling umum adalah plugin SSL yang menambahkan redirect HTTP ke HTTPS ketika server atau CDN Anda sudah menanganinya.
Perbaikan 6: Perbaiki Redirect Level Server (Nginx & Apache)
File konfigurasi server bisa berisi aturan redirect yang bertentangan dengan redirect di level aplikasi (WordPress, .htaccess) atau pengaturan CDN.
Nginx: Periksa Konflik Redirect
Redirect loop Nginx biasanya terjadi ketika server block HTTP redirect ke HTTPS, tetapi sesuatu di blok HTTPS redirect kembali ke HTTP. Periksa konfigurasi situs Anda:
# Correct Nginx HTTPS redirect (separate server blocks):
server {
listen 80;
server_name example.com www.example.com;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl;
server_name example.com;
# SSL certificate configuration here
# DO NOT add another redirect to HTTPS here
}
# If behind Cloudflare/proxy, check real protocol:
server {
listen 80;
server_name example.com;
if ($http_x_forwarded_proto != 'https') {
return 301 https://example.com$request_uri;
}
}Apache: Periksa Redirect VirtualHost
Di Apache, periksa konfigurasi VirtualHost dan .htaccess. Redirect di konfigurasi VirtualHost ditambah redirect di .htaccess menciptakan double redirect yang bisa menjadi loop:
# Check Apache config for redirect rules:
grep -r 'Redirect\|RewriteRule' /etc/apache2/sites-enabled/
grep -r 'Redirect\|RewriteRule' /etc/httpd/conf.d/
# Check .htaccess:
cat /var/www/html/.htaccess | grep -i 'rewrite\|redirect'Hapus redirect duplikat — simpan redirect hanya di satu tempat. Praktik terbaik adalah menangani redirect HTTPS di konfigurasi VirtualHost (bukan .htaccess) karena aturan VirtualHost diproses sekali per permintaan sedangkan .htaccess diproses di setiap permintaan.
Perbaikan 7: Troubleshooting Khusus Browser
Jika error hanya muncul di satu browser, masalahnya kemungkinan adalah redirect yang di-cache atau konflik ekstensi, bukan masalah server.
Chrome: Hapus HSTS dan Socket Pool
Chrome meng-cache kebijakan HSTS (HTTP Strict Transport Security) yang memaksa HTTPS. Jika sebuah situs sebelumnya mengirim header HSTS tetapi tidak lagi menggunakan HTTPS dengan benar, Chrome akan terus redirect ke HTTPS bahkan setelah Anda menghapus cookie.
Hapus cache HSTS — Buka
chrome://net-internals/#hsts, masukkan domain di bawah Delete domain security policies, lalu klik DeleteFlush socket pools — Buka
chrome://net-internals/#socketsdan klik Flush socket pools untuk menghapus koneksi yang di-cacheHapus cache DNS — Buka
chrome://net-internals/#dnsdan klik Clear host cacheTest di Incognito — Buka jendela Incognito (
Ctrl+Shift+N) dan coba URL-nya. Jika berfungsi di Incognito tetapi tidak di jendela normal, penyebabnya adalah redirect yang di-cache atau ekstensi
Perbaikan Firefox dan Safari
Firefox: Ketik about:config di address bar, cari network.http.redirection-limit, dan verifikasi nilainya 20 (default). Jika ekstensi mengubah ini ke angka yang sangat rendah, redirect bisa gagal lebih awal. Coba juga menghapus data situs: Settings > Privacy & Security > Manage Data > cari domain > Remove Selected.
Safari: Safari menampilkan "too many redirects occurred" dan memberikan error yang kurang detail dibanding Chrome. Buka Safari > Settings > Privacy > Manage Website Data, temukan domainnya, dan hapus datanya. Jika masalah berlanjut, coba Safari > Clear History (pilih semua riwayat).
Cara Mencegah Redirect Loop
Setelah memperbaiki error, ikuti praktik-praktik ini untuk mencegah redirect loop terjadi lagi:
Redirect di satu tempat saja — Pilih satu layer untuk redirect HTTPS Anda: CDN, web server, atau aplikasi. Jangan pernah redirect di beberapa layer secara bersamaan
Gunakan 302 saat testing — Selama debugging, gunakan redirect 302 (sementara) alih-alih 301 (permanen). Browser meng-cache 301 secara agresif, membuat sulit untuk menguji perubahan. Beralih ke 301 setelah Anda mengonfirmasi redirect berfungsi dengan benar
Selalu test dengan curl — Setelah menambahkan aturan redirect, jalankan
curl -ILs https://yoursite.com | grep -i 'HTTP/\|location:'untuk memverifikasi rantai redirect berakhir dengan respons 200Pantau dengan tools — Gunakan HTTP Headers Checker DNS Robot secara rutin untuk memverifikasi situs Anda mengembalikan respons 200 yang bersih tanpa redirect tak terduga
Dokumentasikan redirect Anda — Simpan catatan semua aturan redirect di server config, .htaccess, aturan CDN, dan pengaturan aplikasi. Ketika banyak anggota tim mengelola situs, redirect yang tidak terdokumentasi adalah penyebab #1 loop
Purge cache CDN setelah perubahan — Setelah memodifikasi aturan redirect apa pun, purge cache CDN Anda segera. 301 yang ter-cache bisa bertahan berhari-hari
Dampak Redirect Loop terhadap SEO
Redirect loop secara langsung merugikan peringkat pencarian Anda. Crawler Google (Googlebot) mengikuti hingga 10 redirect per URL sebelum menyerah. Jika Googlebot menemukan redirect loop, ia menandai halaman sebagai crawl error dan berhenti mengindeksnya.
Menurut dokumentasi Google tentang redirect, rantai redirect harus sesingkat mungkin. Setiap lompatan redirect tambahan menambahkan sekitar 100-500ms latensi dan menghabiskan crawl budget Anda — jumlah halaman yang akan di-crawl Google di situs Anda per hari.
Kehilangan indexing — Halaman yang terjebak dalam redirect loop tidak diindeks dan menghilang dari hasil pencarian sepenuhnya
Pemborosan crawl budget — Googlebot menghabiskan crawl budget terbatasnya untuk mengikuti redirect alih-alih meng-crawl konten sebenarnya
Penalti kecepatan halaman — Setiap redirect 301 menambahkan round-trip penuh (100-500ms). Tiga redirect bisa menambahkan lebih dari satu detik ke waktu muat
Pengenceran link equity — Backlink yang mengarah ke URL yang di-redirect kehilangan sekitar 1-5% nilai PageRank per lompatan
Pertanyaan yang Sering Diajukan
Periksa rantai redirect Anda sekarang
Gunakan Redirect Checker gratis dari DNS Robot untuk melacak setiap lompatan dalam rantai redirect dan mengidentifikasi loop secara instan. Periksa juga header HTTP dan status sertifikat SSL Anda.
Try Redirect CheckerFrequently Asked Questions
ERR_TOO_MANY_REDIRECTS berarti browser Anda mendeteksi redirect loop tanpa akhir. Website terus mengirim browser Anda bolak-balik antar URL tanpa pernah memuat halaman. Chrome dan Firefox mengizinkan hingga 20 redirect sebelum menampilkan error ini, sementara Safari mengizinkan sekitar 16.