Kısa cevap: açık, hem de sandığımdan çok daha açık. Kendi alan adından satan 40 Türk e-ticaret sitesine baktım. Ölçebildiğim 34 tanesinin 29’u yapay zekâ botlarının hiçbirini engellemiyordu. robots.txt tarafı ise neredeyse boş: 29 dosyanın yalnızca birinde bir yapay zekâ botunun adı geçip kapatılmıştı. Yani çoğu marka bu konuda bir karar vermiş değil. Erişim politikasını marka değil, altyapı ve güvenlik duvarı varsayılanları belirliyor.
Taramayı kendim yaptım, rakamlar bana ait. Ama en önemli kısım rakamlar değil, neyin ölçülebildiği. Onu baştan söyleyeyim, çünkü bu yazının en çok işinize yarayacak kısmı orası.
Neyi ölçtüm, neyi ölçemedim?
Ölçüm şöyle çalışıyor: siteye kendimi GPTBot olarak tanıtıp istek atıyorum ve ne cevap verdiğine bakıyorum. Bu yöntemin bir sınırı var ve yöntemi anlatan yazıların çoğu bu sınırı atlıyor.
Gerçek GPTBot, OpenAI’ın yayımladığı IP aralıklarından gelir. Bunu kontrol ettim: OpenAI üç tarayıcısı için makine okunur liste yayımlıyor, GPTBot için 18, OAI-SearchBot için 39, ChatGPT-User için 230 IPv4 aralığı. Perplexity 8 aralık, Google 317 aralık yayımlıyor. Benim isteğim bu aralıkların hiçbirinden gelmiyor, yalnızca GPTBot olduğunu iddia ediyor.
Dolayısıyla bir site benim isteğimi reddettiğinde iki ihtimal var ve dışarıdan bakarak ayırt edilemiyor:
- Site gerçekten o botu engelliyor.
- Site, kendini GPTBot diye tanıtıp OpenAI IP’sinden gelmeyen isteği reddediyor. Bu doğru bir davranış. Gerçek GPTBot’a kapı açık, taklide kapalı.
İkincisi yaygın bir güvenlik önlemi, bir CDN ayarıyla açılıyor. Yani ölçtüğüm 403’lerin bir kısmı aslında sitenin doğru çalıştığının işareti olabilir.
Bu yüzden aşağıda “şu kadar site GPTBot’u engelliyor” demiyorum. Söyleyebildiğim üç şey var: robots.txt sitenin beyan ettiği politikadır ve güvenilir biçimde okunur. Canlı istek, sitenin bot kimliğiyle gelen trafiğe farklı davranıp davranmadığını gösterir. Gerçek tarayıcının engellendiğini ise yalnızca kendi sunucu günlüğünüz söyler.
Nasıl ölçtüm?
Yöntemi bilerek ayrıntılı yazıyorum, çünkü bu tür taramalarda rakamı asıl bozan şeyler yöntemin içinde saklı.
- 40 mağaza, 6 pazaryeri. On bir kategoriden elle seçildi, tek sektöre yığılmasın diye. Pazaryerlerini ayrı tuttum, kendi başına bir tür ve ortalamayı bozuyor.
- Bu bir örneklem değil, bir kesit. Seçim elle yapıldı ve tanınan markalara kayıyor. Türkiye genelini temsil etmiyor. Küçük mağazalarda tablo büyük olasılıkla farklı.
- Her site üç kez ölçüldü. Tek atışlık sonuca güvenmedim ve iyi ki güvenmedim: aynı site farklı turlarda farklı cevap verebiliyor. Üç turda da aynı çıkmayan sonucu saymadım.
- Her turda önce normal tarayıcı kimliğiyle istek attım. Bu bir denetim isteği. Site tarayıcıya da cevap vermiyorsa beni ya da adresimi engelliyor demektir ve o sitede bot engeli ölçülemez. Bu ayrımı yapmazsanız “botlara kapalı” sayısı olduğundan yüksek çıkıyor. 40 sitenin 5’i bu yüzden ölçüm dışında kaldı.
- Bütün isteklerde başlıklar aynı, yalnızca kimlik satırı değişiyor. Tek değişken kuralı.
- Ağ hatasını engel saymadım. Bağlantı kurulamaması sitenin politikası hakkında bir şey söylemiyor, ölçüm gürültüsüdür.
Bir sitede tarayıcı kimliği üç turun ikisinde hız sınırına takıldı. Onu da saymadım, ama şunu gösteriyor: üst üste otomatik istek atmak tek başına 429 cevabı üretebiliyor. Kendi sitenizi test ederken bunu hesaba katın.
robots.txt ne diyor?
Beklediğim buydu ve çıkan sonuç bu beklentiyi boşa çıkardı. Ölçülebilen 34 sitenin 29’unda robots.txt vardı. Bu 29 dosyanın yalnızca birinde bir yapay zekâ botu adıyla kapatılmıştı, o da ClaudeBot’tu. GPTBot, PerplexityBot, OAI-SearchBot ve Google-Extended hiçbir mağaza dosyasında kapatılmamıştı.
İki büyük mağazanın robots.txt dosyasını elle de okudum, tek bot adı geçmiyordu. Yani bu bir ayrıştırma hatası değil, gerçekten yazılmamış.
Buradan çıkan sonuç şu: Türkiye’de büyük perakende, yapay zekâ botları hakkında yazılı bir karar vermemiş. Bu kötü bir şey olmak zorunda değil, açık kalmak çoğu marka için doğru tercih. Ama tercih edilmiş bir açıklık değil, yokluktan doğan bir açıklık. Ve bunun bir bedeli var: karar verilmediği yerde kararı altyapı veriyor.
Sunucu ne yapıyor?
robots.txt bir ricadır, zorlama değildir. Gerçekten ne olduğunu sunucunun cevabı söylüyor. Ölçülebilen 34 mağazada tablo şöyle:
| Durum | Mağaza sayısı |
|---|---|
| Hiçbir botu engellemiyor | 29 / 34 |
| Dördünü de engelliyor | 2 / 34 |
| Bir kısmını engelliyor | 3 / 34 |
| robots.txt izin veriyor ama sunucu reddediyor | 4 / 34 |
Bot başına bakınca: GPTBot 34 sitenin 5’inde, ClaudeBot 5’inde, PerplexityBot 2’sinde, OAI-SearchBot 2’sinde reddedildi.
Son satır en önemlisi. Dört sitede robots.txt hiçbir şeyi kapatmıyordu ama sunucu bot kimliğine 403 ya da 429 veriyordu. Eğer bu sitelerin sahiplerine sorsanız “biz yapay zekâ botlarını engellemiyoruz” derler ve robots.txt dosyalarını gösterirler. Haklı da olurlar, çünkü oraya hiçbir şey yazmamışlar. Engel robots.txt’te değil, güvenlik duvarında.
Hangi botlar ayrı muamele görüyor?
Taramanın en ilginç bulgusu bu. Engelleyen beş mağazanın üçünde tam olarak aynı desen çıktı: GPTBot ve ClaudeBot kapalı, PerplexityBot ve OAI-SearchBot açık.
Bu rastgele bir dağılım değil. Kapatılan ikisi içerik toplayıp model eğitmeye giden tarayıcılar. Açık bırakılan ikisi ise soruya cevap üretirken kaynak arayan tarayıcılar. Yani ortaya çıkan politika şu: beni eğitme ama beni kaynak göster.
Üç sitenin bunu bilerek mi seçtiğini bilmiyorum. Bu ayrım bir CDN panelinde tek düğmeyle de açılıyor ve o düğmenin varsayılanı tam olarak böyle çalışıyor. Ama niyet ne olursa olsun, sonuç doğru yapılandırma. Çoğu e-ticaret sitesi için önereceğim ayar da bu.
Pazaryerleri ne yapıyor?
Altı pazaryerine baktım, üçünü ölçebildim. Burada marka adı verebiliyorum, çünkü pazaryerinin politikası küçük bir mağazanın yapılandırma hatası gibi bir şey değil, kamuya açık bir duruş.
En öğretici örnek amazon.com.tr. robots.txt dosyasında GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot ve Google-Extended tek tek sayılıp kapatılmış. Taradığım 46 adres içinde bunu yapan tek site. Ama sunucusuna aynı botlarla istek attığımda dördüne de başarılı cevap verdi. robots.txt’in bir rica olduğunu, uygulamanın botun kendi insafına kaldığını bundan daha net gösteren bir örnek bulamazdım.
hepsiburada.com tersini yapıyor: robots.txt’te hiçbir yapay zekâ botunu kapatmıyor ama sunucu dördüne de 403 veriyor. Beyan ile uygulama yine ayrışıyor, bu kez diğer yöne.
llms.txt yaygın mı?
Beklediğimden çok daha yaygın. 40 mağazanın 21’inde gerçek bir llms.txt dosyası vardı. Pazaryerlerinde 6’da 3. Yumuşak 404 tuzağına düşmemek için her dosyayı iki kez çektim ve olmayan bir dosya adını da deneyip sunucunun her şeye 200 verip vermediğini kontrol ettim.
Ama “var” demek yetmiyor, çünkü dosyalar iki ayrı türde. 24 dosyayı tek tek ölçtüm:
| Tür | Adet | Ne demek |
|---|---|---|
| Elle kurulmuş | 17 | Bölümlenmiş, 200’den az bağlantı, okunabilir |
| Geniş liste | 3 | 200 ile 1.000 arası bağlantı |
| Otomatik ürün dökümü | 4 | 1.000’den fazla bağlantı, en büyüğü 11.054 |
En büyük dosya 2,3 megabayt ve içinde 11.054 ürün linki var. Bu dosya amacını kendi kendine bozuyor. llms.txt’in işi bir modele sitenin ne olduğunu ve nereye bakacağını kısaca anlatmak. 11 bin ürün bağlantısı bunu anlatmıyor, site haritasını tekrar ediyor. Zaten hiçbir model o kadar bağlantıyı bağlam olarak okumuyor.
Link sayısının ortadaki değeri 53. Yani çoğu dosya makul. İki dosyada ise hiç bağlantı yoktu, sadece tanıtım metni vardı, o da başka yönden eksik. Sürüm ya da tarih izi taşıyan yalnızca 3 dosya vardı. Gerisi bir kez yazılmış ve bırakılmış görünüyor. llms.txt’in ne işe yaradığını ve nasıl yazıldığını ayrı yazıda anlattım.
Altyapı bir şey söylüyor mu?
Bunu ummuştum ama veri desteklemiyor, o yüzden olduğu gibi yazıyorum. Ölçülebilen 34 mağazanın 17’sinde altyapıyı tespit edemedim. 7’si Next.js üzerinde kurulu özel geliştirme, 3’ü Shopify, 2’si T-Soft, kalanlar birer tane Salesforce, Magento, Ticimax, WordPress ve bir kurumsal yazılım.
Yani bu ölçekte “hangi altyapı botlara daha kapalı” sorusunun cevabı çıkmıyor. Büyük Türk perakendecilerinin çoğu tanınabilir bir hazır altyapı kullanmıyor, özel yazılım üzerinde çalışıyor. Engelin geldiği yer de altyapı değil, önündeki güvenlik katmanı. Hazır altyapılarda bu ayar panelden görünmüyor bile, CDN tarafında duruyor.
Kendi sitenizde bunu nasıl kontrol edersiniz?
Yukarıdaki yöntem başkalarının sitesine bakmak için. Kendi sitenizde çok daha kesin bir yol var ve kimse onu kullanmıyor: sunucu günlüğü.
Barındırma panelinizden erişim günlüğünü indirin, sonra bot kimliklerini ve aldıkları yanıt kodunu sayın:
grep -iE 'GPTBot|ClaudeBot|PerplexityBot|OAI-SearchBot' erisim.log \
| awk '{print $9}' | sort | uniq -c | sort -rn
Çıktıda 200 görüyorsanız botlar geliyor ve içeriği alıyor. 403 ya da 429 görüyorsanız kapıda çevriliyorlar. Hiçbir satır çıkmıyorsa daha kötüsü olabilir: botlar sitenize hiç uğramıyor. Dokuzuncu alan yanıt kodudur, günlük biçimi farklıysa bir satıra bakıp indisi düzeltin.
Bir adım daha atabilirsiniz. Günlükteki adresi, botun yayımlanmış aralıklarıyla karşılaştırın. Adres listede yoksa o istek botun kendisi değil, kimliğini ödünç alan başka bir şeydi. Bu karşılaştırma, benim dışarıdan yapamadığım ayrımı sizin yapmanızı sağlıyor.
robots.txt tarafı daha basit, ama dosyada ne yazdığına değil kimin ne gördüğüne bakmak gerekiyor. Dosyayı açıp botların adını arayın. Adları hiç geçmiyorsa durumunuz taradığım sitelerin çoğuyla aynı: açıksınız, ama tercih ederek değil.
Ne yapmamalı?
İki refleks görüyorum ve ikisi de zarar veriyor.
Birincisi, panik edip hepsini kapatmak. Eğitim tarayıcısını kapatmak savunulabilir bir tercih. Ama arama ve cevap tarayıcılarını da kapatırsanız yapay zekâ cevaplarında kaynak gösterilme ihtimalinizi sıfırlıyorsunuz. Erişim olmadan alıntı olmuyor.
İkincisi, robots.txt’e satır yazıp işi bitmiş saymak. Yukarıdaki iki pazaryeri örneği tam olarak bunun neden yetmediğini gösteriyor. Beyan ile uygulama ayrı yerlerde duruyor ve ikisini de kontrol etmek gerekiyor.
Sonuç olarak?
Taradığım kesitte Türk e-ticaret siteleri yapay zekâ botlarına büyük ölçüde açık. Ama bu açıklık bir karardan değil, karar verilmemiş olmasından geliyor. Bir yerde çelişki çıkıyorsa da robots.txt ile güvenlik duvarı farklı şey söylediği için çıkıyor.
Pratik sonucu şu: robots.txt dosyanızın boş olması erişilebilir olduğunuzun kanıtı değil. Kanıt sunucu günlüğünüzde. Orada 403 görüyorsanız, yapay zekâ görünürlüğü için yazdığınız içeriğin hiçbiri okunmuyor demektir ve bunu fark etmenin başka bir yolu yok.
Bu kontrolü ve gerekiyorsa düzeltmesini AIO optimizasyonu çalışmasının ilk adımında yapıyorum. Erişimin açık olup olmadığını görmek isterseniz ön analiz talep edin, günlüğünüze bakıp hangi botun geldiğini ve ne cevap aldığını yazılı olarak ileteyim.