Robots.txt, bir web sitesinin kök dizininde duran ve arama motoru botlarına hangi URL yollarını tarayabileceklerini bildiren düz metin dosyasıdır. Dosya, Robots Exclusion Protocol adı verilen standarda göre yazılır. Botlar bir siteyi taramaya başlamadan önce bu dosyayı okur ve içindeki kurallara göre hareket eder. Dosyanın görevi sayfaları gizlemek ya da dizinden çıkarmak değil, tarama trafiğini yönetmektir. Bu ayrım, robots.txt ile ilgili yapılan hataların büyük bölümünün kaynağıdır ve yazının ilerleyen bölümlerinde ayrıntılı ele alınacaktır.
Google, Bing ve diğer büyük arama motorlarının botları bu dosyadaki kurallara uyar. Ancak dosya teknik olarak bağlayıcı bir yaptırım içermez. Kötü niyetli tarayıcılar, içerik kazıyan botlar ve güvenlik tarayıcıları kuralları görmezden gelebilir. Bu nedenle robots.txt bir güvenlik katmanı olarak değil, iyi niyetli botlarla kurulan bir iletişim protokolü olarak değerlendirilmelidir.
Robots.txt Dosyası Nerede Bulunur ve Nasıl Çalışır?
Dosya, sitenin ana dizininde (kök dizin) yer almalı ve adı tamamen küçük harflerle robots.txt olmalıdır. Bir alt klasöre yerleştirilen dosya botlar tarafından aranmaz. Dosyaya tarayıcıdan alan adınızın sonuna /robots.txt ekleyerek erişebilirsiniz. Dosya UTF-8 kodlamalı düz metin olmalı, HTML veya başka bir işaretleme içermemelidir.
Kuralların kapsamı, dosyanın bulunduğu protokol, alan adı ve port bilgisiyle sınırlıdır. Bir alan adının robots.txt dosyası, o alan adının alt alan adları için geçerli değildir. Örneğin ana domain için hazırlanan dosya, blog.ornek.com gibi bir subdomain’i kapsamaz. Her subdomain kendi kök dizininde ayrı bir robots.txt dosyası barındırmalıdır. Aynı şekilde http ve https sürümleri de teknik olarak ayrı kabul edilir; yönlendirmelerin doğru kurulması bu yüzden önemlidir.
Dosyanın sunucu yanıtı da kuralların nasıl yorumlanacağını belirler. Dosya 200 koduyla dönerse içerik okunur. Dosya bulunamazsa (404) botlar sitenin tamamının taranabilir olduğunu varsayar. Sunucu hatası (5xx) durumunda ise Google, dosyayı okuyamadığı süre boyunca tüm siteyi taramaya kapalı kabul edebilir. Bu risk, sunucu yanıtlarının sağlıklı yönetilmesini zorunlu kılar. Bu konuyu HTTP durum kodları rehberimizde 2xx, 3xx, 4xx ve 5xx yanıtlarının SEO üzerindeki etkileriyle birlikte bulabilirsiniz. Ayrıca Google dosyayı yaklaşık 500 KiB ile sınırlı okur; bu boyutu aşan kurallar dikkate alınmaz. Arama motorları dosyayı genellikle önbelleğe aldığından yapılan değişikliklerin etkisi anında görülmeyebilir.
Robots.txt Temel Direktifleri
Bir robots.txt dosyası, kural gruplarından oluşur. Her grup bir User-agent satırıyla başlar ve ardından bu bota uygulanacak izin ya da yasak satırları gelir. Boş satırlar grupları birbirinden ayırır.
User-agent Direktifi
User-agent satırı, kuralın hangi bota ait olduğunu belirtir. Her botun kendine özgü bir tanımlayıcı adı vardır; Google’ın ana tarayıcısı Googlebot, Bing’in tarayıcısı Bingbot olarak geçer. Tüm botları hedeflemek için yıldız (*) kullanılır. Bir bot, kendi adıyla eşleşen özel bir grup bulursa genel gruptaki kuralları değil, yalnızca kendi grubundaki kuralları uygular. Bu davranış, özel bir bot grubu eklerken genel kuralları o gruba da kopyalamanız gerektiği anlamına gelir.
User-agent: Googlebot
Disallow: /deneme/
Allow: /deneme/acik-sayfa.html
User-agent: Bingbot
Disallow: /deneme/
Bu örnekte Googlebot için /deneme/ klasörü kapatılmış, ancak içindeki tek bir sayfaya istisna tanınmıştır. Bingbot için ise klasörün tamamı kapalıdır.
Disallow ve Allow Direktifleri
Disallow, belirtilen yolun taranmasını engeller; Allow ise engellenmiş bir yol içinde belirli bir alt yola izin verir. İki kural çakıştığında Google, daha spesifik (daha uzun) olan yol kuralını uygular. Disallow satırını boş bırakmak hiçbir şeyi engellemediği anlamına gelir. Tek bir eğik çizgi (/) ise sitenin tamamını kapatır.
User-agent: *
Disallow: /
Bu iki satır tüm botlar için sitenin tamamını taramaya kapatır. Yayındaki bir sitede yanlışlıkla bırakılması ciddi görünürlük kayıplarına yol açtığı için, test ortamından canlıya geçişlerde mutlaka kontrol edilmelidir.
Sitemap Direktifi
Sitemap satırı, XML site haritasının tam adresini botlara bildirir. Bu satır herhangi bir User-agent grubuna bağlı değildir ve dosyanın herhangi bir yerinde yer alabilir. Birden fazla site haritası varsa her biri ayrı satırda, mutlak URL olarak yazılmalıdır.
Sitemap: https://www.ornek.com/sitemap.xml
Crawl-delay Hakkında
Bazı arama motorları, botun istekleri arasındaki bekleme süresini belirleyen Crawl-delay direktifini destekler. Google bu direktifi dikkate almaz; Googlebot’un tarama hızı sunucu yanıt sürelerine göre otomatik ayarlanır. Dolayısıyla Google için tarama hızı sorunlarını robots.txt ile değil, sunucu performansı ve altyapı iyileştirmeleriyle çözmek gerekir.
Joker Karakterler ve Kalıp Eşleştirme
Robots.txt, düzenli ifadelerin tamamını desteklemez; yalnızca iki özel karakteri tanır. Yıldız (*) herhangi bir karakter dizisini temsil eder. Dolar işareti ($) ise URL’nin o noktada bittiğini belirtir. İkisi birlikte, belirli dosya türlerini ya da parametreli URL kalıplarını hedeflemeyi mümkün kılar.
User-agent: *
Disallow: /*?siralama=
Disallow: /*.pdf$
İlk kural, adresinde siralama parametresi geçen tüm URL’leri engeller. İkinci kural, yalnızca .pdf ile biten adreslere uygulanır. $ işareti kullanılmasaydı, adresinin içinde .pdf geçen her URL kapsama girerdi. Kalıp yazarken büyük küçük harf duyarlılığı da göz önünde bulundurulmalıdır; yol kuralları büyük küçük harfe duyarlıdır.
Direktiflerin Kısa Karşılaştırması
| Direktif | Görevi | Google Desteği |
|---|---|---|
| User-agent | Kural grubunun hedef botunu belirler | Destekler |
| Disallow | Belirtilen yolun taranmasını engeller | Destekler |
| Allow | Engellenen yol içinde istisna tanımlar | Destekler |
| Sitemap | XML site haritasının konumunu bildirir | Destekler |
| Crawl-delay | İstekler arası bekleme süresi belirler | Desteklemez |
| Noindex | Dizinden çıkarma talebi iletir | Desteklemez |
Robots.txt, Meta Robots ve X-Robots-Tag Arasındaki Fark
Robots.txt, taramayı kontrol eder; dizine eklemeyi kontrol etmez. Bir URL robots.txt ile engellenmiş olsa bile, başka sitelerden aldığı bağlantılar nedeniyle içeriği taranmadan arama sonuçlarında görünebilir. Sayfanın arama sonuçlarında yer almasını gerçekten engellemek istiyorsanız noindex yönergesini kullanmanız gerekir. Bu yönerge sayfa içindeki meta robots etiketiyle veya HTTP başlığı olarak X-Robots-Tag ile iletilir.
Burada kritik bir çelişki vardır. Bir sayfayı hem robots.txt ile engelleyip hem de noindex etiketi eklerseniz bot sayfayı hiç tarayamayacağı için noindex etiketini göremez. Dizinden çıkarılması gereken sayfalar, noindex etiketinin okunabilmesi için önce taramaya açık bırakılmalıdır. Google’ın robots.txt içindeki noindex satırlarını artık desteklemediğini de unutmamak gerekir.
| Yöntem | Etki Alanı | Uygun Kullanım |
|---|---|---|
| Robots.txt | Tarama erişimi | Tarama bütçesi yönetimi, düşük değerli yolların kapatılması |
| Meta robots | Sayfa bazlı dizinleme | HTML sayfaların dizinden çıkarılması |
| X-Robots-Tag | HTTP başlığı düzeyinde dizinleme | PDF, görsel gibi HTML olmayan dosyalar |
Robots.txt SEO Açısından Neden Önemlidir?
Robots.txt dosyasının sıralama faktörü olarak doğrudan bir katkısı yoktur. Önemi, taranabilirlik ve tarama bütçesi üzerindeki etkisinden gelir. Yanlış yazılmış tek bir kural, sitenin kritik bölümlerinin botlara kapanmasına ve organik görünürlüğün ciddi biçimde düşmesine neden olabilir. Doğru yapılandırılmış bir dosya ise botların zamanını değerli sayfalara harcamasını sağlar.
Tarama bütçesi özellikle binlerce URL içeren siteler için belirleyicidir. E-ticaret sitelerinde filtre kombinasyonları, sıralama parametreleri, oturum kimlikleri, sepet ve ödeme adımları, dahili arama sonuçları ve teşekkür sayfaları gibi alanlar organik trafik getirmeyen, ancak çok sayıda URL üreten yapılardır. Bu alanların taramaya kapatılması, botların ürün ve kategori sayfalarını daha sık ziyaret etmesine yardımcı olur. Küçük ve orta ölçekli sitelerde bütçe sorunu nadiren kritik olur; bu durumda robots.txt’nin ana görevi hatalı engellemelerden kaçınmaktır.
E-Ticaret İçin Örnek Yapılandırma
User-agent: *
Disallow: /sepet/
Disallow: /odeme/
Disallow: /arama/
Disallow: /*?siralama=
Sitemap: https://www.ornek.com/sitemap.xml
Bu yapı, değer üretmeyen işlevsel sayfaları dışarıda bırakır ve site haritasını botlara iletir. Her sitenin URL mimarisi farklı olduğundan, kural listesi hazırlanırken sunucu log kayıtları ve tarama istatistikleri incelenmelidir. Önemli bir uyarı olarak, sayfaların görünümü için gereken CSS ve JavaScript dosyalarını engellememeniz gerekir. Googlebot sayfayı işlerken bu kaynaklara erişemezse içeriği yanlış yorumlayabilir.
Yapay Zekâ Botlarının Yönetimi
Robots.txt’nin kullanım alanı artık yalnızca geleneksel arama motorlarıyla sınırlı değildir. Büyük dil modellerinin eğitim verisi topladığı veya yanıt üretirken web’e eriştiği botlar da aynı protokolü kullanır. Hangi botun eğitim, hangisinin arama ya da kullanıcı isteği amacıyla çalıştığını ayırt etmek, erişim stratejisinin temelidir. Bu botların nasıl ayrıştırılacağını robots.txt ile AI botlarının yönetimi yazımızda, OpenAI tarafının tarayıcı yapısını ise GPTBot yönetimi ve log takibi rehberimizde bulabilirsiniz.
Yapay zekâ botlarının siteyi nasıl keşfettiği ve işlediği, Teknik GEO kapsamında değerlendirilen bir konudur. Robots.txt’ye ek olarak içerik yapısını yapay zekâ sistemlerine tanıtmayı amaçlayan llms.txt gibi yeni yaklaşımlar da gündemdedir. Bu dosya robots.txt’nin yerini almaz; erişim izinleri hâlâ robots.txt üzerinden verilir.
Robots.txt Kullanırken Sık Yapılan Hatalar
Uygulamada karşılaşılan hataların çoğu birkaç başlıkta toplanır. Bunların başında canlı siteye test ortamından kalan Disallow: / kuralının taşınması gelir. Ardından, dizinden çıkarılması istenen sayfaların robots.txt ile engellenmesi gelir; bu durumda bot noindex etiketini okuyamaz. Bir diğer yaygın hata, bir bot için özel grup açıldığında genel gruptaki kuralların o bota da uygulanacağını varsaymaktır. Oysa özel grubu olan bot yalnızca kendi grubunu dikkate alır.
Yol kurallarında eğik çizgi kullanımı da sonucu değiştirir. /urun yazımı, adresi urun ile başlayan tüm yolları (urunler, urun-detay gibi) kapsar. /urun/ yazımı ise yalnızca o klasörü hedefler. Ayrıca dosyanın yanlış kodlamayla kaydedilmesi, gereksiz karakterler içermesi veya kök dizin dışında barındırılması, kuralların tamamen geçersiz kalmasına yol açabilir.
Robots.txt Dosyasını Test Etme ve İzleme
Dosyada yapılan her değişiklik yayına alınmadan önce test edilmelidir. Google Search Console’daki robots.txt raporu, Google’ın dosyayı en son ne zaman getirdiğini, hangi sürümü okuduğunu ve ayrıştırma hatası bulup bulmadığını gösterir. Belirli bir URL’nin engellenip engellenmediğini görmek için URL Denetimi aracı da kullanılabilir. Engellenen sayfaların dizin durumundaki yansımalarını izlemek için Search Console sayfa dizinleme raporu rehberindeki hata mesajları ve çözüm yollarından yararlanabilirsiniz.
İzleme tek seferlik bir işlem değildir. Site mimarisi değiştiğinde, yeni bir bölüm eklendiğinde veya URL yapısı yenilendiğinde robots.txt gözden geçirilmelidir. Sunucu log analizi, botların gerçekte hangi yolları taradığını gösterdiği için kuralların etkisini ölçmenin en güvenilir yoludur.
Robots.txt Kontrol Listesi
- Dosya kök dizinde, küçük harfli robots.txt adıyla ve UTF-8 kodlamalı olarak yayınlanmalıdır.
- Ana domain ve her subdomain için ayrı dosya oluşturulmalıdır.
- Dosya sunucudan 200 koduyla dönmeli; 404 veya 5xx yanıtı vermesi tarama davranışını öngörülemez hale getirir.
- Site haritası adresi Sitemap satırıyla, mutlak URL olarak belirtilmelidir.
- Sepet, ödeme, dahili arama ve parametreli filtre URL’leri gibi değer üretmeyen alanlar kapatılmalıdır.
- Sayfa görünümü için gerekli CSS ve JavaScript dosyaları engellenmemelidir.
- Dizinden çıkarılması istenen sayfalar robots.txt ile değil, taramaya açık bırakılarak noindex yönergesiyle yönetilmelidir.
- Bot bazlı özel gruplar oluşturulurken genel kurallar o gruba da eklenmelidir.
- Her değişiklik yayına alınmadan önce test edilmeli, sonrasında Search Console raporundan ve sunucu loglarından izlenmelidir.
Robots.txt Hakkında Temel Çıkarımlar
Robots.txt, küçük bir metin dosyası olmasına rağmen sitenin arama motorlarıyla kurduğu ilk temas noktasıdır. Doğru yapılandırıldığında tarama bütçesini değerli sayfalara yönlendirir, gereksiz URL üretimini dışarıda bırakır ve botların siteyi verimli biçimde dolaşmasını sağlar. Hatalı yazıldığında ise en iyi hazırlanmış içerik stratejisini bile görünmez kılabilir. Bu nedenle dosya, bir kez yazılıp unutulacak bir ayar olarak değil, site mimarisiyle birlikte gelişen teknik bir varlık olarak ele alınmalıdır.
Dosyanın sınırlarını bilmek, kuralları yazmak kadar önemlidir. Robots.txt taramayı yönetir, dizinlemeyi garanti altına almaz ve gizlilik sağlamaz. Hassas içerikler için kimlik doğrulama, dizinden çıkarma için noindex yönergesi kullanılmalıdır. Yapay zekâ botlarının da aynı protokol üzerinden yönetildiği günümüzde, erişim kurallarını her bot türünün amacına göre ayrı ayrı belirlemek ve düzenli aralıklarla denetlemek, sağlıklı ve sürdürülebilir bir teknik SEO altyapısının temel gereklerinden biridir.