
ChatGPT Sitenizi Neden Okumuyor? 7 Sebep ve Kontrol Listesi
ChatGPT sitenizi okumuyorsa sebep neredeyse her zaman yedi şeyden biridir — sekizincisi ise robots.txt tertemizken bile botu kapıdan çeviren güvenlik katmanı. Bot user-agent tablosu, kopyalanabilir komutlar ve sunucu logundan kesin doğrulama.
ChatGPT sitenizi okumuyorsa sebep neredeyse her zaman yedi şeyden biridir: robots.txt yapay zeka botunu blokluyor, içerik JavaScript ile geliyor, aynı içerik birden fazla URL'de yayınlanıyor, canonical veya noindex hatası var, keşif katmanı (llms.txt) yok, yapılandırılmış veri eksik ya da sunucu çok yavaş. Aşağıdaki kontrol listesi her birini sırayla eler.
Listenin sonunda bir madde daha var. Başlığı yazdığımızda yedi maddeydi; sahada sekizinciyi bulduk ve o sekizinci, robots.txt tertemizken bile botu kapıdan çeviriyor: sunucunun önündeki güvenlik katmanı. Sıralamayı bozmamak için sona koyduk, ama sıklık bakımından ilk üçe girer.
Sıra önemli. Birinci maddeyi düzeltmeden altıncıyla uğraşmak zaman kaybı — bot siteye hiç giremiyorsa schema'nızın mükemmel olması bir şey değiştirmez.
Önce kim geliyor: yapay zeka botlarının listesi
Kontrol listesine geçmeden önce isimleri bilmek gerekiyor, çünkü robots.txt satırlarını da sunucu loglarını da bu isimlerle okuyacaksınız.
| User-agent | Kime ait | Ne yapar | Engellerseniz |
|---|---|---|---|
GPTBot |
OpenAI | Siteyi tarar, içeriği dizine ve eğitime alır | ChatGPT sitenizi hiç tanımaz |
OAI-SearchBot |
OpenAI | ChatGPT'nin arama dizinini besler | ChatGPT aramasında listelenmezsiniz |
ChatGPT-User |
OpenAI | Kullanıcı sorduğu anda canlı çeker | Kullanıcı sizi sorsa bile sayfa okunamaz |
ClaudeBot |
Anthropic | Tarama ve dizin | Claude cevaplarında kaynak olmazsınız |
Claude-User |
Anthropic | Kullanıcı isteği üzerine canlı çekim | Aynı |
PerplexityBot |
Perplexity | Dizin taraması | Perplexity kaynak listesinde çıkmazsınız |
Perplexity-User |
Perplexity | Kullanıcı isteği üzerine canlı çekim | Aynı |
Google-Extended |
Tarayıcı değil — Googlebot'un zaten çektiği içeriğin Gemini tarafında kullanımını düzenleyen izin anahtarı | Google aramasındaki sıralamanız etkilenmez; Gemini tarafındaki kullanım kapanır | |
Applebot-Extended |
Apple | Aynı mantık, Apple tarafı için | Apple'ın üretken özelliklerinde kullanılmazsınız |
Bingbot |
Microsoft | Klasik tarama, Copilot'un dayandığı dizin | Copilot ve Bing tarafında görünmezsiniz |
CCBot |
Common Crawl | Açık veri seti toplar; birçok model bu setten beslenir | Dolaylı olarak çok sayıda modelin dışında kalırsınız |
Meta-ExternalAgent |
Meta | Tarama | Meta AI tarafında görünmezsiniz |
Amazonbot |
Amazon | Tarama | Amazon'un asistan ürünlerinde geçmezsiniz |
Bytespider |
ByteDance | Tarama | TikTok tarafındaki asistanda geçmezsiniz |
Bu tabloda iki kalıbı ezberleyin, gerisi kendiliğinden çözülür:
-User ile bitenler en kritik olanlar. Bunlar arka planda dolaşan tarayıcılar değil; bir kullanıcı sizinle ilgili bir soru sorduğu ya da bağlantınızı yapıştırdığı anda gelirler. Yani bunlar bloklu ise, sizi arayan gerçek bir insanın sorusuna verilen cevapta yer alamazsınız. Görünürlük kaybının en pahalı hali budur.
-Extended ile bitenler tarayıcı değil, izin anahtarıdır. Google-Extended diye bir bot sunucunuza hiç gelmez; log dosyanızda aramanız boşuna. robots.txt içindeki o satır, Googlebot'un zaten aldığı içeriğin Gemini tarafında kullanılıp kullanılamayacağını söyler. Bu ayrımı bilmeyen çok sayıda site, "Google'ı engellemeyeyim" diye Google-Extended'ı açık bırakıp asıl tarayıcıları kapatıyor ya da tam tersini yapıyor.
1. robots.txt yapay zeka botlarını blokluyor
En sık sebep. Ve genelde kimse bilerek yapmamıştır — bir eklenti, bir tema ya da "güvenlik" tavsiyesi eklemiştir.
Kontrol: Tarayıcınızda sitesiniz.com/robots.txt adresini açın. Yukarıdaki tablodaki isimlerden herhangi biri Disallow: / ile eşleşiyorsa sorunu buldunuz.
Bu tam olarak bu sitede olan şeydi. robots.txt, GPTBot, Google-Extended ve CCBot'u topluca engelliyordu. Yapay zeka entegrasyonu satan bir ajansın sitesi, yapay zekaya kapalıydı.
Düzeltme: Botları açın, özel alanları kapalı tutun:
User-agent: GPTBot
Allow: /
Disallow: /api/
Disallow: /admin/
Dosyayı yazarken üç kurala dikkat edin, üçü de sık atlanıyor:
En özel grup kazanır, gruplar birleşmez. Bir bot için özel bir User-agent bloğu varsa, o bot User-agent: * bloğunu hiç okumaz. Yani * altına koyduğunuz Disallow: /admin/ satırı, GPTBot bloğunda tekrar edilmediyse GPTBot için geçerli değildir. Özel blok açıyorsanız genel kuralları da içine kopyalayın.
İsim eşleşmesi büyük/küçük harfe duyarsız ama tam ön ek üzerinden çalışır. User-agent: Claude yazmak ClaudeBot'u da yakalar; User-agent: Bot yazmak neredeyse herkesi yakalar. Adları eksiksiz yazın.
Staging'den kopyalanan dosyaya dikkat. Geliştirme ortamında her şeyi kapatmak doğru; o dosyanın üretime taşınması ise sitenizi görünmez yapar. Yayına almadan önce üretim robots.txt'ini tarayıcıdan açıp gözünüzle okuyun.
Karıştırılmaması gereken nokta: Crawl izni ile eğitim verisi izni farklı şeyler. İçeriğinizin model eğitiminde kullanılmasını istemiyorsanız bunu ai.txt ile bildirin. robots.txt ile crawl'ı kapatmak sizi eğitim setinden çıkarmaz; sadece cevaplarda kaynak gösterilmekten çıkarır. Yani kaybeden siz olursunuz.
2. İçerik JavaScript ile geliyor
Site tek sayfa uygulaması (SPA) olarak kurulduysa, sunucudan gelen HTML büyük olasılıkla şuna benziyor:
<div id="root"></div>
Tarayıcı JavaScript'i çalıştırıp içeriği dolduruyor. Ama yapay zeka botlarının çoğu JavaScript çalıştırmıyor. Gördükleri şey boş bir kutu.
Kontrol: Terminalden ham HTML'i çekin ve içerikte bir cümle arayın:
curl -s https://sitesiniz.com/blog/bir-yazi | grep -c "yazınızdan bir cümle"
Sonuç 0 ise içerik sunucuda render edilmiyor. Tarayıcının "Sayfa kaynağını görüntüle" ekranı da aynı işi görür — ama geliştirici araçlarındaki Elements sekmesi görmez, çünkü orada JavaScript çalıştıktan sonraki hali durur. Bu ikisini karıştırmak, sorunun aylarca fark edilmemesinin en yaygın sebebi.
Düzeltme: Sunucu tarafı render (SSR) veya statik üretim (SSG). Next.js, Astro, Nuxt gibi framework'ler bunu varsayılan olarak yapar. Mevcut SPA'yı taşımak büyük iş; en azından en çok trafik alan sayfalar için prerender uygulanabilir.
3. Aynı içerik birden fazla URL'de yayınlanıyor
Bot aynı metni üç ayrı adreste bulursa hangisini kaynak göstereceğini bilemez. Genelde hiçbirini göstermez.
En yaygın kaynağı çok dilli siteler. Bu sitede her blog yazısı iki dil altında birden 200 dönüyordu. Türkçe ve İngilizce yazıların slug'ları farklı olduğu için /en/blog/turkce-slug adresi Türkçe içeriği İngilizce locale altında sunuyordu — hem de kendine canonical vererek.
Kontrol: Bir yazının URL'sini alın, dil kodunu değiştirip açın. İçerik aynı mı geliyor? Öyleyse sorun var.
Bir de nokta içeren rastgele adresler deneyin: sitesiniz.com/deneme.xyz. Ana sayfa 200 ile dönüyorsa ciddi bir sorun var — bu sitede tam olarak bu oluyordu, nokta içeren her yol ana sayfayı kendine canonical vererek 200 döndürüyordu. Sonsuz duplicate URL demek.
Düzeltme: Her içerik tek bir kanonik URL'de yayınlanmalı. Dil filtresi sorguya eklenmeli, geçersiz dil kodları 404 dönmeli.
4. Canonical veya noindex hatası
Sessiz katil. Sayfa açılıyor, güzel görünüyor, ama başlıkta ya da meta etiketinde noindex var.
Kontrol:
curl -sI https://sitesiniz.com/sayfa | grep -i "x-robots-tag"
curl -s https://sitesiniz.com/sayfa | grep -o '<meta name="robots"[^>]*>'
curl -s https://sitesiniz.com/sayfa | grep -o '<link rel="canonical"[^>]*>'
Aranan üç hata: noindex beklenmeyen bir sayfada duruyor; canonical başka bir sayfayı gösteriyor; canonical hiç yok.
İlk satırı atlamayın. X-Robots-Tag bir HTTP başlığıdır; sayfa kaynağında görünmez, sadece yanıt başlıklarında durur. Üstelik uygulamanız değil, önündeki CDN ya da nginx yapılandırması koymuş olabilir — yani kodunuzda aradığınızda bulamazsınız. Aynı sayfa için hem meta etiketi hem başlık varsa, kısıtlayıcı olan geçerli olur.
Düzeltme: Canonical her sayfada kendini göstermeli (kendine referanslı canonical), staging ortamından kopyalanmış noindex etiketleri temizlenmeli. Sitemap ile canonical'ın çelişmemesi de şart; bu ikisinin nasıl birbirini iptal ettiğini sitemap lastmod yazısında ayrı ele aldık.
5. Keşif katmanı yok
sitemap.xml klasik arama motorları için. Yapay zeka botları için ek iki dosya var: llms.txt ve ai.txt.
llms.txt, sitenizin ne olduğunu tek paragrafta anlatan ve en önemli sayfaları başlıklar altında listeleyen markdown dosyasıdır. Başlık gruplaması öncelik sinyali taşır.
Kontrol: sitesiniz.com/llms.txt — 404 mü dönüyor?
Düzeltme: Oluşturun. Statik bir dosya bile işe yarar, ama içerikten dinamik üretmek daha iyi — böylece yeni yazılar otomatik girer. Dosyanın anatomisi, sektörel iskeletler ve dinamik üretim kodu için llms.txt rehberine bakın; yarım saatlik bir iş.
6. Yapılandırılmış veri eksik veya bozuk
Yapay zeka motorları entity ilişkilerinden anlam çıkarır. Article schema'sı var ama yazarı yoksa, o içerik "kimin söylediği belirsiz metin" olarak kalır.
Bozuk schema da eksik schema kadar kötü, hatta daha sinsi — çünkü var gibi görünür.
Bu sitede yakaladığımız örnek: SSS verileri veritabanında {q, a} alanlarıyla saklanıyordu, ama schema üreten kod {question, answer} okuyordu. Sekiz yazıda FAQPage çıktısı undefined değerlerle yayınlanıyordu.
Kontrol: Google Rich Results Test'e sayfa URL'sini verin. Hata ve uyarı sayısı sıfır olmalı. Ayrıca ham çıktıya bakın:
curl -s https://sitesiniz.com/sayfa | grep -c "undefined"
Düzeltme: Tek bir @graph içinde bağlı entity'ler kurun: Article → author → publisher → image → breadcrumb. Aynı türden iki şemanın nasıl birbirini iptal ettiğini ve doğru graph yapısını yapısal veri yazısında örnekle anlattık.
7. Sunucu çok yavaş
Botun sabrı sonsuz değil. Sayfanız yanıt vermeye on saniye sonra başlıyorsa bot vazgeçer.
Bu sitede ölçtüğümüz somut örnek: blog listesi sayfası sunucu tarafında 9–15 saniye sürüyordu. Sebep, dokuz adet 1024×1024 boyutunda ve yaklaşık 1 MB'lık PNG'nin aynı anda AVIF formatına dönüştürülmesiydi. AVIF kodlaması WebP'nin on ila yirmi katı işlem gücü istiyor.
AVIF'i kapatıp WebP'de bırakınca aynı sayfa 1,1–2 saniyeye indi. Yaklaşık on kat.
Kontrol:
curl -s -o /dev/null -w "%{time_total}s\n" https://sitesiniz.com/blog
İki saniyenin üstü sorgulanmalı, beş saniyenin üstü acil.
Düzeltme: Görselleri kaynağında küçültün (1600px genişlik çoğu düzen için fazlasıyla yeterli), pahalı görsel formatlarını gözden geçirin, veritabanı sorgularını sadeleştirin. Görsel tarafındaki üç adımlık düzeltmeyi ve ölçümleri görsel boyutu yazısında topladık.
Bu arada aynı denetimde şunu da bulduk: liste sayfası, kartlarda hiç kullanılmayan tam markdown gövdelerini istemciye gönderiyordu — dokuz yazı için yaklaşık 55 KB gereksiz veri. Sadece gereken alanları seçince yük 22 KB'a indi.
Yavaşlığın bir de sunucu kaynaklı olanı var: paylaşımlı hosting'de süreç ve bellek sınırlarına takılıyorsanız kod tarafında yapabileceğiniz şey biter. Hangi noktada VPS'e geçmek gerektiğini paylaşımlı hosting yazısında rakamlarla anlattık.
8. Güvenlik duvarı botu kapıdan çeviriyor
Şimdi listedeki sekizinci ve en sinsi madde. Belirtisi şudur: robots.txt tertemiz, sayfa tarayıcıda saniyeler içinde açılıyor, schema kusursuz — ama bot yine de içeri giremiyor.
Sebep genelde sitenizin önündeki güvenlik katmanıdır. Dört yerden gelebilir:
CDN'in bot yönetimi. Cloudflare, Fastly ve benzeri sağlayıcılarda "Bot Fight Mode", "Super Bot Fight Mode" ya da yapay zeka tarayıcılarını engelleyen ayrı bir anahtar bulunur. Bunlar iyi niyetli varsayılanlardır: içerik kazımayı engellemek için tasarlanmışlardır ve yapay zeka botlarını da kazıyıcı sayarlar. Cloudflare kullanıyorsanız panelde bu anahtarların durumunu gözünüzle doğrulayın; yeni açılan alan adlarında varsayılan olarak açık gelebiliyor.
Sunucudaki WAF kuralları. Paylaşımlı hosting'lerin çoğunda ModSecurity ve OWASP kural seti varsayılan olarak açıktır. Bu kuralların bir kısmı "bilinmeyen otomatik istemci" davranışını engeller.
.htaccess ya da nginx içine kopyalanmış user-agent kara listesi. "Sitenizi kötü botlardan koruyun" başlıklı yazılardan kopyalanan bu listeler yıllar önce yazılmıştır ve genelde bot kelimesini içeren her şeyi engeller. GPTBot da o listeye takılır.
Hız sınırı ve fail2ban. Bir bot sitenizi tararken kısa sürede yüzlerce istek atar. Saldırı gibi görünür, engellenir. Kendi sunucumuzu kurarken fail2ban ve firewalld'ı ilk saat rehberinde anlattığımız gibi sıkılaştırdık; o kuralları yazarken meşru tarayıcıları dışarıda bırakmak ayrı bir dikkat gerektiriyor.
Kontrol: Aynı adresi farklı user-agent'larla çekip dönen kodları karşılaştırın. Tek komutla:
SITE="https://sitesiniz.com"
for UA in \
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)" \
"Mozilla/5.0 (compatible; GPTBot/1.1; +https://openai.com/gptbot)" \
"Mozilla/5.0 (compatible; OAI-SearchBot/1.0; +https://openai.com/searchbot)" \
"Mozilla/5.0 (compatible; ChatGPT-User/1.0; +https://openai.com/bot)" \
"Mozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" \
"Mozilla/5.0 (compatible; PerplexityBot/1.0; +https://perplexity.ai/perplexitybot)" \
"Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"
do
kod=$(curl -s -A "$UA" -o /dev/null -w '%{http_code}' "$SITE")
boyut=$(curl -s -A "$UA" "$SITE" | wc -c | tr -d ' ')
printf "%-6s %8s %s\n" "$kod" "$boyut" "${UA:0:52}"
done
Beklenen çıktı: bütün satırlarda aynı kod ve birbirine yakın boyut. Sonuçların anlamı:
| Ne görürsünüz | Ne demek |
|---|---|
| Tarayıcı 200, bot 403 | WAF ya da user-agent kara listesi engelliyor |
| Tarayıcı 200, bot 429 | Hız sınırına takılıyor |
| Tarayıcı 200, bot 503 | "Under attack" kipi ya da JavaScript doğrulaması |
| Hepsi 200 ama bot yanıtı çok küçük | Bota doğrulama sayfası dönüyor, içerik değil |
| Hepsi 200 ve boyutlar yakın | Bu madde temiz, listeye devam edin |
Dördüncü satır en tehlikelisi: HTTP kodu 200 olduğu için otomatik izleme araçları "sayfa çalışıyor" der, ama botun eline geçen şey içerik yerine "Tarayıcınız kontrol ediliyor" metnidir.
Düzeltme: Meşru yapay zeka botlarını güvenlik katmanında açıkça beyaz listeye alın, hız sınırını makul bir seviyeye çekin, kopyalanmış user-agent kara listelerini silin. Kaynağı doğrulamak isterseniz OpenAI GPTBot'un IP aralıklarını openai.com/gptbot.json adresinde yayınlıyor; diğer sağlayıcıların da benzer listeleri var. Böylece "GPTBot" adını taklit eden gerçek kazıyıcıları engellerken, gerçek olanı içeri alabilirsiniz.
Kesin cevap: sunucu logunda bot var mı
Buraya kadar olan her kontrol dışarıdan bakıyor. Log dosyası ise içeriden bakar ve tartışmayı bitirir: bot geldi mi, hangi sayfaları aldı, ne cevap verdiniz.
Son ziyaretleri görün:
sudo grep -iE "GPTBot|OAI-SearchBot|ChatGPT-User|ClaudeBot|PerplexityBot|Applebot|CCBot" \
/var/log/nginx/access.log | tail -20
Hangi bot kaç kez gelmiş:
sudo zgrep -hioE "GPTBot|OAI-SearchBot|ChatGPT-User|ClaudeBot|Claude-User|PerplexityBot|Bingbot|CCBot" \
/var/log/nginx/access.log* | sort | uniq -c | sort -rn
zgrep kullanmamızın sebebi var: loglar günlük olarak sıkıştırılıp access.log.2.gz gibi dosyalara döner. Sadece access.log okursanız yalnızca bugüne bakmış olursunuz ve "hiç bot gelmemiş" sonucuna yanlışlıkla varırsınız.
Botun aldığı cevabı görün — bu, sekizinci maddenin kesin testidir:
sudo awk '/GPTBot/ {print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -rn
Çıktıda 200 bekleriz. 403 görüyorsanız güvenlik katmanı engelliyor, 429 görüyorsanız hız sınırı var, 404 görüyorsanız bot olmayan adresleri deniyor demektir.
Hangi sayfaları çekmiş:
sudo awk '/GPTBot/ {print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -20
Bu listenin başında en değerli sayfalarınız duruyor olmalı. Bot yalnızca ana sayfayı ve robots.txt'i çekip gidiyorsa keşif katmanınız zayıf demektir — beşinci maddeye dönün.
Apache kullanıyorsanız yollar /var/log/httpd/access_log ya da /var/log/apache2/access.log olur; alan numaraları aynıdır. CDN arkasındaysanız origin logunda gerçek istemci yerine CDN IP'lerini görürsünüz; bu durumda bot trafiğini CDN panelinden ya da X-Forwarded-For başlığını log biçimine ekleyerek izleyin.
Logda hiçbir kayıt yoksa üç ihtimal var, sırayla eleyin: bot gerçekten hiç gelmemiştir (keşif sorunu), istek log dosyasına ulaşmadan CDN katmanında kesilmiştir (sekizinci madde) ya da log biçiminiz user-agent alanını hiç yazmıyordur — combined yerine common biçimi kullanılıyorsa böyle olur.
Kopyalanabilir kontrol listesi
Sırayla uygulayın, ilk başarısız maddede durup düzeltin:
SITE="https://sitesiniz.com"
# 1 — AI botları bloklu mu?
curl -s $SITE/robots.txt | grep -A2 -iE "gptbot|google-extended|claudebot|perplexity|ccbot"
# 2 — İçerik sunucuda render ediliyor mu? (0 dönerse hayır)
curl -s $SITE/blog | grep -c "<article"
# 3 — Geçersiz yol 404 dönüyor mu? (200 dönerse sorun)
curl -s -o /dev/null -w "%{http_code}\n" $SITE/deneme.xyz
# 4 — noindex / canonical
curl -sI $SITE | grep -i x-robots-tag
curl -s $SITE | grep -o '<link rel="canonical"[^>]*>'
# 5 — Keşif katmanı
for f in /sitemap.xml /robots.txt /llms.txt /ai.txt; do
echo "$(curl -s -o /dev/null -w '%{http_code}' $SITE$f) $f"
done
# 6 — Schema bozuk mu?
curl -s $SITE/blog/bir-yazi | grep -c '"@type"'
curl -s $SITE/blog/bir-yazi | grep -c 'undefined'
# 7 — Yanıt süresi
curl -s -o /dev/null -w "%{time_total}s\n" $SITE/blog
# 8 — Güvenlik katmanı botu çeviriyor mu?
curl -s -A "Mozilla/5.0 (compatible; GPTBot/1.1; +https://openai.com/gptbot)" \
-o /dev/null -w "%{http_code}\n" $SITE
Sekizinci satırın çıktısı dördüncü satırdakiyle aynı değilse, oradan devam edin.
Öncelik sırası
Hepsini aynı gün yapamıyorsanız sıra şu:
- robots.txt — on dakika, en büyük etki
- Güvenlik katmanı — tek komutla test edilir, tek anahtarla düzelir
- Yanıt süresi — bot vazgeçiyorsa gerisi anlamsız
- Duplicate URL — hangi sayfanın kaynak olduğu netleşmeli
- llms.txt — yarım saat, kalıcı fayda
- Schema graph — orta vadeli, citation kalitesini artırır
- Markdown ikiz — ileri seviye, en çok trafik alan sayfalarla başlayın
İlk dört madde çoğu sitede bir günlük iş ve farkı en çok bunlar yaratıyor.
Düzelttikten sonra ne kadar sürer
Sabırlı olun. robots.txt değişikliği botun bir sonraki ziyaretinde geçerli olur; bu birkaç saat de sürebilir, birkaç hafta da. Ölçmenin doğru yolu ChatGPT'ye sürekli aynı soruyu sormak değil, log dosyasına bakmaktır: engel kalktıktan sonra ilk 200 kaydı geldiğinde teknik iş bitmiş demektir.
Ondan sonrası içerik meselesine döner — modelin sizi kaynak göstermesi için sizde onda olmayan bir bilgi olması gerekir. Hangi içerik türlerinin alıntılandığını ve bunu nasıl ölçeceğinizi GEO rehberinde topladık.
Bu sekiz maddeyi kendi sitenizde bizim denetlememizi isterseniz kapsam hizmetler sayfasında yazılı; benzer altyapının kurulu geldiği hazır çözümler için ürünler sayfasına bakabilirsiniz.
Sıkça sorulan sorular
Tarayıcınızda sitesiniz.com/robots.txt adresini açın ve GPTBot, OAI-SearchBot, ChatGPT-User, Google-Extended, ClaudeBot, PerplexityBot, CCBot isimlerini arayın. Bunlardan herhangi biri Disallow: / satırıyla eşleşiyorsa bot siteye hiç giremiyor demektir. Bir ayrıntıya dikkat: bir bot için özel bir User-agent bloğu varsa o bot User-agent: * bloğunu hiç okumaz, dolayısıyla genel kuralları özel bloğun içine de kopyalamanız gerekir.
Hayır. Google-Extended bir tarayıcı değil, bir izin anahtarıdır; sunucunuza hiç istek atmaz. Googlebot'un zaten çektiği içeriğin Gemini tarafında kullanılıp kullanılamayacağını belirler. Engellemek Google aramasındaki sıralamanızı etkilemez, yalnızca üretken taraftaki görünürlüğünüzü kapatır. Aynı mantık Applebot-Extended için de geçerlidir.
Büyük olasılıkla sitenizin önündeki güvenlik katmanı. Dört kaynağı var: CDN'in bot yönetimi (Cloudflare'de Bot Fight Mode ya da yapay zeka tarayıcılarını engelleyen ayrı anahtar), sunucudaki ModSecurity/WAF kuralları, .htaccess veya nginx içine kopyalanmış user-agent kara listeleri ve hız sınırı/fail2ban. Test için aynı adresi bot user-agent'ıyla çekip dönen kodu tarayıcı user-agent'ıyla karşılaştırın: 403 blok, 429 hız sınırı, 503 doğrulama kipi demektir. En sinsisi 200 dönüp içerik yerine doğrulama sayfası sunulmasıdır.
Sunucu erişim logundan. `sudo zgrep -hioE "GPTBot|OAI-SearchBot|ClaudeBot|PerplexityBot" /var/log/nginx/access.log* | sort | uniq -c` komutu hangi botun kaç kez geldiğini sayar. Botun aldığı yanıtı görmek için `sudo awk '/GPTBot/ {print $9}' /var/log/nginx/access.log | sort | uniq -c` çalıştırın — 200 bekleriz. Sıkıştırılmış eski logları da okumak için zgrep kullanın; yalnızca access.log'a bakarsanız yanlışlıkla 'hiç bot gelmemiş' sonucuna varırsınız.
Genellikle göremez. Çoğu yapay zeka botu JavaScript çalıştırmaz; sunucudan gelen ham HTML'de sadece boş bir div varsa bot içeriği bulamaz. Kontrol için curl ile ham HTML çekip içeriğinizden bir cümle aratın; sonuç sıfırsa sunucu tarafı render gerekiyor. Tarayıcının Elements sekmesine bakmayın — orada JavaScript çalıştıktan sonraki hal durur, botun gördüğü değil.
Evet. Botun sabrı sonsuz değil, yanıt gecikirse vazgeçer. Bu sitede blog listesi sunucu tarafında 9-15 saniye sürüyordu; sebebi dokuz adet 1 MB'lık PNG'nin aynı anda AVIF'e dönüştürülmesiydi. AVIF'i kapatıp WebP'de bırakınca süre 1,1-2 saniyeye indi. İki saniyenin üstü sorgulanmalı, beş saniyenin üstü acil.