URL'leri robots.txt ile engelleme

Robots.txt dosyası oluşturma

Başlarken

Robots.txt dosyası, bir veya daha fazla kuraldan oluşur. Her kural belirli bir tarayıcının söz konusu web sitesindeki belirli bir dosya yoluna erişimini engeller (veya erişimine izin verir).

Aşağıda, iki kural içeren basit bir robots.txt dosyasının içeriği gösterilmektedir:

User-agent: Googlebot
Disallow: /nogooglebot/

User-agent: *
Allow: /

Sitemap: http://www.example.com/sitemap.xml

 

Açıklama:

  1. "Googlebot" tarayıcısı adlı kullanıcı aracısı, http://example.com/nogooglebot/ klasörünü veya herhangi bir alt dizinini taramamalıdır.
  2. Diğer tüm kullanıcı aracıları sitenin tamamına erişebilir. (Tam erişim sağlandığı varsayımından hareketle bu durum belirtilmese dahi sonuç aynı olacaktır.)
  3. Sitenin Site haritası dosyası, http://www.example.com/sitemap.xml adresinde bulunmaktadır.

İlerleyen bölümlerde daha ayrıntılı bir örnek sağlayacağız.

Temel robots.txt kuralları

Robots.txt dosyaları ile ilgili bazı temel kuralları burada görebilirsiniz. Sitenizde kullanılacak robots.txt dosyaları yazmak veya düzenlemek için robots.txt Test Aracı'nı deneyin. Bu araç, sitenizdeki söz dizimini ve davranışı test etmenize olanak tanır. Robots.txt dosyasının söz dizimi ilk başta göründüğünden biraz daha karmaşık olduğundan, daha sonra robots.txt dosyalarının tam söz dizimini okuyun.

Biçim ve konum

Bir robots.txt dosyası oluşturmak için neredeyse tüm metin düzenleyicilerini kullanabilirsiniz. Metin düzenleyicisi, standart ASCII veya UTF-8 metin dosyalarını oluşturabilmelidir. Kelime işlemci kullanmayın (kelime işlemciler, dosyaları genellikle özel bir biçimde kaydeder ve tarayıcılar için sorunlara neden olabilecek süslü tırnak gibi beklenmedik karakterler ekleyebilir).

Biçim ve konum kuralları:

  • Robots.txt, bir ASCII veya UTF-8 metin dosyasıdır. Başka hiçbir karaktere izin verilmez.
  • Dosya, robots.txt olarak adlandırılmalıdır.
  • Sitenizde yalnızca bir robots.txt dosyası olabilir.
  • Robots.txt dosyası, geçerli olduğu web sitesi ana makinesinin kök dizininde bulunmalıdır. Örneğin, http://www.example.com/ altındaki tüm URL'lerde taramayı kontrol etmek için robots.txt dosyası http://www.example.com/robots.txt konumuna yerleştirilmelidir. Bir alt dizine (örneğin, http://example.com/pages/robots.txt) yerleştirilemez. Web sitenizin kök dizinine nasıl erişeceğinizden emin değilseniz veya bunun için izin almanız gerekiyorsa web barındırma hizmeti sağlayıcınıza başvurun. Web sitenizin kök dizinine erişemiyorsanız, meta etiketler gibi alternatif bir engelleme yöntemini kullanın.
  • Robots.txt dosyası alt alan adları (ör. http://website.example.com/robots.txt) veya standart olmayan bağlantı noktaları (ör. http://example.com:8181/robots.txt) için geçerli olabilir.

Söz dizimi

  • Robots.txt dosyası, bir veya daha fazla kural grubundan oluşur.
  • Her kural bir veya daha fazla kullanıcı aracısını belirtir ve söz konusu aracının hangi dizinlere veya dosyalara erişip erişemeyeceğini tanımlar.
  • Kurallar yukarıdan aşağıya doğru işlenir ve kullanıcı aracısı, yalnızca bir kural grubuyla eşleşebilir. Bu, belirli bir kullanıcı aracısıyla eşleşen ilk ve en ayrıntılı kural olur.
  • Varsayılan olarak bir kullanıcı aracısının Disallow: kuralıyla engellenmeyen bir sayfayı veya dizini tarayabileceği kabul edilir.
  • Kurallar büyük/küçük harfe duyarlıdır. Örneğin, Disallow: /file.asp kuralı http://www.example.com/file.asp için geçerli olur ancak http://www.example.com/File.asp için geçerli değildir.

Robots.txt dosyalarında aşağıdaki anahtar kelimeler kullanılır:

  • User-agent: [Gerekli, her kural için bir veya daha fazla] Kuralın geçerli olduğu arama motoru robotunun (web tarayıcı yazılımı) adı. Çoğu kullanıcı aracısı, Web Robotları Veritabanı'nda veya Google kullanıcı aracısı listesinde listelenmektedir. Bir yol öneki, sonek veya dizenin tamamı için * joker karakterini destekler. Aşağıdaki örnekte olduğu gibi kullanılacak bir yıldız işareti (*) çeşitli AdsBot tarayıcıları dışındaki tüm tarayıcılarla eşleşir. Eşleşmeyen AdsBot tarayıcıların adlarının açık bir şekilde belirtilmesi gerekir. (Google tarayıcı adları listesine bakın.)
    # Block all but AdsBot crawlers
    User-agent: *
  • Disallow: [Kural başına en az bir veya daha fazla Disallow veya Allow] Kullanıcı aracısı tarafından taranmaması gereken bir dizin veya sayfa; kök alanla göreli olarak belirtilir. Bu bir sayfaysa, tarayıcıda gösterildiği şekliyle tam sayfa adı olmalıdır; bir dizinse, / işaretiyle sona ermelidir.  Yol önekleri, sonek veya dizenin tamamı için * joker karakterini destekler.
  • Allow: [Kural başına en az bir veya daha fazla Disallow veya Allow] Az önce bahsedilen kullanıcı aracısı tarafından taranması gereken bir dizin veya sayfa; kök alanla göreli olarak belirtilir. Bu parametre, izin verilmeyen bir dizindeki bir alt dizinin veya sayfanın taranmasına izin vermek üzere Disallow parametresini geçersiz kılmak için kullanılır. Bu bir sayfaysa, tarayıcıda gösterildiği şekliyle tam sayfa adı olmalıdır; bir dizinse, / işaretiyle sona ermelidir. Yol önekleri, sonek veya dizenin tamamı için * joker karakterini destekler.
  • Sitemap: [İsteğe bağlı, dosya başına sıfır veya daha fazla] Bu web sitesinin site haritasının konumu. Bu satır isteğe bağlıdır ve her biri kendi satırında yer alan birden fazla site haritası belirtebilirsiniz. Site Haritaları, Google'a tarayabileceği veya tarayamayacağı içeriğe karşılık hangi içeriği taraması gerektiğini bildirmek için iyi bir yoldur. Site haritaları hakkında daha fazla bilgi edinin.

Bilinmeyen anahtar kelimeler yoksayılır.

Bir başka örnek dosya

Robots.txt dosyası, her biri kuralların hedefini belirten bir User-agent satırıyla başlayan bir veya daha fazla kural blokundan oluşur. Burada, iki kurallı bir dosya gösterilmektedir. Her kural, satır içi yorumlarla açıklanmıştır:

# Googlebot'u example.com/directory1/... ve example.com/directory2/... dizinlerinde
# engelleyin ancak directory2/subdirectory1/... dizinine erişimine izin verin
# Sitedeki diğer tüm dizinlere varsayılan olarak izin verilir.
User-agent: googlebot
Disallow: /directory1/
Disallow: /directory2/
Allow: /directory2/subdirectory1/

# Sitenin tamamını anothercrawler adlı başka bir tarayıcının erişimine karşı engelleyin.
User-agent: anothercrawler
Disallow: /

Tam robots.txt söz dizimi

Tam robots.txt söz dizimini burada bulabilirsiniz. Robots.txt söz diziminin öğrenilmesi önem taşıyan bazı karmaşık parçaları olduğundan lütfen tüm dokümanları okuyun.

Yararlı robots.txt kuralları

Yaygın olarak uygulanan bazı yararlı robots.txt kuralları aşağıda listelenmiştir:

Kural Örnek
Web sitesinin taranmasını tümüyle reddetme. Bazı durumlarda web sitesindeki URL'lerin, taranmamış olsalar bile yine de dizine eklenebileceklerini unutmayın. Not: Bu kural, bazı AdsBot tarayıcılarıyla eşleşmez. Bu tarayıcıların adlarının açıkça belirtilmesi gerekir.
User-agent: *
Disallow: /


Dizin adından sonra düz eğik çizgi ekleyerek bir dizin ve içeriğin taranmasına izin vermeme. Gizli içeriğe erişimi engellemek için robots.txt dosyasını kullanmamanız gerektiğini unutmayın. Bunun yerine uygun kimlik doğrulama yöntemini kullanın. Robots.txt dosyasıyla taranmasına izin verilmeyen URL'ler, taranmadan dizine eklenebilir ve robots.txt dosyası başkaları tarafından görüntülenerek gizli içeriğinizin yerinin ortaya çıkmasına neden olabilir.
User-agent: *
Disallow: /calendar/
Disallow: /junk/
Tek bir tarayıcının erişimine izin verme
User-agent: Googlebot-news
Allow: /

User-agent: *
Disallow: /
Bir tarayıcı dışında tüm tarayıcıların erişimine izin verme
User-agent: Unnecessarybot
Disallow: /

User-agent: *
Allow: /

Eğik çizgiden sonra sayfayı listeleyerek tek bir web sayfasının taranmasına izin vermeme.

Disallow: /özel_dosya.html

Google Görseller'den belirli bir resmi engelleme:

User-agent: Googlebot-Image
Disallow: /resimler/kopekler.jpg

Google Görseller'den sitenizdeki tüm resimleri engelleme

User-agent: Googlebot-Image
Disallow: /

Belirli türdeki dosyaların taranmasına izin vermeme (örneğin, .gif):

User-agent: Googlebot
Disallow: /*.gif$

Sitenizin tamamının taranmasına izin vermeme; ancak bu sayfalarda AdSense reklamları gösterme; Mediapartners-Google dışındaki hiçbir web tarayıcısına izin verilmez. Bu uygulama sayfalarınızı arama sonuçlarından gizler, ancak Mediapartners-Google web tarayıcısı sitenizin ziyaretçilerine hangi reklamların görüntüleneceğine karar vermek üzere sayfaları analiz etmeye devam eder.

User-agent: *
Disallow: /

User-agent: Mediapartners-Google
Allow: /
Belirli bir dize ile biten URL'leri eşleştirme; $ kullanın. Örneğin, bu örnek kod .xls ile biten tüm URL'leri engeller:
User-agent: Googlebot
Disallow: /*.xls$
Bu makale faydalı mıydı?
Bunu nasıl iyileştirebiliriz?