robots.txt ile noindex neden birbirini iptal eder?

· Okami

Bu yazı kendi sitemizde ölçülen bir vakaya dayanıyor: Search Console uyarısı, etkilenen adresler ve yapılan düzeltme gerçek. Dosyanın ilgili satırları olduğu gibi paylaşıldı.

Bir sayfanın arama sonuçlarında çıkmasını istemiyorsanız iki ayrı aracınız var ve ikisi aynı şeyi yapmıyor. robots.txt "bu adresi çekme" der; sayfanın içindeki noindex etiketi ise "çek ama listeleme" der.

İkisini aynı sayfaya birlikte uygulamak sezgisel olarak daha güvenli görünüyor. Değil. Çekmeyi yasakladığınız anda arama motoru sayfanın içine bakamıyor, dolayısıyla oradaki noindex etiketini hiç göremiyor. İkinci talimat ulaşılamaz kalıyor.

Bunu kendi sitemizde yaşadık. Aşağıda uyarının nasıl geldiğini, hangi satırın hataya sebep olduğunu ve yerine ne koyduğumuzu bulacaksınız.

Search Console tam olarak ne diyordu?

Gelen uyarı şuydu: bazı sayfalar robots.txt yüzünden indekslenmiyor. Rapordaki adresler giriş ve kayıt sayfalarımızdı.

İlk bakışta sorun görünmüyordu, çünkü o iki sayfanın arama sonuçlarında çıkmasını zaten istemiyorduk. Uyarının söylediği şey daha ince: sayfalar indekslenmiyordu ama temiz bir şekilde de düşmüyordu. Arada, arama motorunun ne yapacağına karar veremediği bir yerde duruyorlardı.

İki talimat neden birbirini iptal eder?

Çünkü noindex etiketi sayfanın İÇİNDE yaşıyor. Arama motorunun onu görebilmesi için önce sayfayı çekmesi gerekiyor; robots.txt tam da bunu yasaklıyor.

Bizdeki hâli buydu:

  • robots.txt: Disallow: /login
  • Sayfanın head bölümü: meta name="robots" content="noindex, nofollow"
  • Sonuç: engel görüldü, sayfa çekilmedi, etiket hiç okunmadı

Engellenen sayfa yine de listelenebilir mi?

Evet, ve mesele burada. Arama motoru bir adresi içeriğini hiç görmeden de bilebiliyor: başka bir sayfa oraya bağlantı vermişse adresi zaten keşfetmiş oluyor. İçeriğe bakamadığı için de elinde yalnız adres ve bağlantı metni kalıyor.

Bizim durumumuzda ana sayfa giriş ve kayıt sayfalarına açıkça bağlantı veriyordu ("Giriş yap", "Ücretsiz dene"). Yani engel, tam olarak engellemek istediğimiz şeyi engellemiyordu; yalnız arama motorunun doğru kararı vermesini imkânsız kılıyordu.

Hangi sayfada hangisini kullanmalı?

Kural sandığınızdan basit ve tek bir soruya bakıyor: bu adrese sitenizin herhangi bir yerinden bağlantı veriyor musunuz?

  • Bağlantı VERİYORSANIZ (giriş, kayıt, filtreli liste sayfaları): robots.txt'te serbest bırakın, sayfaya noindex koyun. Arama motoru çeker, etiketi görür, sayfayı düşürür ve bir daha rapor etmez.
  • Bağlantı VERMİYORSANIZ (yönetim paneli, API uçları, iç betikler): robots.txt'te engelleyin. Bağlantı olmadığı için keşfedilmiyor zaten; engel hem çekme maliyetini hem içerik ifşasını kesiyor.

Biz ne değiştirdik?

Giriş ve kayıt sayfalarını robots.txt'ten çıkardık. Listeden çıkarmak burada serbest bırakmak demek, çünkü dosyada her şeyi kapatan bir Disallow satırı yok.

Buna karşılık parola akışının dört sayfası (şifremi unuttum, doğrulama e-postasını yeniden gönder, e-posta doğrulama, parola sıfırlama) engelli kaldı. Sebebi kuralın kendisi: onlara hiçbir yerden bağlantı verilmiyor, üstelik giriş sayfasının etiketi nofollow taşıdığı için oradan da keşfedilmiyorlar.

Panel, API uçları ve iç betikler de aynı gerekçeyle engelli kaldı.

Yapay zekâ motorlarında bedeli neden daha ağır?

Klasik aramada yanlış bir engel size sıralama kaybettirir; sayfa listede aşağı düşer ama site ayakta kalır.

Üretken motorlarda bedel daha sert. Motor sayfanızı çekemezse cevabında sizi kaynak gösteremez, çünkü gösterecek bir içeriği yoktur. Sıralama kaybı değil, cevaptan tamamen silinme söz konusu.

GPTBot, OAI-SearchBot, PerplexityBot, ClaudeBot ve Google-Extended gibi tarayıcıları topluca engellemek de aynı sınıfa giriyor ve sahada en sık gördüğümüz tek hata bu: site Google'da normal görünmeye devam ediyor, buna karşılık yapay zekâ cevaplarından tamamen çıkıyor. Belirti olmadığı için de aylarca fark edilmiyor.

Kendi sitenizde nasıl kontrol edersiniz?

Beş dakikalık bir kontrol yeterli.

  • robots.txt'inizdeki her Disallow satırı için sorun: bu adrese sitemin herhangi bir yerinden bağlantı veriyor muyum?
  • Cevap evetse o satırı kaldırın ve sayfaya noindex koyun.
  • Cevap hayırsa engel yerinde kalsın.
  • Sitemap'inizde robots.txt ile engellenmiş bir adres olmadığından emin olun; bu ikisi doğrudan çelişiyor.
  • AI tarayıcılarını topluca engelleyen bir satır var mı diye bakın; varsa bunun bilinçli bir karar olduğundan emin olun.
  • Search Console'da uyarı aldıysanız düzeltmeden sonra yeniden doğrulama başlatın.

İlgili rehberler

Tüm yazılar