BurtiNETBlog
Sunucu Yönetimi

429 Too Many Requests Hatası Nedir? Nedenleri ve Çözümü

bnet6 dk okuma
429 Too Many Requests Hatası Nedir? Nedenleri ve Çözümü
İçindekiler

Bir siteyi açmaya çalışırken ya da bir API'ye istek gönderirken karşınıza "429 Too Many Requests" çıktıysa, sunucu size şunu söylüyor: "Kısa sürede çok fazla istek gönderdin, biraz bekle." Hata, sitenin çöktüğü anlamına gelmez; sunucu çalışıyordur ama sizi geçici olarak yavaşlatmıştır. Bu rehberde 429 hatasının ne olduğunu, hangi durumlarda çıktığını ve hem ziyaretçi hem site sahibi olarak nasıl çözeceğinizi adım adım anlatıyoruz.

429 Too Many Requests Hatası Nedir?

429 Too Many Requests, HTTP standardında tanımlı bir istemci hata kodudur ve bir kullanıcının belirli bir zaman aralığında izin verilen istek sayısını aştığını bildirir. Kod, RFC 6585 ile standarda eklenmiştir. Sunucu, istekleri geçici olarak reddederken genellikle yanıtın içine Retry-After başlığını koyar; bu başlık, istemcinin ne kadar bekledikten sonra yeniden denemesi gerektiğini saniye cinsinden belirtir.

Bu mekanizmaya hız sınırlama (rate limiting) denir. Hosting firmaları, CDN'ler, API sağlayıcıları ve güvenlik eklentileri; sunucuyu aşırı yükten, deneme-yanılma ile şifre kırma saldırılarından ve botlardan korumak için hız sınırı uygular. Yani 429 çoğu zaman bir arıza değil, bilinçli bir koruma önlemidir.

Sunucu kabinlerinde sıralanmış sunucular: her sunucu aynı anda yalnızca sınırlı sayıda isteği karşılayabilir
Her sunucunun kapasitesi sınırlıdır; hız sınırı (rate limit) bu kapasiteyi korur · Fotoğraf: NOIRLab/NSF/AURA/T. Slovinský / CC BY 4.0 / Wikimedia Commons

429 Hatasının Görünen Biçimleri

Aynı hata, kullandığınız tarayıcıya, sunucuya ve hizmete göre farklı metinlerle karşınıza çıkabilir. Hepsi aynı HTTP durum kodunu taşır:

Görünen MesajGenellikle Nerede Görülür
429 Too Many RequestsNginx, Apache, API'ler, genel web siteleri
Error 429 (Too Many Requests)Google servisleri ve Google API'leri
HTTP Error 429Tarayıcı ve komut satırı araçları
Error 1015 - You are being rate limitedCloudflare hız sınırı kuralı
Rate limit exceededREST ve GraphQL API yanıtları

429 Hatasının Başlıca Nedenleri

429 hatası, kısa sürede gelen istek sayısı sunucunun belirlediği eşiği geçtiğinde ortaya çıkar. Sebepler genellikle şu gruplardan birine girer:

  • Çok sık sayfa yenileme: Sayfayı art arda F5 ile yenilemek veya aynı formu defalarca göndermek.
  • Brute force (kaba kuvvet) saldırıları: Bir botun wp-login.php ya da xmlrpc.php adresine saniyede onlarca giriş denemesi göndermesi.
  • Kötü yapılandırılmış bot ve tarayıcılar: Arama motoru dışındaki tarayıcıların (scraper) siteyi çok hızlı taraması.
  • Hatalı eklenti veya script: Sürekli arka planda admin-ajax.php çağıran bir WordPress eklentisi ya da sonsuz döngüye girmiş bir JavaScript isteği.
  • Paylaşımlı IP: Aynı ofis ya da operatör IP'sini kullanan birçok kişinin toplam isteğinin eşiği aşması.
  • API kotası: Üçüncü taraf bir servisin (ör. harita, ödeme, e-posta API'si) dakikalık veya günlük kotanızı doldurması.

Ziyaretçi Olarak 429 Hatası Nasıl Çözülür?

Bir sitede 429 hatası alıyorsanız ve siteyi siz yönetmiyorsanız, çözüm çoğunlukla beklemekle başlar. Aşağıdaki adımları sırayla deneyin:

  1. Birkaç dakika bekleyin. Hız sınırı genellikle 1 ila 15 dakika sonra kendiliğinden kalkar. Yanıtta Retry-After değeri varsa o süre kadar bekleyin.
  2. Sayfayı art arda yenilemeyi bırakın. Her yenileme yeni bir istek sayılır ve bekleme süresini uzatabilir.
  3. Tarayıcı çerezlerini ve önbelleği temizleyin. Bozuk bir oturum çerezi, tarayıcının sürekli yeniden istek göndermesine yol açabilir.
  4. Tarayıcı eklentilerini kapatın. Otomatik yenileme veya indirme yöneticisi gibi eklentiler gizlice çok sayıda istek üretebilir.
  5. Ağınızı değiştirin. Wi-Fi yerine mobil veriye geçmek size farklı bir IP adresi verir; engel IP'ye bağlıysa sorun hemen çözülür.
  6. VPN kullanıyorsanız kapatın. Aynı VPN çıkış IP'sini yüzlerce kişi paylaştığı için sınır çabuk dolar.

Site Sahibi Olarak 429 Hatası Nasıl Giderilir?

Kendi sitenizde ziyaretçilerin 429 aldığını görüyorsanız, önce hız sınırını kimin uyguladığını bulmalısınız: hosting sunucusu mu, CDN (ör. Cloudflare) mi, yoksa bir güvenlik eklentisi mi? Sebep tespit edilince çözüm de netleşir.

WordPress Sitelerinde 429 Hatası

WordPress sitelerinde 429'un en yaygın kaynağı giriş sayfasına yapılan saldırılar ve kötü çalışan eklentilerdir. Şu adımlar sorunu çoğunlukla çözer:

  • Tüm eklentileri devre dışı bırakıp tek tek açarak hangisinin çok istek ürettiğini bulun.
  • wp-login.php için giriş denemesi sınırlayan bir güvenlik eklentisi kurun; bu, botların sürekli istek göndermesini engeller.
  • Kullanmıyorsanız xmlrpc.php dosyasına erişimi kapatın. Bu dosya brute force saldırılarının sık hedefidir.
  • WordPress Heartbeat API'nin çağrı sıklığını azaltın; yönetim panelinde açık kalan sekmeler boşuna istek üretir.
  • Hosting panelinizin erişim loglarına bakın ve tek bir IP'den gelen aşırı isteği tespit edin.

Nginx ile Hız Sınırı Ayarlamak

Nginx'te limit_req modülü, belirli bir adrese gelen istekleri sınırlar ve aşıldığında 429 döndürür. Giriş sayfasını korumak için örnek yapılandırma şöyledir:

limit_req_zone $binary_remote_addr zone=login:10m rate=5r/m;

location = /wp-login.php {
    limit_req zone=login burst=3 nodelay;
    limit_req_status 429;
    include fastcgi_params;
    fastcgi_pass unix:/run/php/php-fpm.sock;
}

Bu örnekte bir IP adresi dakikada 5 isteğe kadar serbesttir; kısa süreli 3 istek daha "burst" olarak tolere edilir, fazlası 429 alır. Normal ziyaretçi trafiğini etkilememek için sınırı yalnızca giriş ve arama gibi hassas adreslere uygulayın.

Apache ve .htaccess Tarafında

Apache'de aynı iş için mod_evasive veya mod_security kuralları kullanılır. Bir IP'nin saniyede izin verilen istek sayısını aşması durumunda bu modüller IP'yi geçici olarak engeller. Hosting panelinizde (cPanel, DirectAdmin) ModSecurity açıksa, kural setinin yanlışlıkla meşru isteği engellemediğinden emin olmak için ModSecurity günlüğüne bakın.

Cloudflare Üzerinde 429 ve Error 1015

Siteniz Cloudflare arkasındaysa 429 ya da "Error 1015" mesajı genellikle sizin tanımladığınız bir Rate Limiting kuralından gelir. Cloudflare panelinde Security > WAF > Rate limiting rules bölümüne gidin; kuralın eşiğini, süresini ve hangi yolları kapsadığını gözden geçirin. Sık yapılan hata, tüm siteyi kapsayan çok düşük bir eşik tanımlamaktır; bu durumda sayfa yüklerken tarayıcının gönderdiği onlarca görsel ve script isteği bile sınırı aşar.

429, 403 ve 503 Hataları Arasındaki Fark

Üç hata da sunucunun isteğe "hayır" demesidir ama nedenleri farklıdır. Doğru teşhis için farkı bilmek gerekir:

KodAnlamıNeden OlurGeçici mi?
429Too Many Requestsİstek sayısı hız sınırını aştıEvet, beklenince kalkar
403ForbiddenErişim izni yok ya da IP engelliGenellikle hayır
503Service UnavailableSunucu aşırı yüklü veya bakımdaEvet, sunucu toparlanınca

Kısaca: 429 "sen çok istek gönderdin", 503 ise "ben şu an cevap veremiyorum" demektir. 429'da sorun istemcinin davranışında, 503'te sunucunun kapasitesindedir.

429 Hatasının SEO'ya Etkisi

Googlebot sitenize çok hızlı istek gönderdiğinde ve sunucunuz 429 ya da 5xx kodları döndürdüğünde, Google tarama hızını otomatik olarak düşürür. Birkaç saatlik geçici 429 sorun yaratmaz; ancak günlerce süren hata, yeni içeriklerin geç taranmasına ve dizine eklenmesine yol açabilir. Bu nedenle hız sınırı kurallarınıza Googlebot'u ve diğer meşru arama motoru botlarını engelleyecek kadar katı eşikler koymayın. Google Search Console'daki "Tarama İstatistikleri" raporu, sunucu yanıtlarındaki hataları izlemek için en pratik yerdir.

Ağ anahtarına bağlı mavi ağ kabloları: istekler sunucuya bu tür bağlantılar üzerinden ulaşır
İstekler ağ üzerinden sunucuya ulaşır; kısa sürede çok fazla istek geldiğinde 429 yanıtı verilir · Fotoğraf: ProjectManhattan / CC BY-SA 3.0 / Wikimedia Commons

API Geliştiricileri İçin 429 ile Başa Çıkma

Bir API'den 429 alıyorsanız istemci kodunuzu hız sınırına saygı gösterecek biçimde tasarlamanız gerekir. Pratikte işe yarayan yaklaşımlar şunlardır:

  • Retry-After başlığı varsa o süre dolmadan yeniden denemeyin.
  • Başlık yoksa üstel geri çekilme (exponential backoff) uygulayın: ilk denemede 1 saniye, sonra 2, 4, 8 saniye bekleyin ve araya rastgele bir miktar (jitter) ekleyin.
  • Aynı veriyi tekrar tekrar istemek yerine yanıtları önbelleğe alın.
  • Çok sayıda küçük istek yerine mümkünse toplu (batch) uç noktaları kullanın.
  • Kota bilgisini yanıt başlıklarından (ör. X-RateLimit-Remaining) okuyup istek hızınızı buna göre ayarlayın.

Sık Sorulan Sorular

429 hatası ne kadar sürede geçer?

Çoğu sitede hız sınırı 1 ila 15 dakika içinde kalkar. Yanıttaki Retry-After değeri, kesin bekleme süresini saniye olarak verir.

429 hatası sitemin çöktüğü anlamına mı gelir?

Hayır. Sunucu çalışıyordur; yalnızca sizin istek hızınızı geçici olarak sınırlamıştır. Çöken bir sitede genellikle 500 ya da 503 hataları görülür.

VPN 429 hatasına neden olur mu?

Evet, olabilir. Aynı VPN çıkış IP'sini çok sayıda kişi kullandığı için toplam istek sayısı sınırı hızla aşar. VPN'i kapatıp yeniden denemek çoğu zaman sorunu çözer.

Googlebot 429 alırsa ne olur?

Google tarama hızını düşürür ve sunucuya daha az istek gönderir. Hata kısa sürede düzelirse tarama normale döner; uzun sürerse yeni sayfaların dizine eklenmesi gecikir.

WordPress'te 429 hatasının en sık sebebi nedir?

Giriş sayfasına ve xmlrpc.php dosyasına yapılan brute force saldırıları ile arka planda sürekli istek üreten eklentilerdir. Eklentileri tek tek devre dışı bırakmak ve giriş denemesini sınırlamak çoğu durumda yeterlidir.

İlgili yazılar