User-Agent engelleme ile Bot Trafiğini azaltmanın yolları

Neden Önemlidir?

  • Kötü User-Agent’lar genellikle spam, veri kazıma (scraping), saldırı ön hazırlığı gibi amaçlarla kullanılır.
  • Performans düşürür, sunucu kaynaklarını tüketebilir.
  • Bazı zararlı botlar arama motorları gibi davranarak sahte tarayıcı bilgisi (User-Agent) gönderir.

Çözüm: Kötü User-Agent’ları Engelle

1. .htaccess ile Engelleme (Apache Sunucular için)
WordPress siten .htaccess kullanıyorsa (çoğu sitede kullanılır), aşağıdaki kodu .htaccess dosyanın en üstüne ekle:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^$ [OR]
RewriteCond %{HTTP_USER_AGENT} (crawler|harvest|libwww|wget|python|scan|nmap|sqlmap|curl|masscan|badbot) [NC]
RewriteRule ^.* - [F,L]
</IfModule>

Bu kod:

  • User-Agent’i boş gönderenleri
  • Yaygın botlar ve tarayıcı simülasyonu yapan saldırganları 403 Forbidden ile engeller.

2. Wordfence Gibi Güvenlik Eklentileriyle

Eğer .htaccess düzenlemek istemiyorsan:

  • Wordfence, All In One WP Security gibi güvenlik eklentileri kullanabilirsin.
  • Wordfence → Blocking bölümünden şüpheli User-Agent’ları engelleyebilir.
  • Gelişmiş koruma sağlar, geçmişte hangi User-Agent’lar saldırı yapmış görebilirsin.

Önerilen Kötü User-Agent Örnekleri:

libwww-perl
wget
curl
HTTrack
python-requests
masscan
nmap
sqlmap
scrapy
MJ12bot (bazı durumlarda)

Gerçek arama motorlarını (Googlebot, Bingbot vs.) yanlışlıkla engellememeye dikkat et.

Test etmek için:

Tarayıcında aşağıdaki gibi curl ile test edebilirsin (SSH üzerinden):

curl -A "BadBot" https://seninsiten.com

Eğer her şey doğruysa 403 Forbidden yanıtı döner.

Örnek .htaccess

<IfModule mod_rewrite.c>
RewriteEngine On

# Kötü User-Agent'ları engelle
RewriteCond %{HTTP_USER_AGENT} ^$ [OR]
RewriteCond %{HTTP_USER_AGENT} (crawler|harvest|libwww|wget|python|scan|nmap|sqlmap|curl|masscan|badbot|scrapy|httpclient|httplib|perl) [NC]
RewriteRule ^.* - [F,L]

# Yetkilendirme başlıkları için
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Açıklamalar

  • User-Agent engelleme satırları en üste yerleştirildi çünkü bu kuralların diğer yönlendirme kurallarından önce uygulanması gerekir.
  • Gerçek kullanıcıları veya arama motorlarını etkilemeyecek şekilde optimize edildi.
  • NC (no case) parametresi sayesinde büyük/küçük harf farkı gözetilmez.

Kodlar Kodlayana, Kahveler Bana! ☕

Burada paylaştığım içerikler projelerinde işine yaradıysa veya sana zaman kazandırdıysa, bir kahve ısmarlayarak desteğini gösterebilirsin. Bu destek, daha fazla içerik üretmem için motive edici olacaktır.

☕ Bana Bir Kahve Ismarla

    Bir yanıt yazın

    10 Ocak 2026

    GTranslate Eklentisinde Dil Değiştirirken Geri Tuşu Sorunu ve JS ile Kalıcı Çözüm

    GTranslate, WordPress sitelerde hızlı ve pratik çok dilli yapı kurmak için sıkça kullanılan bir eklentidir. Ancak eklentinin ücretsiz sürümünde, dil değiştirildikten sonra tarayıcı geri tuşu kullanıldığında […]
    29 Aralık 2025

    Sitenizin Arka Kapısını Kilitleyin: xmlrpc.php Tehlikesi ve Çözümü

    WordPress sitenizi kurdunuz, temanızı seçtiniz ve güvenlik eklentilerinizi yüklediniz. Peki ya sitenizin arka kapısı, yani xmlrpc.php ne durumda? Çoğu site sahibinin varlığından bile haberdar olmadığı, ancak […]