robots.txt'teki her grup bir tarayıcıya hitap eder ve yapay zekâ şirketleri tek bir tarayıcıyla gelmiyor. OpenAI'nin, Anthropic'in, Perplexity'nin ve Google'ın farklı işler için farklı adları (token) var. Bu yüzden "yapay zekâyı engellemek" tek satırlık bir karar değil: hangi işe izin verdiğinizi seçmeniz gerekiyor. Konunun görünürlük tarafı GEO sayfamızda.
Yapay zekâ botları hangi türlere ayrılır?
Şirketlerin belgelerinde üç iş öne çıkıyor. Eğitim botları içeriği model eğitimi için toplar. Arama botları, yanıt motorunun cevaplarında kaynak gösterebileceği bir dizin kurar. Kullanıcı tetiklemeli getiriciler (fetcher), bir kullanıcı soru sorduğunda ya da bağlantı verdiğinde sayfayı o an açar. Bunlara ek olarak hiç tarama yapmayan, yalnızca robots.txt'te anılan kontrol token'ları var.
| Token | Şirket | İş | robots.txt | Not |
|---|---|---|---|---|
GPTBot | OpenAI | Eğitim | Uyar | Engellemek, içeriğin temel modellerin eğitiminde kullanılmaması gerektiğini bildirir. |
OAI-SearchBot | OpenAI | Arama | Uyar | Engellenen site ChatGPT arama cevaplarında gösterilmez, yalnızca gezinme bağlantısı olarak çıkabilir. Değişiklik yaklaşık 24 saatte yansır. |
ChatGPT-User | OpenAI | Kullanıcı | Uygulanmayabilir | ChatGPT ve Custom GPT'lerdeki kullanıcı eylemleri. |
ClaudeBot | Anthropic | Eğitim | Uyar; Crawl-delay destekler | Engellemek, sitenin gelecekteki içeriğinin eğitim verisinden çıkarılmasını ister. |
Claude-SearchBot | Anthropic | Arama | Uyar | Engellenirse içerik arama için dizinlenmez. |
Claude-User | Anthropic | Kullanıcı | Uyar | Engellenirse kullanıcının sorusu için sayfa getirilmez. |
PerplexityBot | Perplexity | Arama | Uyar | Temel model eğitimi için kullanılmaz. |
Perplexity-User | Perplexity | Kullanıcı | Genellikle yok sayar | Kullanıcı sorusu için anlık getirme. |
Googlebot | Arama; AI Overviews ve AI Mode dahil | Uyar | Engellemek Google Arama'daki taramayı da durdurur. | |
Google-Extended | Kontrol token'ı | Yalnızca token | Gemini eğitimi ile Gemini Apps ve Vertex AI'daki grounding kullanımı. Google Arama'ya ve sıralamaya etkisi yok. | |
Applebot | Apple | Arama (Spotlight, Siri, Safari); veri Apple modellerinin eğitiminde de kullanılabilir | Uyar | Dosyada Applebot anılmayıp Googlebot anılıyorsa Googlebot kurallarını izler. |
Applebot-Extended | Apple | Kontrol token'ı | Yalnızca token | Tarama yapmaz. Engellemek arama sonuçlarından çıkarmaz, eğitim kullanımını belirler. |
Amazonbot | Amazon | Ürün iyileştirme; Amazon modellerinin eğitimi olabilir | Uyar; Crawl-delay desteklemez | Sayfadaki noarchive meta etiketini "eğitimde kullanma" olarak yorumlar. |
meta-externalagent | Meta | Eğitim ve ürün iyileştirme | Uyar | Meta'nın kullanıcı adına getirme yapan meta-externalfetcher botu robots.txt'i atlayabilir. |
CCBot | Common Crawl | Açık web arşivi | Uyar | Arşivi başkaları da model eğitiminde kullanabilir. |
DuckAssistBot | DuckDuckGo | Arama (kaynaklı yapay zekâ cevapları) | Uyar | Eğitimde kullanılmaz; engelleme yaklaşık 72 saatte yansır. |
YandexAdditional | Yandex | Kontrol token'ı | Yalnızca token | Yandex'te dizinli sayfaların içeriğinin Yandex'in yapay zekâ cevaplarında görünmesini yönetir. |
Bytespider | ByteDance | Üçüncü taraf raporlarına göre eğitim | Belirsiz | Birincil bir ByteDance belgesi bulamadık; robots.txt'e uymadığına dair iddialar var. |
Tablodaki üç kontrol token'ı (Google-Extended, Applebot-Extended, YandexAdditional) ayrı bir tarayıcı değildir. İçeriği zaten Googlebot, Applebot ya da YandexBot getirir; token yalnızca o içeriğin nerede kullanılabileceğini söyler. Türkçe bir site için Yandex satırı küçümsenecek bir ayrıntı değil: StatCounter'a göre Ağustos 2026'da Türkiye'deki aramaların yaklaşık %16'sı Yandex'te yapıldı.
Kullanıcı tetiklemeli getiricilerde robots.txt'in gücü sınırlı. OpenAI, ChatGPT-User için robots.txt kurallarının uygulanmayabileceğini; Perplexity, Perplexity-User'ın kuralları genellikle yok saydığını; Google da kullanıcı adına çalışan getiricilerinin robots.txt'i genel olarak dikkate almadığını yazıyor. Anthropic ise Claude-User'ın robots.txt'e uyduğunu belirtiyor.
robots.txt eşleşmesi nasıl işler? RFC 9309'un kuralları
robots.txt, Eylül 2022'de RFC 9309 ile standartlaştı. Standardın en çok gözden kaçan kuralı şu: tarayıcı önce kendi token'ıyla eşleşen grubu arar (büyük-küçük harf farkı gözetmeden). Bulursa yalnızca onu uygular; aynı token için birden fazla grup varsa kurallarını birleştirir. * grubuna ancak kendisiyle eşleşen hiçbir grup yoksa bakar.
User-agent: * Disallow: /yonetim/ Disallow: /taslak/ User-agent: GPTBot Allow: /
Bu dosyada GPTBot /yonetim/ ve /taslak/ altına da girebilir, çünkü kendi grubunu buldu ve o grupta yasak yok. Niyet "GPTBot'a izin ver" idi; sonuç "GPTBot'a her yere izin ver" oldu. Standardın diğer kuralları:
- Bir adrese uyan birden fazla kural varsa en uzun, yani en çok karakter içeren kural kazanır.
AllowveDisalloweşitseAllowuygulanır. - Hiçbir kural eşleşmezse adres serbesttir.
/robots.txt'in kendisi her zaman serbesttir. - Dosya 4xx döndürürse (ör. 404) tarayıcı her şeye erişebilir. 5xx ya da ağ hatası dönerse tarayıcı her şeyi yasaklanmış saymak zorundadır. robots.txt'e sunucu hatası veren bir CDN ya da yanlış bir yönlendirme kuralı, siteyi bütün tarayıcılara bir anda kapatabilir.
- Tarayıcı dosyayı önbelleğe alabilir ama 24 saatten eski bir kopyayı kullanmamalıdır.
- Ayrıştırma sınırı en az 500 KiB'tır.
Crawl-delaystandartta yoktur. Anthropic desteklediğini, Amazon desteklemediğini yazıyor.- robots.txt bir güvenlik önlemi değildir; standart, dosyada listelenen yolların herkese görünür hâle geldiğini ayrıca hatırlatır.
Bu sitenin robots.txt dosyası bu kural yüzünden tekrarlarla dolu. Genel grubun yanında Googlebot'tan meta-externalagent'a on dokuz tarayıcı için ayrı grup var ve her biri aynı iki yasağı taşıyor:
User-agent: * Allow: / Disallow: /src/ Disallow: /build.py User-agent: GPTBot Allow: / Disallow: /src/ Disallow: /build.py User-agent: OAI-SearchBot Allow: / Disallow: /src/ Disallow: /build.py […] Sitemap: https://www.md9.net/sitemap.xml
/src/ sayfaların kaynak dosyalarını, /build.py onları üreten betiği tutuyor; ikisi de okur için değil. En uzun eşleşme kuralı sayesinde Allow: / siteyi açıyor, daha uzun olan Disallow: /src/ o klasörü kapatıyor. Adlandırılmış gruplar burada teknik olarak gereksiz: hepsi * grubuyla aynı şeyi söylüyor ve listede olmayan bir bot zaten * grubuna düşüyor. İzni açıkça okunur kılıyorlar; bedeli, her yeni yasağın yirmi kez yazılması. Dosyayı elle değil, build.py içindeki robots_txt() işlevi tek bir bot listesinden üretiyor; bir grubun unutulması bu yüzden mümkün değil.
Görünürlük isteyen site için örnek robots.txt
Arama motorlarında ve yapay zekâ yanıtlarında kaynak olmak isteyen bir site için en sağlam dosya en kısa olanıdır:
User-agent: * Allow: / Disallow: /yonetim/ Sitemap: https://www.example.com/sitemap.xml
Adlandırılmış grup olmadığı için düşülecek bir tuzak da yok. Botları tek tek anmak istiyorsanız her gruba * grubundaki yasakların tamamını kopyalayın ve dosyayı elle değil bir listeden üretin.
Cloudflare'in önerdiği Content-Signal satırı, içeriğin nasıl kullanılabileceğine dair tercihi makinece okunur biçimde ekler: Content-Signal: search=yes, ai-input=yes, ai-train=no. Tanımlarda ince bir ayrıntı var. search arama dizinini, bağlantıyı ve kısa alıntıyı kapsar ama yapay zekâ ile üretilmiş arama cevaplarını kapsamaz; onlar ai-input altındadır. Cloudflare bu sinyallerin bir tercih olduğunu, teknik bir önlem olmadığını açıkça yazıyor. Search Console bu satır için zaman zaman "Syntax not understood" uyarısı gösterebiliyor; Cloudflare'e göre taramaya bir etkisi gözlenmedi. Bu sitenin dosyasında şu an Content-Signal satırı yok.
GPTBot ve ClaudeBot nasıl engellenir? Eğitimi kapatıp aramada kalmak
En sık istenen ara çözüm bu: içerik model eğitiminde kullanılmasın ama site yanıt motorlarında kaynak olarak görünmeye devam etsin. Eğitim botlarını ve kontrol token'larını tek bir grupta kapatıp gerisini açık bırakmak yeter; RFC 9309 bir gruba birden fazla User-agent satırı yazılmasına izin verir.
User-agent: GPTBot User-agent: ClaudeBot User-agent: Google-Extended User-agent: Applebot-Extended User-agent: meta-externalagent User-agent: CCBot Disallow: / User-agent: * Allow: / Disallow: /yonetim/ Sitemap: https://www.example.com/sitemap.xml
- İlk grup tüm siteyi kapattığı için
/yonetim/yasağını oraya tekrar yazmaya gerek yok. - Engelleme geriye dönük çalışmaz. Anthropic'in ifadesiyle ClaudeBot'u kısıtlamak, sitenin gelecekteki içeriğinin eğitim verisinden çıkarılmasını ister; daha önce toplanmış veriye robots.txt dokunmaz.
- Applebot ve Amazonbot karma botlardır. Applebot'u engellemek Siri ve Spotlight'taki görünürlüğü de keser; eğitim için doğru satır Applebot-Extended'dır. Amazon, eğitim kullanımını sayfa düzeyindeki
noarchiveetiketiyle ayırmanıza izin veriyor. - Google-Extended'ı engellemek Google Arama'daki yerinizi, AI Overviews dahil, değiştirmez.
Yapay zekâya tamamen kapatmak
Arama ve kullanıcı botlarını da kapatmak için aynı gruba şu satırlar eklenir: OAI-SearchBot, ChatGPT-User, Claude-SearchBot, Claude-User, PerplexityBot, Perplexity-User, DuckAssistBot, YandexAdditional. Bedeli açık: site ChatGPT aramasında, Claude'un ve Perplexity'nin cevaplarında kaynak olarak görünmez ya da görünme ihtimali düşer. Üstelik robots.txt'e uymayabilen kullanıcı tetiklemeli getiricileri gerçekten durdurmak CDN ya da WAF kuralı ister. Google AI Overviews'u robots.txt ile ayrıca kapatmanın bir yolu yok; Google bunun için nosnippet, data-nosnippet, max-snippet ya da noindex gösteriyor ve bunlar normal arama sonucundaki snippet'i de etkiliyor.
Cloudflare kullanıyorsanız: AI bot ayarları ve varsayılanlar
Cloudflare kendi belgesinde de robots.txt'e uymanın gönüllü olduğunu yazıyor. Zorlama CDN katmanında yapılır ve oradaki karar robots.txt'ten bağımsızdır. Site Cloudflare arkasındaysa (bu site de öyle) robots.txt'i okumak tek başına yetmez; panel ayarlarına da bakmak gerekir. Temmuz 2026'dan beri ayarlar şöyle:
| Ayar | Ne yapar | Varsayılan ve dikkat edilecek nokta |
|---|---|---|
| Security Settings → Configure AI bot policies | Search, Agent ve Training davranışlarının her biri için: tüm sayfalarda engelle, yalnızca reklam gösteren sayfalarda engelle ya da engelleme. Free plan dahil. | 15 Eylül 2026'dan sonra eklenen alan adlarında Training ve Agent reklamlı sayfalarda engelli, Search açık. |
| Block AI bots (eski ayar) | Eğitim amaçlı doğrulanmış botları ve benzer davranan bazı botları engeller. | 15 Eylül 2026 itibarıyla kullanımdan kaldırılıyor. |
| Managed robots.txt | Sizin dosyanızın başına Amazonbot, Applebot-Extended, Bytespider, CCBot, ClaudeBot, Google-Extended, GPTBot ve meta-externalagent için Disallow: / ve Content-signal: search=yes, ai-train=no, use=reference ekler. | Kapalı gelir. Açıksa dosyanız yazdığınız gibi sunulmaz; canlı adresi kontrol edin. |
| AI Crawl Control | Hangi yapay zekâ servisinin eriştiğini ve robots.txt'e kimin uymadığını gösterir; tek tek bot için izin ya da engelleme kuralı yazılır. | Tüm planlarda. İzleme için açık tutmaya değer. |
| Bot Fight Mode | Bilinen bot kalıplarına challenge uygular; WAF özel kurallarıyla istisna tanımlanamaz. | Bizce görünürlük isteyen bir sitede kapalı tutulmalı. |
Managed robots.txt açıldığında dosyanın başına eklenen metnin tam hâli Cloudflare'in belgesinde görülebilir.
Cloudflare'in duyurusuna göre 15 Eylül 2026'dan itibaren hem arama hem eğitim yapan botlar bütün davranışlarına göre değerlendiriliyor ve en kısıtlayıcı kural uygulanıyor. Cloudflare bu gruba Googlebot, Applebot ve Bingbot'u örnek veriyor: Training'i engelleyen bir site, eski "Block AI bots" ayarıyla da olsa, bu botları da engellemiş olur. Reklam gösteren sayfaları olan yeni bir alan adında bu sonuç varsayılan ayarla bile doğabilir. robots.txt'iniz Googlebot'a açık görünürken sayfalar taranamıyorsa ilk bakılacak yer burası.
Hangi botun geldiğini nasıl ölçersiniz?
Üç kaynaktan: kendi erişim kayıtlarınız, CDN paneli ve arama motorlarının raporları.
- Kayıtlarda token'ları sayın. Sunucunuzun erişim kaydı (access log) varsa user-agent alanında adları arayın:
grep -oE "GPTBot|OAI-SearchBot|ChatGPT-User|ClaudeBot|Claude-SearchBot|Claude-User|PerplexityBot|Perplexity-User|Amazonbot|meta-externalagent|CCBot|DuckAssistBot" access.log | sort | uniq -c | sort -rn
- User-agent'ı doğrulayın. User-agent istemcinin beyanıdır; herkes kendine GPTBot diyebilir. OpenAI her botu için IP aralıklarını JSON olarak yayımlıyor (
openai.com/gptbot.json,openai.com/searchbot.json,openai.com/chatgpt-user.json); Perplexity de aynısını yapıyor. Google için ters DNS sorgusu yapılır: adresgooglebot.com,google.comya dagoogleusercontent.comaltında bir ada çözülmeli ve o ad ileri sorguda aynı adrese dönmelidir. - Hangi adresi kaydettiğinizi bilin. Sunucu bir CDN ya da ters vekil arkasındaysa kayıttaki adres vekilindir. Cloudflare arkasında gerçek istemci adresi
CF-Connecting-IPbaşlığında gelir; kayıt biçimi buna göre ayarlanmadıysa doğrulama yapılamaz. Kayıttaki adresin özel ağ, CGNAT ya da genel adres olduğunu IP adresi kontrol aracı gösterir. - Kontrol token'larını aramayın. Google-Extended, Applebot-Extended ve YandexAdditional kayıtlarda görünmez.
- Kullanıcı tetiklemeli istekleri ayrı okuyun. ChatGPT-User, Claude-User ya da Perplexity-User isteği, bir kullanıcının sorusunun sayfanıza dokunduğunu gösterir. Bir yapay zekâ cevabında kullanılmaya en yakın sinyal budur.
- Arama motorlarının raporlarına bakın. Search Console'daki robots.txt raporu, Google'ın sitenizin en çok 20 ana makinesi için bulduğu robots.txt dosyalarını, son getirme zamanını ve hataları gösterir; düzeltmeden sonra yeniden getirme istenebilir. Generative AI performance raporu AI Overviews ve AI Mode gösterimlerini veriyor, tıklama ve sorgu vermiyor. Bing Webmaster Tools'un AI Performance raporu (Şubat 2026'dan beri ön izlemede) Copilot ve Bing'in yapay zekâ cevaplarındaki atıfları gösteriyor.
GitHub Pages ham erişim kaydı vermez; bu sitede bot trafiğini ancak önündeki CDN'in panelinden görebiliyoruz. Kayıt okumanın daha geniş tekniğini (saat dilimi, bütünlük, vekil adresleri) log analizi sayfamızda anlattık.
Hangi amaç için hangi ayar?
| Amaç | robots.txt | Ayrıca |
|---|---|---|
| Arama motorlarında ve yapay zekâ yanıtlarında görünmek | User-agent: * ve Allow: /; adlandırılmış grup yoksa tuzak da yok | CDN'de Search, Agent ve Training engelli değil; Bot Fight Mode kapalı |
| Eğitime kapalı, aramaya açık | GPTBot, ClaudeBot, Google-Extended, Applebot-Extended, meta-externalagent, CCBot için Disallow: / | CDN'de Training engeli karma botları da durdurur; bunu bilerek seçin |
| Yapay zekâya tamamen kapalı | Eğitim, arama ve kullanıcı token'larının tamamına Disallow: / | Kullanıcı getiricileri için CDN ya da WAF kuralı; AI Overviews için snippet ayarları |
| Google'da kalmak, Gemini eğitimine kapalı olmak | User-agent: Google-Extended ve Disallow: / | Googlebot'a dokunmayın |
robots.txt'in canonical ve site haritasıyla ilişkisi teknik SEO sayfasında. Sık karıştırılan llms.txt ise erişimi yönetmez; yalnızca sitenin özetini sunar.