“Robots.txt, her ne kadar basit bir dosya gibi görünse de hakkında bildiğiniz herşeyi unutun. Çünkü muhtemelen bildiğiniz gibi değil.”
Roman Adamita‘nın bu sözünden sonra robots.txt dosyası üzerine detaylı bir araştırma yaptık. Robots.txt dosyasını bir de bizden dinleyin. 🙂
Robots.txt dosyasının temel amaçları nelerdir?
Robots.txt, bir web sitesinin kök dizininde bulunan küçük bir metin dosyasıdır. Tarayıcı botlara, sitenin belirli bölümlerini tarayıp taramayacaklarını söyler. Teknik SEO’nuz üzerinde çalışırken kontrol etmeniz ve optimize etmeniz gereken ilk şeylerden biri robots.txt dosyasıdır.
Google botları tarafından indeks almamasını istediğiniz sayfalarınızın, engellenmesini bu dosyadan sağlayabilirsiniz.
Robots.txt kullanılmak istenmesinin bir başka nedeni de ücretli bağlantıların (reklam amaçlı linklerin) kullanılmak istenmesidir. Ayrıca arama motorları botları için özel direktiflere ihtiyaç duyan reklamların sitede kullanılabilmesi için de robots.txt dosya ve komutları kullanılmaktadır.
Henüz site için SEO çalışmalarına başlanmadıysa veya site içerisinde SEO açısından eksiklikler varsa bu gibi durumlarda da arama motoru botlarının siteyi indekslemesinin engellemesi için robots.txt dosyası sık olarak kullanılmaktadır.
Robots.txt kullanmamız ve kullanmamamız durumda oluşabilecek durumlar nelerdir?
Bir robots.txt dosyanız yoksa, arama motoru tarayıcıları, bu web sitesinin herkese açık sayfalarının taranabileceğini ve dizine eklenebileneceğini varsayar.
Büyük bir websiteniz varsa, tarama ve dizine ekleme çok yoğun bir işlem olabilir. Çeşitli arama motorlarından gelen tarayıcılar, tüm sitenizi taramaya ve dizine eklemeye çalışacak ve bu ciddi performans sorunlarına neden olacaktır. Bu durumda, web sitenizin SEO için önemli olmayan bazı bölümlerine erişimi kısıtlamak için robots.txt dosyasını kullanabilirsiniz. Bu şekilde, yalnızca sunucunuzdaki yükü azaltmazsınız, tüm indeksleme işlemini daha hızlı yapılmasını sağlarsınız.
Web sitenizin herhangi bir sayfasını veya dizinini arama motoru sonuçlarında görünmesini engellemek istemeseniz bile kesinlikle bir robots.txt dosyanız olması gerekir.
Dikkat! Robots.txt dosyasını yanlış kullanmanın en ciddi sonucu, yanlışlıkla tüm sitenizi tüm tarayıcılardan gizlemektir.
Mesela, Google bile robots.txt dosyası kullanıyor. > https://www.google.com/robots.txt
Robots.txt’deki “User-agent” nedir? Neden ve nasıl kullanılmalıdır?
User-agent: Hangi tarayıcıların verdiğimiz bildirimleri dikkate alması gerektiğini bildirir. Tüm tarayıcılara tarama izni vermek için * kullanabilirsiniz veya bir tarayıcının adını belirtebilirsiniz.
Komutlara başlamadan önce belirtelim. # ile başlayan cümleler yorum satırı manasına gelir. Komutlar ile alakası yoktur. Siz herhangi bir komut yazarken de daha sonra geri dönüp baktığınızda hatırlamak için # ile başlayan yorumlar yazabilirsiniz.
User-agent: * # Tüm tarayıcıları içerir.
User-agent: Googlebot- # Talimatlar sadece Google Bot içindir.
Bütün arama motoru botlarının isimlerini user-agents.org sitesinden bulabilirsiniz.
Robots.txt’deki “Disallow” ve “Allow” komutları ne işe yarar? Bu 2 komut (“Disallow” + “Allow”) hangi durumlarda, nasıl kullanılır?
robots.txt dosyasındaki komutlara göz atalım:
Disallow: Engellemek istediğiniz alanlar içindir. Bu kodun yanına yazılan dosyalar veya linkler botlar tarafından önemsenmez, görmezden gelinir.
Örnek:
Disallow: / # Hiçbir dosyayı tarama
Disallow: /demo.html # demo.html sayfasını tarama
Disallow: /wp-admin # wp-admin linkini tarama
Allow: Disallow komutunun tam tersidir. Disallow yaptığınız alanları etkisiz kılar. Eğer bir dosya içerisinde sadece bir linkin ya da bir dosyanın taranmasını istiyorsanız bu komutu kullanabilirsiniz.
Not! Google botları önce Allow, sonra Disallow komutunu işleme alırlar.
Örnek:
Allow: /klasor/demo.html
Disallow: /klasor/ # /klasor/ dosyası içinde yer alan demo.html hariç diğer bütün dosyaları tarama anlamına gelir.
Crawl-delay: Geciktirme kodu olarak kullanılır. Yazdığımız rakam saniye biriminde baz alınarak, botların bu aralıkta bilgi çekmesine dair bilgi verir. Örneğin sunucu ile ilgili devamlı sorunlar yaşıyor ve bu botun sitenize kötü puanlar vermesine sebebiyet veriyorsa 7 yaparak 7 saniyede taradın taradın taramadığın zaman çık git diyebiliriz.
Örnek:
Crawl-delay: 15 # 15 saniye aralıklarla bilgi çekilsin.
Crawl-delay: 60 # 60 saniye aralıklarla bilgi çekilsin.
Robots.txt dosyasında * (yıldız işareti) ne anlamlara gelir?
Bu parametre, tüm büyük arama motorları tarafından desteklenir. URL’in bir kısmı bilinmediğinde veya değişken olduğunda sayfaları engellemenizi sağlar. Örneğin:
Disallow: /users/*/settings
* (yıldız işareti) “herhangi bir metni eşleştir” anlamına gelir. yukarıdaki komut aşağıdaki tüm sayfaları engeller.
http://siteadi.com/users/alice/settings http://siteadi.com/users/bob/settings http://siteadi.com/users/tinkerbell/settings http://siteadi.com/users/chthulu/settings
Dikkatli olun! Yukarıdakilerin yanı sıra aşağıdakileri de engelleyecektir
http://siteadi.com/users/alice/search?q=/settings http://siteadi.com/users/alice/settings-for-your-table http://siteadi.com/users/alice/extra/directory/levels/settings
Dize sonu parametresi $ işareti ne işe yarar?
Disallow: /useless-page $
$, url’in bu noktada bitmesi gerektiğini anlamına gelir. Bu komut aşağıdaki url’i engelleyecektir:
http://siteadi.com/useless-page
Ancak aşağıdakilerden hiçbirini engellemeyecektir:
http://siteadi.com/useless-pages-and-how-to-avoid-creating-them
http://siteadi.com/useless-page/
http://siteadi.com/useless-page?a=b
Sitenizdeki bütün sayfaları engellemek istiyorsanız;
User-agent: *
Disallow: /
komutunu kullanabilirsiniz.
http://siteadi.com/deneme
http://siteadi.com/deneme/ornek http://siteadi.com/deneme/ornek2
http://siteadi.com/deneme/ornek/ornek1 http://siteadi.com/deneme/ornek.html
http://siteadi.com/deneme/ornek?01
Yukarıdaki sayfaları robots.txt ile bloke etmek istiyorum. Ancak, https://siteadi.com/deneme bu sayfamı etkilemeyecek şekilde komutlar eklenmelidir. Bu durumda nasıl komutlar yazılır, hadi bir robots.txt dosyası hazırlayalım.
User-agent: *
Allow: /deneme/
Disallow: /deneme/ornek
Disallow: /deneme/ornek2
Disallow: deneme/ornek/ornek1
Disallow: /deneme/ornek.html
Disallow: /deneme/ornek?01
Gelin, https://www.sanalmarket.com.tr/robots.txt dosyasını yorumlayalım. Hangi komutlar kullanılmış ve ne engellenmek istenmiş? Hangi arama motoru botları bu komutları uygular?
User-agent: * # Bütün arama motorları bu komutları uygulasın
Disallow: /arama # Bu sayfa taranmasın
Disallow: /giris # Bu sayfa taranmasın
Disallow: /kayit # Bu sayfa taranmasın
Disallow: /sifremi-unuttum # Bu sayfa taranmasın
Disallow: /kweb* # /kweb ‘den sonra her ne gelirse gelsin bu url’leri engelle
Disallow: /*? # / ile ? arasına her ne gelirse gelsin bu url’leri engelle
Disallow: /*.html # / ile .html arasında her ne olursa olsun bu url’leri engelle
Sitemap: https://siteadi.com/sitemap.xml # Tarama botları sitenin sitemap dosyasına gitsin, daha kolay tarama ve indeksleme yapsın
Robots.txt dosyası web sitesinin neresinde kullanılmalıdır? Hangi durumlarda yanlış kullanılıyor?
Robots.txt web sunucusuna yerleştirilen bir komut dosyasıdır. Eğer web sitenizde böyle bir dosyanız yoksa bu isimde bir dosya oluşturup public_html bölümüne eklemeniz yeterli olacaktır.
Robots.txt dosyası bulunması gereken yer sitenin kök dizinidir.
Örneğin; http://siteadi.com/pages/robots.txt yanlış bir kullanım örneğidir.
Kritik nokta, indekslenmemesini istediğiniz özel sayfalarınız olduğunu varsayalım ama özel olduğu için kimsenin görmesini de istemiyorsunuz. O halde dikkatli olun, o sayfaları bu dosyaya girmeyin. Bir robots.txt dosyasının içeriği halka açıktır. İsteyen herkes, indekslenmemesini istediğiniz içerikleri görüntüleyebilir. Bu nedenle başkalarının görmesini istemediğiniz içeriklerinizi saklamak için iyi bir yer değildir. Bu tür sayfa veya dizinleri korumak için şifre veya ip bazlı erişime açma gibi yöntemleri kullanmanız önerilir.
Başka yol bulamadınız, sayfanızı robots.txt dosyası ile arama motorlarından ve insanlardan saklamak istiyorsunuz. O zaman disallow: /xyz-* gibi bir komutla engellemek istediğiniz sayfaları belirtin.
Neden robots.txt dosyasında sitemap linkine yer vermeliyiz? Bu bir SEO sinyali midir?
Arama motoru botları web siteleri taramak için geldiğinde ilk olarak robots.txt dosyasını ziyaret etmektedir. Böylece dosyadaki komutlara göre taranacak dizinleri tespit ederek, sitenin izin verilen bölümlerini arama ağı dizinlerine eklerler. Bazı durumlarda web sitesinin önemli bilgiler içeren kimi bölümleri arama motoru botlarının erişimine kapatılmak istenmektedir.
Burada verilen bildirimlerden sonra sitemap linkine de yer vererek arama motoru botlarına güzel bir yol çizilebilir. İstediğimiz şekilde sitenin taranıp indekslenmesi için botlara rehberlik edecek sitemap dosyasına ulaştırmış oluruz.
Yani tabiki bir SEO sinyalidir.
Add comment