- Konu sahibi
- #1
robots.txt ile arama motoru botlarının belirli URL'leri taramasını engelleyebilirsiniz; ancak bu dosya tek başına bir URL'nin arama sonuçlarından kesin olarak silinmesini sağlamaz. Amaç taramayı durdurmaksa Disallow kullanılır. Amaç sayfanın dizine girmesini engellemekse sayfa erişilebilir bırakılmalı ve noindex yönergesi kullanılmalıdır.robots.txt nasıl çalışır?
Dosya, alan adının kök dizininde ve tam olarak
/robots.txt adresinde bulunur. Protokole uyan tarayıcılar, bu dosyadaki kendi gruplarına ait kuralları dikkate alır. Kötü niyetli istemcilerin bu talimata uyacağı varsayılamaz. Kurallar yalnız dosyanın sunulduğu protokol, ana makine adı ve port için geçerlidir. Örneğin /ozel/ kuralı, bu dizin altındaki URL'lerin taranmasını engeller.Robots.txt erişim kontrolü değildir. Yasaklanan dosya veya dizin doğrudan açılabiliyorsa kullanıcılar erişmeye devam eder. Ayrıca başka sayfalardan bağlantı verilen engelli bir URL, içeriği taranamasa bile arama motorunun URL olarak bilmesine ve bazı durumlarda sonuçlarda göstermesine neden olabilir.
Bir dizini kapatıp içindeki dosyayı açık bırakma
Aşağıdaki kurgu örneğinde amaç bir engeli kaldırmak değil,
/ozel/ altını bilinçli biçimde taramaya kapatırken tek bir belgeyi açık bırakmaktır. example.com ve yolları kendi sitenize uyarlayın:
Kod:
User-agent: *
Disallow: /ozel/
Allow: /ozel/kamuya-acik.pdf
Disallow: /arama/
Sitemap: https://example.com/sitemap.xml
Uygulamak için:
- Metni düz metin olarak
robots.txtadıyla kaydedin. Kuralları ayrı satırlara yazın; dosyanın HTML sayfası veya zengin metin olarak kaydedilmediğini kontrol edin. - Dosyayı alan adının web kök dizinine yerleştirin. Örnek adres
https://example.com/robots.txtolmalıdır;/blog/robots.txtgeçerli konum değildir. - Dosyanın web sunucusu tarafından başarıyla sunulduğunu kontrol edin:
curl -i https://example.com/robots.txt. Beklenen sonuç, başarılı bir HTTP yanıtı ve gövdede yazdığınız kurallardır. - Kapalı olması gereken
/ozel/rapor.pdfile açık kalması gereken/ozel/kamuya-acik.pdfyollarını ayrı ayrı değerlendirin. Google daha uzun, daha özel eşleşmeyi kullanır; eşit uzunlukta çelişen Allow ve Disallow durumunda daha az kısıtlayıcı kuralı seçer. - Kuralı ekledikten sonra, tarama gerektiren sayfalarda yanlışlıkla engel oluşmadığını ve önemli CSS, JavaScript veya görsel yollarının kapatılmadığını kontrol edin.
Google, robots.txt için
404 yanıtını geçerli dosya yokmuş gibi ele alır ve tarama kısıtlaması varsaymaz. 5xx yanıtları veya sürekli yönlendirmeler de güvenilir bir robots.txt sunumu değildir. Önbellek nedeniyle değişikliğin etkisi hemen görünmeyebilir; önce dosyanın doğru içerikle sunulduğunu doğrulayın.Tarama engeli mi, dizinden çıkarma mı?
Hedefi doğru seçmek, en sık yapılan hatayı önler:
| Hedef | Uygun yöntem | Sonuç |
|---|---|---|
| Botların URL'yi taramaması | robots.txt içinde Disallow | Uyumlu botun taramaması istenir; gerçek erişim engellenmez ve dizinden çıkarma garanti edilmez. |
| Sayfanın arama sonuçlarına girmemesi | Sayfada noindex veya yanıt başlığında X-Robots-Tag: noindex | Bot sayfayı görebildiğinde dizine almaması istenir. |
| Gizli veriyi korumak | Kimlik doğrulama ve sunucu erişim kontrolü | Yetkisiz erişim engellenir; robots.txt bunun yerine geçmez. |
Dizinde görünen bir sayfayı kaldırmak istiyorsanız önce botun sayfaya erişebilmesini sağlayın, ardından sayfaya
noindex ekleyin veya sunucudan X-Robots-Tag: noindex gönderin. Sayfa robots.txt ile engelliyse bot bu yönergeyi okuyamaz. Acil kaldırma gereken durumlarda arama motorunun kendi geçici kaldırma aracını ayrıca değerlendirin; bu araç kalıcı çözüm değildir.Sık yapılan hatalar
- Tüm siteyi yanlışlıkla kapatmak:
Disallow: /kuralı, ilgili bot için kökten itibaren her yolu engeller. Canlı siteye göndermeden önce satırın yalnız hedef dizini kapsadığını kontrol edin. - Dosyayı yanlış konuma koymak: Alt dizindeki robots.txt dosyası alan adının tamamını yönetmez.
- URL yolu yerine dosya sistemi yolu yazmak:
/var/www/site/ozel/değil, tarayıcıda görülen/ozel/yolu kullanılmalıdır. - robots.txt ile güvenlik sağlamaya çalışmak: Gizli içerikleri sunucu yetkilendirmesiyle koruyun.
- noindex sayfasını aynı anda engellemek: Dizin dışı bırakma hedefleniyorsa botun noindex yönergesini okuyabilmesi için sayfayı taramaya kapatmayın.
Sık sorulan sorular
robots.txt dosyasında yorum satırı kullanılabilir mi?
Yaygın botlar
# ile başlayan satırları yorum olarak görür. Yine de kural satırlarını sade tutmak ve açıklamaları ayrı yorum satırlarına yazmak, yazım hatalarını teşhis etmeyi kolaylaştırır.robots.txt ile belirli bir botu engellemek mümkün mü?
Evet.
User-agent: * yerine ilgili botun tanımlayıcısını yazarak ayrı bir grup oluşturabilirsiniz. Ancak botların tanımlayıcılarına güvenmek erişim güvenliği sağlamaz; kötü niyetli istemciler bu kurallara uymayabilir.Sonundaki eğik çizgi hangi adresleri etkiler?
Disallow: /ozel/, /ozel/rapor.pdf yoluyla eşleşir; /ozellikler yolu aynı öneke sahip değildir. Daha geniş /ozel öneki ise /ozellikler dahil istenmeyen yolları da eşleştirebilir. Bu nedenle yalnız görünen klasör adına değil tam URL yoluna bakın.