TechnoRadical İletişime geçin

TechnoRadical notları · Makale

Robots.txt ile noindex arasındaki fark

Robots.txt taramayı, noindex dizinlemeyi durdurur. İkisini birlikte kullanmak neden işe yaramaz, doğru kodu ve kendi robots.txt örneğimizle gösteriyoruz.

Robots.txt dosyası taramayı yöneten bir kural setidir, noindex ise dizine eklemeyi durduran ayrı bir sinyaldir; ikisi Google’ın işleyişinde art arda gelen farklı aşamalara karşılık gelir ve birbirinin yerine geçmez. Bir sayfayı hem Disallow hem noindex ile işaretlemek en sık yapılan kurulum hatasıdır, çünkü Googlebot robots.txt’te engellenen bir sayfanın içine hiç giremez ve oradaki noindex etiketini görmez; sayfa sonuçlarda kalmaya devam edebilir. Doğru uygulama <head> içine eklenen bir meta etiket, HTTP başlığında dönen X-Robots-Tag veya PDF/görsel gibi HTML olmayan dosyalar için sunucu düzeyinde tanımlanan aynı başlıktır. Kendi sitemizin robots.txt dosyası hiçbir Disallow kuralı taşımıyor, çünkü taramadan gizlenmesi gereken düşük değerli bir yüzeyimiz yok. Hangi durumda hangi mekanizmanın kullanılacağı bir karar tablosuyla netleşir; doğru uygulanmış bir noindex bile Googlebot’un sayfayı yeniden ziyaret etmesini beklediği için etkisini aylar içinde gösterebilir.

robots.txt ve noindex hangi soruyu cevaplıyor

robots.txt yalnızca Googlebot’un hangi URL’lere erişebileceğini kontrol eder, noindex ise bir sayfanın arama sonuçlarında listelenip listelenmeyeceğini kontrol eder; ikisi Google’ın işleyişinde art arda gelen iki ayrı aşamadır.

Google Search Central’ın robots.txt dokümantasyonu dosyanın işlevini net tanımlıyor: User-agent, Allow ve Disallow satırları crawler’ın hangi yolları isteyip istemeyemeyeceğini belirler, ama dokümantasyon aynı yerde uyarıyor: robots.txt “bir web sayfasını Google’dan gizleme mekanizması değildir” (K-84). Disallow edilen bir URL, crawler onu hiç okumasa da arama sonuçlarında görünmeye devam edebilir; robots.txt tarama izniyle ilgilenir, arama sonuçlarında listelenme kararıyla ilgilenmez.

noindex farklı bir katmanda çalışır. Meta etiket veya HTTP başlığı olarak eklenen noindex, “bu sayfayı dizine ekleme” isteği taşır; sayfanın taranıp taranmayacağını değil, taranan sayfanın sonuçlarda listelenip listelenmeyeceğini belirler. Bu yüzden sıra önemlidir: önce robots.txt tarama izni verir, sonra Googlebot sayfayı okuyup noindex etiketini görür ve dizine ekleme kararını buna göre verir. Biri diğerinin önkoşuludur; bu ayrım robots.txt dosyasının sözlükteki kısa tanımıyla da örtüşüyor, dosya taramayı yönetir, dizine eklemeyi değil.

robots.txt ile noindex’i aynı sayfada kullanmak neden işe yaramaz

noindex kuralının işe yaraması için sayfa robots.txt’te engellenmemiş olmalı; disallow edilmiş bir sayfada Googlebot noindex etiketini hiç göremez ve sayfa sonuçlarda kalmaya devam edebilir.

Google Search Central’ın dizine ekleme engelleme rehberi bu koşulu doğrudan yazıyor: “noindex kuralının işe yaraması için sayfa veya kaynak bir robots.txt dosyasıyla engellenmemiş olmalı ve crawler tarafından erişilebilir durumda olmalı.” Sonucunu da açıkça belirtiyor: sayfa robots.txt ile engelliyse veya crawler ona erişemiyorsa, “crawler noindex kuralını hiçbir zaman görmez ve sayfa arama sonuçlarında görünmeye devam edebilir” (K-123), örneğin başka sayfalardan link alıyorsa.

Bu kuralın tarihsel bir kökeni var. Bazı siteler eskiden robots.txt dosyasının içine gayri resmi bir Noindex: satırı yazıyordu; bu satırın hiçbir resmi taslakta yeri yoktu. Google Search Central Blog, 2 Temmuz 2019 tarihli duyurusunda bu desteğin 1 Eylül 2019’da tamamen kaldırılacağını açıkladı: “desteklenmeyen ve yayınlanmamış kuralları (noindex gibi) işleyen tüm kodu 1 Eylül 2019’da emekliye ayırıyoruz.” Google, bu satırın zaten “tüm robots.txt dosyalarının %0,001’i dışında” diğer kurallarla çelişkili biçimde kullanıldığını gerekçe gösterdi (K-125). Bu tarihten sonra robots.txt içine yazılan bir Noindex: satırı Googlebot için hiçbir etki üretmiyor.

Pratik sonucu şu: bir geliştirici bir sayfaya hem Disallow hem noindex eklerse, ikinci etiket ölü koddur. Googlebot ilk kuralda durur, ikinciye hiç ulaşmaz. Düzeltme, aşağıdaki karar tablosuna göre ikisinden yalnızca birini seçmekten geçiyor.

noindex nasıl doğru uygulanır: meta etiket, X-Robots-Tag ve HTML olmayan dosyalar

HTML sayfalarında noindex bir meta etiketiyle, HTML olmayan dosyalarda ise bir HTTP başlığıyla (X-Robots-Tag) uygulanır; ikisi de aynı kuralı taşır, farkları sayfanın türüne göre hangisinin teknik olarak mümkün olduğudur.

Bir HTML sayfasını dizinden çıkarmak için <head> bölümüne şu satır eklenir.

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

Yalnızca Google için geçerli olacaksa googlebot adı kullanılır.

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

Aynı kural HTTP başlığı olarak da dönebilir; bu, sayfanın kaynak koduna dokunmadan sunucu veya CDN katmanından uygulanabildiği için pratik bir alternatiftir.

X-Robots-Tag: noindex

PDF, görsel gibi HTML olmayan dosyalarda <meta> etiketi kullanılamaz, çünkü dosyanın bir <head> bölümü yoktur; bu durumda X-Robots-Tag zorunludur ve sunucu yapılandırmasından eklenir. Apache için .htaccess örneği aşağıdadır.

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

Nginx için sunucu bloğu örneği ise şöyledir.

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

Google Search Central’ın robots meta tag dokümantasyonu noindex dışında sık kullanılan kuralları da tanımlıyor: nofollow sayfadaki linkleri takip etmemeyi, none noindex, nofollow ile aynı etkiyi, nosnippet metin veya video önizlemesi göstermemeyi, noimageindex sayfadaki görselleri dizine eklememeyi, unavailable_after:[tarih] sayfayı belirtilen tarihten sonra sonuçlardan çıkarmayı sağlıyor. Kurallar virgülle birleştirilebiliyor (noindex, nofollow) ve birden fazla X-Robots-Tag başlığı aynı yanıtta üst üste dönebiliyor (K-124).

robots.txt’te disallow edilen bir sayfa yine de Google’da çıkabilir mi

Evet; Google’ın kendi ifadesiyle robots.txt bir sayfayı aramadan gizleme mekanizması değildir, disallow edilen bir sayfa başka sitelerden link alıyorsa yine de indekslenebilir.

Google Search Central şunu doğrudan yazıyor: disallow edilmiş bir sayfa “başka sitelerden link alıyorsa yine de indekslenebilir” ve bu durumda “URL adresi ve muhtemelen diğer herkese açık bilgiler… Google Arama sonuçlarında görünmeye devam edebilir” (K-84). Google, engellenen sayfanın içeriğini okuyamadığı için bu görünümde içerikten üretilmiş bir açıklama olmaz; yalnızca URL ve varsa dışarıdan toplanan sınırlı bilgi gösterilir.

Bu ayrım, denetim araçlarının robots.txt eksikliğini kritik değil orta seviyede işaretlemesinin doğrudan nedenidir. Disallow tek başına bir sayfayı aramadan çıkarmaya yetmediği için, robots.txt kurulumundaki bir eksiklik başlı başına kritik bir risk sayılmıyor; asıl kritik risk sayfanın hem disallow hem noindex ile birlikte yanlış işaretlenmesi ya da noindex’in hiç eklenmemesidir.

Hangi durumda robots.txt, hangi durumda noindex kullanılır

Sayfa arama sonuçlarından tamamen çıkacaksa ve erişilebilir kalması sorun değilse noindex kullanılır; taramayı azaltmak amaçlansa da sayfanın dizinde kalıp kalmaması önemli değilse robots.txt disallow kullanılır; ikisi birlikte kullanılmaz.

DurumDoğru araçNeden
Sayfa arama sonuçlarından tamamen çıksın, sayfa erişilebilir kalabilirYalnızca noindex, robots.txt’te engellemeyinnoindex’in işe yaraması için Googlebot sayfayı okuyabilmeli (K-123)
Çıkarma acil, aylarca beklenemezSearch Console Kaldırmalar aracı, geçici bir çözümnoindex’in etkisi Googlebot’un yeniden taramasına bağlı ve aylar sürebilir (K-127)
Amaç yalnızca tarama kaynağını korumak, sayfanın dizinde kalıp kalmaması önemli değil (parametreli/değersiz URL yığını)robots.txt DisallowDisallow indeksten çıkarmaz, yalnızca taramayı azaltır (K-84)
İkisi birden mi gerekirHayırBirlikte kullanmak noindex’i etkisiz kılar, çünkü crawler kuralı hiç göremez (K-123)

Tablodaki dört satır, bir geliştiricinin karar anında sorması gereken tek soruyu netleştiriyor: amaç tarama bütçesini korumak mı, yoksa sayfayı aramadan tamamen çıkarmak mı? Cevap ikincisiyse robots.txt’in hiçbir rolü yok; cevap birincisiyse noindex gereksiz.

noindex ile canonical’ı birlikte kullanmak neden risklidir

Google, tek bir site içinde canonical sayfa seçimini engellemek için noindex kullanılmasını önermiyor, çünkü bu sayfayı Arama’dan tamamen bloklar.

Google Search Central’ın canonical rehberi bunu açık cümleyle yazıyor: “tek bir site içinde canonical sayfa seçimini engellemek için noindex kullanılmasını önermiyoruz, çünkü bu sayfayı Arama’dan tamamen bloklar” (K-91). Bir sayfaya hem “beni tercih et” (canonical) hem “beni hiç gösterme” (noindex) talimatı verilirse sonuç canonical’ın işlevsiz kalması değil, sayfanın aramadan tamamen çıkmasıdır.

Aynı mantık robots.txt için de geçerli: Google’ın rehberi “robots.txt dosyasını canonicalization amacıyla kullanmayın” diyor (K-90). Engellenen bir sayfa canonical hedefi yapılırsa Google o hedefi hiç tarayamaz, dolayısıyla üzerindeki hiçbir sinyali okuyamaz. Bu iki çelişki, kanonik etiketin on bir farklı sessiz bozulma kalıbının yalnızca ikisidir; tam liste, robots.txt ve noindex’in ötesinde CMS eklentisi hataları, hreflang uyuşmazlığı ve JavaScript enjeksiyonu gibi dokuz kalıbı daha kapsayan ayrı bir yazıda işlenir.

Kendi robots.txt dosyamızda bu ayrımı nasıl uyguluyoruz

technoradical.com/robots.txt yalnızca üç satır taşıyor: User-agent: *, Allow: / ve sitemap bildirimi; hiçbir Disallow kuralı yok.

Dosyanın gerçek hâli aşağıdaki gibidir.

User-agent: *
Allow: /
Sitemap: https://technoradical.com/sitemap-index.xml

Bunun nedeni bir “iyi pratik” iddiası değil, sitenin küçük ve durağan mimarisinin doğal bir sonucu: filtre kombinasyonlu e-ticaret parametresi, iç arama sonucu sayfası veya taslak/önizleme URL’si gibi taramadan gizlenmesi gereken düşük değerli bir yüzey bulunmuyor (K-126). Böyle bir yüzey ileride oluşursa (örneğin bir /arama?q= sonuç sayfası), hangi kuralın ekleneceğine yukarıdaki karar tablosuna göre karar verilir; bu, önceden verilmiş otomatik bir taahhüt değildir.

robots.txt ve noindex kurulumunuzu nasıl test edersiniz

Kurulumu doğrulamanın yolu kaynak kodu tahmin etmek değil, robots.txt dosyasını, sayfa başlıklarını ve Search Console’un URL İnceleme aracını sırayla kontrol etmektir.

Beş adım aşağıdaki sırayla uygulanır.

  1. Sitenizin robots.txt dosyasını (site-kökü/robots.txt) açın ve ilgili yolun Disallow altında olup olmadığını kontrol edin.
  2. Sayfanın kaynak kodunda <meta name="robots"> etiketini arayın veya terminalde curl -I https://siteniz.com/sayfa komutuyla HTTP başlıklarında X-Robots-Tag olup olmadığını kontrol edin.
  3. Search Console URL İnceleme aracını kullanın; araç sayfanın dizine eklenebilir olup olmadığını ve engelleyen tam nedeni (robots.txt mi meta etiket mi) ayrı ayrı gösterir.
  4. Hem Disallow hem noindex aynı sayfada varsa Disallow’u kaldırıp yalnızca noindex’i bırakın; aksi halde etiket yukarıdaki mekanizma nedeniyle ölü koddur.
  5. Değişiklik sonrası Googlebot’un yeniden taramasını bekleyin; bu, sayfanın önemine göre aylar sürebilir (K-127), acil ise Search Console’un Kaldırmalar aracına başvurun.

Bu beş adımı her sayfa için elle tekrarlamak yerine, robots.txt, noindex ve canonical çelişkilerini birlikte tarayan site denetimi aynı taramayı tek seferde otomatik yapar; URL İnceleme aracı ise bu taramanın şüpheli çıkardığı sayfalar için sonradan kullanılır.

robots.txt içine noindex satırı yazmak hâlâ işe yarıyor mu?

Hayır. Google, robots.txt içine yazılan gayri resmi Noindex: satırının desteğini 1 Eylül 2019’da tamamen kaldırdı; resmi yöntem HTML meta etiketi veya X-Robots-Tag HTTP başlığıdır. Bu satır bugün bir robots.txt dosyasında görülse bile Googlebot için hiçbir etki taşımıyor.

X-Robots-Tag hangi durumda meta robots etiketine tercih edilir?

HTML olmayan dosyalarda (PDF, görsel, .txt dosyaları) <meta> etiketi kullanılamadığı için X-Robots-Tag zorunludur. Ayrıca tek tek sayfa düzenlemek yerine sunucu veya CDN yapılandırmasından toplu kural uygulamak istendiğinde de X-Robots-Tag tercih edilir; ilginç bir örneği, llms.txt dosyaları için Google mühendisinin mantıklı bulduğu noindex header’ı oluşturuyor, çünkü dosyaya link veren başka siteler onu beklenmedik biçimde indekslenir hale getirebilir.

robots.txt · noindex · X-Robots-Tag · teknik SEO

Bu yazıdakileri kendi sitenizde ölçmek ister misiniz?

Araçların hepsi ücretsiz ve kayıt istemiyor. Yazıda geçen ölçütlerin çoğunu doğrudan kendi adresinize uygulayabilirsiniz.

Ücretsiz denetim Diğer yazılar