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:
User-agent: Yandex
Disallow: / # tüm sitenin taranmasını yasaklar
User-agent: Yandex
Disallow: /catalogue # adresleri /catalogue ile başlayan sayfaların taranmasını yasaklar
User-agent: Yandex
Disallow: /page? # URL’leri parametre 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:
User-agent: Yandex
Allow: /cgi-bin
Disallow: /
# “/cgi-bin” ile başlayan sayfalar hariç her şeyin indirilmesini yasaklar
# “/cgi-bin” ile başlar
User-agent: 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:
User-agent: Yandex
Allow: /
İzin Ver: /catalog/auto
Yasakla: /catalog
# Sıralı robots.txt:
User-agent: Yandex
Allow: /
Yasakla: /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:
User-agent: Yandex
İzin ver: /archive
Disallow: /
# “/archive” içeren her şeye izin verir, geri kalanı yasaktır
User-agent: Yandex
İzin ver: /obsolete/private/*.html$ # html dosyalarına izin verir
# “/obsolete/private/...” içinde
Yasakla: /*.php$ # sitedeki tüm “*.php” dosyalarını yasaklar
Yasakla: /*/private/ # “/private/” içeren tüm alt yolları yasaklar
# ancak yukarıdaki İzin ver,
# bu yasaklamanın bir parçasıdır
Yasakla: /*/old/*.zip$ # “/old/” içinde bulunan tüm “*.zip” dosyalarını yasaklar
#
User-agent: Yandex
Yasakla: /add.php?*user=
# “user” parametresi ile “add.php?” betiklerini yasaklar
Parametresiz İzin ver ve Yasakla direktifleri
Direktifler parametre içermiyorsa, robot verileri şu şekilde işler:
User-agent: Yandex
Yasakla: # İzin ver: / ile aynı
User-agent: 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:
User-agent: Yandex
Disallow: /cgi-bin/*.aspx # “/cgi-bin/example.aspx” yasaklar
# ve “/cgi-bin/private/test.aspx”
Disallow: /*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:
User-agent: Yandex
Disallow: /cgi-bin* # “/cgi-bin” ile başlayan sayfalara erişimi engeller
# “/cgi-bin” ile başlar
Disallow: /cgi-bin # aynı
Kuralın sonundaki *
karakterini iptal etmek için $
karakterini kullanın, örneğin:
User-agent: Yandex
Disallow: /example$ # “/example” yasaklar,
# ancak “/example.html” izin verir
User-agent: Yandex
Disallow: /example # hem “/example”
# hem de “/example.html” yasaklar
$
karakteri, sonundaki *
karakterini yasaklamaz, yani:
User-agent: Yandex
Disallow: /example$ # sadece “/example” yasaklar
Disallow: /example*$ # “Disallow: /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
User-agent: Yandex
Allow: /
Disallow: /
# her şeye izin verilir
User-agent: Yandex
Allow: /$
Disallow: /
# ana sayfa hariç her şey yasak
User-agent: Yandex
Disallow: /private*html
# “/private*html” yasaklar,
#, “/private/test.html”, “/private/html/test.aspx”, vb.
User-agent: Yandex
Disallow: /private$
# sadece “/private” yasaklar
User-agent: *
Disallow: /
User-agent: Yandex
Allow: /
# çünkü Yandex botu
# “User-agent:” içeren girişleri seçer,
# her şeye izin verilir