Anasayfa/ Blog /GEO

AI Crawler Log Analizi Nasıl Yapılır?

Turan Doğan
Turan Doğan
SEO & GEO Uzmanı
GEO 12 Eylül 2026 13 dk okuma
AI Crawler Log Analizi Nasıl Yapılır?
ÖZET
AI crawler log analizi, sunucu erişim kayıtlarından yapay zeka botlarının isteklerini ayırma ve doğrulama işidir. Arama botu, model eğitimi botu ve kullanıcı isteğiyle gelen getirici birbirinden farklı üç bot türüdür. User agent doğrulaması, ters DNS sorgusu veya operatörün yayımladığı IP listesiyle yapılan kimlik kontrolüdür.

Sunucu erişim logu, bir yapay zeka motorunun sitenize gerçekten uğrayıp uğramadığını gösteren tek birinci el kayıttır. ChatGPT, Claude veya Perplexity cevabında kaynak olarak görünmek için önce bu sistemlerin sayfaya erişebilmesi gerekir ve eriştikleri tahmin edilecek bir şey değildir, sunucunun kendi kaydında satır satır yazar.

Log analizi bu kaydı üç soruya indirger: kim geldi, neyi istedi, ne cevap aldı. Zor kısım birinci sorudadır, çünkü bir istek kendini istediği isimle tanıtabilir ve logdaki her GPTBot satırı gerçekten OpenAI değildir. Aşağıdaki sıra, log dosyasına erişmekten başlayıp doğrulanmış bir bot tablosuna kadar gider.

Erişim logu nerede tutulur?

Erişim logu, web sunucusu yazılımının her isteği için bir satır yazdığı düz metin dosyasıdır. Konumu sunucu tipine göre değişir.

  • Nginx için varsayılan yol /var/log/nginx/access.log
  • Apache için Debian ve Ubuntu tabanlı sistemlerde /var/log/apache2/access.log, RHEL ve CentOS tabanlı sistemlerde /var/log/httpd/access_log
  • cPanel kullanan hostinglerde hesap altındaki logs klasörü, sunucu genelinde ise /usr/local/apache/domlogs/
  • Plesk için /var/www/vhosts/alanadi.com/logs/access_log

Paylaşımlı hosting panellerinde ham loglar genellikle sıkıştırılmış arşiv olarak indirilir ve panelde ham erişim kayıtları ya da raw access logs adıyla geçer. SSH erişimi olmayan sitelerde tek yol budur.

Site bir CDN veya güvenlik duvarı arkasındaysa iki ek durum devreye girer. Birincisi, kaynak sunucunun logunda görünen IP adresi CDN'in kendi adresi olabilir. Gerçek istemci adresi X-Forwarded-For başlığında taşınır ve log biçimi bu başlığı yazacak şekilde ayarlanmadan IP doğrulaması yapılamaz. İkincisi, CDN katmanında engellenen bir istek kaynak sunucuya hiç ulaşmaz. O engel kaynak logunda görünmez, CDN'in kendi kayıt veya analitik ekranından bakılması gerekir.

Bir log satırında hangi alanlar okunur?

Yaygın kullanılan Combined Log Format'ta tek bir satır şu yapıdadır:

203.0.113.10 - - [12/Mar/2026:09:14:22 +0300] "GET /hizmetler/ornek HTTP/1.1" 200 18432 "-" "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.4; +https://openai.com/gptbot"

Analiz için bu satırdaki beş alan yeterlidir.

Alan Neyi söyler
İstemci IP Doğrulamanın dayandığı tek güvenilir alan. User agent kolayca taklit edilir, IP edilemez.
Zaman damgası Tarama sıklığı, yoğunluk dönemleri ve son ziyaret tarihi.
İstek yolu Botun hangi sayfayı istediği. Kapsam analizinin girdisi budur.
Durum kodu Botun sayfayı alabildiği mi yoksa kapıdan döndüğü mü.
User agent Botun kendini tanıttığı ad. Kimlik iddiasıdır, kimlik kanıtı değildir.

Yapay zeka botları üç farklı işi yapar

User agent'ı tanımak yetmez, o botun ne iş yaptığını bilmek gerekir. Aynı şirketin farklı botları birbirinden bağımsız çalışır ve logdaki karşılıkları farklı sonuç doğurur. Resmi dokümantasyonlar bu ayrımı açıkça yapar.

Operatör Arama ve indeks botu Model eğitimi botu Kullanıcı getiricisi
OpenAI OAI-SearchBot GPTBot ChatGPT-User
Anthropic Claude-SearchBot ClaudeBot Claude-User
Perplexity PerplexityBot Ayrı bot tanımlanmamış Perplexity-User
Google Googlebot Ayrı user agent yok Google-GeminiNotebook ve benzerleri

Arama ve indeks botu gördüğünüzde sayfa, o sistemin cevap kurarken başvurduğu kaynak havuzuna aday hale gelir. Görünürlük açısından doğrudan ilgili sınıf budur. Perplexity kendi dokümantasyonunda PerplexityBot'un yapay zeka temel modellerini eğitmek için içerik toplamadığını, arama sonuçlarında site yüzeye çıkarmaya hizmet ettiğini belirtir.

Model eğitimi botu içeriği eğitim derlemesine aday yapar. Bu ziyaretin bugünkü cevaplarda görünürlüğe doğrudan katkısı yoktur ve engellenmesi arama tarafındaki tarayıcıyı otomatik olarak kapatmaz. GPTBot ile OAI-SearchBot ayrı user agent'lardır, robots.txt içinde de ayrı yönetilir.

Kullanıcı getiricisi log analizinin en çok yanlış okunan sınıfıdır. ChatGPT-User, Claude-User veya Perplexity-User satırı, o an gerçek bir kullanıcının soru sorduğu ve sistemin sayfayı canlı olarak açtığı anlamına gelir. Bu bir tarama sinyali değil talep sinyalidir ve hangi sayfanın hangi soruya karşılık çekildiğini gösterdiği için stratejik değeri yüksektir. Google kendi dokümantasyonunda kullanıcı tetikli getiricilerin, istek kullanıcıdan geldiği için robots.txt kurallarını genellikle yok saydığını yazar. Diğer operatörlerin getiricileri aynı davranışı göstermeyebilir, bu yüzden her botun robots.txt tutumu kendi dokümantasyonundan kontrol edilir.

Google tarafında iki nokta özellikle karıştırılıyor. Birincisi, Google-Extended logda hiç görünmez. Google bu adın ayrı bir HTTP user agent'ı olmadığını, taramanın mevcut Google user agent'larıyla yapıldığını ve bu adın yalnızca robots.txt içinde kontrol amaçlı kullanıldığını açıkça belirtir. Logda Google-Extended aramanın sonuçsuz kalması, Google'ın içeriği yapay zeka tarafında kullanmadığı anlamına gelmez. İkincisi, AI Overviews ve AI Mode için ayrı bir tarayıcı yoktur. Bu yüzeyler Google'ın arama tarafındaki tarama ve indeksleme altyapısına dayandığı için loglarda ayrı bir AI Overviews ziyareti aranmaz.

Sahte user agent nasıl doğrulanır?

User agent alanı istemcinin kendi yazdığı serbest metindir. Bir betik kendini GPTBot ilan edip siteyi tarayabilir ve logda gerçeğinden ayırt edilemeyen bir satır bırakır. Bu yüzden bot sayımı user agent ile başlar, IP ile biter. Doğrulama yöntemi operatöre göre değişir ve bu fark bilinmezse tüm sayım bozulur.

Google botları için ters DNS doğrulaması

Google ters DNS yöntemini destekler ve doğrulama üç adımdır.

  1. Log satırındaki IP için ters DNS sorgusu çalıştırılır, örneğin host 66.249.66.1.
  2. Dönen alan adının googlebot.com, google.com veya googleusercontent.com ile bittiği kontrol edilir.
  3. Aynı alan adı için ileri DNS sorgusu çalıştırılır ve dönen adresin logdaki IP ile aynı olduğu doğrulanır.

Üçüncü adım atlanamaz. Yalnızca ters kayda bakmak, PTR kaydını kendi denetimindeki bir alan adına yönlendiren sunucuyu Google gibi göstermeye yeter. Google ayrıca tarayıcı adres bloklarını CIDR biçiminde JSON dosyaları olarak yayımlar ve bu dosyaları ortak tarayıcılar, özel durum tarayıcıları ile kullanıcı tetikli getiriciler için ayrı ayrı tutar.

Yapay zeka botları için yayımlanan IP listeleri

OpenAI, Anthropic ve Perplexity ters DNS yerine yayımlanmış adres listesi yöntemini kullanır. Bu yüzden Googlebot için yazılmış bir ters DNS betiği bu botlarda çalışmaz ve hepsini sahte olarak işaretler.

  • OpenAI her bot için ayrı bir liste yayımlar. OAI-SearchBot, GPTBot, ChatGPT-User ve reklam sayfalarının güvenliğini denetleyen OAI-AdsBot'un adres blokları birbirinden bağımsız dosyalarda tutulur.
  • Anthropic üç Claude botunun adreslerini tek bir liste altında toplar ve kaynak adresi bu listede olan isteğin Anthropic'ten geldiğini belirtir.
  • Perplexity, PerplexityBot ve Perplexity-User için iki ayrı liste yayımlar.

Dosyalar CIDR blokları içerir ve doğrulama, log satırındaki adresin bu bloklardan birine düşüp düşmediğine bakmaktan ibarettir. Listeler değiştiği için bir kez indirip uzun süre kullanmak yanlış sonuç verir. Aynı sebeple bu listeler kimlik doğrulaması içindir, kalıcı engelleme kuralı yazmak için uygun bir kaynak değildir.

Log analizi adım adım nasıl yapılır?

Aşağıdaki sıra tek bir sunucuda, standart komut satırı araçlarıyla uygulanabilir. Dosya adı access.log varsayılmıştır.

  1. Dönemi belirle ve logu topla. En az otuz günlük kayıtla çalış. Tek günlük veri tarama davranışı hakkında yorum yapmaya yetmez. Sıkıştırılmış arşivler zcat ile birleştirilebilir.
  2. Bot satırlarını süz.
    grep -Ei "GPTBot|OAI-SearchBot|ChatGPT-User|OAI-AdsBot|ClaudeBot|Claude-User|Claude-SearchBot|PerplexityBot|Perplexity-User" access.log > ai-bot.log
  3. Bot bazında say. Hangi motorun ne yoğunlukta geldiğini görmek için user agent adlarını ayrıştır.
    grep -oEi "GPTBot|OAI-SearchBot|ChatGPT-User|ClaudeBot|Claude-User|Claude-SearchBot|PerplexityBot|Perplexity-User" ai-bot.log | sort | uniq -c | sort -rn
  4. Benzersiz IP listesini çıkar.
    awk '{print $1}' ai-bot.log | sort -u
  5. Her adresi operatörün yayımladığı CIDR listesiyle karşılaştır. Eşleşmeyen satırları ayrı bir dosyada topla ve bot sayımına dahil etme. Bu adım atlanırsa sonraki her rakam şişer.
  6. Googlebot satırlarını ters DNS ile ayrıca doğrula. İleri sorgu adımını da uygula, aksi halde doğrulama yarım kalır.
  7. Doğrulanmış satırlarda en çok istenen yolları çıkar.
    awk '{print $7}' ai-bot-dogrulanmis.log | sort | uniq -c | sort -rn | head -30
  8. Durum kodu dağılımını çıkar.
    awk '{print $9}' ai-bot-dogrulanmis.log | sort | uniq -c | sort -rn
  9. Site haritasındaki URL kümesiyle karşılaştır. İki listeyi de sıralayıp farkı al, geriye taranmamış sayfalar kalır.
    comm -23 sitemap-urller.txt taranan-urller.txt
  10. Ölçümü sabit aralıklarla tekrarla. Tek bir çekim fotoğraf verir, karar için trend gerekir.

Loglardan hangi sonuçlar çıkarılır?

Hangi sayfalar taranıyor?

Doğrulanmış bot isteklerinin en çok gittiği yolları, sitenin gerçekten değer taşıyan sayfalarıyla yan yana koy. Sık görülen tablo şudur: botlar etiket sayfalarında, sayfalama dizilerinde veya arşiv URL'lerinde yoğunlaşırken hizmet ve ürün sayfalarına neredeyse hiç uğramaz. Bu, içerik sorunu değil yönlendirme sorunudur ve iç linkleme ile site haritası düzeyinde çözülür. Tarama kaynağının nereye aktığını yönetmenin çerçevesi tarama bütçesi ve robots.txt optimizasyonu tarafında ayrıntılı işlenir.

Taranmayan bölüm var mı?

Site haritası ile taranan URL kümesi arasındaki fark, en hızlı sonuç veren çıktıdır. Bir bölüm hiç taranmıyorsa nedeni genellikle beş başlıktan biridir: robots.txt'te bir disallow satırı, hiçbir iç linki olmayan öksüz sayfalar, kanonik etiketin başka URL'yi işaret etmesi, güvenlik katmanının o dizini reddetmesi ya da yanıt süresinin taramayı yavaşlatması.

Botlar hata kodu alıyor mu?

Durum kodu dağılımı çoğu sitede en değerli tabloyu üretir.

  • 403 en sık ve en sessiz sorundur. Güvenlik duvarı, bot yönetimi eklentisi veya hosting koruması botu reddediyordur. Site tarayıcıda sorunsuz açıldığı için sorun uzun süre fark edilmez.
  • 404 bozuk iç linki veya güncellenmemiş site haritasını gösterir.
  • 301 zincirleri her adımda bir istek daha harcatır. Yönlendirmeleri tek adımda hedefe bağla.
  • 429 ve 5xx hız sınırı ya da sunucu yükü demektir. Tekrarlıyorsa botlar tarama hızını kendiliğinden düşürür.
  • 200 ama çok küçük yanıt boyutu dikkat ister. Sayfa gövdesi tarayıcıda JavaScript ile kuruluyorsa dönen HTML boş olabilir ve durum kodu tek başına içeriğin okunduğunu kanıtlamaz.

Log dosyasına henüz erişemiyorsanız, sitenin yapay zeka botlarına açık olup olmadığını görmek için başlangıç noktası daha basittir. Seobaz'ın ücretsiz yapay zeka tarama denetimi aracı, erişim tarafındaki temel engelleri log indirmeden gösterir ve log analizine hangi soruyla başlanacağını netleştirir.

Log verisini yanlış okutan üç durum

Doğrulanmamış satırları saymak. Sahte user agent'lar dahil edildiğinde bot sayısı gerçeğin katlarına çıkar ve olmayan bir görünürlük tablosu üretir. Doğrulama isteğe bağlı bir ek adım değil, sayımın ön koşuludur.

Eğitim botu ziyaretini görünürlük sanmak. GPTBot veya ClaudeBot yoğunluğu, içeriğin cevaplarda kaynak gösterildiği anlamına gelmez. Eğitim derlemesi ile arama kaynağı havuzu farklı boru hatlarıdır ve ölçümleri de ayrı tutulur.

Tek satırla toplu karar vermek. robots.txt'e yazılan geniş bir engelleme, kapatmak istediğiniz eğitim botuyla birlikte arama tarafındaki botu da kapatabilir. Perplexity için PerplexityBot ile Perplexity-User ayrımının pratik sonuçları Perplexity GEO yazısında, OpenAI tarafındaki OAI-SearchBot ve GPTBot ayrımı ise ChatGPT GEO yazısında ele alınıyor.

Log analizi tek seferlik bir denetim değildir. Bot listeleri, user agent sürümleri ve yayımlanan adres blokları değişiyor, dolayısıyla aynı komut seti aylar sonra farklı sonuç verebilir. Sabit bir aralıkla tekrarlanan ölçüm, tek bir derin analizden daha fazla bilgi üretir.

Sıkça Sorulan Sorular

Google Analytics ile yapay zeka botları görülebilir mi?

Hayır. Analitik araçları sayfaya yerleştirilen ölçüm kodunun çalışmasına dayanır ve bilinen bot trafiğini ayrıca eler. Sunucu logu ise gelen her isteği, kod çalışsın ya da çalışmasın kaydeder. Bot davranışı için tek eksiksiz kaynak logdur.

Botun sayfayı kaç kez taraması yeterlidir?

Yayımlanmış bir eşik yok ve olsa da site büyüklüğüne göre anlamı değişirdi. Mutlak sayı yerine iki şeye bakın: önemli sayfaların kapsam içinde olup olmadığı ve tarama sürekliliğinin kesilip kesilmediği. Uzun süre hiç istek gelmemesi, sık istek gelmesinden daha güçlü bir sinyaldir.

ClaudeBot engellenirse Claude görünürlüğü biter mi?

Anthropic ClaudeBot, Claude-SearchBot ve Claude-User için ayrı user agent tanımlar ve bunlar robots.txt içinde birbirinden bağımsız yönetilir. Eğitim botunun kapatılması, arama ve kullanıcı getiricisi için verilen izinleri değiştirmez. Aynı mantık OpenAI'ın GPTBot ile OAI-SearchBot ayrımı için de geçerlidir.

Sunucuda log tutulmuyorsa ne yapılır?

Erişim logu web sunucusu ayarından açılır ve çoğu barındırma panelinde ham log seçeneği zaten vardır. Asıl sorun saklama süresidir, birçok kurulumda eski loglar kısa aralıklarla silinir. Analiz yapılacaksa önce arşivleme kuralı ayarlanır, ardından yeterli dönem birikmesi beklenir.

Bu içerik işine yaradı mı?
Seobaz’ı Google’da tercih ettiğin kaynak yap; aramalarında ve AI yanıtlarında bizi daha sık gör.
Tercih edilen kaynak yap
Bu yazıyı paylaş
Turan Doğan
Kurucu · SEO & GEO Uzmanı
2014’ten beri SEO, GEO ve AEO üzerine güncel rehberler yayımlıyor; markaları hem Google’da hem yapay zeka motorlarında görünür kılıyor.
WhatsApp Çevrimiçi · Hemen yanıt
Sepeti Gör