Disallow ve Allow yönergeleri
Disallow
Bu yönergeyi, bir sitenin bölümlerinin veya bireysel sayfalarının taranmasını yasaklamak için kullanın. Örneğin:
- Gizli veri içeren sayfalar.
- Site arama sonuçları içeren sayfalar.
- Site trafik istatistikleri.
- Yinelenen sayfalar.
- Çeşitli günlükler.
- Veritabanı hizmet sayfaları.
Not
Aramadan çıkarılması gereken sayfalar için bir yönerge seçerken, adresleri GET parametreleri içeriyorsa Disallow yerine Clean-param yönergesini kullanmanız önerilir. Disallow kullanırsanız, parametre olmadan yinelenen bağlantı URL’lerini tanımlayamayabilir ve yasaklanmış sayfaların bazı ölçümlerini gönderemeyebilirsiniz.
Örnekler:
User-agent: Yandex
Disallow: / # tüm sitenin taranmasını engeller
User-agent: Yandex
Disallow: /catalogue # adresleri /catalogue ile başlayan sayfaların taranmasını engeller
User-agent: Yandex
Disallow: /page? # URL'leri parametre içeren sayfaların taranmasını engeller
Allow
Bu yönerge, bir sitenin bölümlerinin veya bireysel sayfalarının taranmasına izin verir.
Örnekler:
User-agent: Yandex
Allow: /cgi-bin
Disallow: /
# "/cgi-bin"
# ile başlayan sayfalar hariç her şeyin indirilmesini engeller
User-agent: Yandex
Allow: /file.xml
# file.xml dosyasının indirilmesine izin verir
Not
User-agent, Disallow ve Allow yönergeleri arasında boş satırlara izin verilmez.
Yönergeleri birleştirme
İlgili User-agent bloğundaki Allow ve Disallow yönergeleri, URL ön eki uzunluğuna göre (en kısadan en uzuna) sıralanır ve sırayla uygulanır. Birden fazla yönerge belirli bir site sayfasıyla eşleşirse, robot sıralı listedeki sonuncusunu seçer. Bu şekilde, robots.txt dosyasındaki yönergelerin sırası, robot tarafından nasıl kullanıldıklarını etkilemez.
Not
Aynı uzunlukta ön eklere sahip iki yönerge arasında bir çakışma varsa Allow yönergesi önceliklidir.
# Kaynak robots.txt:
User-agent: Yandex
Allow: /
Allow: /catalog/auto
Disallow: /catalog
# Sıralı robots.txt:
User-agent: Yandex
Allow: /
Disallow: /catalog
Allow: /catalog/auto
# "/catalog" ile başlayan sayfaların indirilmesini engeller,
# ancak "/catalog/auto"
# ile başlayan sayfalara izin verir.
Yaygın örnek:
User-agent: Yandex
Allow: /archive
Disallow: /
# "/archive" içeren her şeye izin verir, geri kalanı engellenir
User-agent: Yandex
Allow: /obsolete/private/*.html$ # "/obsolete/private/..." içindeki html dosyalarına
# izin verir
Disallow: /*.php$ # bu sitedeki tüm "*.php" dosyalarını engeller
Disallow: /*/private/ # "/private/"
# içeren tüm alt yolları engeller
# ancak yukarıdaki Allow bu engellemenin bir kısmını geçersiz kılar
Disallow: /*/old/*.zip$ # "/old/" içeren tüm "*.zip" dosyalarını engeller
# in “/old/”
User-agent: Yandex
Disallow: /add.php?*user=
# "user" parametresine sahip tüm "add.php?" komut dosyalarını engeller
Parametresiz Allow ve Disallow yönergeleri
Yönergeler parametre içermiyorsa, robot verileri şu şekilde işler:
User-agent: Yandex
Disallow: # Allow: / ile aynıdır
User-agent: Yandex
Allow: # bot tarafından dikkate alınmaz
Özel karakterler * ve $ kullanımı
Belirli düzenli ifadeleri (regular expressions) ayarlamak üzere Allow ve Disallow yönergelerinin yollarını belirtirken * ve $ özel karakterlerini kullanabilirsiniz.
* karakteri, herhangi bir karakter dizisini (veya hiçbirini) belirtir. Örnekler:
User-agent: Yandex
Disallow: /cgi-bin/*.aspx #, "/cgi-bin/example.aspx"
# ve "/cgi-bin/private/test.aspx"
yollarını engeller Disallow: /*private
# hem "/private" hem de "/cgi-bin/private" yollarını engeller
Varsayılan olarak * karakteri, robots.txt dosyasında tanımlanan her kuralın sonuna eklenir. Örnek:
User-agent: Yandex
Disallow: /cgi-bin* #, "/cgi-bin" ile başlayan
# sayfalara erişimi engeller
Disallow: /cgi-bin # aynı işlemi yapar
Kuralın sonundaki * karakterini iptal etmek için $ karakterini kullanın, örneğin:
User-agent: Yandex
Disallow: /example$ #, "/example”
# yolunu engeller ancak "/example.html" dosyasına izin verir
User-agent: Yandex
Disallow: /example
# hem "/example" hem de "/example.html"
# yollarını engeller
$ karakteri, sondaki * karakterini yasaklamaz, yani:
User-agent: Yandex
Disallow: /example$ # yalnızca "/example" yolunu engeller
Disallow: /example*$ # "Disallow: /example”
# ile aynıdır, hem /example.html hem de /example yollarını engeller
# karakterinin işlenmesi
Standart uyarınca, her User-agent yönergelerinden önce boş bir satır eklemeniz gerekmektedir. # karakteri yorumları belirtir. Bu karakterden sonraki her şey, ilk satır sonuna kadar göz ardı edilir.
https://example.com/page#part_1 gibi adreslere sahip sayfalar arama botu tarafından dizine eklenmez ve https://example.com/page adresi üzerinden taranır. Dolayısıyla, yönergede sayfa adresini bağlamadan belirtmek sorun değildir.
Bu özelliği dikkate almaz ve # karakteriyle bir Disallow yönergesi yazarsanız tüm sitenin dizine eklenmesi engellenebilir. Örneğin, Disallow: /# formatındaki bir yönerge arama sistemi tarafından Disallow: / olarak (yani dizine eklemenin tamamen engellenmesi olarak) yorumlanır.
Yönergelerin nasıl yorumlandığına dair örnekler
User-agent: Yandex
Allow: /
Disallow: /
# her şeye izin verilir
User-agent: Yandex
Allow: /$
Disallow: /
# ana sayfa hariç her şey engellenir
User-agent: Yandex
Disallow: /private*html
# "/private*html",
#, "/private/test.html", "/private/html/test.aspx" vb. engellenir
User-agent: Yandex
Disallow: /private$
# yalnızca "/private" engellenir
User-agent: *
Disallow: /
User-agent: Yandex
Allow: /
# Yandex botu
# "User-agent:" içeren girişleri seçtiğinden
# her şeye izin verilir