İletişim

X-Robots-Tag Nedir?

Kısa tanım

X-Robots-Tag, robots meta etiketindeki yönergelerin HTML yerine HTTP yanıt başlığıyla gönderilmesini sağlayan başlıktır. PDF, görsel, video gibi HTML olmayan dosyalarda dizine ekleme ve gösterim kurallarını uygulamanın yoludur; sunucu ya da CDN düzeyinde dosya türüne, dizine veya alan adının tamamına toplu kural tanımlamayı da mümkün kılar.

Diğer adları: X-Robots-Tag başlığı, robots HTTP başlığı, X-Robots başlığı

PDF yanıtındaki X-Robots-Tag noindex başlığının tarayıcı bot tarafından okunup dosyayı dizin dışında bıraktığını gösteren diyagram

Başlığın yapısı

X-Robots-Tag, sunucunun yanıtında diğer HTTP başlıklarıyla birlikte gelir. Bir PDF dosyası için tipik yanıt şöyle görünür:

HTTP/1.1 200 OK
Content-Type: application/pdf
X-Robots-Tag: noindex, nofollow

Birden fazla kural aynı başlıkta virgülle ya da ayrı başlık satırlarıyla verilebilir. Kuralın başına tarayıcı adı eklenirse yalnızca o tarayıcıyı bağlar; başlık adı, tarayıcı adı ve değerler büyük-küçük harfe duyarlı değildir:

X-Robots-Tag: googlebot: nofollow
X-Robots-Tag: otherbot: noindex, nofollow

Kullanılabilecek yönergeler meta robots etiketiyle aynıdır; fark yalnızca taşıyıcıdadır.

Meta etiketin yetmediği yerler

  • HTML olmayan dosyalar: PDF katalogları, Word belgeleri, görseller ve videoların <head> bölümü yoktur. Bu dosyaları sonuçlardan uzak tutmanın tek yolu başlıktır.
  • Toplu kurallar: Bir dizindeki binlerce dosyaya ya da belirli bir uzantıya tek satırla kural uygulamak, şablonlara tek tek etiket eklemekten daha güvenlidir.
  • Test ortamları: Staging ortamının tamamına sunucu düzeyinde noindex eklemek, uygulama koduna dokunmadan koruma sağlar. Yine de en sağlam çözüm bu ortamları parolayla kapatmaktır.
  • Uygulama çıktıları: Herkese açık JSON uç noktaları ya da dışa aktarılan dosyalar gibi aranması anlamsız yanıtlar.

nginx ve Apache örnekleri

nginx'te tüm PDF dosyaları için:

location ~* \.pdf$ {
    add_header X-Robots-Tag "noindex, nofollow" always;
}

nginx'te iki ayrıntı sık atlanır. Birincisi, add_header varsayılan olarak yalnızca 200, 301, 302, 304 gibi belirli durum kodlarında eklenir; always parametresi başlığı her yanıta ekler. İkincisi, bir location bloğunda tek bir add_header tanımlandığında üst seviyedeki add_header satırları o blokta miras alınmaz; güvenlik başlıkları sessizce kaybolabilir. Ayrıntılar nginx headers modülü belgesindedir.

Apache'de (mod_headers etkinken) aynı kural:

<Files ~ "\.pdf$">
  Header set X-Robots-Tag "noindex, nofollow"
</Files>

Doğrulama

Başlık sayfa kaynağında görünmediği için "Kaynağı görüntüle" ile kontrol edilemez. Komut satırından yanıt başlıklarına bakmak en hızlı yoldur:

curl -sI https://ornek.com/katalog.pdf | grep -i x-robots-tag

Tarayıcıdaki geliştirici araçlarının Ağ (Network) sekmesi ve Search Console'daki URL Denetimi de başlığı gösterir. SEO Analiz Aracı, HTTP başlığından gelen noindex kuralını ayrı bir bulgu olarak raporlar.

Sık yapılan hatalar

  • Ortak yapılandırmadan sızan kural: Staging için yazılan başlık, paylaşılan bir yapılandırma dosyası üzerinden canlı siteye de uygulanır.
  • Dosyayı robots.txt ile de engellemek: Engellenen dosya taranmadığı için başlık hiç okunmaz. robots.txt ile X-Robots-Tag aynı URL'de birlikte kullanılmamalıdır.
  • Meta etiketle çelişmek: HTML sayfada başlık noindex, meta etiket index diyorsa kısıtlayıcı olan geçerli olur ve sayfa dizine girmez.
  • CDN katmanını unutmak: Başlık CDN veya ters proxy kurallarıyla eklenmiş ya da kaldırılmış olabilir; kontrolü sunucuda değil, ziyaretçinin gördüğü yanıtta yapın.

İlgili terimler

← Sözlüğe dön