Robots.txt kullanımı

    Robots.txt dosyası nedir

    Robots.txt, sitede bulunan ve arama sistemi robotları için tasarlanmış metin dosyasıdır. Web uzmanı bu dosyada sitesinin dizin parametrelerini tüm robotlar için tek seferde belirtebileceği gibi, her arama sistemi için ayrı ayrı da belirtebilir.

    Robots.txt nasıl oluşturulur

    Herhangi bir metin düzenleyicisi (örneğin, Not Defteri veya WordPad) kullanarak "robots.txt" adında bir dosya oluşturun ve bu dosyayı aşağıda verilen kurallara uygun olarak doldurun. Daha sonra bu dosya sitenizin kök dizinine yüklenmelidir.

    robots.txt dosyanızın doğru işleyip işlemediğini denetlemek için, robots.txt dosyası analiz aracı'ndan yararlanın.

    User-agent direktifi

    Sitenin kök dizininde bulunması gereken robots.txt dosyasını kullanarak, Yandex robotunun sitenize erişimini yönetebilirsiniz. Yandex robotu, aşağıda açıklanan genişletme olanaklarıyla http://www.robotstxt.org/robotstxt.html açıklama standardını destekler.

    Yandex robotunda oturuma dayalı çalışma prensibi kullanılır ve her oturumda robotun indirmeyi planladığı sayfaların belirli bir havuzu oluşturulur. Oturum, sitedeki robots.txt dosyasının indirilmesiyle başlar. Böyle bir dosya yoksa, metin dosyası değilse veya robotun sorgusuna '200'den farklı bir HTTP kodu döndürülürse, robotun erişiminin kısıtlı olmadığı kabul edilir. Aynı robots.txt dosyasında 'User-agent:' ile başlayan kayıtların olup olmadığı denetlenir; bu kayıtlar arasında 'Yandex' ya da '*' alt dizeleri aranır (büyük/küçük harfe duyarlı değil) ve 'User-agent: Yandex' bulunması durumunda 'User-agent: *' için yönergeler dikkate alınmaz. 'User-agent: Yandex' ve 'User-agent: *' kayıtları yoksa, robotun erişiminin kısıtlanmadığı kabul edilir.

    Aşağıdaki Yandex robotları için ayrı ayrı yönergeler belirtilebilir:

    Bunların her biri için geçerli bir kural vardır: Belirli bir robot için yönergeler olduğu anlaşılırsa, 'User-agent: Yandex' ve 'User-agent: *' yönergeleri kullanılmaz.

    Örnek:

    User-agent: * # Yandex robotları tarafından kullanılmaz
    Disallow: /cgi-bin
    
    User-agent: Yandex # Tüm Yandex robotları tarafından kullanılır
    Disallow: /*sid= # temel dizinleme robotu hariçtir
    
    User-agent: YandexBot # Yalnızca temel dizinleme robotu tarafından kullanılır
    Disallow: /*id=

    Disallow ve Allow direktiflerin kullanımı.

    Robotun sitenin belirli bölümlerine veya sitenin tümüne erişimini yasaklamak için, 'Disallow' yönergesini kullanın. Örnekler:

    User-agent: Yandex 
    Disallow: / # Tüm siteye erişimi engeller
    
    User-agent: Yandex 
    Disallow: /cgi-bin # '/cgi-bin' ile başlayan
                       #sayfalara erişimi engeller

    Not:

    'User-agent' ile 'Disallow' ('Allow') yönergeleri arasında ve aynı şekilde 'Disallow' ('Allow') yönergeleri arasında boş satır sonları bulunamaz.

    Bunun dışında, standarda uygun olarak, her 'User-agent' yönergesinden önce boş satır sonu eklenmesi önerilir.

    '#' işareti açıklamayı belirtmek amacıyla kullanılmaktadır. Bu simgeden sonra ilk satır sonuna kadar olan kısımlar dikkate alınmaz.

    Robotun sitenin belirli bölümlerine veya sitenin tümüne erişimine izin vermek için, 'Allow' yönergesini kullanın. Örnekler:

    User-agent: Yandex 
    Allow: /cgi-bin 
    Disallow: /
    
    # '/cgi-bin' ile başlayan 
    # sayfalar dışında tümünün indirilmesini yasaklar

    Yönergelerin birlikte kullanımı.

    Sitenin belirli bir sayfası için birkaç yönerge uygun düşüyorsa, seçili User-agent bloğunda ilk sırada görünen yönerge seçilir. Örnekler:

    User-agent: Yandex 
    Allow: /cgi-bin 
    Disallow: / 
    
    # '/cgi-bin' ile başlayan 
    # sayfalar dışında tümünün indirilmesini yasaklar
    User-agent: Yandex 
    Disallow: / 
    Allow: /cgi-bin 
    
    # tüm sitenin indirilmesini yasaklar

    Parametreler olmadan Allow-Disallow yönergeleri.

    Yönergelerin parametreleri olmadığında aşağıdaki gibi yorumlanır:

    User-agent: Yandex 
    Disallow: # Allow: / ile aynı şekilde
    
    User-agent: Yandex 
    Allow: # dikkate robot

    "*" ve "$" gibi özel sembollerin kullanımı.

    Allow-Disallow yönergelerinin yolları belirtilirken '*' ve '$' özel karakterleri kullanılabilir ve belirli normal ifadeler bu şekilde verilebilir. '*' özel karakteri, herhangi bir karakter (boş karakter dahil) dizisini ifade eder. Örnekler:

    User-agent: Yandex 
    Disallow: /cgi-bin/*.aspx # '/cgi-bin/example.aspx' 
                              # ve '/cgi-bin/private/test.aspx' öğelerini yasaklar 
    Disallow: /*private # hem '/private',
                        # hem de '/cgi-bin/private' öğesini yasaklar

    '$' özel karakteri

    Varsayılan olarak, robots.txt dosyasında tanımlanan her kuralın sonuna '*' eklenir. Örneğin:

    User-agent: Yandex 
    Disallow: /cgi-bin* # '/cgi-bin' ile başlayan 
                        # sayfalara erişimi engeller 
    Disallow: /cgi-bin  # aynısı

    Kuralın sonundaki '*' karakterini kaldırmak için, '$' özel karakteri kullanılabilir. Örneğin:

    User-agent: Yandex 
    Disallow: /example$ # '/example' öğesini yasaklar, 
                        # ancak '/example.html' öğesini yasaklamaz
    User-agent: Yandex 
    Disallow: /example # hem '/example', 
                       # hem de '/example.html' öğesini yasaklar
    User-agent: Yandex 
    Disallow: /example$ # yalnızca '/example' öğesini yasaklar 
    Disallow: /example*$ # 'Disallow: /example' ile aynı 
                         #hem /example.html hem de /example öğesini yasaklar

    Sitemap direktifi

    Siteniz için sitemaps.xml biçiminde yapı açıklaması kullanıyorsanız ve robotun bunu bilmesini istiyorsanız, sitemaps.xml dosyasının yolunu 'Sitemap' yönerge parametresi olarak belirtin (birkaç dosya varsa, tümünü belirtin). Örnekler:

    User-agent: Yandex Allow: / 
    Sitemap: http://mysite.ru/site_structure/my_sitemaps1.xml 
    Sitemap: http://mysite.ru/site_structure/my_sitemaps2.xml

    veya

    User-agent: Yandex Allow: /
    
    User-agent: * Disallow: /
    
    Sitemap: http://mysite.ru/site_structure/my_sitemaps1.xml 
    Sitemap: http://mysite.ru/site_structure/my_sitemaps2.xml

    Robot sitemaps.xml dosyasının yolunu aklında tutar, dosyaları işler ve sonuçları bir sonraki indirme oturumu oluşturulurken kullanır.

    Host direktifi

    Sitenizde aynalar varsa, özel bir ayna oluşturma robotu bunu belirler ve sitenizin ayna grubunu oluşturur. Aramada yalnızca birincil ayna yer alır. robots.txt dosyasında 'Host' yönergesini kullanarak ve yönerge parametresi olarak da birincil aynanın adını tanımlayarak, tüm aynalar için birincil aynayı belirtebilirsiniz. 'Host' yönergesi belirtilen birincil aynanın seçilmesini garanti etmemekle birlikte, karar verilirken kullanılan algoritma bunu yüksek öncelikli olarak değerlendirir. Örnek:

    #Sitenin birincil aynası www.birincil-ayna.ru ise, ayna grubundaki tüm siteler için
    #robots.txt dosyası şöyle görünür:
    
    User-Agent: * 
    Disallow: /forum 
    Disallow: /cgi-bin 
    Host: www.birincil-ayna.ru

    Önemli: robots.txt dosyasını işlerken standarda tam olarak uymayan robotlarla uyumluluğu sağlamak amacıyla, 'User-Agent' kaydı ile başlayan gruba, 'Disallow'('Allow') yönergesinden hemen sonra 'Host' yönergesinin eklenmesi gerekir. İki nokta üst üste ayrılan etki alanı adı ve bağlantı noktası numarası (varsayılan olarak 80), 'Host' yönergesinin bağımsız değişkenlerini oluşturur.

    #Doğru şekilde oluşturulmuş robots.txt dosyası örneği 
    #Bu dosyanın işlenmesi sırasında Host yönergesi dikkate alınır
    
    User-Agent: * 
    Disallow: 
    Host: www.myhost.ru

    Yine de, Host yönergesi bölümler arası bir yönerge olması nedeniyle, belirtildiği robots.txt dosyasındaki yerinden bağımsız olarak robot tarafından kullanılacaktır.

    Önemli: robots.txt dosyasında yalnızca bir Host yönergesi bulunabilir. Birden fazla yönerge belirtilmesi durumunda, bunların ilki kullanılır.

    Örnek:

    Host: myhost.ru # kullanılır
    
    User-agent: * 
    Disallow: /cgi-bin
    
    User-agent: Yandex 
    Disallow: /cgi-bin 
    Host: www.myhost.ru # kullanılmaz

    Önemli: Host yönergesinin parametresi, uygun bir ana bilgisayar adı (yani, RFC 952 ile uyumlu ve IP adresi değil) ve kabul edilebilir bir bağlantı noktası numarasından oluşmalıdır. Uygun şekilde oluşturulmamış 'Host:' satırları yoksayılır.

    # Yoksayılan Host yönergesi örnekleri
    
    Host: www.myhost-.ru 
    Host: www.-myhost.ru 
    Host: www.myhost.ru:100000 
    Host: www.my_host.ru 
    Host: .my-host.ru:8000 
    Host: my-host.ru. 
    Host: my..host.ru 
    Host: www.myhost.ru/ 
    Host: www.myhost.ru:8080/ 
    Host: http://www.myhost.ru 
    Host: 213.180.194.129 
    Host: www.firsthost.ru,www.secondhost.ru 
    Host: www.firsthost.ru www.secondhost.ru

    Host yönergesinin kullanımıyla ilgili örnekler:

    # etkialanı.myhost.ru adresi 
    # www.etkialanı.myhost.ru için birincil aynaysa,
    
    Host yönergesinin 
    
    # uygun kullanımı şöyledir: 
    
    User-Agent: * 
    Disallow: 
    Host: etkialanı.myhost.ru
    
    # etkialanı.myhost.ru adresi 
    # www.etkialanı.myhost.ru için birincil aynaysa, 
    
    Host yönergesinin 
    
    # yanlış kullanımı şöyledir:
    
    User-Agent: * 
    Disallow: 
    Host: myhost.ru

    Crawl-delay direktifi

    Sunucu aşırı yüklüyse ve indirme isteklerini işlemeye yetişemiyorsa, "Crawl-delay" yönergesini kullanın. Bu yönerge, bir sayfayı indirme işleminin bitmesi ile sonraki sayfayı indirmeye başlama arasında geçmesi gereken en az süreyi (saniye olarak) arama robotuna belirtmeyi sağlar. robots.txt dosyasını işlerken standarda tam olarak uymayan robotlarla uyumluluğu sağlamak amacıyla, "User-Agent" kaydı ile başlayan gruba, "Disallow" ("Allow") yönergesinden hemen sonra "Crawl-delay" yönergesinin eklenmesi gerekir.

    Yandex arama robotu Crawl-Delay için kesirli değerleri (örneğin 0.5) destekler. Böyle bir ayar arama robotunun her yarım saniyede bir sitenize uğramasını garanti etmez, ancak robota daha fazla serbestlik vererek site dolaşımını hızlandırmayı sağlar.

    Örnekler:

    User-agent: Yandex 
    Crawl-delay: 2 # 2 saniyelik zaman aşımı belirtir
    
    User-agent: * 
    Disallow: /search 
    Crawl-delay: 4.5 # 4.5 saniyelik zaman aşımı belirtir

    Clean-param direktifi

    Sitenizin sayfa adresleri içeriklerini etkilemeyen dinamik parametreler (örneğin: oturum, kullanıcı, başvuran vs. tanımlayıcıları) içeriyorsa, bunları 'Clean-param' yönergesinin yardımıyla açıklayabilirsiniz. Yandex robotu bu bilgileri kullanarak, yinelenen bilgileri tekrar tekrar yüklemeyecektir. Böylece, sitenizin dolaşılma etkinliği artarken, sunucu üzerindeki yük azalır.

    Örneğin, bir sitede aşağıdaki sayfaların bulunduğu varsayalım:

    www.site.ru/some_dir/get_book.pl?ref=site_1&book_id=123
    www.site.ru/some_dir/get_book.pl?ref=site_2&book_id=123
    www.site.ru/some_dir/get_book.pl?ref=site_3&book_id=123

    'ref=' parametresi yalnızca, sorgunun hangi kaynaktan yapıldığını izlemek için kullanılır ve içeriği değiştirmez. Her üç adreste de 'book_id=123' kitabını içeren aynı sayfa gösterilir. O halde, robots.txt dosyasında aşağıdaki dize belirtilirse:

    Clean-param: ref /some_dir/get_book.pl

    Bu şekilde olur:

    User-agent: Yandex 
    Disallow: 
    Clean-param: ref /some_dir/get_book.pl

    Yandex robotu sayfanın tüm adreslerini tek bir adreste birleştirir:

    www.site.ru/some_dir/get_book.pl?ref=site_1&book_id=123,

    Sitede parametre içermeyen bir sayfa varsa:

    www.site.ru/some_dir/get_book.pl?book_id=123

    Bu durumda, sayfa robot tarafından dizinlendiğinde, tüm sayfalar özellikle bu sayfada birleştirilir. Aşağıdaki sayfaları güncellemeye gerek olmadığından, sitenizin diğer sayfaları daha sık dolaşılır:

    www.site.ru/some_dir/get_book.pl?ref=site_2&book_id=123
    www.site.ru/some_dir/get_book.pl?ref=site_3&book_id=123

    Yönerge kullanımına ilişkin sözdizimi:

    Clean-param: p0[&p1&p2&..&pn] [path]

    İlk alanda, dikkate alınmaması gereken parametreler '&' ile ayrılarak sıralanır. İkinci alanda, kuralın uygulanacağı sayfaların yol öneki belirtilir.

    Önemli: Clean-Param yönergesi bölümler arası bir yönerge olması nedeniyle, robots.txt dosyasının herhangi bir yerinde belirtilebilir. Birkaç yönerge birden belirtilmesi durumunda, robot bunların tümünü dikkate alır.

    Not:

    Önek, robots.txt dosyasına benzer biçimde bir normal ifade içerebilir, ancak bazı kısıtlamalar vardır: Yalnızca A-Za-z0-9.-/*_ karakterleri kullanılabilir. Bununla birlikte, * karakteri aynı robots.txt dosyasında olduğu gibi yorumlanır. Önekin sonuna her zaman dolaylı olarak bir '*' eklenir. Yani:

    Clean-param: s /forum/showthread.php

    sözdizimi, s parametresinin, /forum/showthread.php ile başlayan tüm url'ler için önemsiz sayılacağı anlamına gelir. İkinci alanın belirtilmesi zorunlu değildir. Bu durumda kural sitenin tüm sayfalarına uygulanır. Büyük küçük harfler dikkate alınır. Kuralın uzunluğu için 500 karakter sınırlaması vardır. Örneğin:

    Clean-param: abc /forum/showthread.php
    Clean-param: sid&sort /forumt/*.php
    Clean-param: someTrash&otherTrash

    Ek örnekler:

    #Aşağıdaki türden adresler için: 
    www.site1.ru/forum/showthread.php?s=681498b9648949605&t=8243
    
    www.site1.ru/forum/showthread.php?s=1e71c4427317a117a&t=8243
    
    #robots.txt içeriği şöyle olur:
    
    User-agent: Yandex
    Disallow: 
    Clean-param: s /forum/showthread.php
    #Aşağıdaki türden adresler için: 
    www.site2.ru/index.php?page=1&sort=3a&sid=2564126ebdec301c607e5df
    
    www.site2.ru/index.php?page=1&sort=3a&sid=974017dcd170d6c4a5d76ae 
    
    #robots.txt içeriği şöyle olur:
    
    User-agent: Yandex
    Disallow: 
    Clean-param: sid /index.php
    #Bu tür parametreler birden fazlaysa: 
    www.site1.ru/forum_old/showthread.php?s=681498605&t=8243&ref=1311
    
    www.site1.ru/forum_new/showthread.php?s=1e71c417a&t=8243&ref=9896 
    
    #robots.txt içeriği şöyle olur:
    
    User-agent: Yandex 
    Disallow:
    Clean-param: s&ref /forum*/showthread.php
    #Parametrede birden fazla komut dosyasında kullanılıyorsa: www.site1.ru/forum/showthread.php?s=681498b9648949605&t=8243
    
    www.site1.ru/forum/index.php?s=1e71c4427317a117a&t=8243 
    
    #robots.txt içeriği şöyle olur:
    
    User-agent: Yandex
    Disallow: 
    Clean-param: s /forum/index.php
    Clean-param: s /forum/showthread.php

    Ek bilgiler

    Bu açıklamada bahsedilmeyen robots.txt yönergeleri, Yandex robotu tarafından desteklenmez. Yukarıda belirtilen robots.txt dosyasının işlenme koşullarının tamamı, standart uygulamanın eklentisidir ve diğer robotlar; örneğin, URL içinde Allow komutunu, '$' ve '*' özel işaretlerini kullanan robots.txt dosyalarını yanlış anlayabilirler.

    Farklı robot.txt dosyalarının, Yandex robotu ve genel standardı destekleyen robotu tarafından işlenme örnekleri:

    User-agent: Yandex 
    Allow: / 
    Disallow: / 
    # uzantılar olmayan dosyaların tümü yasaklanmıştır çünkü 'Allow: /' yoksayılmıştır,
    # uzantıların desteğiyle tümüne izin verilir
    
    User-agent: Yandex 
    Disallow: /private*html 
    # uzantılar olmadan '/private*html' yasaklanmıştır,
    # uzantıların desteğiyle ise şunlar da yasaklanır: '/private*html'
    # '/private/test.html', '/private/html/test.aspx' vs.
    
    User-agent: Yandex 
    Disallow: /private$ 
    # uzantılar olmadan '/private$' ve '/private$test' vs. yasaklanmıştır,
    # uzantıların desteğiyle ise sadece '/private' yasaklanır
    
    User-agent: * 
    Disallow: / 
    User-agent: Yandex 
    Allow: / 
    # uzantılar olmadan, satır sonu bulunmaması nedeniyle,
    # 'User-agent: Yandex' yasaklanırdı ve
    # sonuç 'Disallow: /' olurdu; ancak Yandex robotu 
    # 'User-agent:' satırının varlığıyla kaydı ayırır,
    # Yandex robotu için bu durumda sonuç 'Allow: /' olur.
    
    User-agent: * Disallow: / 
    # yorum1... 
    # yorum2... 
    # yorum3... 
    User-agent: Yandex Allow: / 
    # önceki örneğe benzer (bkz. üstte)

    Robots.txt genişletilmiş biçiminin kullanıldığı örnekler:

    User-agent: Yandex 
    Allow: /archive 
    Disallow: / 
    # '/archive' içindeki her şeye izin verir, diğerleri yasaklanır
    
    User-agent: Yandex 
    Allow: /obsolete/private/*.html$ # şu yoldaki html dosyalarına izin verir: 
                                     # '/obsolete/private/...' 
    Disallow: /*.php$                # bu sitedeki tüm '*.php' dosyalarını yasaklar 
    Disallow: /*/private/            # şunu içeren tüm alt yolları yasaklar: 
                                     # '/private/'; ancak üstteki Allow 
                                     # yasağı kısmen kaldırır 
    Disallow: /*/old/*.zip$          # dosya yolunda şunu içeren tüm '*.zip' dosyalarını yasaklar: 
                                     # '/old/'
    
    User-agent: Yandex 
    Disallow: /add.php?*user= 
    # 'user' parametresi içeren tüm 'add.php?' komut dosyalarını yasaklar

    robots.txt dosyası yazılırken robotun dosya boyutuyla ilgili makul bir sınırlaması olduğu unutulmamalıdır. Çok büyük robots.txt (32 KB'tan büyük) dosyaları tamamen kısıtsız kabul edilir; yani aşağıdakine benzer olarak değerlendirilir:

    User-agent: Yandex 
    Disallow:

    Ayrıca indirilemeyen (örneğin, http başlıklarının yanlış olması nedeniyle) veya 404 hatası veren robots.txt dosyaları da kısıtsız kabul edilir.

    Robots.txt dosyasının doğruluk denetimi için özel çevrimiçi analiz aracını kullanabilirsiniz. Bkz. robots.txt dosyası analiz aracı hakkında açıklama.

    İstisnalar

    Bazı Yandex robotları, dökümanları sadece indeksleme amaçlı değil, diğer özel amaçlar için de indirir. Site sahipleri tarafından kasıtsız engellenmelerden kaçınmak için robotlar, rastgele robotlara yönelik kurulan (User-agent: *) robots.txt'nin sınırlayıcı komutlarına uymayabilirler. Ayrıca bazı sitelerin robots.txt kısıtlamalarının kısmen gözardı edilmeleri, Yandex şirketi ve site sahipleri arasında olan sözleşme sonucunda elde edilebilir.

    Önemli: Eğer böyle bir robot, Yandex'in esas robotunun erişemediği dosyayı indiriyorsa bu dosya indekslenmez ve arama sonuçlarında yer almaz.

    Robots.txt'nin genel engelleme kurallarına uymayan Yandex robotlarının listesi:

    • YaDirectFetcher, hedefe yönelik reklam sitelerini indirir. Buradaki amaç, bu sitelerin erişebilirliğini kontrol etmek ve site konusunu belirlemektir. Bu işlem, sitelerin, arama sonuçlarında ve iş ortağı sitelerde yerleştirilmeleri için gereklidir;

    • YandexCalendar, kullanıcıların isteklerine göre, indekslenmeye kapalı olan kataloglarda sıkça yer alan takvim dosyalarını indirir.

    • YandexAccessibilityBot, kullanıcıların erişimine açık olup olmaması kontrolü amacıyla sayfaları indirir.
    • YandexScreenshotBot, sayfa görüntüsünü alır.
    • Yandex.Metrika, Yandex.Metrica robotu.
    • YandexVideoParser, Yandex.Video düzenleyicisi.

    Eğer robotun bu davranışı sizin için uygun değilse özel direktifler yardımıyla sitenizin tamamına ya da belli bir kısmına robotun erişimini engelleyebilirsiniz. Örneğin:

    User-agent: YaDirectFetcher Disallow: /
    User-agent: YandexCalendar Disallow: /*.ics$