AI kazıyıcılarını gerçekten engelleyen bir robots.txt nasıl yazılır
Uyumlu AI tarayıcılarını engellemek, robots.txt’nin sınırlarını anlamak ve önemli olduğu yerlerde sunucu tarafı kontroller eklemek için pratik bir rehber.
İçindekiler
- robots.txt hakkındaki rahatsız edici gerçek
- robots.txt ne yapabilir ve ne yapamaz
- Politika kararınızla başlayın
- Makul bir AI engelleme robots.txt şablonu
- Google-Extended konusunda dikkatli olun
- Dosyayı üretim kodu gibi test edin
- Kuralları yok sayan botlar için sunucu tarafı kontroller ekleyin
- Hız sınırlama
- User-agent filtreleme
- IP ve ASN kontrolleri
- Kimlik doğrulama ve ödeme duvarları
- İçerik minimizasyonu
- Sayfa düzeyi kurallar için robots meta etiketlerini kullanın
- Yayımladıktan sonra günlükleri izleyin
- Dosyayı küçük ve gözden geçirilmiş tutun
- Sonuç
robots.txt hakkındaki rahatsız edici gerçek
Bir robots.txt dosyası kilit değildir. Kapıdaki bir tabeladır.
Ekipler tek bir küçük metin dosyasıyla “AI kazıyıcılarını engelleyip engelleyemeyeceklerini” sorduğunda bu ayrım önemlidir. Robots Exclusion Protocol’e uyan saygın tarayıcılar için evet: doğru yazılmış bir robots.txt, onlara sayfalarınızı taramamalarını söyleyebilir. Bilinmeyen kazıyıcılar, kimlik taklitçileri, tarayıcı otomasyonu ve bunu umursamayan botlar için ise tek başına hiçbir şey yapmaz.
Bu yüzden pratik hedef “kazımayı imkânsız hale getirmek” değildir. Hedef şudur:
- Uyumlu AI tarayıcılarına sitenizi kullanmamalarını söylemek.
- Arama motorlarını veya faydalı servisleri yanlışlıkla engellemekten kaçınmak.
- Kötüye kullanım için daha güçlü sunucu tarafı kontroller eklemek.
- Tarayıcı adları değiştikçe politikayı sürdürülebilir tutmak.
Bu sıkıcı versiyondur. Aynı zamanda işe yarayan versiyondur.
robots.txt ne yapabilir ve ne yapamaz
Bir robots.txt dosyası sitenin kök dizininde bulunur:
https://example.com/robots.txt
Tarayıcılar taramaya başlamadan önce bunu ister. Dosya kural grupları içerir. Her grup bir veya daha fazla User-agent satırıyla başlar, ardından Allow veya Disallow yönergeleri gelir.
Basit bir tüm site engeli şöyle görünür:
User-agent: GPTBot
Disallow: /
Bu şu anlama gelir: Eğer GPTBot isen, bu sitedeki hiçbir şeyi tarama.
Ancak robots.txt’nin katı sınırları vardır:
- Gönüllülük esasına dayanır. Kötü niyetli aktörler bunu yok sayabilir.
- Bir URL’nin normal bir tarayıcı veya betik tarafından istenmesini engellemez.
- Başka yerde zaten toplanmış içeriği kaldırmaz.
- Telif hakkı, lisanslama veya eğitim haklarını tek başına tanımlamaz.
- Yanlış botları engelleyecek şekilde hatalı yapılandırılabilir.
Gerçek erişim kontrolüne ihtiyacınız varsa kimlik doğrulama, yetkilendirme, hız sınırlama, IP tabanlı kontroller, bot yönetimi veya hukuki kontroller kullanın. Robots.txt hâlâ faydalıdır, ancak daha geniş bir içerik koruma stratejisinin parçası olmalıdır.
Bu, diğer web yönetişimi sorunlarına benzer: görünen kontrol nadiren kontrolün tamamıdır. Kuruluşunuzda zaten yönetilmeyen AI kullanımı varsa aynı ilke geçerlidir; hızlı bir gölge AI denetimi, tek bir politika belgesinin sorunu çözdüğünü varsaymaktan çoğu zaman daha faydalıdır.
Politika kararınızla başlayın
Dosyayı düzenlemeden önce gerçekte neyi engellemeye çalıştığınıza karar verin.
İnsanların “AI kazıyıcısı” derken kastettiği en az dört farklı şey vardır:
- Eğitim verisi toplamak için kullanılan tarayıcılar.
- AI arama veya yanıt motoru tarayıcıları.
- Birinin bir AI ürününden bir URL’yi özetlemesini istemesi gibi kullanıcı tetiklemeli getiriciler.
- Sıradan tarayıcı gibi davranan genel kazıyıcılar.
Bunların tamamını engellemek isteyebilirsiniz. Ya da model eğitiminden çıkarken arama keşfini korumak isteyebilirsiniz. Bunlar aynı politika değildir.
Örneğin OpenAI, farklı amaçlar için GPTBot, ChatGPT-User ve OAI-SearchBot dahil ayrı user agent’lar belgelemektedir. Google, bazı Gemini ve Vertex AI kullanım senaryoları için kontrol belirteci olarak Google-Extended kullanırken, normal Google Search taraması diğer Googlebot user agent’ları tarafından yürütülür.
Bu ayrım önemlidir. Geniş user agent’ları dikkatsizce engellerseniz, AI eğitimini engellemeye çalışırken sıradan arama görünürlüğünüze zarar verebilirsiniz.
Makul bir AI engelleme robots.txt şablonu
Genel arama tarayıcılarını olduğu gibi bırakırken, yaygın olarak belgelenmiş birkaç AI ilişkili tarayıcıyı engellemek için ihtiyatlı bir başlangıç noktası şudur:
# AI training and AI product crawlers
User-agent: GPTBot
Disallow: /
User-agent: ChatGPT-User
Disallow: /
User-agent: OAI-SearchBot
Disallow: /
User-agent: Google-Extended
Disallow: /
User-agent: CCBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: Claude-Web
Disallow: /
User-agent: PerplexityBot
Disallow: /
User-agent: Amazonbot
Disallow: /
User-agent: Bytespider
Disallow: /
User-agent: Meta-ExternalAgent
Disallow: /
# Default rule for other crawlers
User-agent: *
Allow: /
Bu sihirli, evrensel bir liste değildir. Sürdürülebilir bir kalıptır.
Birkaç not:
Disallow: /, “hiçbir yolu tarama” anlamına gelir.User-agent: *, daha özel bir grupla eşleşmeyen tarayıcılara uygulanır.Allow: /varsayılan grup için kesinlikle gerekli değildir, ancak niyetinizi netleştirir.- Yorumları kısa tutun. Bazı ayrıştırıcılar hoşgörülüdür, ancak robots.txt sıkıcı kalmalıdır.
- robots.txt içine özel URL’ler koymayın. Dosya herkese açıktır ve hassas yolları listelemek onları ilan edebilir.
Son nokta tekrar edilmeye değerdir. Robots.txt bir gizlilik mekanizması değildir. /client-contracts/ herkese açık olmamalıysa, bunu kimlik doğrulamayla koruyun. Sadece disallow etmeyin.
Google-Extended konusunda dikkatli olun
Google-Extended yaygın biçimde yanlış anlaşılır. Google Search’ü engellemekle aynı şey değildir.
Google’ın belgelerine göre Google-Extended, yayıncıların site içeriğinin belirli Gemini ve Vertex AI yeteneklerini geliştirmeye yardımcı olup olmayacağını yönetmek için kullanabileceği bağımsız bir ürün belirtecidir. Bunu engellemek, tek başına Googlebot’un Search için tarama yapmasını engellememelidir.
Bununla birlikte, gerçekten bunu kastetmiyorsanız tüm Google yönergelerini şu gibi geniş bir engelle değiştirmeyin:
User-agent: Googlebot
Disallow: /
Bu, Google Search’ün ana tarayıcısına sitenizi taramamasını söyler. Çoğu herkese açık web sitesi için istediğiniz şey bu değildir.
Aynı ayrım başka yerlerde de geçerlidir. Bazı sağlayıcılar eğitim tarayıcılarını kullanıcı tetiklemeli gezinmeden veya AI arama tarayıcılarından ayırır. Bazıları ayırmaz. Önemsediğiniz botların belgelerini okumanız ve robots.txt dosyanızı tek seferlik bir onay kutusu değil, yaşayan bir dosya olarak ele almanız gerekir.
Dosyayı üretim kodu gibi test edin
Robots.txt basit görünür; bu yüzden bozması kolaydır.
Yaygın hatalar şunlardır:
- Dosyayı
/robots.txtyerine/assets/robots.txtgibi yanlış bir yere yüklemek. - Bir belge düzenleyiciden kopyalanmış akıllı tırnak işaretleri kullanmak.
- Yanlışlıkla
User-agent: *veDisallow: /ile tüm tarayıcıları engellemek. - Bir alan adının dosyasının başka bir alt alan adına da uygulanacağını varsaymak.
- Kurulumunuza bağlı olarak
http://,https://,wwwvewwwolmayan host’ların farklı ele alınabileceğini unutmak.
Çok alan adlı sitelerde her kanonik host’u kontrol edin. https://www.example.com/robots.txt adresindeki bir robots dosyası, https://app.example.com/robots.txt üzerinde otomatik olarak geçerli olmaz.
Hata ayıklarken, CMS önizlemenizin gösterdiğine değil, gerçek HTTP yanıtına bakın. 200 OK yanıtı, mümkünse text/plain içerik türü ve beklediğiniz dosyanın tam kendisini görmek istersiniz. Yönlendirmeler, önbellekleme veya CDN kuralları söz konusuysa ham başlık incelemesi yardımcı olur. Üretimde yönlendirmeleri ve HTTP başlıklarını hata ayıklama akışı burada doğrudan geçerlidir.
Kuralları yok sayan botlar için sunucu tarafı kontroller ekleyin
Tarayıcı uyumluysa robots.txt en temiz sinyaldir. Tarayıcı kötüye kullanıyorsa yaptırıma ihtiyacınız vardır.
Pratik kontroller şunlardır:
Hız sınırlama
Olağandışı istek kalıpları için eşikler belirleyin: dakikada çok fazla sayfa, derin sayfalama gezintisi, tekrarlanan 404’ler veya küçük bir IP kümesinden yüksek istek hacmi. Hız sınırları gerçek kullanıcıları cezalandırmayacak kadar cömert, toplu çıkarımı pahalı hale getirecek kadar sıkı olmalıdır.
User-agent filtreleme
Belgelenmiş AI tarayıcı user agent’larını web sunucusunda, ters proxy’de, CDN’de veya uygulama katmanında engelleyebilirsiniz. Bu, gerçek bir ret yanıtı döndürdüğü için robots.txt’den daha güçlüdür.
Örneğin Nginx bir user agent kalıbını engelleyebilir; ancak üretim kuralları dikkatle test edilmelidir:
if ($http_user_agent ~* "GPTBot|CCBot|ClaudeBot|Bytespider") {
return 403;
}
Bu kusursuz değildir. User-agent dizelerini taklit etmek kolaydır. Ancak dürüst veya tembel trafiği durdurur ve yükü azaltır.
IP ve ASN kontrolleri
Bazı operatörler IP aralıkları yayımlar, ancak birçok kazıyıcı ekosistemi bunu yapmaz. IP tabanlı engelleme bariz kötüye kullanım için işe yarayabilir; özellikle normal kullanıcı trafiği olmayan bulut barındırma aralıklarında. Ancak yanlış pozitifler de oluşturabilir. Kurallardan önce günlükleri kullanın.
Kimlik doğrulama ve ödeme duvarları
İçeriğin ölçekli biçimde kopyalanmaması gerekiyorsa tam içeriği herkese açık bir URL’ye koymayın. Robots.txt gizli materyal, lisanslı veritabanları, özel topluluklar veya ücretli arşivler için uygun değildir.
İçerik minimizasyonu
Bazen en iyi koruma mimaridir. Herkese açık sayfa yalnızca küçük bir alt kümeye ihtiyaç duyuyorsa gereksiz API’leri, büyük JSON yüklerini, gizli metaverileri, taslak uç noktalarını veya tam arşivleri açığa çıkarmayın. Görsel ağırlıklı siteler yayımladıkları metaveriler hakkında da düşünmelidir; fotoğrafları çevrimiçi paylaşmadan önce EXIF metaverilerini kaldırma konusundaki gizlilik mantığı içerik operasyonları için de geçerlidir.
Sayfa düzeyi kurallar için robots meta etiketlerini kullanın
Robots.txt taramayı kontrol eder. Robots meta etiketleri ve X-Robots-Tag başlıkları, uyumlu arama motorları ve tarayıcılar için indeksleme ve snippet davranışını kontrol eder.
Örneğin:
<meta name="robots" content="noindex, noarchive">
Veya HTTP başlığı olarak:
X-Robots-Tag: noindex, noarchive
Bunlar AI’ye özel kalkanlar değildir. Bir sayfanın erişilebilir olmasını ama indekslenmemesini istediğinizde faydalıdır. Ancak bir tarayıcının bir sayfayı robots.txt içinde getirmesini engellerseniz, sayfa düzeyindeki meta etiketi hiç göremeyebilir. Tarayıcının taramasının yasaklandığı bir URL’deki noindex etiketine güvenmeyin.
Kabaca kural şudur:
- Taramayı azaltmak veya önlemek için robots.txt kullanın.
- İndeksleme davranışını kontrol etmek için meta robots veya
X-Robots-Tagkullanın. - Erişimi uygulamak için sunucu tarafı kontroller kullanın.
Yayımladıktan sonra günlükleri izleyin
Dosyayı yayımlamak yalnızca ilk adımdır. Bundan sonra günlüklerinizi kontrol edin.
Şunları arayın:
- Adını belirttiğiniz user agent’lardan
/robots.txtistekleri. - Disallow kuralları sunulduktan sonra devam eden tarama.
- Yüksek hacimli şüpheli user agent’lar.
- Binlerce sayfayı sırayla isteyen tarayıcı benzeri user agent’lar.
- Akışlara, site haritalarına, arama sayfalarına ve sayfalamaya tekrarlanan erişim.
Bir bot robots.txt ister, tam disallow görür ve sonra durursa robots.txt işini yapmıştır. Devam ederse o botu yaptırıma taşıyın: hız sınırları, engellemeler veya kimlik doğrulama.
Site haritası görünürlüğünüzü de gözden geçirin. Site haritaları arama motorları için faydalıdır, ancak kazıyıcılar için de kullanışlı haritalardır. Bu, sıradan sitelerden onları kaldırmanız gerektiği anlamına gelmez. Ancak herkese açık sistemlerin keşfetmesini istemediğiniz URL’leri dahil etmemeniz gerektiği anlamına gelir.
Dosyayı küçük ve gözden geçirilmiş tutun
Robots.txt zamanla çürümeye eğilimlidir. Bir pazarlama ekibi kampanya mikro sitesi ekler. Bir geliştirici hazırlık ortamı yolu ekler. Bir tedarikçi tarayıcı adını değiştirir. İki yıl sonra kimse kuralların yarısının neden var olduğunu bilmez.
Bunu yapılandırma olarak ele alın:
- Mümkün olduğunda sürüm kontrolünde saklayın.
- Her AI tarayıcı grubu için kısa bir yorum ekleyin.
- Üç ayda bir gözden geçirin.
- Geniş kurallar eklemeden önce sağlayıcı belgelerini kontrol edin.
- CDN, CMS veya barındırma değişikliklerinden sonra test edin.
Siteniz AI destekli içerik yayımlıyorsa, tarayıcı politikasını editoryal şeffaflıktan da ayırın. AI kazıyıcılarını engellemek erişim ve yeniden kullanım ile ilgilidir. Açıklama ise okur güveniyle ilgilidir. Etik olarak örtüşürler, ancak aynı kontrol değildirler. Pratik bir açıklama yaklaşımı küçük bir web sitesinde dürüst AI açıklaması nasıl görünür yazısında ele alınmıştır.
<!-- tool-cta:start -->
💡 Bunu deneyin: AI tarayıcıları için kurallar ekledikten sonra, meşru botları da yanlışlıkla engellememek için söz dizimini Robots.txt Tester ile doğrulayın.
<!-- tool-cta:end -->
Sonuç
İyi bir robots.txt dosyası uyumlu AI tarayıcılarını engeller. Kararlı kazımayı, kopyalanmış user-agent dizelerini, ele geçirilmiş tarayıcıları veya içeriğinizi AI sistemlerine manuel olarak yapıştıran insanları durdurmaz.
Bu onu işe yaramaz yapmaz. Onu bir katman yapar.
Belgelenmiş AI tarayıcıları için açık kurallar yazın. Arama görünürlüğüne zarar veren geniş engellerden kaçının. Taslağı değil, sunulan dosyayı test edin. Günlükleri izleyin. Davranış istenmeyen olmaktan kötüye kullanıma geçtiğinde sunucu tarafı kontrollerle yaptırım uygulayın.
Web her zaman protokol, normlar ve yaptırım karışımıyla çalıştı. Robots.txt normlar katmanıdır. Kullanın, ancak onu bir duvar sanmayın.