Yasakla ve İzin Ver direktifleri
Disallow
Bu direktifi, 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 direktif seçerken, adresleri GET parametreleri içeriyorsa, Disallow yerine Clean-param direktifini 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:
Kullanıcı temsilcisi: Yandex
İzin verme: / # sitenin tamamının taranmasını yasaklar
Kullanıcı temsilcisi: Yandex
İzin verme: /catalogue # adresleri /catalogue ile başlayan sayfaların taranmasını yasaklar
Kullanıcı temsilcisi: Yandex
İzin verme: /page? # URL’lerinde parametreler içeren sayfaların taranmasını yasaklar
İzin Ver
Bu direktif, bir sitenin bölümlerinin veya bireysel sayfalarının taranmasına izin verir.
Örnekler:
Kullanıcı temsilcisi: Yandex
İzin ver: /cgi-bin
İzin verme: /
# “/cgi-bin” ile başlayan sayfalar hariç her şeyin indirilmesini yasaklar
#
Kullanıcı temsilcisi: Yandex
İzin ver: /file.xml
# file.xml dosyasının indirilmesine izin verir
Not
Boş satır aralıkları Kullanıcı-ajan
, Yasakla
ve İzin ver
direktifleri arasında izin verilmez.
Direktifleri birleştirme
İzin ver
ve Yasakla
direktifleri, ilgili Kullanıcı-ajan
bloğundan URL ön eki uzunluğuna göre (kısadan uzuna) sıralanır ve sırayla uygulanır. Birden fazla direktif belirli bir site sayfasıyla eşleşirse, robot sıralı listedeki sonuncusunu seçer. Bu şekilde, robots.txt
dosyasındaki direktiflerin sırası, robot tarafından nasıl kullanıldıklarını etkilemez.
Not
Aynı uzunlukta ön ekleri olan iki direktif arasında bir çakışma varsa, İzin ver
direktifi öncelik kazanır.
# Kaynak robots.txt:
Kullanıcı temsilcisi: Yandex
İzin ver: /
İzin ver: /catalog/auto
İzin verme: /catalog
# Sıralı robots.txt:
Kullanıcı temsilcisi: Yandex
İzin ver: /
İzin verme: /catalog
İzin ver: /catalog/auto
# “/catalog” ile başlayan sayfaların indirilmesini yasaklar,
# ancak “/catalog/auto” ile başlayan sayfaların indirilmesine izin verir.
Yaygın örnek:
Kullanıcı temsilcisi: Yandex
İzin ver: /archive
İzin verme: /
# “/archive” içeren her şeye izin verir, geri kalanı yasaktır
Kullanıcı temsilcisi: Yandex
İzin ver: /obsolete/private/*.html$ # “/obsolete/private/...” içindeki html dosyalarına izin verir
İzin verme: /*.php$ # bu sitedeki tüm “*.php” dosyalarını yasaklar
İzin verme: /*/private/ # “/private/” içeren tüm alt yolları yasaklar
# ancak yukarıdaki İzin ver kısmı bu yasağın bir kısmını geçersiz kılar
İzin verme: /*/old/*.zip$ # “/old/” içeren tüm “*.zip” dosyalarını yasaklar
Kullanıcı temsilcisi: Yandex
İzin verme: /add.php?*user=
# “user” parametresi ile “add.php?” scriptlerini yasaklar
Parametresiz İzin ver ve Yasakla direktifleri
Direktifler parametre içermiyorsa, robot verileri şu şekilde işler:
Kullanıcı temsilcisi: Yandex
İzin verme: # aynı “İzin ver: /”
Kullanıcı temsilcisi: Yandex
İzin ver: # bot tarafından dikkate alınmaz
Özel karakterler * ve $ kullanımı
İzin ver ve Yasakla direktiflerinin yollarını belirtirken *
ve $
özel karakterlerini belirli düzenli ifadeler ayarlamak için kullanabilirsiniz.
*
karakteri herhangi bir karakter dizisini (veya hiç karakteri) belirtir. Örnekler:
Kullanıcı temsilcisi: Yandex
İzin verme: /cgi-bin/*.aspx # “/cgi-bin/example.aspx” ve “/cgi-bin/private/test.aspx” yasaklar
İzin verme: /*private # hem “/private” hem de “/cgi-bin/private” yasaklar
Varsayılan olarak, *
karakteri, robots.txt
dosyasında tanımlanan her kuralın sonuna eklenir. Örnek:
Kullanıcı temsilcisi: Yandex
İzin verme: /cgi-bin* # “/cgi-bin” ile başlayan sayfalara erişimi engeller
İzin verme: /cgi-bin # aynı
Kuralın sonundaki *
karakterini iptal etmek için $
karakterini kullanın, örneğin:
Kullanıcı temsilcisi: Yandex
İzin verme: /example$ # “/example” yasaklar,
# ancak “/example.html” izin verir
Kullanıcı temsilcisi: Yandex
İzin verme: /example # hem “/example” hem de “/example.html” yasaklar
$
karakteri, sonundaki *
karakterini yasaklamaz, yani:
Kullanıcı temsilcisi: Yandex
İzin verme: /example$ # sadece “/example” yasaklar
İzin verme: /example*$ # “İzin verme: /example” ile aynı
# hem /example.html hem de /example yasaklar
# karakterinin işlenmesi
Standart uyarınca, her User-agent direktifinden ö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 dizinlenmez ve https://example.com/page
adresinde taranır. Dolayısıyla, direktifte sayfa adresini bağlamadan belirtmek sorun değildir.
Bu özelliği dikkate almaz ve #
karakteri ile bir disallow direktifi yazarsanız, tüm sitenin dizinlenmesini engelleyebilir. Örneğin, Disallow: /#
biçimindeki bir direktif, arama sistemi tarafından Disallow: /
olarak yorumlanır, yani tam bir dizinleme yasağı.
Direktiflerin nasıl yorumlandığına dair örnekler
Kullanıcı temsilcisi: Yandex
İzin ver: /
İzin verme: /
# her şeye izin verilir
Kullanıcı temsilcisi: Yandex
İzin ver: /$
İzin verme: /
# ana sayfa hariç her şey yasaktır
Kullanıcı temsilcisi: Yandex
İzin verme: /private*html
# “/private*html”, “/private/test.html”, “/private/html/test.aspx”, vb. yasaklar
Kullanıcı temsilcisi: Yandex
İzin verme: /private$
# sadece “/private” yasaklar
Kullanıcı temsilcisi: *
İzin verme: /
Kullanıcı temsilcisi: Yandex
İzin ver: /
# Yandex botu “Kullanıcı temsilcisi:” içeren girişleri seçtiği için
# her şeye izin verilir