Robots.txt Dosyası İçin Ayrıntılı Bir Kılavuz

Yayınlanan: 2020-08-10

Robots.txt, site arama motorlarınızın hangi alanlarının taranması ve hangi alanların göz ardı edilmesi gerektiğini kontrol etmenize yardımcı olmak için web sitenize eklenebilecek çok güçlü bir dosyadır. Güncel olduğundan emin olmak için robots.txt dosyanızı düzenli olarak gözden geçirmeniz ve mümkünse değişiklikler meydana geldiğinde uyarı almak için bir izleme aracı kullanmanız önemlidir.

Semetrical'de, teknik SEO hizmeti teklifimizin bir parçası olarak, bir müşterinin web sitesinde teknik bir denetim gerçekleştirirken, engellenen yolların olması gerektiğini kontrol etmek için müşterinin robots.txt dosyasını denetleriz. Ayrıca SEO ekibi teknik SEO denetim sürecinin bir parçası olarak çoğaltma gibi sorunlarla karşılaşırsa yeni robots.txt kuralları yazıp dosyaya eklenebilir.

Robots.txt önemli bir dosya olduğundan, sonuçta ne olduğunu, birinin onu neden kullanabileceğini ve kurallar yazarken ortaya çıkabilecek yaygın tuzakları kapsayan bir kılavuz hazırladık.

robots txt dosyası nedir?

Robots.txt dosyası, web sitenizi ziyaret ederken bir tarayıcı için ilk çağrı noktasıdır. Web tarayıcılarına bir sitenin hangi bölümlerinin taranması ve hangilerinin göz ardı edilmesi gerektiğini söyleyen farklı kullanıcı aracıları için talimatları listeleyen bir metin dosyasıdır. Bir robots.txt dosyasında kullanılan ana talimatlar, bir "izin ver" veya "izin verme" kuralıyla belirtilir.

Tarihsel olarak bir "noindex" kuralı da işe yarayacaktı, ancak 2019'da Google, yayınlanmamış bir kural olduğu için noindex yönergesini desteklemeyi bıraktı.

Dosya düzgün kullanılmazsa, web sitenize zarar verebilir ve trafikte ve sıralamada büyük bir düşüşe neden olabilir. Örneğin, bir web sitesinin tamamı arama motorlarından engellendiğinde veya bir sitenin bir bölümü yanlışlıkla engellendiğinde hatalar meydana gelebilir. Bu olduğunda, sitenin o kısmına bağlı sıralamalar yavaş yavaş düşecek ve trafik de düşecektir.

Gerçekten bir robots.txt dosyasına ihtiyacınız var mı?

Hayır, özellikle minimum URL'lere sahip küçük web siteleri için web sitenizde robot.txt bulunması zorunlu değildir, ancak orta ila büyük web siteleri için şiddetle tavsiye edilir. Büyük sitelerde, sitenizin hangi bölümlerinin erişilebilir olduğunu ve hangi bölümlerin tarayıcılardan engellenmesi gerektiğini kontrol etmeyi kolaylaştırır. Dosya yoksa, web siteniz genellikle normal şekilde taranır ve dizine eklenir.

Robots txt dosyası esas olarak ne için kullanılır?

robots.txt'nin birçok kullanım durumu vardır ve Semetrical'de onu aşağıdaki senaryolar için kullandık:

  • Bu sayfalar genellikle bir tarayıcı için değerli olmadığından ve bir web sitesinde çok fazla tekrara neden olabileceğinden dahili arama sonuçlarını engellemek.
  • Belirli yönler bir SEO perspektifinden değerli değilse, ancak bir kullanıcı web sitenizdeyken UX için hala gerekliyse, yön gezinmesinin bölümlerini engelleme.
  • Bir özellik seviyesinin arama motorları için yararlı olabileceği, ancak iki farklı faset filtresi birleştirildiğinde bir arama motorunun taraması ve dizine eklemesi için alakasız hale gelebileceği farklı yön gezinme seviyelerini engelleme.
  • Yinelemeye neden olan veya tarama bütçesini boşa harcayan parametreleri engelleme. Diğerleri robots.txt dosyasındaki parametreleri engellememenizi söyleyebileceğinden bu biraz tartışmalıdır, ancak bu, parametrelerin gerekli olduğu ancak tarayıcıların bunları taramasının gerekmediği bazı müşteri web sitelerimizde işe yaramıştır. Engellediğiniz herhangi bir parametrenin değerli bağlantılara sahip olup olmadığını veya trafik getiren değerli anahtar kelimeler için sıralamada olup olmadığını kontrol etmeniz önemle tavsiye edilir.
  • Ödeme sayfaları ve giriş bölümleri gibi bir web sitesinin özel bölümlerini engelleme.
  • Tarayıcıların web sitenizdeki tüm URL'lere erişmesini kolaylaştırmak için XML site haritası konumlarınızı içerir.
  • Yalnızca belirli botların sitenize erişmesine ve taramasına izin vermek için.
  • Denetlenemeyen, kullanıcı tarafından oluşturulan içeriğin engellenmesi.

Bir robots txt'si nereye koyulur ve sitenize nasıl eklenir?

Bir robots.txt dosyasının web sitenizin kök dizinine yerleştirilmesi gerekir; örneğin, Semetrical'in www.semetrical.com/robots.txt adresinde bulunan sitesinde ve robots.txt olarak adlandırılmalıdır. Bir web sitesinde yalnızca bir robots.txt olabilir ve bunun ASCII içeren UTF-8 kodlu bir metin dosyasında olması gerekir.

blog.example.com gibi alt alan adlarınız varsa, robots.txt, blog.example.com/robots.txt gibi alt alan adının kökünde yer alabilir.

Bir robots.txt dosyası nasıl görünür?

Tipik bir robots.txt dosyası, aşağıdakileri içeren farklı bileşen ve öğelerden oluşur:

  • kullanıcı aracısı
  • izin verme
  • İzin vermek
  • Tarama gecikmesi
  • Site Haritası
  • Yorumlar (Bazen bunu görebilirsiniz)

Aşağıda, bir kullanıcı aracısı, izin vermeme kuralları ve bir site haritası içeren bir Semetricals robots.txt örneği verilmiştir.

 User-agent: * Disallow: /cgi-bin/ Disallow: /wp-admin/ Disallow: /comments/feed/ Disallow: /trackback/ Disallow: /index.php/ Disallow: /xmlrpc.php Disallow: /blog-documentation/ Disallow: /test/ Disallow: /hpcontent/ Sitemap: https://devsemetrical.wpengine.com/sitemap.xml

kullanıcı aracısı

Kullanıcı aracısı, bir dizi direktifin başlangıcını tanımlar. Genellikle aşağıdaki talimatların web sitesini ziyaret eden tüm botlar için olduğunu gösteren bir joker karakter (*) ile gösterilir. Bunun bir örneği şöyle olacaktır:

Kullanıcı aracısı: *

 User-agent: * Disallow: /cgi-bin/ Disallow: /wp-admin/

Belirli botları engellemek veya yalnızca belirli botların belirli sayfalara erişmesine izin vermek isteyebileceğiniz durumlar olacaktır. Bunu yapmak için kullanıcı aracısı olarak botların adını belirtmeniz gerekir. Bunun bir örneği şöyle olacaktır:

 User-agent: AdsBot-Google Disallow: /checkout/reserve Disallow: /resale/checkout/order Disallow: /checkout/reserve_search

Dikkat edilmesi gereken yaygın kullanıcı aracıları şunları içerir:

Her aracın sitenizi tarayan kendi kullanıcı aracıları olacağından, belirli yazılımların web sitenizi taramasını engelleme veya saniyede kaç URL'yi tarayabileceklerini geciktirme özelliği de vardır. Örneğin, SEMRush veya Ahrefs'in web sitenizi taramasını engellemek isterseniz, dosyanıza aşağıdakiler eklenir:

 User-agent: SemrushBot Disallow: * User-agent: AhrefsBot Disallow: *

Taranan URL sayısını geciktirmek isterseniz, dosyanıza aşağıdaki kurallar eklenir:

 User-agent: AhrefsBot Crawl-Delay: [value] User-agent: SemrushBot Crawl-Delay: [value]

izin verme yönergesi

Disallow yönergesi, bir kullanıcının robots.txt dosyasına koyabileceği ve arama motoruna oluşturulan kurala bağlı olarak belirli bir yolu veya URL kümesini taramamasını söyleyen bir kuraldır. Bir web sitesinin birden çok bölümünü engellemek isteyebileceğiniz için dosyada bir veya birden fazla izin vermeme kuralı satırı olabilir.

Bir izin vermeme yönergesi boşsa ve hiçbir şey belirtmiyorsa, botlar tüm web sitesini tarayabilir, bu nedenle belirli yolları veya tüm web sitenizi engellemek için bir URL öneki veya eğik çizgi "/" belirtmeniz gerekir. Örneğin aşağıdaki örnekte, /cgi-bin/ veya /wp-admin/ yolundan çıkan herhangi bir URL'yi engelliyoruz.

 User-agent: * Disallow: /cgi-bin/ Disallow: /wp-admin/

Tüm web sitenizi Google gibi botlardan engellemek istiyorsanız, ardından bir eğik çizgi izleyen bir izin vermeme yönergesi eklemeniz gerekir. Genellikle bunu yalnızca hazırlama web sitesinin bulunmasını veya dizine eklenmesini istemiyorsanız bir hazırlama ortamında yapmanız gerekebilir. Bir örnek şöyle görünür:

 User-agent: * Disallow: /

yönergeye izin ver

Çoğu arama motoru, esasen bir izin vermeme yönergesine karşı koyacağı izin verme yönergesine uyacaktır. Örneğin, /wp-admin/ öğesini engellerseniz, genellikle bu yoldan geçen tüm URL'leri engeller, ancak /wp-admin/admin-ajax.php için bir izin verme kuralı varsa, botlar /wp-admin/ admin-ajax.php ama /wp-admin/ dışında çalışan diğer yolları engelleyin. Aşağıdaki örneğe bakın:

 User-agent: * Disallow: /wp-admin/ Allow: /wp-admin/admin-ajax.php

Tarama Gecikmesi

Tarama gecikme yönergesi, bir botun web sitenizi tarama hızını yavaşlatmaya yardımcı olur. Resmi olmayan bir kural olduğu için tüm arama motorları tarama gecikme yönergesine uymaz.

– Google bu yönergeye uymayacak

- Baidu bu yönergeyi takip etmeyecek

– Bing ve Yahoo, kuralın bota bir tarama işleminden sonra “n” saniye beklemesini söylediği tarama gecikme yönergesini destekler.

– Yandex ayrıca tarama gecikme yönergesini de destekler, ancak sitenize yalnızca "n" saniyede bir erişeceği yerde kuralı biraz farklı yorumlar.

Aşağıdaki tarama gecikme yönergesine bir örnek:

 User-agent: BingBot Disallow: /wp-admin/ Crawl-delay: 5

Site Haritası Yönergesi

Site haritası yönergesi, arama motorlarına XML site haritanızı nerede bulacağını söyleyebilir ve farklı arama motorlarının web sitenizdeki URL'leri bulmasını kolaylaştırır. Bu yönergeyi takip edecek ana arama motorları arasında Google, Bing, Yandex ve Yahoo yer almaktadır.

Site haritası yönergesini robots.txt dosyanızın altına yerleştirmeniz önerilir. Bunun bir örneği aşağıdadır:

 User-agent: * Disallow: /cgi-bin/ Disallow: /wp-admin/ Disallow: /comments/feed/ Sitemap: https://devsemetrical.wpengine.com/sitemap.xml

Yorumlar

Bir robots.txt dosyası yorumlar içerebilir, ancak yorumların varlığı yalnızca insanlar içindir ve bir hashtag'den sonraki hiçbir şey yok sayılacağından botlar için geçerli değildir. Yorumlar, aşağıdakileri içeren birçok nedenden dolayı faydalı olabilir:

– Belirli kuralların mevcut olmasının bir nedenini sağlar

– Kuralları ekleyen referanslar

– Kuralların bir sitenin hangi bölümleri için olduğuna dair referanslar

– Kuralların ne yaptığını açıklar

– Aşağıda, farklı robots.txt dosyalarındaki yorum örnekleri gösterilmektedir:

 #Student Disallow: /student/*-bed-flats-* Disallow: /student/*-bed-houses* Disallow: /comments/feed/ #Added by Semetrical Disallow: /jobs*/full-time/* Disallow: /jobs*/permanent/* #International Disallow: */company/fr/* Disallow: */company/de/*

Kuralların sırası önemli mi?

Kuralların sıralaması önemli değildir, ancak bir URL'ye birkaç izin verme ve izin vermeme kuralı uygulandığında, en uzun eşleşen yol kuralı uygulanan ve daha az spesifik olan daha kısa kurala göre öncelikli olan kuraldır. Her iki yol da aynı uzunluktaysa, daha az kısıtlayıcı kural kullanılacaktır. İzin verilmesi veya izin verilmemesi için belirli bir URL yoluna ihtiyacınız varsa, dizeyi uzatmak için “*” kullanarak kuralı daha uzun yapabilirsiniz. Örneğin, İzin Verme: ********/make-longer

Google'ın kendi web sitesinde, öncelikli olan öncelik kuralını gösteren bir dizi örnek durum listelenmiştir. Aşağıdaki tablo Google'dan alınmıştır.

robots.txt dosyanızı nasıl kontrol edebilirsiniz?

Hatalı kuralların web siteniz üzerinde büyük bir etkisi olabileceğinden, canlı yayınlamadan önce robots.txt dosyanızı kontrol etmeniz ve doğrulamanız her zaman önemlidir.

Test etmenin en iyi yolu, Search Console'daki robots.txt test aracına gitmek ve yürürlükteki kurallarla engellenmesi gereken farklı URL'leri test etmektir. Bu, dosyaya eklemek istediğiniz yeni kuralları test etmenin de harika bir yoludur.

robots.txt dosyasında normal ifadeleri kullanma örnekleri

robots.txt dosyanızda kurallar oluştururken, tek bir izin vermeme kuralında bir dizi URL'yi engellemek için kalıp eşleştirmeyi kullanabilirsiniz. Kalıp eşleştirme yapmak için normal ifadeler kullanılabilir ve hem Google'ın hem de Bing'in uyduğu iki ana karakter şunları içerir:

  • Bir URL'nin sonuyla eşleşen dolar işareti ($)
  • Herhangi bir karakter dizisini temsil eden bir joker kural olan yıldız işareti (*).

Semetrical'de desen eşleştirme örnekleri:

 Disallow: */searchjobs/*

Bu, www.example.com/searchjobs/construction gibi /searchjobs/ yolunu içeren tüm URL'leri engeller. Bu, bir müşteri için gerekliydi, çünkü arama motorlarının sitenin o bölümünü taramaması ve dizine eklememesi için sitelerinin arama bölümünün engellenmesi gerekiyordu.

 Disallow: /jobs*/full-time/*

Bu, /jobs/ ve ardından /tam zamanlı/ gibi bir yol içeren URL'leri engeller.

www.example.com/jobs/admin-sekretarya-ve-pa/full-time/

. Bu senaryoda, UX için bir filtre olarak tam zamana ihtiyacımız var, ancak arama motorları için “iş unvanı” + “tam zamanlı” için bir sayfanın indekslenmesine gerek yok.

 Disallow: /jobs*/*-000-*-999/*

Bu, aşağıdakiler gibi maaş filtreleri içeren URL'leri engeller:

www.example.com/jobs/city-of-bristol/-50-000-59-999/

. Bu senaryoda maaş filtrelerine ihtiyacımız var ama arama motorlarının maaş sayfalarını tarayıp indekslemesine gerek yoktu.

 Disallow: /jobs/*/*/flexible-hours/

Bu, esnek saatler içeren ve arada iki yönlü yol içeren URL'leri engeller. Bu senaryoda, anahtar kelime araştırması yoluyla, kullanıcıların konum + esnek saatler veya iş + esnek saatler için arama yapabileceğini ancak kullanıcıların "iş unvanı" + "yer" + "esnek saatler" aramayacağını bulduk. Örnek bir URL şuna benzer

www.example.com/jobs/admin-sekreter-ve-pa/united-kingdom/flexible-hours/

.

 Disallow: */company/*/*/*/people$

Bu, şirket ve kişiler arasında üç yol içeren bir URL'yi ve ayrıca kişilerle biten URL'yi engeller. Bir örnek olurdu

www.example.com/company/gb/04905417/company-check-ltd/people

.

 Disallow: *?CostLowerAsNumber=*

Bu kural, fiyatlandırma emri veren bir parametre filtresini engeller.

 Disallow: *?Radius=* Disallow: *?radius=*

Bu iki kural, botların, bir kullanıcı aramasının yarıçapını değiştiren bir parametre URL'sini taramasını engelledi. Site her iki sürümü de içerdiğinden hem büyük hem de küçük harf kuralı eklendi.

robots.txt ile ilgili bilinmesi gerekenler

  • robots.txt büyük/küçük harfe duyarlıdır, bu nedenle kurallarınızda doğru büyük/küçük harf kullanımı kullanmanız gerekir. Örneğin, /hello/, /Hello/'dan farklı şekilde ele alınacaktır.
  • Google gibi arama motorlarının yeni kurallar bulmak amacıyla robots.txt dosyanızı daha hızlı yeniden önbelleğe almasını sağlamak için Search Console'da robots.txt URL'sini inceleyebilir ve dizine eklenmesini isteyebilirsiniz.
  • Web siteniz bir dizi kural içeren bir robots.txt dosyasına dayanıyorsa ve robots.txt URL'niz uzun bir süre 4xx durum kodu sunuyorsa, kurallar yok sayılır ve engellenen sayfalar dizine eklenebilir hale gelir. Her zaman 200 durum kodu sunduğundan emin olmak önemlidir.
  • Web siteniz kapalıysa, robots.txt dosyasının bir 5xx durum kodu döndürdüğünden emin olun, çünkü arama motorları sitenin bakım nedeniyle kapalı olduğunu anlayacak ve daha sonraki bir tarihte web sitesini yeniden taramak için geri döneceklerdir.
  • URL'ler zaten dizine eklendiğinde ve bu URL'leri dizinden kaldırmak için web sitenize izin vermeme eklendiğinde, bu URL'lerin kaldırılması ve kaldırılması biraz zaman alabilir. Ek olarak, URL'ler bir süre daha dizinde kalabilir, ancak meta açıklama "Bu sitenin robots.txt dosyası nedeniyle bu sonuç için bir açıklama mevcut değil – daha fazla bilgi edinin" gibi bir mesaj görüntüleyecektir.
  • Bir robots.txt izin vermeme kuralı, bir sayfanın arama sonuçlarında görünmeyeceğini her zaman garanti etmez, çünkü Google yine de gelen bağlantılar gibi dış etkenlere dayanarak ilgili olduğuna ve dizine eklenmesi gerektiğine karar verebilir.
  • Bir izin vermeme kuralınız varsa ve ayrıca bir sayfanın kaynak koduna bir "indeks yok" etiketi yerleştirirseniz, arama motorları "indeks yok" etiketini keşfetmek için sayfaya erişemediğinden "dizin yok" yok sayılır.
  • Dizine eklenmiş sayfalarda, özellikle gelen bağlantılara sahip olanlarda izin vermeme kuralı, aksi takdirde diğer sayfalara fayda sağlamak için aktarılacak olan bu geri bağlantıların bağlantı hakkını kaybedeceğiniz anlamına gelir. Bu nedenle, izin vermeme kuralı eklemeden önce sayfaların geri bağlantılarının olup olmadığını kontrol etmek önemlidir.
  • İzin ver veya vermeme kuralı yazarken yolun başındaki eğik çizgi eksikse, kural yoksayılır. Örneğin, "İzin verme: arama işleri.

Semetrical'deki teknik SEO uzmanlarımızdan biriyle konuşmak isterseniz, lütfen daha fazla bilgi için teknik SEO hizmetleri sayfamızı ziyaret edin.