Kısa cevap: robots.txt’teki Disallow taramayı, noindex (bir meta robots etiketi ya da X-Robots-Tag başlığı) dizine eklemeyi, rel="nofollow" ise bir bağlantıdan link değerinin akıp akmayacağını denetler. Üçü de farklı bir aşamaya etki eder; bu yüzden birbirinin yerine geçmez — taramayı engellemek bir sayfayı Google’dan kaldırmakla aynı şey değildir, ikisi de bir bağlantının aktardığı PageRank’i yönetmez.
Üç aşama, üç ayrı direktif
Bu direktiflerle yapılan neredeyse her hata, onları eş anlamlı sanmaktan kaynaklanır. Değildirler. Bir arama motoru bir adresi üç ayrı aşamada işler ve her direktif tam olarak bunlardan birine müdahale eder:
- Tarama — bot sayfayı hiç getirebilir mi? robots.txt’teki
Disallowile yönetilir. - Dizine ekleme — getirildikten sonra sayfa saklanıp sonuçlarda gösterilebilir mi? Bir
<meta name="robots">etiketindeki ya da birX-Robots-TagHTTP başlığındakinoindexile yönetilir. - Link değeri akışı — sıralama sinyali (PageRank) belirli bir bağlantıdan geçmeli mi? Bağlantı özniteliği
rel="nofollow"ile, yanınasponsoredveugcakrabalarıyla yönetilir.
Bu hattı aklınızda tutun — önce tara, sonra dizine ekle, sonra sırala — ve rehberin geri kalanı yerine oturur. Aşağıda ele alınan en yıkıcı hata, tarama aşamasına ait bir aracı dizine ekleme aşamasındaki bir soruna doğrultmaktır. Bu zincirdeki ilk dosyanın tüm mekaniğini merak ediyorsanız robots.txt rehberimiz bu yazının tamamlayıcısıdır.
Disallow: taramayı durdurur, dizine eklemeyi değil
Disallow, robots.txt dosyanızda bir User-agent bloğuna bağlı bir satırda yaşar; örneğin Disallow: /sepet/. Uyumlu bir bota eşleşen adresleri getirmemesini söyler. İşinin tamamı budur. Kritik nokta: Google’a sayfayı dizininden çıkarmasını söylemez. Taramaya kapatılmış bir adres, Google onu dış ya da iç bağlantılar üzerinden keşfettiyse yine de sonuçlarda görünebilir — sadece açıklama metni olmadan ve çoğu zaman "Bu sayfa hakkında bilgi yok" etiketiyle çıkar.
Disallow’un doğru kullanım amacı tarama erişimini ve bütçesini denetlemektir: botları sonsuz filtreli gezinme alanlarından, site içi arama sonuç sayfalarından, yönetim yollarından ya da asla getirilmesini istemediğiniz uç noktalardan uzak tutmak. Kapıdaki bir fedaidir, bir silgi değil. Büyük sitelerde bu gerçek bir tarama bütçesi kaldıracıdır ama amacınız "bunu Google’dan çıkar" olduğu an yanlış araçtır. Yazdığınız her kuralı Robots.txt Test Aracı, ile doğrulayın; çünkü tek bir kaçak joker karakter, niyet ettiğinizden çok daha fazlasını engelleyebilir. Temiz kuralları sıfırdan üretmek için de Robots.txt Oluşturucu, kullanın.
noindex: bir sayfayı dizinden kaldırır
Bir sayfayı arama sonuçlarının dışında tutan direktif aslında noindex’tir. Şunu söyler: bu sayfayı tarayabilirsin ama saklama ya da gösterme. İki yerden birinde yaşar — HTML <head> içinde <meta name="robots" content="noindex"> olarak ya da bir HTTP yanıt başlığı olarak X-Robots-Tag: noindex biçiminde. Başlık sürümü, <head> ekleyemeyeceğiniz PDF, görsel ya da tablo gibi HTML olmayan dosyalar için doğru seçimdir.
Vazgeçilmez koşul şudur: Google’ın noindex’i görebilmesi için sayfayı tarayabilmesi gerekir. Direktif yanıtın içinde yaşadığından, botun onu okuyabilmesi için yanıtı getirmesi şarttır. İşte bu tek gerçek, bir sonraki bölümdeki klasik tuzağın kökenidir. noindex’i teşekkür sayfaları, site içi arama sonuçları, ince etiket ya da arşiv sayfaları ve tamamen görünmez olmasını istediğiniz hazırlık ortamı içerikleri için kullanın. Etiketin gerçekten var ve okunabilir olduğunu Meta Etiket Analizcisi, ile doğrulayın; sitenizin tamamını yanlışlıkla noindex almış sayfalar için de Teknik Site Denetimi (Tarayıcı), ile tarayın.
nofollow, sponsored ve ugc: link değeri denetimi
rel bağlantı öznitelikleri tamamen farklı bir eksende çalışır: mevcut sayfanın taranması ya da dizine eklenmesi hakkında hiçbir şey söylemezler. Bağlantı verdiğiniz sayfayla ilişkinizi tanımlarlar. rel="nofollow", Google’a o bağlantıdan sıralama değeri geçirmemesini ve onu editoryal bir onay saymamasını söyler. Google bunu 2019’dan beri katı bir komut değil bir ipucu olarak okur ve iki özel değer daha ekledi:
rel="sponsored"— ücretli veya reklam bağlantıları için, satış ortaklığı (affiliate) adresleri dahil. Karşılığında ödeme aldığınız her şey için doğru etiket budur.rel="ugc"— blog yorumları ve forum gönderileri gibi kullanıcı tarafından üretilen içerik için; her bağlantıya kefil olamayacağınız yerlerde.rel="nofollow"— genel amaçlı "bunu onaylamıyorum" değeri; diğerleri uymadığında hâlâ uygundur.
Bunların hiçbiri hedef sayfayı Google’dan kaldırmaz ve hiçbiri kendi sayfanızın taranmasını ya da dizine eklenmesini durdurmaz. Yalnızca güven ve PageRank’in dışarı nasıl aktığını biçimlendirirler. Bunları ücretli yerleşimlerde, satış ortaklığı bağlantılarında, güvenilmeyen kullanıcı gönderimlerinde ve düşük güvenli referanslarda kullanın — ayrıca PageRank biriktirmek için yapılan site içi "nofollow yontma" taktiğinin on yılı aşkın süredir işe yaramadığını unutmayın.
Klasik tuzak: noindex demek isterken Disallow demek
Search Console’u "Dizine eklendi, ancak robots.txt tarafından engellendi" uyarılarıyla dolduran hata tam da budur. Biri bir sayfanın Google’dan gitmesini ister, robots.txt’e Disallow: /o-sayfa/ ekler. Kararlı bir hamle gibi görünür ama geri teper. İşte olaylar zinciri:
- Sayfaya bir
noindexetiketi koyarsınız ve onuDisallowile engellersiniz — ya da etiketi tamamen atlayıp yalnızca engele güvenirsiniz. - Adres taramaya kapatıldığından Google onu hiç getirmez, dolayısıyla içindeki hiçbir
noindextalimatını asla görmez. - Dış ya da iç bağlantılar hâlâ o adrese işaret eder; yani Google onun var olduğunu bilir.
- Google o bağlantılardan çıplak adresi dizine ekler — aramada inatla kalan, açıklamasız bir sonuç.
Çözüm, içgüdünüzü tersine çevirmektir. Bir sayfayı kaldırmak için taramaya izin verin ve noindex ekleyin. Google sayfayı getirsin, etiketi okusun ve düşürsün. Ancak sayfa dizinden çıktıktan sonra — haftalar sonra — tarama bütçesi de kazanmak istiyorsanız bir Disallow eklemek güvenlidir. Amaç "bunu asla getirme" olduğunda Disallow’a, "bunu asla gösterme" olduğunda noindex’e uzanın. Birbirlerinin yedeği değildirler; aynı adreste birlikte kullanıldıklarında etkin biçimde birbirlerini iptal ederler.
Karar tablosu: hedeften direktife
Hangi kaldıracı çekeceğinizden emin değilseniz, istediğiniz sonuçtan başlayıp direktife doğru geriye çalışın:
| Hedefiniz | Bunu kullanın | Nerede yaşar |
|---|---|---|
| Bir sayfayı Google sonuçlarının dışında tutmak | noindex | <meta name="robots"> ya da X-Robots-Tag |
| Botların bir bölümü getirmesini durdurmak (tarama bütçesi) | Disallow | robots.txt satırı |
| HTML olmayan bir dosyayı (PDF) aramadan gizlemek | noindex | X-Robots-Tag HTTP başlığı |
| Bir bağlantıdan sıralama değeri geçirmemek | rel="nofollow" | <a> bağlantı özniteliği |
| Ücretli veya satış ortaklığı bağlantısını işaretlemek | rel="sponsored" | <a> bağlantı özniteliği |
| Kullanıcının gönderdiği bir bağlantıyı işaretlemek | rel="ugc" | <a> bağlantı özniteliği |
| Yinelenen adreslerin tercih edilen sürümünü göstermek | canonical etiketi | <link rel="canonical"> |
Son satıra dikkat: asıl sorun istenmeyen sayfalar değil de yinelenen veya parametre yüklü adreslerse, doğru cevap çoğu zaman bu üçünden biri değil bir canonical’dır. canonical etiketleri rehberimiz onun yerine ne zaman ona uzanacağınızı tam olarak anlatır.
Direktifleri doğru birleştirmek
Hattı gözettiğiniz sürece direktifler temiz biçimde bir araya gelir. Güvenli, yaygın bileşimler şunlardır:
noindex+follow— bir sayfayı sonuçların dışında tutun ama dışa giden bağlantılarının değeri geçirmesine izin verin. Dizine eklemek istemediğiniz ama bağlantıları önemli olan sayfalama sayfaları için iyidir.- tarama açıkken
noindex— herhangi bir sayfayı dizinden çıkarmanın standart, doğru yolu. Aynı adreste asla birDisallowile eşleştirmeyin. - zaten dizinden çıkmış bir bölümde tek başına
Disallow— sayfalar düştükten sonra, yalnızca tarama bütçesini korumak için sorunsuzdur.
Kaçınılması gereken tek bileşim, aynı canlı adreste noindex artı Disallow’dur; çünkü engel etiketi gizler. Bir sayfa zaten dizindeyse ve gitmesini istiyorsanız önce taramaya izin verin, dizinden çıkarın, gerekirse sonra engelleyin. Ayarladığınızı sandığınız meta robots ve canonical direktiflerinin gerçekten yayına giren direktifler olduğunu doğrulamak için önemli şablonlarda bir Sayfa İçi SEO Kontrolü (Anahtar Kelime) çalıştırın.
Gerçek senaryolar ve doğru karar
Teori, gerçekten karşılaştığınız durumlara şöyle oturur:
- Hazırlık (staging) veya geliştirme sitesi. HTTP kimlik doğrulaması ya da site geneli bir
X-Robots-Tag: noindexkullanın — asla tek başınaDisallow’a güvenmeyin; çünkü bağlantı verilmiş bir hazırlık adresi hâlâ çıplak bir bağlantı olarak dizine girebilir. - Teşekkür ve ödeme onayı sayfaları. Onları
noindexyapın. Aramada işe yaramazlar ve dönüşüm yollarını sızdırabilirler; yine de etiketin görülmesi için taranabilir olmalarını istersiniz. - Etiket, yazar ve ince arşiv sayfaları. Özgün bir değer katmıyorlarsa, dizinden çıksınlar ama site içi bağlantıları yazılarınıza geçirmeye devam etsinler diye
noindex, followkullanın. - PDF’ler ve indirmeler. Meta etiketi ekleyemezsiniz; bu yüzden bir belgenin sıralanmaması gerektiğinde
X-Robots-Tag: noindexHTTP başlığını kullanın. - Filtreli veya faceted adresler. Sonsuz tarama tuzakları oluşturuyorlarsa, bütçeyi korumak için parametre kalıplarını
Disallowedin; belirli birkaç filtre dizine eklenebilir yineleme ise onun yerine bir canonical tercih edin. - Ücretli ve satış ortaklığı bağlantıları. Onları
rel="sponsored"(ya danofollow) ile işaretleyin. Para kazandıran bağlantılarda bunu yapmamak yalnızca bir gözden kaçırma değil, bağlantı düzeni (link scheme) riskidir.
Aynı sözün — "bunu gizle" — asıl hedefin getirme denetimi mi, dizin denetimi mi yoksa bağlantı denetimi mi olduğuna göre farklı direktiflere çözüldüğüne dikkat edin. Tüm disiplin tek cümlede budur ve yalnızca gerçekten dizine eklenmesini istediğiniz adresleri duyuran iyi yapılandırılmış bir XML site haritası ile doğal biçimde eşleşir.
Sıkça sorulan sorular
Disallow bir sayfayı Google’dan kaldırır mı?
Hayır. Disallow yalnızca sayfanın taranmasını durdurur. Google adresi zaten bağlantılardan biliyorsa onu açıklamasız bir sonuç olarak dizinde tutabilir. Bir sayfayı kaldırmak için taramaya izin vermeli ve botun kaldırma talimatını gerçekten okuyabilmesi adına bir noindex etiketi ya da X-Robots-Tag başlığı sunmalısınız.
noindex ve Disallow’u birlikte kullanabilir miyim?
Aynı adreste ve aynı anda kullanamazsınız. Disallow taramayı engeller; bu da Google’ın sayfayı hiç getirmemesi ve noindex’i hiç görmemesi demektir. Sayfa dizinden çıkana kadar taramaya izin verin; ancak o zaman, hâlâ tarama bütçesi kazanmak istiyorsanız bir Disallow ekleyin.
nofollow bir sayfanın dizine eklenmesini durdurur mu?
Hayır. rel="nofollow", belirli bir bağlantıdan sıralama değerinin geçip geçmeyeceğini yöneten bir bağlantı özniteliğidir. Bağlantı veren ya da bağlantı verilen sayfanın taranması ya da dizine eklenmesi üzerinde hiçbir etkisi yoktur. Dizine eklemeyi denetlemek için noindex, taramayı denetlemek için Disallow gerekir.
nofollow, sponsored ve ugc arasındaki fark nedir?
Üçü de Google’a bir bağlantıdan tam sıralama değeri geçirmemesini söyler ama bağlam eklerler. sponsored ücretli veya satış ortaklığı bağlantılarını, ugc yorumlar gibi kullanıcı üretimi bağlantıları işaretler, nofollow ise genel "onay yok" değeridir. Uyan en özel olanı kullanın; Google hepsini birer ipucu olarak değerlendirir.
Bir PDF veya görseli nasıl noindex yaparım?
HTML olmayan dosyalarda meta etiket için bir <head> yoktur; bu yüzden o dosya türleri için sunucunuzda veya CDN’inizde yapılandırılan X-Robots-Tag: noindex HTTP yanıt başlığını kullanın. Başlığın okunabilmesi için dosyanın hâlâ taranabilir olduğundan emin olun, ardından dizinden düştüğünü Teknik Site Denetimi (Tarayıcı), ile doğrulayın.
Hazırlık sitesi için hangi direktifi kullanmalıyım?
Onu HTTP kimlik doğrulamasıyla koruyun ya da site geneli bir X-Robots-Tag: noindex uygulayın. Tek başına Disallow’a güvenmeyin: bir hazırlık adresine verilen tek bir dış bağlantı bile, engel Google’ın herhangi bir noindex talimatını görmesini önlediği için onu çıplak, açıklamasız bir sonuç olarak dizine sokabilir.