Robot engelleme standardı

Robot engelleme standardı, (aynı zamanda Robot engelleme protokolü veya robots.txt olarak da bilinir) web böceği (ing web spawler) veya web örümceği (ing. web spider) gibi yazılımların web sunucularının kamuya açık bölümlerinin tamamına veya bir kısmına erişimini engellemeye yarayan bir standarttır. Genelde web sitelerini sınıflandırmak ve arşivlemek amacı ile arama motorları ya da düzeltilmiş kaynak kodları için site yöneticileri robotları kullanırlar. Robotlar bu işlem sonucunda web siteleri için site haritaları oluştururlar.

Standart Hakkında

Bir web sitesinin kodunda bulunan robots.txt isimli dosya, robotlara yaptıkları indeksleme çalışmalarında o sitenin tamamını veya belirli bir bölümünü indekslememesini (göz ardı etmesini) talep eder. Örneğin, web sitenizde arama motorunda çıkmasını istemediğiniz mahrem bilgiler olabileceği gibi ya da sitenizdeki belirli bir içeriğin arama motorlarında çıkmasının sitenin bütününü yanlış tanıtacağı ya da yanlış anlaşılmalara yol açabileceği durumlarda olabilmektedir. Bu gibi durumlar dosyanın kullanım amaçlarından bazı örneklerdir.
Ana domain ile beraber birçok alt-domain'i bulunan web siteleri için, her bir alt-domain kendine ait bir robots.txt dosyasına sahip olmalıdır. Örneğin;
example.com domain'i kendine ait bir robots.txt dosyasına sahipse, fakat a.example.com altında bu dosya yok ise, arama motoru robotları olmayan siteyi arama sayfalarında tarama yaptıysa, listeleyecektir.

Dezavantajları

Bu protokol tamamen tavsiye niteliğinde, isteğe bağlı olmasına rağmen, web robotlarının bu protokolü uygulamasına ihtiyaç duymaktadır. Yani sitenize bir robots.txt dosyası koymanız, mahremiyetinizi garanti altına almamaktadır. Bazı web site idarecileri robots dosyalarını web sitelerinin özel bölümlerini tüm dünyaya görünmez yapmak için kullanmayı denediler fakat dosyanın kamuya açık olması gerekmekteydi ve dosyanın içeriği bir web tarayıcısı olan herkese açıktı.
Robots.txt dosyası için herhangi bir resmi standart kurum ya da RFC (İng. Request For Comments - internet ve internetin çalışması ile ilgili metotlar araştırmalar ve bilgilerin bulunduğu dokümanlar arşivi) yoktur. Sadece bir robot mail grubu olan robots-request@nexor.co.uk üyeleri tarafından 30 Haziran 1984 tarihinde ulaşılmış bir fikir birliğinden ibarettir. Robotlar tarafından erişilmesinin istenmediği bölümlerin bulunduğu robots.txt dosyası, sitenin kök dizininde bulunmalıdır. Dosya içeriğinde kullanılabilecek metinler aşağıda ayrıca açıklanmıştır.

Otomatik İçerik Kullanım Protokolü

İngilizcesi Automated Content Access Protocol olan ve Dünya Gazeteler Birliği tarafından başlatılan bu girişimin amacı, kendi ifadelerine göre,  gazete ve dergi içeriklerinin izinsiz kullanılmasını önlemek. Bu amaçla geliştirilen yazılım; gazete ve dergi içeriklerinin kullanımını denetliyor, bunun için izin alınmasını kolaylaştırıyor, izinsiz kullanılan malzemeyi saptıyor ve fikri hakların takibi için müthiş bir destek sağlıyor. Bu uygulamada web sitelerinin içeriğini tarayıp izinsiz kullanım olup olmadığını tarayacağı sistemi nedeni ile, Robot Engelleme Standardının gelecekteki muhtemel eklentisi olarak görülmektedir.

Örnek Kullanımlar

Bütün robotların, site üzerindeki bütün dosyaları tarayabileceğine izin veren örnek;
"  *  " yıldız işareti istisnasız tüm robotları indeksleme yapabileceğini gösterir.
User-agent: *
Disallow:
Bütün robotların, site üzerindeki hiçbir dosyayı taramamasının istendiği örnek;
User-agent: *
Disallow: /
Bütün robotlar, site üzerindeki aşağıdaki 4 klasörün içeriğini indekslememeli;
User-agent: *
Disallow: /cgi-bin/
Disallow: /images/
Disallow: /tmp/
Disallow: /private/
İsmi verilen robot, site üzerindeki ismi verilen klasörün içeriğini indekslememeli;
User-agent: BadBot # 'BadBot' kelimesi ilgili botun adı ile değiştirilir.
Disallow: /private/
Bütün robotlar, site üzerindeki aşağıdaki dosyayı indekslememeli;
O klasördeki diğer bütün dosyalar ve sayfalar taratılır.
User-agent: *
Disallow: /directory/file.html
a harfi ile başlayan içerikleri engelleme
User-agent: *
Disallow: /a
#Bu kullanımda siteadi.com/a içeriğinin yanı sıra a harfi ile başlayan siteadi.com/about içeriği de engellenmiş olur. Bu yüzden engellemeyi kullanırken lütfen dikkatli olalım.
Kod içinde yorum yazılan örnekler;
# Yorumlar "#" işaretinden sonra bir satır başında ya da bir komuttan sonra kullanılabilir.
User-agent: * # bütün botları kapsasın
Disallow: / # bütün botları uzak tutsun

Uyumluluk

Bütün robotların, bütün sayfalara erişiminin istenmediği durumlarda 
Disallow: *  # yıldız kullanmak pek uygun olmayacağı için onun yerine " / " kullanın.

Standart Dışı Kullanımlar

Geciktirme komutları
Çoğu büyük web arama botları geciktirme komutunu destekler. Örneğin aşağıdaki örnekte robottan ilgili web sitesinden 10 saniyelik aralıklar ile bilgi çekmesi istemi yapılmıştır.
User-agent: *
Crawl-delay: 10
İzin Ver komutu
Bazı büyük botlar, Allow ( izin ver ) komutu kullanarak Disallow ( kısıtla ) komutunu etkisizleştirmeye imkân verirler. Bu özellikle bütün klasördeki sadece bir dosyanın ya da sayfanın taranmasını istediğiniz durumlarda faydalı olacaktır. Fakat dikkat edilmelidir ki genelde standart olarak robots.txt'nin ilk satırı uygulamaya konulabilir. Fakat Google'ın uygulamasında önce tüm Allow ( izin ver ) komutları işleme konulur daha sonra Disallow komutları işleme konulur. Örneğin;
Allow: /folder1/myfile.html
Disallow: /folder1/
Bu örnekte folder1/myfile.html hariç o klasördeki tüm dosyalar göz ardı edilir.

Gelişmiş Standartlar

Bu standardı geliştirmek için Visit-time (ziyaret-saati) ve request-rate (talep-oranı) gibi çeşitli önerilerin yapıldığını An Extended Standard for Robot Exclusion (Robot Engelleme için gelişmiş bir standart) adı altında bir takım öneriler yapılmıştır.
User-agent: *
Disallow: /downloads/
Request-rate: 1/5         # her 5 saniyede maksimum 1 sayfa
Visit-time: 0600-0845     # sadece 06:00 ile 08:45 UTC (GMT) saatleri arasında ziyaret edilme talebi
Bu standardın ilk versiyonunda " * " ya da " Disallow " diye herhangi bir komut yoktu. Googlebot ve Slurp gibi modern arama botları " * " lı komutları tanısa da, MSNbot ve Teoma bu komutu farklı şekilde anlamaktadır.