Faydalı Genel Teknoloji

Robot.txt Nedir ? Nasıl Kullanırız ?

Yazar admin

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 dizinineyerleş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 Yolu Görülme
/sitemap.xml 177964
/news-sitemap.xml 11147
/sitemap_index.xml 11045
/SiteMap.aspx 10118
/sitemap.xml.gz 9690
/sitemap 6954
/index.php 4187
/dynamic-sitemaps.xml 3533
/robots.txt 3510
/sitemapindex.xml 3062

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

User Agent Toplam Allow Disallow Allow/Disallow
Mediapartners-Google* 18920 4152 14768 0.28
Googlebot-Mobile 26625 4751 21874 0.22
Googlebot 340185 38740 301445 0.13
Mediapartners-Google 73376 7879 65497 0.12
* 6669397 702888 5966509 0.12
Googlebot-Image 99444 9625 89819 0.11
Mail.Ru 23161 2203 20958 0.11
AdsBot-Google 19163 1278 17885 0.07
Yandex 380945 22728 358217 0.06
bingbot 67560 3026 64534 0.05
ia_archiver 25585 1093 24492 0.04
Yahoo! Slurp 18180 716 17464 0.04
Baiduspider 29339 968 28371 0.03
msnbot 64826 2005 62821 0.03
Slurp 77745 2258 75487 0.03
MSNBot 18674 390 18284 0.02
MJ12bot 22678 121 22557 0.01
AhrefsBot 24014 36 23978 0.00
Exabot 18194 24 18170 0.00
adsbot-google 47388 28 47360 0.00

Kalın sağlıcakla..

Yazar Hakkında

admin

* Freelance Web Developer
* Intel Technology Provider Expert
info@webkartali.com

Yorum Yap