Robots.txt, arama motoru yazılımlarına sitenizin hangi bölümlerini dizine ekleyebileceğini, hangi dizini taraması gerektiğini, hangi arama motoru yazılımının giriş izni olduğunu veya olmadığını söylemeye yarayan basit bir komut dosyasıdır. Örümcek olarak da adlandırılabilen Arama motoru yazılımları sitenize geldiğinde ilk olarak bu dosyayı tarar ve dosyadaki komutlara göre sitenin izin verilen bölümlerini dizine ekler.
Basitçe açıklamak gerekirse Robots.txt sitenizin sınır kapılarını kontrol etmeye benzer. Arama motoru robotlarının hangi sınır kapılarından girebileceğini, hangilerinden giremeyeceğini, hangi arama motoru robotunun giriş izni olduğunu, hangisinin olmadığını belirlemenizi sağlar. Robots.txt dosyası ve içerdiği komutlar doğru şekilde hazırlandıysa, arama motoru robotları bu kurallara uyar ve sitenizi verdiğiniz komutlar doğrultusunda tarar. Bu işlem Robotları Engelleme Standardı (veya Robot Engelleme Protokolü) olarak adlandırılır.
Robots.txt dosyası, her Web sitesinde mutlaka olması gereken bir dosyadır ve doğru şekilde hazırlanmış olması gerekmektedir. Doğru komutlar kullanılarak hazırlanmamış bir Robots.txt dosyası arama motorları tarafından dikkate alınmaz ve taranmasını istemediğiniz dizinler de taranabilir. Bu yüzden kendisi küçük ama etkisi büyük olan bu dosyanın doğru şekilde hazırlanmış olması gerekmektedir.
Robots.txt Dosyasını ve Komutları Anlamak
Robots.txt dosyası belli standartlara uygun olarak hazırlanmalıdır ve sitenizin kök dizinine yüklenmelidir. Robots.txt dosyası hazırlanırken dikkat edilmesi gereken en önemli üç nokta şunlardır:
- Robots.txt dosyasının sitenizin kök dizininde bulunuyor olması
- Robots.txt dosyasının UTF-8 karakter kodlamasına uygun şekilde hazırlanmış olması
- Robots.txt dosyasının site URL’siyle aynı formatta olması
Robots.txt dosyasının sitenizin kök dizininde bulunuyor olması bir gerekliliktir ve dosya oluşturulurken herhangi bir alt klasörde veya başka bir sayfada yer almaması gerekmektedir. Robots.txt dosyasının URL’si mutlaka standart olmalıdır; örneğin:
Doğru: https://www.siteadresiniz.com/robots.txt
Yanlış: https://www.siteadresiniz.com/main/robots.txt
Robots.txt dosyası düz metinden oluşmalı ve UTF-8 karakter kodlaması dışında bir karakter kodlaması kullanılmamalıdır. Robots.txt dosyası dinamik ve değişken içeriğe sahip olabilir, dosyayı istediğiniz zaman istediğiniz şekilde değiştirebilir ve düzenleyebilirsiniz. Tavsiyemiz, dosyanın her zaman çalışır durumda olması, herhangi bir amaçla kullanımdan kaldırılmaması ve gizlenmemesi yönündedir.
Ayrıca Robots.txt dosyasının sahip olduğu URL, sitenizin erişildiği URL ile aynı olmalıdır. Eğer https protokolü kullanıyorsanız, robots.txt dosyasının adresi de https protokolüne uygun olacak şekilde düzenlenmelidir. Örneğin;
Doğru:
Site URL’si: https://www.siteadresiniz.com/
Robots.txt URL’si: https://www.siteadresiniz.com/robots.txt
Yanlış:
Site URL’si: https://www.siteadresiniz.com/
Robots.txt URL’si: https://www.siteadresiniz.com/robots.txt
Robots.txt içerisinde belirli işlemleri gerçekleştirmek için standartlaşmış komutlar kullanılır. Bu komutlar temel olarak üç ana başlıkta toplanmaktadır:
- Grup komutları
- Arama motoru robotu engelleme / izin verme
- Dizin engelleme / izin verme
- Sayfa engelleme / izin verme
- Tarama gecikmesi belirtme
- Grup dışı komutlar
- Yorum ve notlar
- Dosyaya eklediğiniz komutlar için yorum ve notlar yazma
Grup Komutları
Grup komutları, kesin ve net ifadelerden oluşmalıdır. Yazım hatası yapılmış veya var olmayan dizin ya da sayfalarla ilgili komutlar dikkate alınmaz. Komutlarda küçük – büyük harf ayrımı yapılmaz ancak komutla belirtilmiş dizin ya da URL’lerde büyük küçük harf ve özel karakter ayrımı yapılmaktadır, komuttan sonra belirlediğiniz bölüm, dizin veya URL’nin nasıl isimlendirildiğine göre değişkenlik gösterebilir. Grup komutlarına örnek olarak aşağıdaki komutlarını kullanabiliriz:
- User-agent: Kullanıcı aracısı olarak da belirtebileceğimiz bu komut, sitenize hangi arama motoru robotunun gelebileceğini ya da gelemeyeceğini belirtmenizi sağlar. Örneğin arama motorlarının sitenizi taramasını istemiyorsanız, user-agent komutunu kullanabilirsiniz. Böyle bir ayırım yapmak için dizin veya sayfa engelleme / izin verme komutunu da kullanmanız gerekmektedir.
- Dizin engelleme / izin verme: Sitenizdeki belli bir dizinin taranmasını isteyip istemeyeceğinize göre belirleyebileceğiniz komut satırını oluşturmanızı sağlar. Örneğin sitenizde yer alan görsellerin arama motorları tarafından taranmasını istemiyorsanız, bu komut satırını kullanabilirsiniz.
- Sayfa engelleme / izin verme: Sitenizdeki belli bir sayfanın taranmasını isteyip istemeyeceğinize göre belirleyebileceğiniz komut satırını oluşturmanızı sağlar. Örneğin sitenizde yer alan spesifik bir sayfanın arama motorları tarafından taranmasını istemiyorsanız, bu komut satırını kullanabilirsiniz.
- Tarama gecikmesi belirtme: Sitenizin belirttiğiniz süre içerisinde taranabildiği kadar taranmasını, bu süre dışında kalan sayfaların taranmamasına sebep olan bir komut satırıdır.
Komut satırlarının kullanım örnekleri:
User-agent: user-agent komutunu kullanarak bütün arama motorlarının sitenizi taramasını engellemek istiyorsanız robots.txt dosyasını aşağıdaki gibi düzenlemeniz gerekir:
user-agent: *
disallow: /
Önerilen: Tüm arama motoru robotlarına izin vermek için, user-agent: * komut satırını tek başına kullanın.
Dizin Engelleme / izin verme: allow ya da disallow komutlarını kullanarak sitenizdeki belirli dizinlere erişim izni verebilir ya da sınırlama koyabilirsiniz. Bu bölümde yapacağınız değişiklik sadece arama motoru robotuna özeldir. Kullanıcılar komut verdiğiniz dizine erişmeye devam edebileceklerdir. Örneğin:
user-agent: *
disallow: /ozel/
Yukarıdaki komut satırını kullandığınızda, arama motoru robotu sitenizdeki https://www.siteadresiniz.com/ozel/ URL’sine sahip olan “ozel” dizinini taramayacak ve bu dizinin içinde yer alan sayfaları dizine eklemeyecektir.
Sayfa Engelleme / izin verme: allow ya da disallow komutlarını kullanarak sitenizdeki belirli sayfalara erişim izni verebilir ya da sınırlama koyabilirsiniz. Bu bölümde yapacağınız değişiklik sadece arama motoru robotuna özeldir. Kullanıcılar komut verdiğiniz sayfaya erişmeye devam edebileceklerdir. Örneğin:
user-agent: *
disallow: /ozel-belgeler.
HTML/
Yukarıdaki komut satırı da, sadece https://www.siteadresiniz.com/ozel-belgeler.html adresinde yer alan içeriğin taranmasını ve dizine eklenmesini engelleyecektir. Dizin ve URL arasındaki ayrımı yapmak bu açıdan önemlidir.
Tarama Gecikmesi Belirtme: Crawl-delay komutunu kullanarak, arama motoru robotunun tarama için harcayacağı zamanı sınırlandırabilirsiniz. Bu komut genelde sıklıkla sunucu hatası yaşanan ya da çok yüksek ziyaretçi trafiği yüzünden zaman zaman geçici olarak hizmet vermeme ihtimali olan siteler için kullanışlıdır. Bu amaçlar dışında
kullanılmamasını tavsiye ederiz. Örneğin belirli bir arama motoru robotunun sitenize geldiğinde sadece 2 dakika boyunca sitenizi taramasını istiyorsanız, şöyle bir komut kullanabilirsiniz:
user-agent: yandexbot
crawl-delay: 2
Yukarıdaki komut satırında, yandexbot’un 2 dakika içinde taradığı kadar sayfayı taraması, 2 dakika bittikten sonra kalan dizin ve sayfaları taramadan siteyi terk etmesi gerektiği belirtilmiştir.
Grup Dışı Komutlar
Grup dışı komutlar,
Sitemap.
XML dosyasının yerini belirtmek için kullanılabilir. Kullanımı oldukça basit olup, sadece
sitemap.xml dosyasının URL’sinin doğru şekilde yazılmış olması gerekmektedir. Sitemap.xml dosyası, sitenizin taranması konusunda arama motoru robotlarına en önemli bilgileri vereceği için, mutlaka kullanılmalıdır. Arama motoru robotu sitenizi tararken ilk olarak robots.txt dosyasına göz atmaktadır ve bu dosyada ve sitede sitemap.xml dosyasına dair herhangi bir içerik bulunmaması bir dezavantaj yaratabilir. Örneğin:
user-agent: *
Sitemap: https://www.siteadresiniz.com/sitemap.xml
Yorum ve Notlar
Robots.txt dosyası içerisine, kendinize, site yöneticisine, tasarımcıya veya kullanıcıya hitap eden, arama motoru robotlarının dikkate almadığı notlar bırakabilirsiniz. Bunun için # karakterini kullanmanız gerekmetekdir. Örneğin:
# Not: Tasarım dizini 1 hafta sonra robot erişimine açılacak.
user-agent: *
Disallow: /tasarim/
Disallow: /dosyalar/ # Bu dizin, kopyalama bittikten sonra erişime açılacak.
Bu örnekte # karakterinden sonra yazılı olanlar arama motoru robotları tarafından dikkate alınmaz.
Robots.txt Dosyasında Kullanılabilen Özel Komutlar
Robots.txt dosyasına ekleyeceğiniz özel komutlarla, belli bir karakteri içeren ya da belli bir URL uzantısını içeren sayfaları bütünüyle arama motoru robotlarınnın erişimine kapatabilirsiniz. Örneğin;
user-agent: *
Disallow: /*?
Yukarıdaki örnekte, URL içerisinde soru işareti (?) olan tüm URL’ler arama motoru robotlarının erişimine kapatılmış durumdadır. Yukarıdaki örnekten hariç olarak soru işareti yerine farklı karakterler de kullanabilirsiniz.
User-agent: Googlebot
Disallow: /*.
ASP$
Yukarıdaki örnekte, dolar işareti ($) kullanarak sitemizde URL uzantısı .asp olan tüm sayfaları arama motoru robotlarının erişimine kapatmış olduk. Yani, https://www.siteadresiniz.com/iletisim/iletisim-formu-deneme.asp benzeri URL’ler bütün olarak arama motoru robotlarının erişimine kapatılmış olur.
Robots.txt Kullanım Amaçları
Yukarıda da bahsettiğimiz gibi, Robots.txt dosyası farklı amaçlar için kullanılabilir. Sadece arama motoru robotlarının sitenizin hangi bölümlerini ziyaret edip etmeyeceğini belirtmeniz dışında, sitenizin yapım aşamasında, tasarım değişikliği çalışmasında ya da genel bakımda olduğu zamanlarda da kullanılması mümkündür. Sitenizi yeni kurduysanız ve tasarım çalışmaları devam ediyorsa veya mevcut tasarımınızı değiştiriyorsanız ve arama motorlarının erişimini engellemek istiyorsanız robots.txt dosyasını kullanabilirsiniz. Çalışmalarınız tamamlandığında dosyayı düzenleyip sitenizi arama motorlarının erişimine tekrar açmayı
unutmayın.
Daha önce taranmış ve indekslenmiş sayfaların Robots.txt ile engellenmesi mümkün değildir. Örneğin daha önce Google dizinlerine eklenmiş bir sayfanın arama sonuçlarındaki açıklaması şöyledir:
“Bu sitenin robots.txt dosyası olduğundan, bu sonuç için bir açıklama bulunmamaktadır.Daha fazla bilgi edinin”
Arama motoru kullanıcının yaptığı aramayla eşleşen ve daha önce dizine eklenmiş bir sayfayı arama sonuçlarında gösterdiğinde, sayfa robots.txt ile engellenmişse sayfa açıklaması yerine yukarıdaki açıklamayı eklemektedir. Robots.txt dosyası dizine eklenmiş bir sayfanın ya da dizinin arama motoru dizinlerinden çıkarmak için
kullanılmaz.
Önemli: Robots.txt dosyasını kullanarak engellediğiniz bir dizinde yer alan sayfa veya sayfalarınız hala arama motoru robotları tarafından dizine ekleniyor veya arama sonuçlarında çıkıyorsa, bunun sebebi o sayfaların farklı Web sitelerinden link almış olması olabilir. Bu durumda sayfanın izlenmesini robots.txt dosyasını kullanarak
engelleyemezsiniz. Bunun yerine robots.txt dosyasında o dizini veya sayfayı
engellemeye son verip, taranmasını istemediğiniz dizin ve sayfalarınızda noindex meta etiketini kullanmanız gerekmektedir.
Robots.Txt Kullanım Örnekleri:
Aşağıda örneğini vereceğimiz birkaç komutla, robots.txt dosyasının nasıl kullanılacağını daha iyi anlamaya çalışalım:
User-agent: *
Disallow: /ozel/
Allow: /ozel/ozel-degil.html
Yukarıdaki örnekte, “ozel” dizinini erişime kapattık ancak “ozel degil” sayfasına erişim izni verdik. Bu durumda arama motoru robotu “ozel” dizinini taramıyor ancak “ozel” dizini içinde yer alan “ozel-degil.html” sayfasını tarayabiliyor.
User-agent: googlebot
Disallow: /ozel/
User-agent: *
Disallow: /
Yukarıdaki örnekte, sadece Google Bot’un “ozel” dizinine erişimini engelliyoruz, Googlebot dışındaki diğer tüm arama motoru robotlarının sitenin tamamına erişimini engellemiş oluyoruz.
User-agent: googlebot
Disallow: /ozel/
User-agent: googlebot-images
Disallow: /ozel/
Disallow: /tasarim/
Yukarıdaki örnekte, Google Bot’un “ozel” dizinine erişimini engellerken, Google Görsel Bot’un “ozel” ve “tasarim” dizinlerine erişimini engellemiş oluyoruz.
Not: Yukarıda yer alan komutları kullanırken çok dikkatli olmanızı tavsiye ederiz. Robots.txt dosyanızın düzgün çalışıp çalışmadığını test etmek için
Google Search Console Robots.txt test aracını kullanabilirsiniz.