Robots.txt Nedir? Nasıl Kullanılır?

robots.txt, küçük bir komut setine sahip olan ve arama motorlarına yol gösteren bir dosyadır. Bu komutlar, sitenize olan erişimi bölüm bazında ve belirli user-agent’a göre göstermek için kullanılabilir. Arama motoru robotlarını yönetmenin en kolay ve etkin yöntemlerinden birisidir.

Bir çok arama motoru genellikle siteyi taramadan önce bu dosyayı okur ve burada yer alan komutlar doğrultusunda tarama işlemi gerçekleştirir. Bu noktada bilmeniz gereken nokta tüm web tarayıcılarının (crawler), robots.txt dosyasında yer alan komutları tanımak zorunda olmayışı; fakat Google, Bing, Yandex gibi büyük arama motorları bu dosyayı destekler ve tarama, öncesinde tanımlanan kurallar doğrultusunda gerçekleştirili. Yani robots.txt dosyasında yer alan komutlar tamamen tavsiye niteliğinde ve isteğe bağlıdır; teorik olarak da web robotları bu kurallara ihtiyaç duymamaktadır. Yani sitenize bir robots.txt dosyası koymanız, mahremiyetinizi garanti altına almaz.

Buradaki kritik noktalardan bir diğeri sitenize ait yönetim paneli, özel dizinleriniz gibi indekslenmemesi tercih edeceğiniz yolları (path) bu dosyaya girmememiz gerekliliği. Robots.txt dosyasını herkes görüntülediği için bu tür hassas içeriklerinizin yolunu davetsiz misafirlere açık etmemeniz gerekiyor. Bu tür sayfa veya dizinleri korumak için şifre veya ip bazlı erişime açma gibi yöntemleri kullanmanız önerilir.

robots.txt

Robots.txt Nasıl Oluşturulur?

Öncelikle dosyanın adı “robots.txt” olmalıdır; tamamen küçük harfle. “robots.txt” dosyanız sitenizin sadece kök dizinine yerleştirilmeli ve UTF-8 karakter kodlamasına sahip olmalıdır.

Doğru: http://www.ornek.com/robots.txt

Yanlış: http://www.ornek.com/dosyalar/robots.txt

Ayrıca sitenizde hangi protokolü kullanıyorsanız bu protokole uygun olmalıdır. Örneğin SSL sertifikası kullanıyorsanız:

Doğru: https://www.ornek.com/robots.txt

Yanlış: http://www.ornek.com/robots.txt

Basit düzeyde bir “robots.txt” dosyasında 2 anahtar kelime kullanılır. Bunlar User-agent ve Disallow ‘dur. Öncelikle bu anahtar kelimeleri tanıyalım.

Oturum Başlatma Protokolü (Session Initiation Protocol – SIP) iki veya daha fazla katılımcı arasında bağlantı kuran bir ağ protokolüdür. Bu protokol RFC 3261 (daha önce RFC 2543) dokümanlarında açıklanmış ve HTTP protokolüne çok benzeyen düz metin protokolüdür. Bu protokolde istemcilerin (client) genel adına da User-agent denir.

Disallow, belli bir URL’ye erişilmemesini bildiren komuttur.

Örneklere geçmeden önce birkaç konuya daha değinmemiz gerekli. Bunlardan ilki: “User-agent”. Aşağıdaki tabloda Google’ın kullandığı User-agent listesi yer alıyor.

  • 'Googlebot'— Temel indeksleme robotu;
  • 'APIs-Google' — API servis robotu;
  • 'Mediapartners-Google' — Reklam servisine kayıtlı sitelerde kullanılmak üzere;
  • 'Mediapartners (Googlebot)' — Reklam servisine kayıtlı sitelerde kullanılmak üzere;
  • 'AdsBot-Google-Mobile' — Android web sayfası reklam kalitesini kontrol eder;
  • 'AdsBot-Google-Mobile' — iPhone web sayfası reklam kalitesini kontrol eder;
  • 'AdsBot' — Masaüstü web sayfası reklam kalitesini denetler;
  • 'Googlebot-Image' — Görsel robotu;
  • 'Googlebot-News' — Haber robotu;
  • 'Googlebot-Video' — Video robotu;
  • 'AdsBot-Google-Mobile-Apps' — Android uygulama sayfası reklam kalitesini kontrol eder. AdsBot-Google robotlarının kurallarına uyar.

Aşağıdaki tabloda da Yandex’in kullandığı User-agent listesi yer alıyor.

  • 'YandexBot' — Temel indeksleme robotu;
  • 'YandexMedia' — Multimedya verilerini indeksleyen robot;
  • 'YandexImages' — Yandex.Görsel indeksleyicisi;
  • 'YaDirectFetcher' — Yandex.Direct robotu, Direct servisinde kayıtlı sitelerin incelenmesi;
  • 'YandexBlogs' — Gönderilen yorumları indeksleyen blog araması robotu;
  • 'YandexNews' — Yandex.Haberler robotu;
  • 'YandexPagechecker' — Mikro etiket doğrulayıcısı;
  • 'YandexMetrika' — Yandex.Metrica robotu;
  • 'YandexMarket'— Yandex.Market robotu;
  • 'YandexCalendar' — Yandex.Takvim robotu.

Buraya kadar öğrendiklerimiz ile birlikte “Googlebot” User-agent’ına sahip bir tarayıcının, “seo” isimli klasöre erişmesini istemediğimizi anlatan bir komut yazalım:

User-agent: Googlebot
Disallow: /seo/

“User-agent” bağımsız, tüm tarayıcılara genel bir kural yazmak isterseniz, istemci adı belirlenen alana “*” (yıldız) karakterini koymanız yeterlidir:

User-agent: *
Disallow: /seo/

Bir sayfayı engellemek istersek komut şunun gibi olur:

User-agent: Googlebot
Disallow: /bu-bir-sayfadir.html

Bir görseli engellemek istersek de komut şunun gibi olur:

User-agent: Googlebot-Image
Disallow: /kopek.jpg

Diğer Anahtar Kelimeler

robots.txt dosyasında User-agent ve Disallow komutu dışında kullanabileceğiniz farklı anahtar kelimeler de vardır. Bunlar:

1) Crawl-delay: (Sadece Yandex kullanıyor) Sunucuda aşırı yük varsa ve indirme isteklerini işlemeye yetişemiyorsa, “Crawl-delay” yönergesi kullanılır. 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.

User-agent: *
Disallow: /search 
Crawl-delay: 4.5

2) Sitemap: Sitenizde XML formatında sitemap kullanıyorsanız ve robotun bunu bilmesini istiyorsanız, dosya yolunu ‘Sitemap’ yönergesi ile belirtebilirsiniz. Birden fazla “Sitemap:” parametresini kullanabilirsiniz. Örneğin:

User-agent: *
Disallow: /kopek.jpg
Sitemap: http://www.ornek.com/dosyalar/sitemap_1.xml 
Sitemap: http://www.ornek.com/dosyalar/sitemap_2.xml

3) Clean-param: (Sadece Yandex kullanıyor) 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çıklanabilir.

Bir URL veya path içerisinde bir veya birden fazla içeriği etkilemeyen parametreler, Clean-param: içerisinde & karakteri ile birleştirilerek gereksiz yere taranmaması sağlanabilir. Örneğin:

Clean-param: sid&sort /blog/*.php

Yukarıdaki komut sitenin /blog/ dizini içinde ve .php ile biten URL’lerde “sid” ve “sort” parametresi geçen URL’leri sık taramasına gerek olmadığını belirtir.

Yorum & Notlar

Dosya içerisine kendiniz, yöneticiniz veya herhangi bir sebepten dolayı notlar yazabilirsiniz. Not oluşturmak için satır başına # karakteri eklemeniz yeterlidir. Örneğin:

# Köpek resmini erişime kapatıyorum.
# x.x.xxxx tarihinde geri açılacak.
User-agent: Googlebot-Image
Disallow: /kopek.jpg

Şablon (Kalıp Eşleme) Kuralları / Pattern-matching

Tanımlı olan 2 karakteri kullanarak basit düzeyde regular expressions hazırlayabilir ve kompleks durumlar için şablonlu komutlar oluşturabilirsiniz.

  • * : Yıldız karakteri herhangi bir karakter, yani herhangi bir şey anlamına gelir.
  • $ : Dolar ikonu bir URL’nin sonunu belirtir.

Dosya tiplerini bloklamak için : (Bu kod ile .gif dosyalarını indekslemesin diyoruz)

User-agent: Googlebot
Disallow: /*.gif$

.xls ile biten tüm URL’leri engellemek için (dosya adı her ne olursa olsun uzantısı .xls olanlar engellenir):

User-agent: Googlebot
Disallow: /*.xls$

Dinamik web sayfalarını bloklamak için :

User-agent: Googlebot
Disallow: /*?

Eğer bu kuralı Googlebot için değil tüm tarayıcılar için yazmak istersek:

User-agent: *
Disallow: /*?

Biraz da Eğlence

Intoli, alexa.com top 1M sitenin robots.txt dosyalarını indirip ufak bir analiz yapmış. Böylesi bir testi sık göremediğimiz için sonuçlar da ilgimi çekti. Buna göre sitemap dosya isimleri, teste dahil olan sitelerde genellikle şu şekilde verilmiş:

Sitemap YoluGörülme
/sitemap.xml177964
/news-sitemap.xml11147
/sitemap_index.xml11045
/SiteMap.aspx10118
/sitemap.xml.gz9690
/sitemap6954
/index.php4187
/dynamic-sitemaps.xml3533
/robots.txt3510
/sitemapindex.xml3062

Ayrıca “User-agent” özelinde yazılan kuralların kullanım dağılımı da şöyle çıkmış:

User AgentToplamAllowDisallowAllow/Disallow
Mediapartners-Google*189204152147680.28
Googlebot-Mobile266254751218740.22
Googlebot340185387403014450.13
Mediapartners-Google733767879654970.12
*666939770288859665090.12
Googlebot-Image994449625898190.11
Mail.Ru231612203209580.11
AdsBot-Google191631278178850.07
Yandex380945227283582170.06
bingbot675603026645340.05
ia_archiver255851093244920.04
Yahoo! Slurp18180716174640.04
Baiduspider29339968283710.03
msnbot648262005628210.03
Slurp777452258754870.03
MSNBot18674390182840.02
MJ12bot22678121225570.01
AhrefsBot2401436239780.00
Exabot1819424181700.00
adsbot-google4738828473600.00

Projelerimizi Nasıl Yönetsek?

“Proje Yönetimi” kavramı derya deniz konusuyken, basit düzeyde de olsa proje terminolojisi ve süreçlerini bilerek birçok konuda üretim ve yönetimi kolaylaştırabilirsiniz. Bu yazımda sizlere proje ve süreçlerinden bahsedeceğim. Lafı uzatmadan hemen başlayalım 🙂 Sürekli “Müşteri…

Murphy Kanunları

1917 doğumlu Edward A. Murphy Jr. ABD Hava Kuvvetlerinde 1949’da roketler üzerine deney yapan mühendislerden biriydi. İnsan üzerine ivmelenmenin etkilerini inceliyordu. Deneylerden biri pilot üzerinde 16 değişik noktaya akselometre takılması gerekiyordu ve sensör bir yapıştırıcı…

2 yorum

    Sitemap yolu “/robots.txt” ‘nin farklı ve popüler bi’ kullanım olması :O

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir