Ayın 23'ü, saat 14:00. Site açılmıyor. Tarayıcıda ne bir tema hatası ne de veritabanı uyarısı var; sadece beyaz bir sayfada tek satır: 509 Bandwidth Limit Exceeded. cPanel'e girdiğinizde sol taraftaki "Aylık Bant Genişliği Transferi" çubuğu kıpkırmızı, üstünde 100 GB / 100 GB yazıyor. Hosting sağlayıcınızdan gelen e-posta da aynı şeyi söylüyor: hesabın trafik kotası doldu, siteler askıya alındı.
Bu noktada iki ayrı iş var ve karıştırmamak gerekiyor. Birincisi acil müdahale: siteyi bugün, birkaç dakika içinde tekrar açtırmak. İkincisi ise asıl mesele olan kaynak avı: 100 GB'ı kimin yediğini bulmak. Çünkü ayın 23'ünde limit dolduysa, kota artırıldığında sorun bir ay sonra aynı gün yine karşınıza çıkar. Trafiğin nereye gittiğini bulmadan yapılan her paket yükseltmesi, faturayı büyütmekten başka bir işe yaramaz.
Bu rehberde önce siteyi ayağa kaldıracağız, sonra sunucu erişim kayıtlarını okuyarak tüketimin gerçek kaynağını tespit edeceğiz. Deneyimimde bu kaynak neredeyse her zaman dört başlıktan biri çıkıyor: başka sitelerin görsellerinizi kendi sayfalarında kullanması (hotlink), kontrolsüz bot trafiği, web kökünde duran dev medya dosyaları ve orada unutulmuş yedek arşivleri. Her biri için hem kanıt toplama yöntemini hem de kalıcı önlemi göreceksiniz.
509 Hatası Tam Olarak Ne Anlama Geliyor?#
509, resmi HTTP standardında yer alan bir kod değildir. Apache ve cPanel tarafında kullanılan, "bu hesabın aylık veri transferi kotası doldu" anlamına gelen sağlayıcıya özel bir yanıttır. Sunucu ayakta, PHP çalışıyor, veritabanı sağlıklı; sadece web sunucusu bu hesap için istekleri servis etmeyi reddediyor.
Bu yüzden 509'u diğer kaynak hatalarıyla karıştırmayın. Aralarındaki fark, çözümün yönünü tamamen değiştirir:
| Hata | Ne Doldu | Ne Zaman Geçer |
|---|---|---|
509 Bandwidth Limit Exceeded | Aylık veri transferi (GB) | Sayaç sıfırlanınca ya da kota artırılınca |
508 Resource Limit Is Reached | Anlık CPU / bellek / süreç limiti | Genellikle birkaç dakika içinde kendiliğinden |
503 Service Unavailable | Sunucu geçici olarak yanıt veremiyor | Servis toparlayınca |
429 Too Many Requests | Belirli bir IP'nin istek hızı | Hız limiti penceresi kapanınca |
508 aldığınızda sorun genellikle ağır bir sorgu ya da eklentidir ve 508 resource limit hatası yazısındaki adımlar işinizi görür. 509 ise bir birikim hatasıdır: ay boyunca yavaş yavaş doldu, bir anda patladı.
Bir noktayı da baştan netleştirelim: bant genişliği burada hız değil, hacim demektir. Sitenizden dışarı akan her baytın toplamıdır. Ziyaretçi sayınız artmadan da bu rakam katlanabilir; nasıl olduğunu ilerleyen bölümlerde göreceksiniz. Kavramın ayrıntısı için hosting bant genişliği nedir yazısına bakabilirsiniz.
Trafik Limiti Ne Zaman Sıfırlanır?#
En sık sorulan soru bu ve cevabı sandığınız kadar tek tip değil.
cPanel/WHM kurulumlarının büyük çoğunluğunda bant genişliği sayacı takvim ayına göre tutulur ve ayın 1'inde sıfırlanır. Yani 23 Ağustos'ta limitiniz dolduysa, 1 Eylül gecesi sayaç sıfırlanır ve site kendiliğinden açılır. Sağlayıcının hesap oluşturma tarihine göre çalışan farklı bir yapılandırması varsa (bazı kurulumlarda fatura dönemi esas alınır), sıfırlanma tarihi sizin ödeme gününüz olur.
Hangisi geçerli, kesin olarak şuradan görürsünüz: cPanel'de Metrics → Bandwidth ekranını açın. Sayfanın altındaki aylık dökümde en son satırın hangi tarihte başladığına bakın. Ayın 1'iyse takvim ayı, örneğin 14'üyse hesap açılış günü esas alınıyor demektir.
Bu tarihi öğrenmek sadece bir bilgi değil, karar noktasıdır:
- Sıfırlanmaya 1-3 gün kaldıysa: kota artırmak yerine beklemek çoğu zaman daha mantıklıdır. Bu süreyi kaynak avına ayırın.
- Ayın başındaysanız ve limit çoktan dolduysa: ortada normal bir trafik artışı değil, neredeyse kesinlikle bir anomali vardır. Aşağıdaki log analizini hemen yapın.
Not: sayaç sıfırlansa bile e-posta gönderimi, FTP transferi ve bazı kurulumlarda cron çıktıları da bu havuza yazılır. "Site trafiğim bu kadar değil ki" dediğiniz farkın kaynağı çoğu zaman burasıdır.
Siteyi Hemen Açtırmanın Üç Yolu#
Sırayla deneyin; ilki çalışırsa diğerlerine gerek kalmaz.
1. Sağlayıcıdan geçici kota açtırın. Paylaşımlı hostingte bant genişliği kotasını yalnızca WHM'ye erişimi olan taraf değiştirebilir. Destek talebi açarken şu üç bilgiyi verin: alan adı, hatanın başladığı yaklaşık saat ve "aya kadar geçici artış istiyorum" ifadesi. İyi bir sağlayıcı bunu birkaç dakikada, çoğu zaman ücretsiz yapar; çünkü kalıcı çözüm ay sonuna kadar zaten sizde.
2. Paketi yükseltin. Trafik gerçekten büyüdüyse doğru hamle budur. Ama önce aşağıdaki kaynak avını yapın: tüketimin yarısı hotlink'ten geliyorsa iki katı kotaya geçmek, sorunu iki ay ertelemekten başka bir şey yapmaz.
3. Kendi VDS'inizdeyseniz limiti siz kaldırın. Kendi sunucunuzda WHM varsa WHM → Account Information → Bandwidth Usage ekranından ya da hesap düzenleme sayfasından kotayı unlimited yapabilirsiniz. Sunucunun kendi uplink kotası (veri merkezinin aylık trafik hakkı) ayrı bir konudur ve o dolduysa bunu ancak sağlayıcı açar.
Site açıldığı anda ikinci adıma geçin. Açılan site, aynı tüketim hızıyla kalan günlerde limiti tekrar doldurabilir.
Bant Genişliğini Kim Tüketti? Log Kayıtlarından Kanıt Toplama#
Tahmin yürütmeyi bırakıp erişim kayıtlarına bakacağız. cPanel hesaplarında ham kayıtlar ~/access-logs/ altında, alan adı adıyla durur. SSH erişiminiz varsa doğrudan çalışın; yoksa cPanel → Metrics → Raw Access ekranından .gz arşivini indirip yerel makinenizde aynı komutları uygulayabilirsiniz.
En çok bayt üreten adresleri bulun#
Birleşik (combined) log biçiminde 7. alan istenen yol, 10. alan ise o istekte gönderilen bayt sayısıdır. Toplayıp sıraladığımızda tüketim listesi ortaya çıkar:
awk '{bytes[$7] += $10; hits[$7]++} END {
for (u in bytes) printf "%9.1f MB %8d %s\n", bytes[u]/1048576, hits[u], u
}' ~/access-logs/ornek.com | sort -rn | head -25
Çıktının ilk satırları size her şeyi anlatır. Bir .zip, bir .mp4 ya da tek bir .jpg listenin tepesindeyse suçlu bulundu demektir.
İsteklerin nereden geldiğine bakın#
Aynı kayıtta 4. tırnak alanı referrer bilgisini taşır. Kendi alan adınızı ve boş referrer'ı eledikten sonra kalanlar, sizin dosyalarınızı kendi sayfalarında gösteren sitelerdir:
awk -F'"' '{print $4}' ~/access-logs/ornek.com \
| grep -v -e '^-$' -e 'ornek\.com' \
| sort | uniq -c | sort -rn | head -20
Hangi istemci ne kadar indirdi#
Bot tüketimini ayırt etmenin en hızlı yolu, baytları user-agent bazında toplamaktır:
awk -F'"' '{split($3, s, " "); bytes[$6] += s[2]} END {
for (ua in bytes) printf "%9.1f MB %s\n", bytes[ua]/1048576, ua
}' ~/access-logs/ornek.com | sort -rn | head -15
Listenin başında AhrefsBot, SemrushBot, MJ12bot, PetalBot ya da Bytespider görürseniz durum nettir: kotanızı bir arama motoru değil, bir SEO tarayıcısı ya da veri kazıyıcı harcamıştır.
Grafik arayüzü tercih ederseniz aynı bilgilerin özeti cPanel ziyaretçi istatistikleri ekranlarında da bulunur; AWStats'in "En çok görüntülenen dosyalar" ve "Bağlantı kuran siteler" bölümleri bu üç komutun kabaca karşılığıdır.
Sebep 1: Hotlink ile Çalınan Görseller#
En yaygın ve en sinsi sebep budur. Başka bir site, sizin sunucunuzdaki bir görselin adresini kendi sayfasına gömer. O sayfa her açıldığında görsel sizin sunucunuzdan indirilir, trafik sizin kotanızdan düşer, ziyaretçi ise size hiç uğramaz.
Belirtisi çok tipiktir: ziyaretçi sayınız sabitken bant genişliğiniz iki katına çıkar. Yukarıdaki referrer komutu, tanımadığınız alan adlarını yüzlerce kez listeliyorsa tanı konmuştur.
Kalıcı çözüm, referrer kontrolüdür. .htaccess dosyanıza şu bloğu ekleyin:
RewriteEngine On
# Boş referrer'a izin ver (doğrudan adres çubuğuna yazan ziyaretçi)
RewriteCond %{HTTP_REFERER} !^$
# Kendi alan adınız ve alt alan adlarınız serbest
RewriteCond %{HTTP_REFERER} !^https?://([^.]+\.)?ornek\.com/ [NC]
# Arama motorlarının görsel önizlemesi bozulmasın
RewriteCond %{HTTP_REFERER} !^https?://([^.]+\.)?(google|bing|yandex|duckduckgo)\. [NC]
# Sosyal ağ paylaşım kartları çalışmaya devam etsin
RewriteCond %{HTTP_REFERER} !^https?://([^.]+\.)?(facebook|twitter|x|linkedin|pinterest)\. [NC]
# Korunacak dosya türleri
RewriteRule \.(jpe?g|png|gif|webp|svg|mp4|webm|zip|rar|pdf)$ - [F,NC]
Boş referrer satırını atlamayın: onsuz, adres çubuğuna doğrudan görsel adresi yazan ziyaretçi de engellenir. Aynı işi tıklamayla yapmak isterseniz cPanel hotlink koruma aracı bu bloğu sizin yerinize üretir.
Bir uyarı: dosya türü listesine .css ve .js eklemeyin. Bir CDN ya da alt alan adı bu dosyaları farklı bir referrer ile isteyebilir ve siteniz stilsiz açılır.
Sebep 2: Kontrolsüz Bot Trafiği#
Googlebot'un sitenizi taraması istediğiniz bir şeydir. Ancak SEO araçlarının tarayıcıları, fiyat karşılaştırma robotları ve yapay zekâ veri toplayıcıları aynı kategoride değildir: size ziyaretçi getirmezler ama kotanızı gerçek ziyaretçiler gibi tüketirler. Bir e-ticaret sitesinde on binlerce ürün sayfasını, üstelik her filtre kombinasyonuyla dolaşan bir bot, tek başına aylık kotanın üçte birini yiyebilir.
İlk hamle robots.txt ile nazik ricadır:
User-agent: AhrefsBot
Disallow: /
User-agent: SemrushBot
Disallow: /
User-agent: MJ12bot
Disallow: /
User-agent: Bytespider
Disallow: /
User-agent: *
Disallow: /*?filter=
Disallow: /*?orderby=
Disallow: /arama
Son üç satır en az ilk bloklar kadar önemlidir: filtreli ve sıralamalı URL'ler, aynı içeriğin sonsuz varyasyonunu üretir ve tarayıcıları oyalayarak trafiği katlar. Doğru sözdizimi ve tuzaklar için robots.txt nasıl yazılır yazısına göz atın.
robots.txt bir kuraldır, bir duvar değildir; kötü niyetli tarayıcı umursamaz. Uymayanlar için sunucu seviyesinde engelleme gerekir:
<IfModule mod_setenvif.c>
SetEnvIfNoCase User-Agent "(MJ12bot|DotBot|Bytespider|SeekportBot|serpstatbot)" kotuBot
</IfModule>
<RequireAll>
Require all granted
Require not env kotuBot
</RequireAll>
Tek bir IP bloğu saldırgan davranıyorsa cPanel IP engelleyici ile o aralığı doğrudan kapatabilirsiniz. Engellemeden önce IP'nin gerçekten Googlebot olmadığını ters DNS ile doğrulayın; yanlış engelleme, indekslenmenizi günlerce etkiler.
Sebep 3: Büyük Medya Dosyaları ve Optimize Edilmemiş Görseller#
Matematiği çıplak yapalım. 4 MB'lık bir tanıtım videosunu ana sayfada otomatik oynatıyorsanız ve günde 800 ziyaretçiniz varsa:
4 MB x 800 ziyaretçi x 30 gün = 96.000 MB ≈ 94 GB
Tek bir dosya, 100 GB'lık kotayı tek başına bitirdi. Ziyaretçi sayınız hiç artmadı; sadece bir video eklediniz.
Görsellerde de durum benzerdir. Telefondan çekilip doğrudan yüklenen bir fotoğraf 5-8 MB olabilir. Sayfada 300 piksel genişliğinde gösteriliyor olması hiçbir şey değiştirmez: tarayıcı dosyanın tamamını indirir, küçültmeyi ekranda yapar.
Web kökündeki ağır dosyaları şu iki komutla listeleyin:
# 20 MB'tan büyük tüm dosyalar
find ~/public_html -type f -size +20M -exec ls -lh {} \; | awk '{print $5, $9}'
# Klasör bazında en şişkin 15 dizin
du -sh ~/public_html/* | sort -rh | head -15
Ne yapılmalı:
- Videoları sunucudan çıkarın. Video barındırmak paylaşımlı hostingin işi değildir. YouTube, Vimeo veya bir nesne depolama servisi hem trafiği hem de akış kalitesini üstlenir.
- Görselleri modern formata çevirin. Aynı görselin WebP karşılığı çoğu zaman %30-50 daha küçüktür; nasıl yapılacağı WebP formatına dönüştürme yazısında anlatılıyor.
- Gerçek boyutta servis edin. 4000 piksel genişliğindeki bir dosyayı 800 piksellik bir alanda göstermeyin; yeniden boyutlandırılmış sürümü yükleyin.
- PDF ve kurulum arşivlerini ölçün. İndirilebilir bir katalog sunuyorsanız, indirme sayısıyla dosya boyutunu çarpın. Rakam kotanızın onda birini geçiyorsa o dosya CDN'e ya da bir bulut depolamaya taşınmalıdır.
Sebep 4: Web Kökünde Unutulmuş Yedekler#
Bu, en can sıkıcı senaryodur çünkü tamamen kendi elimizle yaratılır. Bir eklenti ya da elle alınan yedek public_html/backup/site-yedek.zip gibi bir yola yazılır. Dosya 2 GB'tır, dizin listeleme açıktır ve adres tahmin edilebilirdir. Bir tarayıcı bulur, indirir; ertesi gün başkası indirir. Bir hafta sonra kota bitmiştir.
İkinci risk daha ağırdır: o arşivin içinde wp-config.php ve veritabanı dökümü vardır. Yani sorun sadece trafik değil, doğrudan bir veri sızıntısıdır.
Kontrol edin:
find ~/public_html -type f \( -name "*.zip" -o -name "*.tar.gz" -o -name "*.sql" -o -name "*.sql.gz" \) \
-exec ls -lh {} \; | awk '{print $5, $9}'
Bulduklarınız için sırasıyla:
- Arşivleri
public_htmldışına, ev dizinine taşıyın:mv ~/public_html/backup ~/yedekler - Dizin listelemeyi kapatın ve arşiv erişimini engelleyin:
Options -Indexes
<FilesMatch "\.(zip|tar|gz|tgz|sql|bak|old|log)$">
Require all denied
</FilesMatch>
- Yedekleri düzenli olarak dışarı gönderin. Uzak bir depolamaya kopyalayıp sunucudan silmek hem diski hem de kotayı rahatlatır.
Aynı mantık disk kullanımı için de geçerlidir; ayrıntısı cPanel disk kullanımı yazısında.
Kalıcı Çözüm: CDN, Önbellek ve Sıkıştırma#
Kaynak avı bittiğinde tüketimi yapısal olarak düşürmenin üç kaldıracı kalır.
CDN. Statik dosyalarınız (görsel, CSS, JavaScript, yazı tipi) CDN düğümlerinden servis edildiğinde bu baytlar sizin kotanızdan düşmez. Tipik bir kurumsal sitede sayfa ağırlığının %70-80'i statik dosyalardan oluşur; yani tek bir yapılandırma değişikliğiyle tüketim üçte birine inebilir. Karar aşamasındaysanız CDN mi hosting mi daha iyi karşılaştırması işinizi görür; WordPress tarafındaki kurulum ise WordPress CDN kurulumu yazısında adım adım anlatılıyor.
Tarayıcı önbelleği. Aynı ziyaretçi ikinci sayfaya geçtiğinde logonuzu tekrar indirmemelidir. Uzun ömürlü Cache-Control başlıkları, tekrar eden ziyaretlerde trafiği ciddi biçimde keser.
Sıkıştırma. HTML, CSS ve JavaScript gzip ile genellikle %70 civarında küçülür. Sıkıştırmanın açık olduğunu doğrulamak bir komutluk iştir:
curl -sI -H 'Accept-Encoding: gzip, br' https://ornek.com/ | grep -i 'content-encoding'
Yanıtta content-encoding satırı hiç yoksa sıkıştırma kapalıdır ve o an kotanızın üçte birini boşa harcıyorsunuzdur.
Bir Daha Yaşamamak İçin Erken Uyarı Kurun#
Limit dolduğunda haberdar olmak geç kalmaktır. Amaç, ayın 12'sinde kotanın %60'ı tüketildiğinde haberdar olmaktır.
- Haftalık kontrol alışkanlığı. cPanel ana ekranındaki bant genişliği çubuğuna haftada bir bakın. Ayın yarısında tüketim %50'yi belirgin şekilde aşıyorsa müdahale zamanı gelmiştir. Genel kaynak takibi için cPanel kaynak kullanımı izleme ekranları da faydalıdır.
- Bilinen tüketim tablosu tutun. Kampanya ayları, e-bülten gönderimleri ve büyük içerik yayınları trafiği yükseltir. Bu tarihleri not ederseniz "anormal" olanı ayırt etmek kolaylaşır.
- Beklenmedik sıçramada önce log'a bakın. Trafiğin bir günde iki katına çıkması genellikle yeni bir hotlink kaynağı ya da yeni bir bot demektir; iyi haber değildir.
- Kotanın %70'inde plan yapın, %100'ünde değil. Yükseltme kararını sayaç dolmadan vermek, siteniz kapalıyken vermekten her zaman daha ucuza gelir.
Aşağıdaki tablo, bir tüketim sıçramasında hangi belirtinin hangi sebebe işaret ettiğini özetliyor:
| Belirti | Muhtemel Sebep | Kanıt |
|---|---|---|
| Ziyaretçi sabit, trafik iki katı | Hotlink | Referrer listesinde yabancı alan adları |
| Gece saatlerinde yoğun trafik | Bot taraması | User-agent listesinde tarayıcı botları |
| Tek bir URL listenin tepesinde | Büyük medya ya da yedek | Bayt bazlı URL sıralaması |
| Sayfa görüntüleme az, bayt çok | Optimize edilmemiş görsel | Ortalama sayfa ağırlığı ölçümü |
| Trafik ay başında patlıyor | Cron ile üretilen yedek | Zamanlanmış görev kayıtları |
Sıkça Sorulan Sorular#
Bant genişliği limiti dolduğunda sitem tamamen mi kapanır?#
Evet, hesap kapsamındaki tüm alan adları etkilenir. Ziyaretçiler 509 hata sayfası görür. cPanel arayüzüne, FTP'ye ve e-posta hesaplarınıza erişiminiz genellikle devam eder; kapanan yalnızca web servisidir. Ancak bazı sağlayıcılar e-posta gönderimini de aynı kota havuzuna dahil eder, bu durumda gönderimler de durabilir.
Trafik limiti kaçta sıfırlanır, siteyi ben açabilir miyim?#
Paylaşımlı hostingte kotayı yalnızca sağlayıcı değiştirebilir. Sayaç çoğu cPanel kurulumunda ayın 1'inde otomatik sıfırlanır; bazı sağlayıcılar fatura döneminizi esas alır. Kesin tarihi cPanel'deki Bandwidth ekranının aylık dökümünden görebilirsiniz. Sıfırlanmaya birkaç gün varsa destek talebiyle geçici kota artışı istemek en hızlı yoldur.
Görsellerimi başkası kullanıyorsa bunu nasıl kesin olarak anlarım?#
Erişim kayıtlarındaki referrer alanını sayın. Kendi alan adınız dışındaki bir site yüzlerce kez listeleniyorsa ve istekler görsel dosyalarına gidiyorsa hotlink vardır. Doğrulamak için o sitenin sayfasını açıp bir görsele sağ tıklayın; adres sizin alan adınızı gösteriyorsa şüphe kalmaz. Çözüm, referrer tabanlı engelleme kuralıdır.
Botları engellersem Google sıralamam düşer mi?#
Hayır, doğru botları engellediğiniz sürece düşmez. Googlebot, Bingbot ve Yandex gibi arama motoru tarayıcılarına asla dokunmayın. Engelleyeceğiniz grup, arama sonuçlarına katkısı olmayan SEO analiz araçları ve veri kazıyıcılarıdır. Engellemeden önce IP'nin gerçekten iddia ettiği bot olduğunu ters DNS sorgusuyla doğrulamak, yanlışlıkla arama motorunu kapatmanızı önler.
CDN kullanmak bant genişliği tüketimimi gerçekten düşürür mü?#
Belirgin şekilde düşürür. Tipik bir sitede sayfa ağırlığının büyük bölümü görsel, CSS ve JavaScript gibi statik dosyalardır. Bunlar CDN düğümlerinden servis edildiğinde sizin sunucunuzdan hiç akmaz ve kotanızdan düşmez. Sunucunuzda yalnızca HTML üretimi kalır. Uygulamada %50-70 aralığında bir azalma görmek olağandır.
Sınırsız trafik veren pakete geçsem sorun biter mi?#
Genellikle bitmez, sadece görünmez olur. "Sınırsız" ifadesi neredeyse her zaman adil kullanım politikasıyla sınırlıdır; belirli bir eşiği aştığınızda hesap yine yavaşlatılır ya da askıya alınır. Üstelik hotlink veya bot kaynaklı bir tüketim, sınırsız pakette de sunucu kaynağını yemeye devam eder. Önce kaynağı bulup kesmek, sonra paket kararı vermek doğru sıralamadır.