robots.txt Test Edici

Sayfanız Google'da görünmüyor ve sebebini bilmiyorsanız ilk bakılacak yer burası. Kararı hangi kuralın verdiğini satır satır gösteriyoruz.

Kök dizindeki /robots.txt okunur. Adresiniz kayda geçmez.

Her tarayıcı yalnız kendi grubuna uyar; grubu yoksa * grubuna düşer.


Getirebilir ya da elle yapıştırabilirsiniz. Yapıştırdığınızda hiçbir istek gitmez.

Her satıra bir adres. Tam adres de yol da olur; yalnız yol kısmı kullanılır.

Giriş

Bir sayfa Google'da görünmüyor. Sebep içerik olabilir, olmayabilir; ama bakılacak ilk yer robots.txt. Çünkü orada tek satırlık bir yanlış, sitenin tamamını aramadan çıkarabiliyor ve bunu size kimse haber vermiyor.

Sorun şu ki dosyaya bakmak yetmiyor. Disallow: / gören çoğu kişi paniğe kapılıyor, oysa altındaki Allow: /blog/ o adresi kurtarıyor olabilir. Ya da tersi: * grubuna yazdığınız kural, sitede ayrı bir Googlebot grubu olduğu için hiç uygulanmıyor olabilir.

Bu araç kararı sizin yerinize veriyor ve gerekçesini de yazıyor: hangi grup seçildi, hangi kurallar eşleşti, hangisi neden kazandı. Aşağıda kuralın kendisini anlatıyoruz.

robots.txt testi ne yapıyor?

Sitenizin kök dizinindeki robots.txt dosyasını okuyup, verdiğiniz adreslerin belirli bir tarayıcı için açık mı kapalı mı olduğunu hesaplayan denetime robots.txt testi deniyor. İngilizce kaynaklarda robots.txt tester ya da robots.txt validator adıyla geçiyor.

Test gerekiyor çünkü dosyanın kuralları gözle okunduğunda yanıltıcı. Kararı üç kural belirliyor: bir tarayıcı yalnız kendi grubunun kurallarına uyuyor, en uzun eşleşen kural kazanıyor, ve eşitlik durumunda Allow öne geçiyor.

Bu üçünün birleşimi sezgiye ters sonuçlar üretebiliyor. Disallow: /blog/ ile Allow: /blog/onemli/ bir arada olduğunda ikinci kural daha uzun olduğu için kazanıyor. Bunu elle hesaplamak kolay değil; araç her adres için hangi satırın kararı verdiğini gösteriyor.

En sık yapılan hata hangisi?

Kendi grubu olan bir tarayıcının * grubunu hiç okumaması. Diyelim User-agent: * altında bir dizi Disallow satırınız var, sonra User-agent: Googlebot diye ayrı bir grup açtınız ve altına yalnız bir satır yazdınız. Googlebot artık üstteki bütün yasakları görmüyor.

İkinci sık hata robots.txt içine noindex yazmak. Yıllarca çalıştı, 1 Eylül 2019'da desteklenmekten çıktı. Bugün o satır sessizce yok sayılıyor ve kimse fark etmiyor.

Üçüncüsü en pahalısı: geliştirme sırasında konan Disallow: / satırının yayında kalması. Tek karakterlik bir satır sitenin tamamını aramadan çıkarıyor ve genelde haftalar sonra fark ediliyor.

Kararı veren üç kural

robots.txt sezgiye aykırı çalışıyor. Üç kuralı bilmeden dosyayı doğru okumak mümkün değil.

1. Tarayıcı yalnız TEK gruba uyar. Kendi adına yazılmış bir grup varsa onu uygular ve * grubunu tamamen yok sayar. Dosyanızda hem User-agent: * hem User-agent: Googlebot varsa, Googlebot yalnız ikincisini okur. * grubuna yazdığınız her kural, Google için yok hükmündedir.

2. En uzun kural kazanır. Eşleşen kurallardan yol kalıbı en uzun olan geçerli olur. Disallow: / ile Allow: /blog/ birlikte yazıldığında blog taranabilir, çünkü ikincisi daha uzun bir kalıp.

3. Eşitlikte izin kazanır. Aynı uzunlukta bir Allow ve bir Disallow varsa, izin veren uygulanır.

Bu üç kural RFC 9309'da ve Google'ın uygulama belgesinde aynı biçimde tanımlı⁠ (resmî kaynak). Araç da bu sırayla çalışıyor ve her adımı yazıyor.

robots.txt neyi yapamaz?

En pahalı yanlış anlama burada. robots.txt taramayı engelliyor, dizine girmeyi değil.

Bir sayfayı robots.txt ile kapattığınızda Google o sayfanın içine bakamıyor. Ama başka sitelerden o adrese bağlantı veriliyorsa, Google sayfayı içeriğini bilmeden de arama sonuçlarında gösterebiliyor: başlık yerine adres, açıklama yerine "bu sayfa için bilgi mevcut değil" yazıyor.

Bir sayfanın aramada hiç görünmemesi gerekiyorsa doğru araç noindex meta etiketi. Ama burada bir tuzak var: Google noindex etiketini görmek için sayfayı taramak zorunda. Sayfayı robots.txt ile kapatırsanız etiketi hiç okuyamaz ve sayfa dizinde kalmaya devam eder.

Doğru sıra şu: sayfayı taramaya AÇIK bırakın, noindex koyun, Google okuyup dizinden çıkarsın, ondan sonra isterseniz robots.txt ile kapatın.

İkinci bir sınır daha var: robots.txt bir rica. Büyük arama motorları uyuyor, kötü niyetli tarayıcılar umursamıyor. Gerçekten durdurmak istiyorsanız iş sunucu tarafına geçiyor.

En sık dört hata

Yayına alırken silinmeyen Disallow: /. Geliştirme sitesinde her şeyi kapatmak doğru; yayına alırken o satırı silmeyi unutmak, sitenin aramadan tamamen düşmesi demek. Araç bu durumu ayrı bir uyarıyla gösteriyor.

CSS ve JavaScript dosyalarını engellemek. Eskiden yaygın bir "iyileştirme"ydi. Bugün zararlı: Google sayfayı çizip görebilmek için o dosyalara ihtiyaç duyuyor. Engellenmiş bir CSS, Google'ın sayfayı bozuk görmesi ve mobil uyumsuz sayması anlamına gelebiliyor.

* grubuna yazıp kendi grubunu unutmak. Dosyada User-agent: Googlebot diye bir grup varsa, * grubundaki hiçbir kural Google için geçerli değil. Yeni bir kuralı yanlış gruba yazmak, hiç yazmamakla aynı.

robots.txt'e noindex yazmak. Yıllarca çalıştı, 1 Eylül 2019'da desteklenmekten çıktı⁠ (resmî kaynak). Bugün o satır sessizce yok sayılıyor; sayfa dizinde kalıyor ve kimse fark etmiyor. Araç bu satırı gördüğünde ayrıca uyarıyor.

Yapay zekâ tarayıcıları ayrı bir karar

Son iki yılda robots.txt'in yeni bir işi oldu: içeriğinizin yapay zekâ modellerinde kullanılıp kullanılmayacağını bildirmek. Ama burada iki şey birbirine karışıyor ve karıştırmak pahalıya mal oluyor.

Eğitim ayrı, aramada görünmek ayrı. Google-Extended Gemini'nin eğitimi ve yanıt üretimiyle ilgili; onu kapatmak Google Arama'daki sıralamanızı ya da AI Bakışı'nda görünmenizi etkilemiyor. Aynı ayrım OpenAI tarafında da var: GPTBot eğitim için, OAI-SearchBot ise ChatGPT'nin arama sonuçlarında görünmek için geliyor.

Pratik sonuç: içeriğinizin eğitimde kullanılmasını istemiyor ama ChatGPT'nin sizi kaynak göstermesini istiyorsanız GPTBot'u kapatıp OAI-SearchBot'u açık bırakmanız gerekiyor. İkisini birden kapatmak, görünürlüğü de kapatmak demek.

Araçtaki tarayıcı listesinde bunların hepsi ayrı ayrı seçilebiliyor; kuralınızın hangi bota ne yaptığını tek tek görebiliyorsunuz. Kural yazmak için robots.txt üreticisine, konunun tamamı için yapay zekâ ve içerik kullanımı sayfamıza bakabilirsiniz.

Engellenen sayfa neden hâlâ aramada çıkıyor?

Çünkü robots.txt taramayı engelliyor, dizine eklemeyi değil. Bu ikisi ayrı işlem ve karıştırılması en sık yapılan yanlış anlama.

Google engellenen bir adresi tarayamıyor, yani içeriğini okuyamıyor. Ama o adrese başka sitelerden bağlantı verilmişse adresin var olduğunu biliyor ve sonuçlarda gösterebiliyor. Ekranda çıplak bir bağlantı görünüyor, altında açıklama yerine "bu sayfa için bilgi mevcut değil" benzeri bir not oluyor.

Bir adresin kesin olarak aramadan çıkmasını istiyorsanız yol noindex. Sayfayı taranabilir bırakıp noindex vermek gerekiyor; Google etiketi okuyup adresi dizinden düşürüyor. İndekslenebilirlik denetimi dört sinyali birlikte okuyup sonucun ne olduğunu gösteriyor.


Sık sorulanlar

Dosyayı test etmek bir dakika sürüyor; asıl soru sonucu ne zaman ve nasıl okuyacağınız. Aşağıdaki dört soru en sık karıştırılan noktalar; cevaplarda kuralın yanında sınırını da yazdık.

Test sonucu ile Google'ın davranışı birebir aynı mı?

Eşleştirme mantığı aynı: araç, RFC 9309'da ve Google'ın belgesinde tanımlı grup seçimi, en uzun kural ve eşitlikte izin kurallarını uyguluyor. Aynı dosya ve aynı adres için aynı sonucu vermesi gerekiyor.

Aradaki tek fark zamanlama. Google robots.txt'i önbelleğe alıyor ve yaklaşık yirmi dört saatte bir yeniliyor; siz dosyayı az önce değiştirdiyseniz Google hâlâ eski sürüme göre davranıyor olabilir.

Google'ın elindeki güncel sürümü görmek için Search Console'daki robots.txt raporuna bakabilirsiniz. Burada test ettiğiniz metin sizin yapıştırdığınız ya da az önce getirilen metin; Google'ın gördüğü ise önbellekteki olabilir.

Sayfam engelli değil ama yine de aramada yok, neden?

robots.txt sadece bir kapı. Açık olması sayfanın dizine gireceği anlamına gelmiyor.

Sayfanın taranabilir olduğu halde görünmemesinin en sık üç sebebi şu: sayfada noindex var, canonical etiketi başka bir sayfayı gösteriyor, ya da sayfa henüz taranmadı. İlk ikisini sayfanın kaynak kodunda noindex ve canonical arayarak görebilirsiniz.

Dördüncü bir ihtimal daha var ve en can sıkıcı olanı: sayfa taranmış, dizine girmiş ama hiçbir sorgu için ilk sayfalara çıkamıyor. O zaman sorun teknik değil, içerik ve rekabetle ilgili demektir.

Dosyayı yapıştırdığımda bir yere gidiyor mu?

Hayır. Yapıştırdığınız metin ve test ettiğiniz adresler tamamen tarayıcınızda işleniyor; eşleştirmenin tamamı cihazınızda yapılıyor.

Sunucumuz yalnız "robots.txt getir" düğmesine bastığınızda devreye giriyor: tarayıcınız başka bir sitenin dosyasını CORS yüzünden okuyamadığı için isteği bizim üzerimizden geçiriyoruz. O durumda da yalnız adres gidiyor, sonuç saklanmıyor.

Henüz yayına almadığınız bir robots.txt taslağını da bu yüzden çekinmeden deneyebilirsiniz.

Kaç adresi birden test edebilirim?

Her satıra bir adres yazarak elli adrese kadar test edebilirsiniz. Tam adres de yol da olur; araç yalnız yol kısmını kullanıyor.

Toplu test, tek tek bakmaktan çok daha işe yarıyor. Sitenizin farklı bölümlerinden birer örnek (bir ürün, bir kategori, bir blog yazısı, bir filtreli arama adresi) alıp hepsini birden denemek, kuralın gerçekte neyi kapattığını bir bakışta gösteriyor.

Özellikle sorgu dizeli adresleri denemeyi unutmayın: Disallow: /*? gibi bir kural filtreleme sayfalarının tamamını kapatıyor ve bunu fark etmek zor.

Aracı beğendiniz mi?

Bu aracı ve altındaki açıklamayı, işini kendi yürüten bir işletme sahibine yetecek açıklıkta yazmaya çalıştık.

Teşekkür ederiz. Bundan sonraki çalışmaları da aynı açıklıkta yazmayı sürdüreceğiz.

Teşekkür ederiz. Eksik bulduğunuz noktayı info (at) kobiseo (nokta) com adresine iletirseniz sayfayı gözden geçirir ve düzeltmeyi geçmişe işleriz.

Kaynaklar ve güncelleme geçmişi

Kaynaklar

  1. Google Search Central: robots.txt belirtimi, Google (developers.google.com)Resmî kaynak
  2. Google: robots.txt içindeki desteklenmeyen kurallar, Google, 2019 (developers.google.com)Resmî kaynak
  3. RFC 9309: Robots Exclusion Protocol, IETF, 2022 (rfc-editor.org)Resmî kaynak

Bu sayfayı paylaşın

Aynı işi elle yapan bir işletme sahibine gönderin.