Methodology v1.0
08 Kasım 2026 • Yazar: AICompatible Ekibi • 7 dk okuma

robots.txt'te Siteyi AI'dan Gizleyen 7 Yaygın Hata

Kısaca: Robots.txt'te en sık yapılan hatalar arasında Disallow: / ile tüm siteyi kapatmak, wildcard karakterlerini yanlış kullanmak, birden fazla User-agent bloğunun birbirini ezmesi, CDN veya staging ortamındaki eski dosyanın canlıda kalması sayılabilir. Bu hataların çoğu Google Search Console'daki robots.txt raporu, URL denetimi ve tarayıcıdan doğrudan kontrol ile tespit edilebilir.

1. Disallow: / ile Tüm Siteyi Kapatmak

Robots.txt dosyasında en yıkıcı hata, tüm tarayıcıları engelleyen bir kural yazmaktır:

User-agent: *
Disallow: /

Bu yapılandırma, Googlebot, GPTBot, ClaudeBot dahil tüm tarayıcıların sitenizin her sayfasına erişimini engeller. Sonuç olarak Google arama sonuçlarından düşersiniz, ChatGPT ve diğer AI araçları içeriğinizi indeksleyemez.

Doğru kullanım: Yalnızca belirli dizinleri engellemek istiyorsanız:

User-agent: *
Disallow: /admin/
Disallow: /private/

Tüm siteyi açık bırakmak için Disallow: satırını boş bırakın veya hiç yazmayın:

User-agent: *
Disallow:

Test yöntemi: Google Search Console → Ayarlar → robots.txt raporu bölümünden dosyanızı görüntüleyin. Ayrıca tarayıcınızda https://siteniz.com/robots.txt adresini açarak içeriği doğrudan kontrol edin.

2. Wildcard Karakterlerini Yanlış Kullanmak

Robots.txt standart sözdiziminde yalnızca * (herhangi bir karakter dizisi) ve $ (satır sonu) wildcard'ları tanınır. Ancak bazı yöneticiler düzenli ifade (regex) benzeri yapılar kullanmaya çalışır:

User-agent: *
Disallow: /search?*query=
Disallow: /*.pdf$

İlk satır doğrudur; * ile "query=" içeren tüm arama URL'lerini engeller. İkinci satır da doğrudur; $ ile ".pdf" ile biten dosyaları engeller. Ancak şu hatalı:

Disallow: /[0-9]+/

Köşeli parantez ve + işareti robots.txt'te geçersizdir; bu satır yalnızca tam olarak /[0-9]+/ yolunu engeller, sayısal ID'leri engellemez.

Doğru kullanım: Sayısal ID'li sayfaları engellemek için wildcard kullanın:

Disallow: /product/*/reviews

Bu, /product/123/reviews, /product/abc/reviews gibi tüm yolları engeller.

Test yöntemi: Google Search Console'daki URL denetimi aracında örnek bir URL girin (örneğin /product/123/reviews) ve "Tarama" sekmesinde robots.txt tarafından engellenip engellenmediğini kontrol edin.

3. Birden Fazla User-agent Bloğunun Birbirini Ezmesi

Robots.txt'te her User-agent için ayrı bir blok yazarsınız. Ancak bloklar arasına boş satır koymayı unutursanız veya aynı User-agent'ı iki kez tanımlarsanız, tarayıcılar yalnızca ilk eşleşen bloğu uygular:

User-agent: GPTBot
Disallow: /blog/

User-agent: *
Disallow: /admin/
User-agent: GPTBot
Allow: /blog/public/

Yukarıdaki örnekte GPTBot için iki blok var. Tarayıcılar genellikle ilk bloğu uygular; ikinci Allow kuralı göz ardı edilir. Sonuç olarak GPTBot /blog/public/ dahil tüm /blog/ dizinini engellenmiş görür.

Doğru kullanım: Her User-agent için tek bir blok yazın ve bloklar arasına boş satır ekleyin:

User-agent: GPTBot
Disallow: /blog/
Allow: /blog/public/

User-agent: *
Disallow: /admin/

Ayrıca Allow kuralını Disallow'dan önce yazmayın; robots.txt'te daha spesifik kurallar önceliklidir, ancak sıralama okunabilirlik açısından önemlidir.

Test yöntemi: Dosyanızı bir robots.txt doğrulayıcı ile kontrol edin (örneğin Ryte Robots.txt Validator). Ayrıca GPTBot için curl -A "GPTBot" https://siteniz.com/blog/public/ komutuyla sunucunuzun yanıtını test edebilirsiniz (ancak robots.txt bir erişim güvenlik mekanizması değil, nezaket protokolüdür; sunucu 200 döndürse bile tarayıcı robots.txt'e uymalıdır).

4. CDN veya Önbellekteki Eski robots.txt

Cloudflare, Fastly veya başka bir CDN kullanıyorsanız, robots.txt dosyanız edge sunucularda önbelleğe alınmış olabilir. Dosyayı güncelleseniz bile tarayıcılar eski sürümü görmeye devam eder:

# Eski dosya (CDN'de önbellekte)
User-agent: *
Disallow: /

Yeni dosyayı yüklediniz:

User-agent: *
Disallow: /admin/

Ancak Googlebot hâlâ eski Disallow: / kuralını görüyor ve sitenizi taramıyor.

Çözüm: CDN kontrol panelinizden robots.txt için önbelleği temizleyin (purge). Cloudflare'de "Caching → Purge Cache → Custom Purge" bölümünden https://siteniz.com/robots.txt URL'sini girin. Ayrıca robots.txt için önbellek süresini kısaltın veya hiç önbelleğe almayın (Cache-Control: no-cache).

Test yöntemi: Tarayıcınızda https://siteniz.com/robots.txt adresini açın ve sayfayı yenileyin (Ctrl+F5 ile hard refresh). Yanıt başlıklarında (Developer Tools → Network sekmesi) X-Cache: HIT veya Age: değeri varsa dosya önbellekten geliyordur. Önbelleği temizledikten sonra X-Cache: MISS görmelisiniz.

5. Staging Dosyasının Canlıya Çıkması

Geliştirme veya staging ortamında test amacıyla tüm tarayıcıları engelleyen bir robots.txt kullanırsınız:

# staging.siteniz.com/robots.txt
User-agent: *
Disallow: /

Ancak bu dosya yanlışlıkla canlı siteye (production) deploy edilirse, tüm siteniz arama motorlarından ve AI tarayıcılarından gizlenir. Bu hata özellikle CI/CD pipeline'larında, dosya senkronizasyonunda veya manuel FTP yüklemelerinde sık görülür.

Önlem: Ortam değişkenlerine göre robots.txt içeriğini dinamik olarak oluşturun. Örneğin Node.js/Express'te:

app.get('/robots.txt', (req, res) => {
  if (process.env.NODE_ENV === 'production') {
    res.type('text/plain');
    res.send('User-agent: *\nDisallow: /admin/');
  } else {
    res.type('text/plain');
    res.send('User-agent: *\nDisallow: /');
  }
});

Alternatif olarak, deployment scriptinizde staging robots.txt'yi production'a kopyalamayın; iki ayrı dosya tutun (robots.staging.txt ve robots.production.txt) ve deploy sırasında doğru olanı robots.txt olarak yükleyin.

Test yöntemi: Her deployment sonrası canlı sitede https://siteniz.com/robots.txt adresini kontrol edin. Ayrıca Google Search Console'da robots.txt raporunu inceleyin; dosya değiştiğinde Search Console genellikle birkaç saat içinde güncellenir.

6. Yorum Satırlarını Yanlış Yazmak

Robots.txt'te yorum satırları # ile başlar. Ancak bazı yöneticiler yorum işaretini satır ortasında kullanır:

User-agent: * # Tüm tarayıcılar
Disallow: /admin/ # Yönetim paneli

Bu sözdizimi geçersizdir. Tarayıcılar # işaretinden sonraki her şeyi yok sayar, ancak # işaretinden önceki kısmı işler. Yukarıdaki örnekte User-agent: * ve Disallow: /admin/ doğru çalışır, ancak okunabilirlik ve standartlara uygunluk açısından yorum satırları ayrı satırlarda olmalıdır:

# Tüm tarayıcılar
User-agent: *

# Yönetim paneli
Disallow: /admin/

Test yöntemi: Robots.txt dosyanızı bir syntax checker ile doğrulayın. Ayrıca Google Search Console'daki robots.txt raporunda uyarı mesajları olup olmadığını kontrol edin.

7. Sitemap Yolunu Yanlış Yazmak

Robots.txt'te sitemap URL'nizi belirtirken göreceli yol veya eksik protokol kullanırsanız, tarayıcılar sitemap'i bulamayabilir:

Sitemap: /sitemap.xml

Doğru format, tam URL olmalıdır:

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

Ayrıca birden fazla sitemap varsa her birini ayrı satırda belirtin:

Sitemap: https://siteniz.com/sitemap.xml
Sitemap: https://siteniz.com/sitemap-news.xml

Test yöntemi: Google Search Console → Sitemap'ler bölümünden sitemap URL'nizi gönderin ve durumunu kontrol edin. "Getirilemedi" hatası alırsanız, robots.txt'teki URL'yi düzeltin ve Search Console'da yeniden gönderin.

Genel Test Kontrol Listesi

Test Adımı Araç/Yöntem Beklenen Sonuç
Dosya erişimi Tarayıcıda https://siteniz.com/robots.txt 200 OK, düz metin içerik
Sözdizimi doğrulama Google Search Console → robots.txt raporu Hata veya uyarı yok
Belirli URL testi Search Console → URL denetimi → Tarama sekmesi "İzin verildi" veya "Robots.txt tarafından engellendi"
Önbellek kontrolü Developer Tools → Network → Response Headers X-Cache: MISS veya güncel Last-Modified
Sitemap doğrulama Search Console → Sitemap'ler "Başarılı" durumu

Sık Sorulan Sorular

Robots.txt'te yaptığım değişiklik ne kadar sürede geçerli olur?

Google ve diğer arama motorları robots.txt dosyanızı her tarama öncesinde kontrol eder, ancak önbellekte tutabilir (genellikle 24 saat). Google Search Console'da "robots.txt raporunu yeniden getir" seçeneği yoktur; dosyayı güncelledikten sonra birkaç saat içinde Googlebot yeni sürümü alır. CDN kullanıyorsanız önbelleği manuel olarak temizlemeniz gerekir; aksi takdirde eski dosya günlerce aktif kalabilir.

GPTBot'u engelledim ama ChatGPT hâlâ sitemdeki içeriği gösteriyor, neden?

GPTBot yalnızca OpenAI'ın model eğitimi için kullandığı tarayıcıdır. ChatGPT'nin arama özelliği (ChatGPT Search) OAI-SearchBot tarayıcısını kullanır ve bu tarayıcı robots.txt'e uyar. Ancak bir kullanıcı ChatGPT'ye "şu siteyi özetle" dediğinde, ChatGPT-User adlı kullanıcı kaynaklı ajan devreye girer; OpenAI bu istekler için robots.txt kurallarının aynı şekilde uygulanmayabileceğini belirtir. Kullanıcı kaynaklı getirmeleri engellemek için sunucu veya WAF seviyesinde IP/User-Agent filtreleme yapmanız gerekir, ancak bu teknik olarak zordur ve hatalı pozitif sonuçlara yol açabilir.

Google-Extended'ı engelledim, Google Arama sıralamam düştü mü?

Hayır. Google-Extended bir robots.txt kontrol belirtecidir (ayrı bir tarayıcı değil) ve yalnızca Gemini uygulamaları ile Vertex AI için eğitim/grounding kullanımını kontrol eder. Google Arama sıralaması normal Googlebot tarafından yapılır ve Google-Extended'dan etkilenmez. Ancak Google AI Overviews (arama sonuçlarında AI özetleri) normal Googlebot ve snippet kontrolleriyle (nosnippet, max-snippet, data-nosnippet HTML attribute'leri) yönetilir. Google-Extended'ı engellemek AI Overviews'u etkilemez.

Robots.txt yerine meta robots veya X-Robots-Tag kullanmalı mıyım?

Robots.txt, tarayıcıların sayfayı getirmesini (crawl) engeller; meta robots veya X-Robots-Tag ise sayfanın indekslenmesini (index) engeller. Bir sayfayı hem taramadan hem de indekslemeden çıkarmak istiyorsanız, robots.txt ile engellemek yeterli değildir; çünkü tarayıcı sayfayı göremezse meta etiketini de okuyamaz. Google, "indekslenmesin ama taranabilsin" senaryosu için robots.txt'te engellememek, sayfada <meta name="robots" content="noindex"> kullanmak önerir. Hassas içerik (örneğin kullanıcı verileri) için robots.txt güvenlik mekanizması değildir; sunucu seviyesinde kimlik doğrulama (HTTP Basic Auth, IP whitelist) veya WAF kuralları kullanın.

Kendi sitenizde deneyin