Methodology v1.0
03 Kasım 2026 • Yazar: AICompatible Ekibi • 7 dk okuma

Sunucu Loglarında AI Botlarını Bulma: Hangi Bot Siteme Ne Kadar Giriyor?

Kısaca: Apache veya Nginx access log'larınızda grep 'GPTBot\|ClaudeBot\|PerplexityBot' komutuyla AI botlarını filtreleyebilir, awk ile IP, tarih ve istek sayısını analiz edebilirsiniz. Sahte botları tespit etmek için User-Agent ile IP adresinin ters DNS kaydını karşılaştırın ve resmi IP aralıklarını doğrulayın.

Temel Grep Komutları: Hangi Botlar Gelmiş?

Sunucu loglarınız genellikle /var/log/apache2/access.log veya /var/log/nginx/access.log yolunda bulunur. İlk adım, bilinen AI bot isimlerini aramaktır:

grep -i 'GPTBot\|ClaudeBot\|PerplexityBot\|Google-Extended\|CCBot\|Applebot-Extended' /var/log/nginx/access.log

-i parametresi büyük-küçük harf duyarsız arama yapar. Birden fazla log dosyası varsa (örneğin rotasyon nedeniyle access.log.1, access.log.2.gz):

zgrep -i 'GPTBot\|ClaudeBot' /var/log/nginx/access.log*

zgrep sıkıştırılmış (.gz) dosyaları da okur. Çıktıda her satır bir HTTP isteğini temsil eder; IP adresi, tarih, istek yolu ve User-Agent bilgisi görürsünüz.

Awk ile İstek Sayısı ve IP Analizi

Hangi botun kaç istek gönderdiğini öğrenmek için:

grep -i 'GPTBot' /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -rn

Bu komut GPTBot isteklerini filtreler, ilk sütundaki IP adreslerini ($1) çıkarır, sıralar ve tekrar sayısını gösterir. Çıktı şöyle görünür:

    142 40.88.21.235
     89 13.66.139.23
     12 52.167.144.199

Soldaki sayı istek adedi, sağdaki IP adresidir. En çok istek gönderen IP en üstte olur.

Tarih Aralığına Göre Filtreleme

Belirli bir tarihteki botları görmek için (örneğin 15 Ocak 2025):

awk '$4 ~ /15\/Jan\/2025/ && /GPTBot/' /var/log/nginx/access.log

Nginx loglarında dördüncü alan ($4) genellikle [15/Jan/2025:14:23:10 +0000] formatında tarih içerir. Apache logları benzer yapıdadır.

Hangi Sayfalar Tarandı?

GPTBot'un hangi URL'leri ziyaret ettiğini görmek için:

grep -i 'GPTBot' /var/log/nginx/access.log | awk '{print $7}' | sort | uniq -c | sort -rn | head -20

Yedinci alan ($7) istek yolunu (örneğin /blog/yapay-zeka-seo) içerir. Çıktı en çok taranan 20 sayfayı gösterir. Eğer /wp-admin veya /login.php gibi yönetim paneli yolları görürseniz, bu normal bot davranışı değildir ve sahte bot olabilir.

Sahte Botları Nasıl Fark Edersiniz?

Kötü niyetli tarayıcılar User-Agent başlığını taklit edebilir. Gerçek bir GPTBot veya ClaudeBot olup olmadığını doğrulamak için iki yöntem kullanılır:

1. Ters DNS Kontrolü

Önce şüpheli IP adresinin ters DNS kaydını alın:

host 40.88.21.235

Çıktı şöyle olmalıdır:

235.21.88.40.in-addr.arpa domain name pointer msnbot-40-88-21-235.search.msn.com.

Ardından bu domain adresinin IP'sini tekrar çözümleyin:

host msnbot-40-88-21-235.search.msn.com

Eğer sonuç orijinal IP'ye dönmüyorsa, sahte bir bottur. OpenAI'ın GPTBot'u genellikle *.openai.com veya bulut sağlayıcı IP'lerinden gelir; Anthropic'in ClaudeBot'u *.anthropic.com veya AWS aralıklarından gelir. Ancak bu bilgiler resmi dokümantasyonda her zaman açıkça yayınlanmaz, bu yüzden IP aralıklarını doğrulamak zor olabilir.

2. Resmi IP Aralıklarını Kontrol Edin

Bazı şirketler resmi IP listesi yayınlar:

  • OpenAI (GPTBot): Resmi bir IP listesi yayınlanmamıştır; AWS, Azure, GCP gibi büyük bulut sağlayıcılardan gelebilir.
  • Anthropic (ClaudeBot): Genellikle AWS IP aralıklarından gelir, ancak kesin liste yoktur.
  • Common Crawl (CCBot): AWS üzerinde çalışır; commoncrawl.org ters DNS kaydı beklenir.
  • Google (Googlebot, Google-Extended): Resmi doğrulama rehberi mevcuttur.

Şüpheli bir IP için whois sorgusu yapabilirsiniz:

whois 13.66.139.23 | grep -i 'OrgName\|Organization'

Eğer organizasyon adı Microsoft, Amazon, Google gibi büyük bir sağlayıcıysa ve User-Agent uyumluysa, büyük olasılıkla gerçektir. Ancak bilinmeyen bir hosting şirketinden geliyorsa ve User-Agent GPTBot iddiasındaysa, sahte olabilir.

Anormal Davranış İşaretleri

  • Çok yüksek istek hızı: Dakikada yüzlerce istek gönderen bir "GPTBot" şüphelidir; gerçek botlar genellikle kibardır ve robots.txt'teki Crawl-delay kuralına uyar.
  • Yönetim paneli taraması: /wp-login.php, /admin, /.env gibi yolları tarayan bir bot, eğitim amaçlı değil saldırı amaçlıdır.
  • HTTP durum kodları: Çok sayıda 404 veya 403 hatası üreten botlar, site yapısını keşfetmeye çalışıyor olabilir.

Tüm AI Botlarını Tek Komutla Özetleme

Tüm bilinen AI botlarının istek sayısını bir tabloda görmek için:

awk '{print $1, $12}' /var/log/nginx/access.log | \
  grep -iE 'GPTBot|ClaudeBot|PerplexityBot|Google-Extended|CCBot|Applebot-Extended|OAI-SearchBot|ChatGPT-User' | \
  awk '{print $2}' | sort | uniq -c | sort -rn

Nginx loglarında on ikinci alan ($12) genellikle User-Agent'tır (log formatına göre değişebilir; kendi formatınızı kontrol edin). Çıktı:

   1523 "GPTBot/1.0"
    876 "ClaudeBot/1.0"
    234 "PerplexityBot/1.0"
     89 "CCBot/2.0"

Log Formatını Doğrulama

Eğer User-Agent çıkmıyorsa, log formatınızı kontrol edin. Nginx için /etc/nginx/nginx.conf içinde:

log_format combined '$remote_addr - $remote_user [$time_local] '
                    '"$request" $status $body_bytes_sent '
                    '"$http_referer" "$http_user_agent"';

Burada $http_user_agent son alandır. Apache'de %{User-Agent}i kullanılır. Kendi formatınıza göre awk sütun numarasını ayarlayın.

Botları Engellemek veya İzin Vermek

Eğer belirli bir botu engellemek istiyorsanız, robots.txt yerine sunucu seviyesinde engelleme daha etkilidir (çünkü robots.txt bir nezaket protokolüdür, zorunlu değildir). Nginx örneği:

if ($http_user_agent ~* (GPTBot|ClaudeBot)) {
    return 403;
}

Apache için .htaccess veya httpd.conf:

SetEnvIfNoCase User-Agent "GPTBot" bad_bot
SetEnvIfNoCase User-Agent "ClaudeBot" bad_bot
Deny from env=bad_bot

Ancak bu yöntem User-Agent'a güvenir; sahte botlar bunu değiştirebilir. Daha güvenli bir yöntem, IP tabanlı engelleme veya WAF (Web Application Firewall) kullanmaktır.

Sık Sorulan Sorular

GPTBot ve OAI-SearchBot aynı şey mi?

Hayır. GPTBot, OpenAI'ın model eğitimi için kullandığı tarayıcıdır ve robots.txt'e uyar. OAI-SearchBot ise ChatGPT arama özelliği için kullanılır ve eğitim amacı yoktur. ChatGPT-User ise kullanıcı bir istekte bulunduğunda sayfa getiren ajandır; OpenAI bu istekler için robots.txt kurallarının aynı şekilde uygulanmayabileceğini belirtir. Loglarınızda her üçünü de görebilirsiniz.

Google-Extended'ı engellemek Google Arama sıralamasını etkiler mi?

Hayır. Google-Extended bir robots.txt kontrol belirtecidir (ayrı bir tarayıcı değil); Gemini uygulamaları ve Vertex AI için eğitim/grounding kullanımını kontrol eder, ancak Google Arama sıralamasını etkilemez. Google AI Overviews, normal Googlebot ve snippet kontrolleriyle (nosnippet, max-snippet, data-nosnippet) yönetilir. Google-Extended'ı engellerseniz, arama sonuçlarınız değişmez.

Loglarımda çok sayıda "Mozilla/5.0" var, bunlar bot mu?

Çoğu modern bot, User-Agent başlığında "Mozilla/5.0" öneki kullanır (tarayıcı uyumluluğu için). Örneğin: Mozilla/5.0 (compatible; GPTBot/1.0; +https://openai.com/gptbot). "Mozilla/5.0" tek başına bot olduğunu göstermez; devamındaki "compatible; GPTBot" gibi ifadelere bakın. Eğer sadece "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" gibi standart bir tarayıcı User-Agent'ı varsa, bu gerçek bir kullanıcı veya sahte bot olabilir. IP ve davranış analizine ihtiyacınız var.

Sahte bir botu tespit ettim, ne yapmalıyım?

Önce IP adresini sunucu seviyesinde engelleyin (iptables, firewall veya WAF ile). Eğer sürekli farklı IP'lerden geliyorsa, rate limiting (hız sınırlama) kuralları ekleyin: örneğin aynı IP'den dakikada 10'dan fazla istek gelirse geçici olarak engelleyin. Fail2ban gibi araçlar bu işi otomatikleştirir. User-Agent tabanlı engelleme yeterli değildir çünkü saldırganlar bunu kolayca değiştirir. Eğer saldırı büyük ölçekliyse, Cloudflare veya AWS Shield gibi DDoS koruma servisleri kullanmayı düşünün.

Kendi sitenizde deneyin