webtrajans
tr

Robots.txt nedir ve doğru nasıl yazılır?

Robots.txt, arama motoru botlarına sitenizin hangi bölümlerini taramaları gerektiğini söyleyen küçük bir metin dosyasıdır. Tek satırlık bir hata tüm siteyi aramadan silebilir.

Güncellendi: 5 dk okuma

Her arama motoru botu bir siteyi taramadan önce önce /robots.txt dosyasına bakar. Bu dosya, “şu klasörlere girme, site haritam şurada” gibi talimatlar içeren düz bir metin dosyasıdır. Doğru kullanıldığında gereksiz sayfaların taranmasını önler ve tarama bütçesini önemli sayfalara yönlendirir. Yanlış kullanıldığında ise bir satırla tüm sitenizi arama sonuçlarından görünmez yapabilir.

Robots.txt nasıl çalışır?

  • Dosya alan adının kökünde olmalıdır: https://www.ornek.com/robots.txt. Her alt alan adı (ör. blog.ornek.com) ve her protokol (http/https) ayrı değerlendirilir.
  • Dosya adı küçük harfle robots.txt olmalı, UTF-8 düz metin olarak sunulmalıdır.
  • Google, dosyanın ilk 500 KiB’ını işler; bu boyuttan sonrası yok sayılır.
  • Kurallar tavsiye niteliğindedir. Google, Bing, Yandex gibi saygın botlar uyar; kötü niyetli botlar uymaz. Bu yüzden robots.txt bir güvenlik aracı değildir: gizli bir klasörün yolunu robots.txt’ye yazmak, aksine onu herkese duyurur.

Söz dizimi (syntax)

User-agent: *
Disallow: /admin/
Allow: /admin/public/
Sitemap: https://www.ornek.com/sitemap.xml
Yönerge Anlamı
User-agent: Kuralın hangi bot için geçerli olduğu (* = tüm botlar, Googlebot, Bingbot…)
Disallow: Taranmaması gereken yol. Boş bırakılırsa (Disallow:) hiçbir şey engellenmez
Allow: Engellenen bir klasör içinde izin verilen alt yol
Sitemap: Site haritasının tam adresi; birden fazla yazılabilir
* Joker karakter: herhangi bir karakter dizisi
$ Adresin sonu: /*.pdf$ yalnızca .pdf ile biten adresler

Önemli ayrıntılar:

  • Yollar büyük/küçük harfe duyarlıdır: /Admin/ ile /admin/ farklıdır.
  • Bir bot için özel bir User-agent grubu varsa, o bot yalnızca kendi grubuna uyar; * grubundaki kuralları birleştirmez.
  • Çakışmada Google en spesifik (en uzun) kuralı uygular; eşitlikte Allow kazanır.
  • noindex, crawl-delay gibi satırları Google robots.txt içinde desteklemez.

Söz dizimini ezberlemek yerine robots.txt oluşturucumuzla dosyanızı hazırlayabilir, robots.txt test aracıyla belirli bir URL’nin engellenip engellenmediğini kontrol edebilirsiniz.

Hazır örnekler

WordPress sitesi

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /?s=
Disallow: /search/

Sitemap: https://www.ornek.com/sitemap_index.xml

admin-ajax.php dosyasına izin vermek önemlidir; birçok tema ve eklenti ön yüzde bu dosyayı kullanır. /wp-content/ veya /wp-includes/ klasörlerini engellemeyin: Google sayfayı doğru görüntülemek için CSS ve JavaScript dosyalarına erişmek ister.

E-ticaret sitesi

User-agent: *
Disallow: /sepet
Disallow: /odeme
Disallow: /hesabim
Disallow: /*?siralama=
Disallow: /*?filtre=
Disallow: /*&fiyat=

Sitemap: https://www.ornek.com/sitemap.xml

E-ticarette filtre ve sıralama parametreleri binlerce neredeyse aynı sayfa üretebilir. Bunları engellemek tarama bütçesini ürün ve kategori sayfalarına yönlendirir. Ancak bir filtre kombinasyonunu (ör. “kırmızı elbise”) bilinçli olarak sıralatmak istiyorsanız, o sayfayı engellemeyin.

Yapay zekâ botlarını engellemek

Bazı site sahipleri içeriklerinin yapay zekâ modellerini eğitmek için toplanmasını istemez. Bunun için ilgili botların adlarıyla ayrı grup yazılabilir:

User-agent: GPTBot
Disallow: /

User-agent: Google-Extended
Disallow: /

Google-Extended, Google aramasındaki görünürlüğünüzü etkilemez; yalnızca içeriğin Google’ın yapay zekâ modellerinde kullanılmasıyla ilgilidir. Bot adları zamanla değişebileceğinden, ilgili şirketin güncel belgelerini kontrol edin.

Robots.txt ile noindex arasındaki fark

En kritik ve en çok karıştırılan konu budur:

robots.txt Disallow noindex meta etiketi
Neyi engeller? Taramayı (sayfanın okunmasını) Dizine eklenmeyi (arama sonucunda görünmeyi)
Sayfa arama sonucunda görünebilir mi? Evet, dış bağlantı varsa açıklamasız görünebilir Hayır
Nerede tanımlanır? /robots.txt Sayfanın <head> bölümü veya X-Robots-Tag başlığı

Bir sayfayı arama sonuçlarından kaldırmak istiyorsanız:

<meta name="robots" content="noindex">

ekleyin ve robots.txt’de engellemeyin. Sayfa engellenirse Google noindex etiketini hiç göremez ve sayfa dizinde kalmaya devam edebilir.

Sık yapılan hatalar

  1. Canlıya geçince Disallow: / satırını unutmak. Geliştirme ortamındaki “her şeyi engelle” dosyası canlı siteye taşınır ve site birkaç hafta içinde aramadan düşer. Bu, en pahalı robots.txt hatasıdır.
  2. CSS ve JS dosyalarını engellemek. Google sayfayı bozuk görür, mobil uyumluluk değerlendirmesi olumsuz etkilenir.
  3. Kaldırmak istediğiniz sayfayı robots.txt ile engellemek (yukarıdaki tabloya bakın).
  4. Gizli dizinleri robots.txt’ye yazmak. Dosya herkese açıktır.
  5. Büyük/küçük harf ve sondaki eğik çizgiyi gözden kaçırmak: Disallow: /blog hem /blog/ hem /blog-haberleri adreslerini engeller.
  6. Site haritası satırını unutmak. Sitemap: satırı, arama motorlarının site haritanızı bulmasının en kolay yoludur.

Tarama bütçesi ve robots.txt

Tarama bütçesi, arama motorunun belirli bir sürede sitenizde taramaya ayırdığı kaynaktır. Birkaç yüz sayfalık bir kurumsal site için genellikle sorun değildir; Google bu sayfaları rahatça tarar. Ama on binlerce ürünü, filtre kombinasyonlarını ve parametreli adresleri olan bir e-ticaret sitesinde botun zamanı değersiz sayfalarla harcanabilir ve yeni ürünler geç keşfedilir. Robots.txt bu durumda en etkili araçlardan biridir: sepet, iç arama sonuçları ve sonsuz filtre kombinasyonları gibi alanları kapatarak taramayı ürün ve kategori sayfalarına yönlendirirsiniz.

Değişikliklerden sonra test ve izleme

Robots.txt’de yaptığınız her değişiklikten sonra:

  1. Dosyayı tarayıcıda açarak yayında olduğunu doğrulayın.
  2. En önemli 5–10 URL’yi (ana sayfa, kategori, ürün, blog) test aracında kontrol edin.
  3. Search Console’daki robots.txt raporunda Google’ın dosyanın hangi sürümünü ne zaman okuduğunu görün. Google robots.txt dosyasını genellikle 24 saate kadar önbellekte tutar.
  4. Sonraki haftalarda “Sayfalar” raporunda “robots.txt tarafından engellendi” sayısını izleyin; beklenmedik bir artış, yanlışlıkla engellenen bir bölüme işaret eder.

Küçük bir kurumsal site için çoğu zaman şu kadar basit bir dosya yeterlidir:

User-agent: *
Disallow:

Sitemap: https://www.ornek.com/sitemap.xml

Robots.txt ve meta robots dışında bir üçüncü yöntem daha vardır: PDF gibi HTML olmayan dosyalarda noindex etiketi eklenemediği için sunucu, HTTP yanıtına X-Robots-Tag: noindex başlığı ekleyebilir. Bu başlığın doğru gönderildiğini HTTP başlık kontrol araçlarıyla görebilirsiniz.

Kontrol listesi

  • Dosya https://alanadi/robots.txt adresinde 200 koduyla açılıyor
  • Canlı sitede Disallow: / yok
  • CSS, JS ve görsel klasörleri engellenmemiş
  • Dizinden çıkarılacak sayfalar robots.txt yerine noindex ile yönetiliyor
  • Sitemap: satırı doğru ve tam adresi gösteriyor
  • Önemli URL’ler test aracında “izinli” görünüyor

Site haritasının kendisi için XML sitemap rehberimize bakın.

Sık sorulan sorular

Robots.txt ile bir sayfayı Google'dan kaldırabilir miyim?

Hayır. Robots.txt taramayı engeller, dizine eklenmeyi değil. Başka sitelerden bağlantı alan engelli bir sayfa, içeriği olmadan arama sonuçlarında görünebilir. Sayfayı dizinden çıkarmak için noindex kullanın ve sayfanın taranmasına izin verin.

Robots.txt dosyası nerede olmalı?

Alan adının kök dizininde, tam olarak https://ornek.com/robots.txt adresinde olmalıdır. Alt klasördeki bir robots.txt dikkate alınmaz; her alt alan adının kendi dosyası olmalıdır.

Google crawl-delay kuralını destekliyor mu?

Hayır, Googlebot crawl-delay satırını yok sayar. Bing ve Yandex gibi bazı arama motorları ise bu kuralı dikkate alır.

Robots.txt olmazsa ne olur?

Dosya yoksa (404 dönüyorsa) arama motorları sitenin tamamını tarayabileceklerini varsayar. Bu çoğu küçük site için sorun değildir, ama site haritasını belirtmek için basit bir dosya eklemek iyi bir uygulamadır.

İlgili rehberler