ERR_TOO_MANY_REDIRECTS: Cara Memperbaikinya (Semua Browser)

Poin penting

ERR_TOO_MANY_REDIRECTS (di Chrome berbahasa Indonesia: "terlalu sering mengalihkan Anda"; berbahasa Inggris: "redirected you too many times") berarti halaman mengalihkan browser Anda lebih dari 20 kali tanpa pernah dimuat, batas yang sama di Chrome, Edge, Firefox, dan Safari. Pengunjung mengatasinya dengan menghapus cookie situs tersebut. Pemilik situs mengatasinya dengan memaksa HTTPS (dan www) di satu tempat saja: sebagian besar loop berasal dari mode Flexible SSL Cloudflare ditambah redirect HTTPS di server.

Periksa sekarang

Panduan perbaikan error ERR_TOO_MANY_REDIRECTS — penyebab redirect loop dan solusi langkah demi langkah
Panduan perbaikan error ERR_TOO_MANY_REDIRECTS — penyebab redirect loop dan solusi langkah demi langkah
Mulai membaca
  1. Apa Itu ERR_TOO_MANY_REDIRECTS?
  2. Apa Penyebab Redirect Loop?
  3. Cara Mendiagnosis Redirect Loop
  4. Perbaikan 1: Hapus Cookie dan Cache Browser
  5. Perbaikan 2: Periksa Konfigurasi SSL/HTTPS
  6. Perbaikan 3: Perbaiki Redirect Loop Cloudflare
  7. Perbaikan 4: Perbaiki Aturan Redirect .htaccess (Apache)
  8. Perbaikan 5: Perbaiki Redirect Loop WordPress
  9. Perbaikan 6: Perbaiki Redirect Level Server (Nginx & Apache)
  10. Perbaikan 7: Troubleshooting Khusus Browser
  11. Perbaikan 8: Redirect Loop Login di Aplikasi Web
  12. Cara Mencegah Redirect Loop
  13. Dampak Redirect Loop terhadap SEO
  14. Pertanyaan yang Sering Diajukan

Apa Itu ERR_TOO_MANY_REDIRECTS?

ERR_TOO_MANY_REDIRECTS berarti halaman mengirim browser Anda ke alamat lain lebih dari 20 kali tanpa pernah dimuat: sebuah redirect loop. Chrome berbahasa Indonesia menampilkan "Halaman ini tidak berfungsi" dan "example.com terlalu sering mengalihkan Anda."; Chrome berbahasa Inggris menampilkan "This page isn't working. example.com redirected you too many times"; Edge menampilkan halaman serupa dengan kode yang sama. Firefox menampilkan "Laman tidak teralihkan dengan benar", dan Safari menampilkan "too many redirects occurred".

Jika Anda hanya mengunjungi situs tersebut, hapus cookie situs itu lalu muat ulang: cookie usang adalah penyebab umum ketika situs berfungsi normal untuk orang lain. Jika itu situs Anda, loop hampir selalu terjadi karena HTTPS (atau www) dipaksa di dua tempat sekaligus, paling sering mode Flexible SSL Cloudflare ditambah redirect HTTPS di server.

Periksa rantai redirect Anda sekarang

BrowserYang ditampilkanJumlah redirect yang diikuti
ChromeHalaman ini tidak berfungsi (This page isn't working) · ERR_TOO_MANY_REDIRECTS20 (kMaxRedirects di Chromium)
EdgeHalaman error serupa · ERR_TOO_MANY_REDIRECTS20 (Chromium)
FirefoxLaman tidak teralihkan dengan benar (The page isn't redirecting properly)20 (network.http.redirection-limit)
SafariSafari Can't Open the Page · too many redirects occurred20 (Web Inspector: "Load cannot follow more than 20 redirections")
Console DevTools Chrome dan Edgenet::ERR_TOO_MANY_REDIRECTS20 (juga batas dari Fetch Standard)

Batasnya sama di mana-mana karena Fetch Standard yang diterapkan browser menetapkannya: "jika jumlah redirect pada request sudah 20, kembalikan network error". Loop-nya sendiri biasanya berupa dua respons 301 atau 302 yang saling menunjuk: URL A mengirim Anda ke URL B, URL B mengirim Anda kembali ke A, dan browser berhenti menghitung di angka 20.

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 .htaccess yang saling bertentangan, seperti satu aturan memaksa www dan aturan lain memaksa non-www secara bersamaan
  • Ketidaksesuaian 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
  • Loop login di aplikasi — halaman login yang mengalihkan pengunjung yang belum login ke dirinya sendiri, atau cookie sesi yang ditolak browser untuk disimpan (OAuth, Supabase Auth, NextAuth). Lihat Perbaikan 8

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:

bash
# 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 bergantian di header Location, Anda telah mengonfirmasi redirect loop. Perhatikan kode statusnya: 301 adalah redirect permanen yang di-cache browser, sedangkan 302 adalah redirect sementara yang tidak di-cache kecuali responsnya memintanya.

Perhatikan skema di setiap header Location: loop antara versi http:// dan https:// dari URL yang sama adalah pola paling umum, dan langsung menunjuk ke pengaturan SSL.

Metode 2: Tab Network di DevTools Browser

Anda juga bisa melacak redirect secara visual di Chrome DevTools:

  • Langkah 1 — Buka Chrome DevTools dengan F12 atau Ctrl+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 alat Cek HTTP Header DNS Robot untuk memeriksa header respons dari luar cache browser Anda.

Metode 3: Redirect Checker Online

Jika Anda tidak punya terminal, tempel URL ke Cek Redirect DNS Robot. Tool ini mengikuti setiap lompatan dari server kami, menampilkan setiap kode status dan header Location, serta memberi tahu saat rantainya berputar kembali ke dirinya sendiri. Karena berjalan tanpa cookie browser Anda, tool ini langsung menunjukkan apakah loop berasal dari situs atau dari browser Anda.

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 Setelan situs
  • Langkah 3 — Klik Hapus data untuk menghapus cookie dan data cache untuk situs tersebut saja
  • Langkah 4 — Muat ulang halaman
bash
# Chrome keyboard shortcut to open Delete browsing data:
# Windows/Linux: Ctrl + Shift + Delete
# macOS: Cmd + Shift + Delete

Atau hapus semuanya untuk semua situs: tekan Ctrl+Shift+Delete (Mac: Cmd+Shift+Delete) untuk membuka Hapus data penjelajahan, centang Cookie dan data situs lainnya serta Gambar dan file dalam cache, pilih Semua, lalu klik Hapus data.

Hapus Cookie di Firefox dan Safari

Firefox: Tekan Ctrl+Shift+Delete (Mac: Cmd+Shift+Delete), centang Kuki dan data situs serta Berkas dan laman tembolok sementara, atur rentang waktu ke Semuanya, lalu klik Bersihkan.

Safari: Buka Safari > Pengaturan > Privasi > Kelola Data Situs Web, cari domain yang bermasalah, pilih, lalu klik Hapus. Kemudian bersihkan cache dengan Cmd+Option+E.

Jika menghapus cookie berhasil, berarti ada aturan redirect di server yang baru saja berubah dan browser Anda masih menyimpan kondisi lama. Pengunjung dengan sesi baru mungkin tidak pernah melihat error ini.

Gmail, Google Drive, atau accounts.google.com Terlalu Sering Mengalihkan Anda

Saat pesannya menyebut accounts.google.com, mail.google.com, atau drive.google.com, loop-nya terjadi antara halaman login Google dan cookie browser Anda, bukan karena website-nya rusak. Chrome berbahasa Indonesia menampilkannya sebagai "Halaman ini tidak berfungsi" dan "accounts.google.com terlalu sering mengalihkan Anda."; Chrome berbahasa Inggris menampilkan "This page isn't working" dan "accounts.google.com redirected you too many times.". Login Google hanya berfungsi jika browser menyimpan cookie Google, jadi apa pun yang memblokir atau mengubah cookie tersebut membuat Anda berputar-putar:

  • Hapus cookie Google saja — buka chrome://settings/content/all (Lihat semua data situs dan izin), cari google.com, hapus datanya, lalu login lagi. Menurut bantuan resmi Google, setelah itu Anda harus login lagi ke Akun Google di browser tersebut
  • Izinkan cookie untuk Google — keluarkan google.com dari daftar situs yang tidak diizinkan memakai cookie, dan jika Anda memblokir cookie pihak ketiga, tambahkan [*.]google.com ke Situs diizinkan menggunakan cookie pihak ketiga (Chrome: Setelan → Privasi dan keamanan → Cookie pihak ketiga)
  • Logout dari semua akun, lalu login dengan satu akun — beberapa akun yang login bersamaan, atau akun kantor yang menyerahkan proses login ke halaman login milik perusahaan, bisa saling memantul
  • Matikan ekstensi cookie dan privasi — ekstensi yang menghapus atau mengubah cookie saat login adalah pemicu umum. Chrome menonaktifkan ekstensi di mode Samaran (Incognito) kecuali Anda mengizinkannya, jadi coba jendela Samaran terlebih dahulu

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.

Sertifikat yang bermasalah di balik pengaturan yang sama menampilkan error lain; lihat ERR_SSL_PROTOCOL_ERROR dan "Koneksi Anda tidak pribadi".

  • Periksa sertifikat SSL Anda — Gunakan Cek SSL 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 karena mode enkripsinya menentukan apakah Cloudflare menghubungi server Anda lewat HTTP atau HTTPS. Halaman troubleshooting Cloudflare (diperbarui September 2026) mencantumkan lima pengaturan yang memicu loop, masing-masing jika bertemu dengan sesuatu yang dilakukan server origin Anda:

Pengaturan CloudflareLoop jika server Anda…Perbaikan
Mode SSL/TLS Flexibleme-redirect HTTP ke HTTPS (Cloudflare menghubunginya lewat HTTP)Ubah mode ke Full (strict), atau hapus redirect HTTPS di server
Full atau Full (strict)me-redirect HTTPS kembali ke HTTPHapus redirect HTTP di server
Always Use HTTPSme-redirect HTTPS ke HTTPHapus redirect HTTP di server, atau matikan pengaturan ini
HSTSme-redirect HTTPS ke HTTP, atau mode enkripsinya OffHapus redirect HTTP dan pertahankan mode di Flexible atau lebih tinggi
Redirect Rules / Page Rulesdua aturan saling melempar request (HTTP ↔ HTTPS, www ↔ non-www)Hapus atau gabungkan aturan yang bertentangan

Perbaikan yang biasa untuk 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 origin Anda memiliki sertifikat yang valid (sertifikat Origin CA gratis dari Cloudflare juga termasuk), atau ke Full hanya jika sertifikatnya 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 .htaccess lain di subdirektori, ia berjalan lagi. Gunakan [END] di Apache 2.4+ sebagai gantinya
  • Periksa header proxy — Di belakang CDN, gunakan %{HTTP:X-Forwarded-Proto} alih-alih %{HTTPS} untuk mendeteksi protokol asli
bash
# 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:

bash
// 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:

bash
# 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.bak

Jika 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:

bash
# 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;
    }
}

Jalankan nginx -t setelah mengedit untuk menangkap error sintaks, lalu systemctl reload nginx untuk menerapkan perubahan tanpa downtime.

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:

bash
# 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 Delete
  • Flush socket pools — Buka chrome://net-internals/#sockets dan klik Flush socket pools untuk menghapus koneksi yang di-cache
  • Hapus cache DNS — Buka chrome://net-internals/#dns dan klik Clear host cache (cara lain ada di cara flush DNS)
  • Test di mode Samaran — Buka jendela Samaran (Incognito) (Ctrl+Shift+N) dan coba URL-nya. Jika berfungsi di jendela Samaran 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 pastikan nilainya 20 (default). Nilai yang lebih rendah, yang diatur manual atau lewat kebijakan perusahaan, membuat redirect gagal lebih cepat. Coba juga menghapus data situs: Pengaturan > Privasi & Keamanan > Kelola Data > cari domain > Hapus yang Dipilih.

Safari: Safari menampilkan "Safari Can't Open the Page" dengan "too many redirects occurred" (teks versi bahasa Inggris); console Web Inspector-nya menulis "Load cannot follow more than 20 redirections". Buka Safari > Pengaturan > Privasi > Kelola Data Situs Web, temukan domainnya, lalu hapus datanya. Jika masih loop, uji di jendela penelusuran pribadi: jika di sana juga loop, berarti konfigurasi situsnya yang salah.

Perbaikan 8: Redirect Loop Login di Aplikasi Web

Di aplikasi web, loop sering berasal dari kode Anda sendiri: halaman yang memerlukan pengguna login me-redirect ke /login, lalu sesuatu mengirim /login (atau callback login) langsung kembali. Console browser menampilkannya sebagai net::ERR_TOO_MANY_REDIRECTS pada request yang gagal.

  • Halaman login ikut dilindungi — middleware auth yang berjalan di setiap route juga me-redirect /login dan route callback ke /login. Kecualikan keduanya dari pemeriksaan
  • Cookie sesi tidak pernah tersimpan — cookie yang diset dengan SameSite=None juga harus Secure, kalau tidak browser membuangnya; cookie yang diset untuk domain yang salah tidak pernah dikirim kembali. Dalam kedua kasus, setiap request tetap terlihat belum login
  • URL callback tidak cocok — provider (Google, GitHub, Supabase Auth) mengirim pengguna ke callback yang tidak ditangani aplikasi Anda, dan route tersebut me-redirect ke login lagi
  • HTTP vs HTTPS di belakang proxy — aplikasi menyusun URL redirect dengan http:// karena mengabaikan X-Forwarded-Proto: loop dari Perbaikan 2, satu lapis lebih atas
ts
// Next.js: proxy.ts (middleware.ts before Next.js 16).
// Never run the sign-in check on the sign-in pages themselves.
export const config = {
  matcher: ["/((?!login|auth/callback|_next/static|_next/image|favicon.ico).*)"],
};

Uji perbaikannya dengan Cek Redirect atau curl -IL dalam keadaan belum login: rantai yang sehat berakhir di halaman login dengan 200, bukan redirect lain.

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 200
  • Pantau dengan tools — Gunakan alat Cek HTTP Header 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

Rantai yang sehat paling banyak punya satu atau dua lompatan (misalnya HTTP → HTTPS → 200 OK). Tiga atau lebih biasanya berarti ada redirect yang sudah tidak Anda perlukan.

Dampak Redirect Loop terhadap SEO

Redirect loop mengeluarkan halaman dari hasil pencarian. Dokumentasi crawling Google menyebutkan crawler-nya "mengikuti hingga 10 lompatan redirect"; loop tidak pernah mencapai konten, sehingga Search Console melaporkan error pengalihan dan URL tersebut keluar dari indeks sampai loop-nya diperbaiki.

Rantai panjang tetap merugikan meskipun berakhir: setiap lompatan adalah satu request tambahan yang harus dilakukan browser dan Googlebot sebelum halaman bisa dimuat, jadi arahkan link dan redirect langsung ke URL akhir.

  • 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
  • Halaman lebih lambat — setiap lompatan berarti satu request dan satu perjalanan bolak-balik lagi sebelum konten apa pun dimuat, dan lompatan ke host lain juga butuh koneksi baru

Periksa rantai redirect Anda sekarang

Tempel URL ke Cek Redirect gratis dari DNS Robot: tool ini mengikuti setiap lompatan dari server kami tanpa cookie Anda, menampilkan kode status dan header Location tiap lompatan, dan memberi tahu saat rantainya membentuk loop.

Sumber

  1. Fetch Standard: HTTP-redirect fetch (the 20-redirect limit), WHATWG
  2. ERR_TOO_MANY_REDIRECTS: SSL/TLS troubleshooting, Cloudflare
  3. How HTTP status codes and network errors affect Google's crawlers, Google Search Central
  4. net_error_list.h (ERR_TOO_MANY_REDIRECTS -310, ERR_TOO_MANY_RETRIES -375), Chromium

Pertanyaan yang Sering Diajukan

Apa arti ERR_TOO_MANY_REDIRECTS?

Artinya halaman mengalihkan browser Anda lebih dari 20 kali tanpa pernah dimuat: sebuah redirect loop, biasanya dua URL yang saling melempar Anda bolak-balik. Chrome, Edge, Firefox, dan Safari semuanya berhenti di 20 redirect, batas yang ditetapkan Fetch Standard.

Bagaimana cara memperbaiki too many redirects di Chrome?

Hapus cookie situs tersebut (ikon gembok atau ikon tune > Setelan situs > Hapus data) lalu muat ulang. Jika masih loop, hapus domainnya di chrome://net-internals/#hsts dan coba jendela Samaran (Incognito). Jika di jendela Samaran juga loop, masalahnya ada di server: pengaturan SSL, aturan .htaccess, atau konfigurasi CDN-nya.

Mengapa Gmail atau accounts.google.com terlalu sering mengalihkan saya?

Login Google membutuhkan cookie Google. Hapus cookie untuk google.com, pastikan cookie tidak diblokir untuk [*.]google.com, logout dari semua akun lalu login dengan satu akun, dan uji di jendela Samaran untuk menyingkirkan kemungkinan ekstensi.

Mengapa Cloudflare menyebabkan ERR_TOO_MANY_REDIRECTS?

Mode Flexible SSL Cloudflare menghubungi server Anda lewat HTTP, sehingga server yang me-redirect HTTP ke HTTPS mengembalikan setiap request dalam loop. Ubah mode enkripsi ke Full (strict). Kebalikannya juga menyebabkan loop: mode Full, Always Use HTTPS, atau HSTS dengan server yang me-redirect HTTPS ke HTTP.

Bisakah cookie menyebabkan redirect loop?

Ya. Cookie usang dari sebelum aturan redirect berubah bisa terus mengirim browser ke alamat lama. Menghapus cookie untuk satu situs itu saja selalu menjadi langkah pertama, dan tidak membuat Anda logout dari situs lain.

Bagaimana cara memperbaiki ERR_TOO_MANY_REDIRECTS di WordPress?

Pastikan WordPress Address dan Site Address di Settings > General memakai skema yang sama (https://) dan bentuk www yang sama. Jika loop membuat Anda tidak bisa masuk ke dashboard, tambahkan define('WP_HOME', 'https://example.com') dan define('WP_SITEURL', 'https://example.com') ke wp-config.php, lalu nonaktifkan plugin redirect dan caching satu per satu.

Mengapa Safari menampilkan 'too many redirects occurred'?

Itu nama yang digunakan Safari untuk error yang sama. Safari juga berhenti setelah 20 redirect, dan Web Inspector-nya menulis "Load cannot follow more than 20 redirections". Hapus data situsnya di Safari > Pengaturan > Privasi > Kelola Data Situs Web lalu coba lagi; jika jendela penelusuran pribadi juga loop, berarti konfigurasi situsnya yang salah.

Apakah ERR_TOO_MANY_RETRIES error yang sama?

Bukan. ERR_TOO_MANY_RETRIES (error Chromium -375) berarti Chrome mengulang satu request terlalu banyak kali karena server atau proxy terus meminta kredensial baru atau terus menampilkan sertifikat yang tidak valid. ERR_TOO_MANY_REDIRECTS (-310) adalah redirect loop. Untuk yang pertama, periksa proxy, VPN, atau antivirus yang memindai HTTPS.

Apakah redirect loop mempengaruhi SEO?

Ya. Crawler Google mengikuti hingga 10 lompatan redirect; loop tidak pernah mencapai konten, sehingga Search Console melaporkan error pengalihan dan URL keluar dari indeks. Setelah diperbaiki, minta pengindeksan lagi di Search Console.

Bagaimana cara menghapus redirect 301 yang ter-cache?

Menghapus cookie tidak menghapus 301 yang ter-cache. Di Chrome, buka Hapus data penjelajahan (Ctrl+Shift+Delete), centang Gambar dan file dalam cache, lalu pilih Semua. Jika redirect melibatkan HTTPS, hapus juga domainnya di chrome://net-internals/#hsts, dan purge cache CDN Anda jika CDN ikut menyimpan 301 tersebut.

Tentang penulis

Shaik Vahid

Pendiri DNS Robot. Vahid bertahun-tahun bekerja di dukungan web hosting, memperbaiki domain, record DNS, sertifikat SSL, dan pengiriman email untuk pelanggan. Ia membangun alat-alat DNS Robot dan menulis panduan ini dari error yang benar-benar dialami orang.

Cek Redirect

Periksa pengalihan URL, rantai pengalihan, dan kode status HTTP untuk SEO