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

    E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

    25 Mart 2026

    GTranslate Hatalarına Son: WordPress İçin Özel Çeviri Sözlüğü Eklentisi (Kod Paylaşımı)

    Otomatik çeviri araçları (GTranslate vb.) sitemizi onlarca dile saniyeler içinde çevirse de, bazen marka isimlerimizi veya sektörel terimlerimizi tanımayarak saçma sonuçlar verebiliyor. “Apple” kelimesini “Elma” olarak […]
    7 Mart 2026

    WooCommerce Kuponlarında Para Birimine Özel Alt Limit Nasıl Belirlenir?

    Uluslararası satış yapan ve WooCommerce altyapısını kullanan e-ticaret sitelerinde sıkça karşılaştığımız çok can sıkıcı bir problem var: Kupon kodlarında para birimine özel, net alt limitler belirleyememek. […]
    21 Şubat 2026

    Kullanıcı Adlarınız İfşa Olmasın: WordPress Yazar Sayfalarını Gizleme Rehberi

    WordPress Güvenliği: Yazar (Author) Arşivlerini Neden ve Nasıl Kapatmalısınız? WordPress, dünyanın en popüler içerik yönetim sistemi olmasının getirdiği avantajların yanında, kötü niyetli yazılımların ve siber saldırganların […]