Robots.txt nedir? Doğru robot.txt kullanımı
Robots.txt nedir?
Arama motorları, web sitesini taramak için kendi tarama botlarını (Crawlers, Spiders) kullanırlar. Tüm tarama botları tarama işlemine başlamadan önce robots.txt dosyasındaki yönergelere göre hareket eder (Kötü yazılım için üretilen botlar, bu yönergeleri yok sayabilir. Ayrıca arama motoru botlarıda yönergeleri yok sayabilir. Arama motorlarının tamamen web sayfanızın taranmamasını için kullanılması gereken yönergeyi yazının devamında paylaşıyorum.). Robots.txt dosyası en basit haliyle, arama motorları botlarına web sitenizdeki hangi sayfaları, yazıları, görselleri ve barındırma hizmetinizin içerisindeki hangi klasörleri tarayıp taramayacağını belirttiğiniz alandır.
Robots.txt tüm metin biçimleriyle UTF-8 yönergelerine uygun olarak oluşturulabilir. Barındırma hizmetinizin (Hosting) ana dizinine yüklenmelidir ve http://localhost/xxx/robots.txt şeklinde bağlantıya sahip olup, tarayıcılar üzerinden erişebilmelidir. Site kök dizini kimi barındırma servislerinde public_html, kimi barındırma servislerinde ise httpdocs şeklinde görüntülenir.
Unutmadan bir not: Robots.txt büyük-küçük harflere duyarlıdır.
Robots.txt oluşturmazsam ne olur?
Daha önce bahsettiğimiz gibi bir robots.txt dosyası oluşturmadığınız taktirde tüm bot'lar otomatik olarak her hangi bir sınırlama olmadan, web sitenizin tüm içeriğini tarar. Yönetim paneli, size özel resimler (varsa) veya arama sonuçlarına dahil etmek istemediğiniz özel olarak hazırladığınız içerik veya görsellerin tamamı arama sonuçları sayfasına eklenebilir. Wordpress, Blogger, Wix gibi hazır sistemler kullanırken robots.txt dosyası otomatik olarak oluşturulabilir bu durumda özel olarak ekleyip çıkarmak istediğiniz bir işlem yoksa otomatik olarak oluşturulan robots.txt dosyası kullanılabilir.
Robots.txt kullanılarak engellenmek istenen web sitesinin sonuçlardaki durumu ne olur?
Yaptığınız çalışmanın arama motorlarında tamamen görünmemesi istiyorsanız eğer, robots.txt dosyası size yardımcı olmayacaktır. Yazının başında da aktardığımız gibi eğer bir sayfayı tamamen arama sonuçlarına dahil etmemek isterseniz ki, intranet bir projeler genellikle arama sonuçlarında gösterilmek istenmez (Örneğin; proje takibi yazılımı, bayi yönetimi vb) bu durumda noindex ve nofollow meta girişlerini kullanmanız gereklidir. Robots.txt üzerinden sayfanızı engellediğinizde, arama motorları sayfanızı yine de indexler.
Bu sonucun önüne geçmek için meta girişlerinden faydalanacağız. Arama sonuçlarından tamamen çıkarmak istediğiniz veya hiç eklenmesini istemediğiniz tüm sayfalara eklenmesi gereken kod; <meta name="robots" content="noindex, nofollow"> Bu kod ile birlikte sayfaların tüm arama motoru botlarından hariç bırakılmasını sağladık. Ancak Google haricinde Bing, Yahoo, Yandex gibi farklı arama motorları da mevcut. Dilersek belirli bir arama motoru botu için hariç kılma düzenleyebiliriz. Bunun ile ilgili detayı yazının devamında bulabilirsiniz.
Örnek; arama sonuçlarında web sayfasını nasıl engellersiniz?
<meta name="robots" content="noindex, nofollow"> Tüm arama motorlarını engeller
<meta name="googlebot" content="noindex, nofollow"> Sadece Google arama motoru botlarını engeller
<meta name="googlebot-image" content="noindex, nofollow"> Sadece Google görseller arama motoru botlarını engeller
<meta name="yandexbot" content="noindex, nofollow"> Sadece Yandex arama motoru botlarını engeller
<meta name="yandeximages" content="noindex, nofollow"> Sadece Yandex görseller arama motoru botlarını engeller
<meta name="Baiduspider" content="noindex, nofollow"> Sadece Baidu arama motoru botlarını engeller
İleri düzey Robots.txt detayları ve metadata
Metadata nedir? (Metadata ile ilgili zengin makalem)
Robots.txt içerisinde kullanılmayan, web sayfalarının tamamen arama motorları tarafından dışarıda bırakılmak için için kullanılan metadata'ların yapısını inceleyelim. Metadata bilgisayar işleyicileri tarafından kullanılan ve kullanıcılar tarafından (Tarayıcılar) görüntülenmeyen HTML bilgi betimleyicisidir. Metadata'lar html meta etiketleri içerisinde kullanılır. Arama motorları, yazılım dili işleyicileri tarafından döndürülür. Resimde yer alan;
- 1. alan; etiketin bir meta etiketi olduğunu tanımlar ve her zaman meta ile başlar,
- 2. alan; metadata'nın adını tanımlar (name),
- 3. alan; metadata'nın alacağı değerdir veya özelliktir.
Not: Metadata'lar her zaman sayfanızın <head></head> etiketleri arasında kullanılmalıdır.
Robots.txt içerik ve detayları
Yukarıdaki örnekte kullanılan ""; tüm bot ve tüm tarayıcıları kapsamak için kullanılır. Özellikle bir bot adı belirtilmediği sürece, kullanılabilir. User-agent: alanında yer alan yerine; özel bir bot belirtmek için; User-agent: Googlebot User-agent: AdsBot-Google User-agent: Googlebot-news User-agent belirtilmedilir. Bu alanda özel bir bot belirtildiğinde Robots.txt otomatik olarak o botun davranışına engel olacak veya izin verecektir. Hemen bir örnek yapalım; Örneğimiz: Google Reklam botlarının sitemizin tamamına erişimini engellemek istiyoruz. User-agent: AdsBot-Google Disallow: / Bu Robots.txt dizimiyle Google Reklam botlarını sitemizin tamamına erişimini durdurduk. Artık Google Reklam botları sitemizi taramayacak. Örneğimiz2: Google Reklam botlarının sitemizin belirli bir klasörüne erişimini engellemek istiyoruz. User-agent: AdsBot-Google Disallow: /wp-content/uploads/ Bu Robots.txt dizimiyle Google Reklam botlarını sitemizin /wp-content/uploads/ klasörünün içeriğine erişimine sınır koyduk. Örneğimiz3: Her hangi bir uzantıya erişimi kısıtlamak. User-agent: Googlebot Disallow: /.png$ Bu Robots.txt dizimiyle Google botlarının sitede yer alan tüm .png uzantılı görselleri indexlemesine sınır koyduk.
Robots.txt oluştururken sık sık yapılan hatalar
- Özel alt klasörleri disallow etmek.
- Özel altklasörleri disallow etmek, robots.txt dosyanızdan bu özel klasörlerinizin adresini direkt olarak vermek anlamına gelir. Bu nedenle, kimsenin ulaşmasını istemediğiniz klasör ve dosyalarınızı şifreli klasöre çevirmeniz daha faydalı olacaktır.
- Robots.txt dosyasını kök dizine atmamak.
- Robots.txt dosyanızın daha önce belirttiğim gibi kök dizine (public_html veya httpdocs) klasörlerinin içerisine eklemelisiniz.
- Kaynağı belli olmayan Robots.txt dosyası kullanmak.
- Birçok kullanıcı internette başkaları tarafından hazırlanmış robots.txt dosyasını kopyala/yapıştır yaparak kullanıyor. Kullanıcılar kendilerine özel bir dosya oluşturmuş olabilir. Sitenize negatif etki yapabilir. Bu nedenle tüm Robots.txt'ler kendi sitenize özel olmalıdır.
- Allow/Disallow komutlarını bir arada kullanmak.
- Komutları kullanırken dikkat etmelisiniz. Allow komutu Disallow komutunu çoğu zaman yutar. Yani Disallow: /wp-admin/ komutunu açtıktan sonra Allow: / komutu verirseniz Disallow etkisiz kalır.
- Doğru olmayan uzantı tipi.
- Robots.txt dosyanız daima .txt (Text) dosyası formatında olmalıdır. .doc, .docs, .rtf uzantıları kabul edilmez.
- Sayfayı engellemek için Robots.txt kullanmak.
- Sayfayı veya komple web sitesinizi engellemek için metadata kullanılması gerektiğini yazıda anlatmıştım.
Robots.txt dosyasının doğru çalışıp çalışmadığını kontrol etmek
Robots.txt'nin çalışıp çalışmadığını kontrol edebileceğiniz birçok mecra vardır. Ancak tüm bu mecralar bir yana, Google'un kendine özgü testi mevcuttur Google Robots.txt test aracını kullanmanızı tavsiye ederim.