GEON GEON
GEO Rehber 4 hafta önce 7 dk

GPTBot, ClaudeBot ve PerplexityBot'u Sunucu Loglarında Takip Etmek: Pratik Rehber

Sunucu erişim logları, AI tarayıcılarının sitenizi nasıl tükettiğini gösteren tek doğrulanabilir kaynaktır. GPTBot, ClaudeBot ve PerplexityBot için User-Agent doğrulaması ve birkaç awk tarifiyle ham log satırlarını aksiyon alınabilir tarayıcı zekasına çevirin.

GPTBot, ClaudeBot ve PerplexityBot'u Sunucu Loglarında Takip Etmek: Pratik Rehber

Sunucu erişim logları, AI tarayıcılarının içeriğinizi gerçekten ne sıklıkta ve ne derinlikte tükettiğini gösteren tek doğrulanabilir kaynaktır. GPTBot, ClaudeBot ve PerplexityBot için doğru User-Agent imzalarını, yayımlanmış IP aralıklarını ve reverse DNS doğrulamasını birleştirdiğinizde, ham log satırları aksiyon alınabilir tarayıcı zekasına dönüşür. Bu rehber Nginx ve Apache erişim logları için awk ve grep tarifleri, bot kimlik doğrulaması ve haftalık bir izleme tablosu kurma adımlarını içerir.

Sunucu logları neden AI tarayıcı aktivitesi için temel gerçek

Üçüncü parti analitik araçlarının çoğu bot trafiğini varsayılan olarak eler. Google Analytics, Mixpanel veya benzeri ürünler insan oturumu odaklıdır; GPTBot'un siteyi tarayıp tarayıp gitmediğini size söylemez. Sunucu erişim logu ise filtre uygulamaz: her isteği, User-Agent'ını, IP adresini ve döndürülen status kodunu kaydeder.

Loglar üç soruyu netleştirir. Hangi URL'i hangi motor ne sıklıkta yeniden çekiyor? Bir içerik güncellemesi yaptıktan sonra tarama hızlandı mı, yavaşladı mı? Hangi sayfa indekslenmiş gibi görünüyor ama anlık kullanıcı sorgularında çekilmiyor? Search Console size sadece Google'ı, GA size sadece insan oturumlarını verir; logları okumak bu boşluğu kapatır.

Kritik bir ayrım var: AI tarayıcıları iki farklı modda çalışır. Eğitim tarayıcıları (GPTBot, ClaudeBot, PerplexityBot'un standart tarama modu) toplu çalışır; bir motor günlerce siteye uğramayabilir, sonra bir gece yüzlerce URL'i sırayla çeker. Anlık çekim ajanları (Claude-User, Perplexity-User, OAI-SearchBot) ise kullanıcı promptu geldiği anda ilgili URL'leri çeker. İlk grup indeks katmanını besler; ikinci grup, gerçek alıntı sinyalidir.

Bot kimliği: gerçek User-Agent imzaları ve doğrulama

GPTBot

OpenAI GPTBot'un User-Agent dizisini ve hangi IP aralıklarından geldiğini resmi dokümantasyonda yayımlar; site operatörleri bu listeyi indirip gelen istekleri doğrulayabilir. Tipik bir log satırında UA şuna benzer:

Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.2; +https://openai.com/gptbot

OpenAI ayrıca SearchGPT için ayrı bir token (OAI-SearchBot) ve ChatGPT'nin kullanıcı tetiklemeli çekim trafiği için ChatGPT-User tokenini ayırır. Üçü de farklı amaçlara hizmet eder; robots.txt'de hepsini ayrı yönetmeniz gerekir.

ClaudeBot vs Claude-User

Anthropic ClaudeBot'u genel web taraması için, Claude-User'ı ise kullanıcı promptu tetiklediği anlık çekimler için ayrı tutar ve her birini robots.txt üzerinden ayrı ayrı yönetebilmenizi destekler. Yalnızca User-agent: ClaudeBot bloğu yazıp "Anthropic'i kapattım" sanmak yanılgıdır; Claude-User hâlâ kullanıcı sorgusu geldiğinde sayfanızı çekebilir.

PerplexityBot vs Perplexity-User

Perplexity ise PerplexityBot'u indeksleme tarayıcısı, Perplexity-User'ı kullanıcı tetiklemeli çekim ajanı olarak ayırır ve robots.txt itaat profillerinin farklı olduğunu belgeler. Bu ayrım son aylarda şeffaflık tartışmasının da merkezindeydi: Perplexity-User'ın bazı durumlarda crawl-delay direktiflerine uymadığı raporlandı; bu yüzden log tarafından doğrulama daha da kritik.

UA taklidini reverse DNS ile yenmek

User-Agent dizisi taklit edilebilir; veri kazıma çiftlikleri kendilerini GPTBot ilan eden istekler atar. Doğrulamanın altın standardı forward-confirmed reverse DNS'tir. Gelen IP'yi reverse DNS ile çözün, dönen hostname'in beklenen domaini içerip içermediğine bakın, sonra o hostname'i tekrar forward DNS ile çözüp orijinal IP'ye gidip gitmediğini kontrol edin.

$ host 20.171.207.1
1.207.171.20.in-addr.arpa domain name pointer crawl-20-171-207-1.openai.com.
$ host crawl-20-171-207-1.openai.com
crawl-20-171-207-1.openai.com has address 20.171.207.1

İki yön de eşleşmediyse istek sahtedir; UA'sı ne derse desin yok sayın.

Nginx ve Apache için awk ve grep tarifleri

Aşağıdaki tarifler hem Nginx default formatına hem Apache combined formatına uyar; her iki formatta da $7 alanı request URI, $9 alanı status koddur. Tarih combined formatta $4 alanındadır.

Bot başına günlük istek sayısı

awk '/GPTBot|ClaudeBot|PerplexityBot|Claude-User|Perplexity-User|OAI-SearchBot/ {
  match($0, /(GPTBot|ClaudeBot|PerplexityBot|Claude-User|Perplexity-User|OAI-SearchBot)/, b)
  print substr($4, 2, 11), b[1]
}' access.log | sort | uniq -c | sort -rn

Çıktı: tarih ve bot başına istek sayısı. Bir botun günlük hacmi sıçradığında veya sıfırlandığında hemen görürsünüz.

Her botun en sık çektiği 20 URL

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

Aynı tarifi ClaudeBot, PerplexityBot, Claude-User, Perplexity-User için tekrarlayın. Hangi sayfaların alıntı adayı olduğunu — yani motorun değerli gördüğünü — bu liste söyler.

Status kod dağılımı (404 ve 5xx avı)

grep "GPTBot" access.log | awk '{print $9}' | sort | uniq -c | sort -rn

GPTBot'un sürekli 404 aldığı bir URL kümesi varsa o sayfa alıntı havuzundan düşmüş demektir; 5xx ise daha kötü, sayfa yeniden taramaya bile alınmaz.

Tarama aralığı (crawl-gap) analizi

Aynı URL'e ardışık iki ziyaret arasındaki saat farkını ölçün. Bir sayfanın tarama aralığı 7 günden 30 güne çıktıysa motor ilgisini kaybetmiştir; tersi olursa içerik güncellemeniz işe yaramıştır.

Tarama sıklığı ve derinliği ne anlatır

Yüksek yeniden tarama frekansı, motorun ilgili URL'i alıntı adayı havuzunda taze tutmaya değer bulduğu anlamına gelir. İçerik güncellemesinden sonra ani düşüş ise sıralamadan düşürme sinyalidir. En güçlü sinyal şu: anlık çekim ajanları (Claude-User, Perplexity-User, OAI-SearchBot) sayfanıza vurduğunda, şu an bir kullanıcının sorduğu bir soruda sayfanızın gerçekten alıntılandığı veya alıntılanmaya aday olduğu anlamına gelir. Statik tarayıcı (GPTBot, ClaudeBot) hitleri var ama anlık takip yoksa: indekslisiniz, ama yanıt yüzeyine çıkmıyorsunuz.

Logları haftalık per-bot panele dönüştürmek

Küçük bir SQLite tablosu kurmak yeterli:

CREATE TABLE bot_hits (
  date TEXT,
  bot TEXT,
  url TEXT,
  status INTEGER,
  hits INTEGER,
  PRIMARY KEY (date, bot, url, status)
);

Yukarıdaki awk tariflerinin çıktısını gece bir cron ile bu tabloya yazın. Sonra haftalık üç soru sorun: Bot başına toplam hit haftadan haftaya nasıl değişti? Hangi URL'ler bu hafta hiç çekilmedi? 5xx oranı bir bot için sıçradı mı?

Uyarı kuralları için pratik eşikler. Tek bir bottan 5xx oranı %5'i geçtiğinde, bir botun haftalık hit sayısı dört haftalık ortalamanın %50 altına düştüğünde, yeni yayımlanan bir URL 14 gün içinde hiç taranmadığında bildirim alın. Günlük veride gürültü çoktur — sağlayıcılar toplu tarama yapar — haftalık pencere bunu yumuşatır.

Yaygın tuzaklar

Sahte UA'lar. Bir IP "GPTBot" diyor diye gerçekten OpenAI olduğu anlamına gelmez; reverse DNS doğrulaması yapmadan bir UA'ya güvenmeyin.

Robots.txt yanılgısı. Robots Exclusion Protocol RFC 9309 olarak resmî standart hâline geldi ve büyük AI tarayıcıları bu standarda atıf yapar; ancak User-agent: ClaudeBot direktifiyle sadece eğitim tarayıcısını engellediğinizi unutmayın — Claude-User ayrı bir tokendir ve onun için ayrı kural yazmadıkça anlık çekimler devam eder.

Tüm AI UA'larını eğitim sanmak. Bir Perplexity-User isteği canlı bir kullanıcının şu an sizden bilgi istediği anlamına gelir; bunu eğitim trafiğiyle aynı kovaya koymak en değerli alıntı sinyalini gözden kaçırmaktır.

Çok agresif log rotasyonu. Cloudflare'in ağ ölçümleri GPTBot'un siteler arasında en aktif AI eğitim tarayıcısı olduğunu, ClaudeBot ve PerplexityBot'un da kayda değer hacme sahip olduğunu ve operatörlerin önemli bir bölümünün en az bir AI botu blokladığını gösteriyor; haftalık desenleri görmek için en az 30 günlük log saklayın, aksi halde tarama aralığı analizi yapamazsınız.

Log sinyallerini sürekli AI alıntı takibi iş akışına dönüştürmek için GEON arayüzünden bu verileri tek panelde toplayabilirsiniz; ama temeli kuran şey, sunucunuzun ham erişim logudur.

Deniz

Deniz

İçerik & GEO Stratejisi