Sunucu loglarından gerçek Googlebot ziyaretlerini ayıklamak

User-agent'ında "Googlebot" yazan her istek Googlebot değil. Kazıyıcıların önemli bir kısmı kendini Googlebot gibi tanıtıyor, çünkü birçok site onları engellemiyor.

Log analizine başlamadan önce bu sahteleri ayıklamak gerekiyor.

Adım 1: Googlebot diyen IP'ler

grep -i "googlebot" access.log | awk '{print $1}' | sort | uniq -c | sort -rn > gb-ip.txt
head gb-ip.txt

Adım 2: Ters ve düz DNS doğrulaması

Gerçek Googlebot IP'sinin ters DNS kaydı googlebot.com ya da google.com ile biter, o isim de tekrar aynı IP'ye çözülür:

verify.sh
while read -r count ip; do
  host=$(dig +short -x "$ip" | sed 's/\.$//')
  if [[ "$host" =~ \.(googlebot|google)\.com$ ]] && dig +short "$host" | grep -qx "$ip"; then
    echo "gercek $count $ip $host"
  else
    echo "SAHTE  $count $ip ${host:-kayit-yok}"
  fi
done < gb-ip.txt

Adım 3: Gerçek Googlebot neyi tarıyor?

grep -F -f <(awk '$1=="gercek"{print $3}' sonuc.txt) access.log \
  | awk '{print $7}' | sed 's/?.*//' | sort | uniq -c | sort -rn | head -30

Bu listenin başında parametreli sayfalar, filtre kombinasyonları ya da eski URL'ler görüyorsan, tarama bütçesinin nereye gittiği belli demektir.

Google ayrıca IP aralıklarını JSON olarak yayınlıyor. Çok büyük loglarda her IP için DNS sorgusu yapmak yerine o listeyle karşılaştırmak daha hızlı.

Comments / questions

There's no comment section here. If you have a question or want to add something, message me on Telegram or send an email to [email protected]. Thanks!

Related pages