İçeriğe geç
Approvalens

Okuma odası · 4 dk okuma

robots.txt'de User-agent Önceliği: Adıyla Anılan Yapay Zekâ Botları ve *

GPTBot grubu açınca GPTBot neden * kurallarını yok sayar, aynı adlı gruplar nasıl birleşir, Applebot'un Googlebot'a düşmesi ve diğer robots.txt sürprizleri.

Approvalens ekibi

Şu rapor bulgularını düzeltir

  • Site haritasındaki sayfalar yapay zekâ botlarına açık
  • Yapay zekâ arama botlarına robots.txt izni
  • robots.txt'te yapay zekâ eğitim botları

Bir bot robots.txt'de yalnızca kendi adını anan gruba uyuyor. User-agent: GPTBot diye bir grup varsa GPTBot o grubu izliyor ve User-agent: * altındaki her şeyi yok sayıyor; ikisini toplamıyor. Bir botun adı hiçbir grupta geçmiyorsa ancak o zaman * grubuna düşüyor. Aynı botu anan gruplar birleştiriliyor, dosyadaki sıra önemli değil ve grup içinde en uzun eşleşen yol kazanıyor. "Bu yapay zekâ botu neden izinli (ya da engelli)?" bulmacalarının çoğu ilk kuralı unutmaktan çıkıyor.

RFC 9309'daki kurallar

robots.txt, RFC 9309 ile standartlaştırıldı. Grup seçimi için:

  1. Adı büyük-küçük harf duyarsız eşleştir. Botlar kendi adına uyan grubu büyük-küçük harf ayırmadan bulmak ve o grubun kurallarına uymak zorunda.
  2. Aynı adı taşıyan grupları birleştir. Bir bota uyan birden fazla grup varsa kuralları tek grupta birleştirilmek zorunda.
  3. Hiçbiri uymuyorsa * grubuna düş. Uyan grup yoksa bot, varsa * değerli gruba uymak zorunda.
  4. Grup yoksa kural da yok. Hiçbir grup uymuyorsa ve * grubu da yoksa hiçbir kural uygulanmıyor.

Seçilen grubun içindeki yollar için:

  1. En uzun eşleşme kazanır. En özel eşleşme, en çok bayttan (karakterden) oluşan eşleşme.
  2. Eşitlikte Allow kazanır. Bir allow ile bir disallow kuralı eşdeğerse allow kullanılmalı.
  3. Eşleşme yoksa izin var. /robots.txt adresinin kendisi de her zaman izinli.

Bir grup, aynı kuralları paylaşan birkaç User-agent: satırıyla başlayabiliyor.

Sürpriz 1: adıyla açılan grup * kurallarını iptal ediyor

User-agent: *
Disallow: /wp-admin/
Disallow: /odeme/
Disallow: /arama/

User-agent: GPTBot
Crawl-delay: 10

Kastettiğin: "Herkes yönetim, ödeme ve arama sayfalarından uzak dursun; GPTBot ayrıca yavaşlasın." GPTBot'un gördüğü ise hiç Disallow satırı olmayan bir grup; yani /odeme/ dahil her şeyi çekebilir. Yolları tekrar yazarak düzelt:

User-agent: GPTBot
Crawl-delay: 10
Disallow: /wp-admin/
Disallow: /odeme/
Disallow: /arama/

(Crawl-delay RFC 9309'da yok. OpenAI'nin bot sayfası ondan söz etmiyor; Anthropic kendi botları için desteklediğini söylüyor.)

Sürpriz 2: * adını yazmadığın her yapay zekâ botunu engelliyor

User-agent: *
Disallow: /

User-agent: Googlebot
Allow: /

Bu Googlebot'u içeri alıyor; OAI-SearchBot'u, Claude-SearchBot'u, PerplexityBot'u ve kendi grubu olmayan her botu engelliyor. Yapay zekâ arama botlarını içeri almak istiyorsan adlarını yaz:

User-agent: Googlebot
User-agent: OAI-SearchBot
User-agent: Claude-SearchBot
User-agent: PerplexityBot
Allow: /

User-agent: *
Disallow: /

Sürpriz 3: aynı adlı gruplar birleşiyor

User-agent: ClaudeBot
Disallow: /taslaklar/

User-agent: ClaudeBot
Disallow: /uyeler/

ClaudeBot ikisine de uyuyor: /taslaklar/ ve /uyeler/ engelli. Bir eklenti ya da CDN seninkinin üstüne kendi bloğunu eklediğinde bu önemli. Örneğin Cloudflare'in yönetilen robots.txt'si mevcut dosyanın başına bir User-agent: * grubu ve yapay zekâ eğitim botları için adlı gruplar ekliyor (yönetilen robots.txt). Senin * grubunla Cloudflare'inki tek grupta birleşiyor.

Sürpriz 4: bazı botlar başka bir botun kurallarını ödünç alıyor

Her bot * grubunda durmuyor. Belgelenmiş iki istisna:

  • Applebot: robots yönergeleri Applebot'u anmıyor ama Googlebot'u anıyorsa Apple'ın botu Googlebot yönergelerini izliyor (Applebot hakkında).
  • Amzn-SearchBot: robots.txt onu anmıyor ama diğer arama botlarına izin veriyorsa, diğer arama botlarına verilen yönergelere göre tarıyor (Amazonbot).

Hiç düşmeyen bir tane de var: Google'ın AdSense botu Mediapartners-Google, * grubunu tamamen yok sayıyor (robots.txt ve AdSense).

Sürpriz 5: site haritası yolunu engellemek

User-agent: *
Disallow: /*.xml

Beslemeleri gizlemek için yazılan bu kural, * grubuna uyan her bot için /sitemap.xml'i de engelliyor; arama botları adreslerini oradan bulamıyor. (Yollardaki * gibi joker karakterler RFC 9309'un parçası.) Site haritana açık bir Allow ver; daha uzun olduğu için kazanıyor:

User-agent: *
Allow: /sitemap.xml
Disallow: /*.xml

Sitemap: https://ornek.com/sitemap.xml

Sitemap: satırı hiçbir gruba bağlı değil, dosyanın tamamı için geçerli.

Sürpriz 6: yazım ve yollar

  • User-agent: GPT-Bot ya da User-agent: Claude Search Bot hiçbir şeyle eşleşmiyor. Adları şirketin kendi sayfasından kopyala; kaynaklarıyla liste yapay zekâ botlarına robots.txt izni rehberinde.
  • Yollar büyük-küçük harf duyarlı: Disallow: /Blog/, /blog/'u engellemiyor.
  • Yollar önek olarak eşleşiyor: Disallow: /ai, /ai-rehberi'ni de engelliyor.

Sürpriz 7: her alan adına bir dosya

robots.txt, sunulduğu alan adı için geçerli. blog.ornek.com kendi dosyasını istiyor. Örneğin Anthropic çıkmak istediğin her alt alan adına kural eklemeni istiyor; Amazon da botlarının her alan adında sunulan robots kurallarına uyduğunu söylüyor.

Herhangi bir dosyayı hızlı okumanın yolu

İlgilendiğin her bot için sor:

  1. Tam adını taşıyan bir grup var mı? Varsa yalnızca o grubu kullan (onu anan diğer gruplarla birleştirerek).
  2. Yoksa botun belgelenmiş bir düşme kuralı var mı (Applebot → Googlebot)? Onu kullan.
  3. Yoksa * grubunu kullan. * grubu yoksa her şey izinli.
  4. Seçilen grupta, adres için en uzun eşleşen yolu bul.

Öncelik ve AdSense

Googlebot'un ve Mediapartners-Google'ın neyi çekebileceğine de aynı kurallar karar veriyor; yapay zekâ botları için yapılan bir hata oraya taşabiliyor. Her değişiklikten sonra Google tarafını robots.txt test aracıyla ya da ücretsiz taramayla kontrol et.

Test et

Ücretsiz yapay zekâ bot kontrolü bu kuralları her büyük yapay zekâ botu için uyguluyor; hangi gruba düştüğünü, ana sayfanın ve site haritanın izinli olup olmadığını gösteriyor. Ardından sayfayı bizim sunucumuzdan benzetilmiş kullanıcı aracılarıyla istiyor; IP aralığına bakan bir güvenlik duvarı gerçek botlara farklı davranabilir, yani oradaki temiz sonuç garanti değil, ipucu.

Sık sorulan sorular

robots.txt'de grupların sırası önemli mi?

Hayır. Bot grubu konumuna göre değil, adıyla eşleştirerek seçiyor ve onu anan grupları birleştiriyor.

GPTBot'un adını yazarsam * kurallarını tekrar etmem gerekir mi?

Evet. GPTBot'un uymasını istediğin her kural onun grubunda olmalı.

Bir grupta birkaç bot olabilir mi?

Evet. Art arda gelen birkaç User-agent: satırı, ardından gelen kuralları paylaşıyor.

Allow her yerde çalışır mı?

RFC 9309'un parçası. Standarda uyan botlar destekliyor.

Eskimiş ya da yanlış bir şey mi gördün? Bize yaz, düzeltelim.

Bu rehberi İngilizce oku →

Kendi sitende kontrol et. Ücretsiz, kayıt yok.

Bunun için ücretsiz araçlar

Ücretsiz tarama

Kendi siteni kontrol et

Ücretsiz tarama: uygunluk puanı ve tüm sorunlar, genelde birkaç dakikada.

Ücretsiz tarama · puan ve bulunan tüm sorunlar · üyelik yok

Tüm rehberler →