robots.txt kuralı crawler’ın URL veya kaynağa istek göndermesini engelleyebilir. Tarama isteğini yönetmek veya önemsiz ve kopya alanların getirilmesini önlemek için yararlıdır. Yanlış kullanımı da kolaydır. Geniş bir `Disallow` değerli sayfaları ya da sayfayı anlamak için gereken CSS ve JavaScript’i gizleyebilir. Özel içeriği güvenli hale getirmez; başka sinyaller URL’yi açığa çıkarırsa engellenen adres arama sonucunda görünmeye devam edebilir. Bu yüzden robots.txt denetimi, crawl grafiğini küçültmek için gelişigüzel kural eklemekten değil, istenen sonuçtan başlamalıdır.
Bu rehber; yanlışlıkla oluşmuş tarama engellerini bulmayı, user-agent gruplarıyla yol eşleşmesini anlamayı, temsilî URL’leri test etmeyi, robots.txt’yi `noindex` ve kimlik doğrulamadan ayırmayı ve değişiklikleri güvenli yayınlamayı anlatır. Hem production teşhisini hem tekrar edilebilir yayın kontrolünü kapsar. Önemli sayfalar taranmıyorsa, migrasyon veya CMS değişikliği robots.txt’yi etkilediyse ya da teknik denetim engellenmiş URL raporladıysa kullanın.
robots.txt Neyi Kontrol Eder?
robots.txt, host kökünde bulunan herkese açık metin dosyasıdır: örneğin `https://example.com/robots.txt`. Robots Exclusion Protocol’ü izlemeyi seçen crawler, dosyanın grup ve kurallarını okuyarak hangi URL’lere istek gönderebileceğini belirler. Dosya tarama isteğini kontrol eder; erişim kontrolü vermez ve güvenlik sınırı olarak kullanılmamalıdır.
Kurallar belirli host ve protokol için geçerlidir. `www.example.com` dosyası `shop.example.com` alt alan adını, staging hostunu veya HTTP hostunu kendiliğinden kontrol etmez. Birden fazla host varsa her birini test edin. `/robots.txt` yönlendirmesi kasıtlı ve anlaşılır olmalıdır; beklenmeyen yönlendirme veya sunucu hatası crawler davranışını teşhis etmeyi zorlaştırır.
Önce İstenen Sonucu Belirleyin
Kurala dokunmadan önce hedefi sınıflandırın. Büyük bir kaynağın istek almasını mı önlemek, düşük değerli kopya yolu tarama dışında tutmak, sayfayı aramadan kaldırmak ya da özel veriyi korumak mı istiyorsunuz? Bunlar ayrı hedeflerdir ve farklı kontrol gerektirir.
| Amaç | Yaygın kontrol | Önemli sınır |
|---|---|---|
| Herkese açık yola tarama isteğini yönetmek | robots.txt kuralı | Bilinen URL’nin aramadan kaldırılmasını garanti etmez |
| Erişilebilir sayfayı Google Search dışında tutmak | robots meta veya X-Robots-Tag `noindex` | Crawler yönergeyi okumak için sayfayı getirebilmelidir |
| Özel veya hassas içeriği korumak | Kimlik doğrulama ve yetkilendirme | robots.txt herkese açıktır, güvenlik sağlamaz |
| Kaynağı siteden tamamen kaldırmak | Kaynağı silmek veya uygun erişim kısıtı koymak | Dahili bağlantıları ve eski URL davranışını güncelleyin |
Google, taramayı engellemenin URL’nin arama sonuçlarında görünmesini kesin olarak önlemediğini açıklar. Amaç indekslenmeyi önlemekse, taramaya izin verip `noindex` kullanın; içerik özelse kimlik doğrulama arkasına alın. robots.txt ile sayfayı engellerken Google’ın noindex etiketini okumasını beklemeyin.
Yanlış Engelleri Sistematik Olarak Bulun
Repository’deki yerel dosyayla değil canlı robots.txt yanıtıyla başlayın. Komut satırı HTTP aracı veya tarayıcıyla getirip durum kodu, son URL, gövde, cache başlığı ve zamanı kaydedin. Domain ve protokolü doğrulayın. Canlı içeriği kaynak kodundaki ve deploy paketindeki sürümle karşılaştırın. CMS eklentisi, hosting paneli, CDN kuralı veya migrasyon production dosyasını koddan bağımsız değiştirmiş olabilir.
Ardından sitemap, dahili crawl, organik landing page raporu, ürün envanteri ve son yayınlardan önemli URL listesi hazırlayın. Her template ve kaynak türünden örnek ekleyin: ana sayfa, ürün, kategori, makale, CSS, JavaScript, görsel, gerekiyorsa API yolu ve parametreli filtre. Her URL’yi canlı robots.txt’ye karşı test edin. Yalnız kök sayfayı kontrol etmek derin yolların taranabilir olduğunu göstermez.
robots.txt’yi gerçek isteklerle karşılaştırın
Google’ın belirli bir sayfaya ve kaynağa erişip erişemediğini görmek için Search Console URL Denetleme’yi kullanın. Sonucu Crawl Stats, sunucu logları ve ilgili dönemde servis edilen robots dosyasıyla karşılaştırın. Loglar istek ve durum kodlarını gösterebilir; Search Console Google’ın tarama ve denetim sinyallerini sunar. Fark varsa tarih aralığını, cache katmanlarını, hostları ve isteğin yapıldığı zamandan sonra dosyanın değişip değişmediğini kontrol edin.
User-Agent Gruplarını ve Kural Kapsamını Anlayın
Grup `User-agent` satırıyla başlar ve `Disallow` ile `Allow` gibi yönergeler içerir. Grup isimli crawler’ı veya `*` işaretini hedefleyebilir. Birden fazla grup ve eşleşen kural dikkatle incelenmelidir. Aynı crawler için ayrı blokların beklediğiniz şekilde birleştiğini varsaymayın; önem verdiğiniz crawler’ın belgelenmiş ayrıştırma davranışına bakın. Kuralları kısa tutup her birinin amacını belgeleyin.
Yol kuralları desen olarak eşleştirilir; destekleyen crawler’lar joker karakter ve sonlandırıcı işaretleri yorumlayabilir. Küçük farklar büyük etki yaratır: `/private` ile `/private/` farklı yolları eşleştirebilir, `/search` kuralı `/search-results` yolunu da kapsayabilir. Query string ve kodlanmış karakter görsel incelemeyi yanıltabilir. Yalnız kuralın görünüşü üzerine düşünmek yerine gerçek temsilî URL’leri test edin.
Google `Allow` ve `Disallow` yönergelerini destekler ve çelişen kurallar arasında en özgül eşleşeni kullanır. Eşit özgüllükte Google’ın belgelenmiş davranışı daha az kısıtlayıcı kuralı tercih eder. Diğer crawler’lar protokolü farklı yorumlayabilir. Daha küçük ve açık bir kural kümesi aynı politikayı anlatabiliyorsa çakışan kurallar kullanmayın. Her satıra tek kural yazıp grupları boş satırla ayırın.
Kesin URL Kümesini Test Edin
Hem engellenmesi hem açık kalması gereken URL’leri kapsayan test matrisi oluşturun. Her URL için beklenen sonuç, robots eşleşmesi, HTTP durumu, canonical, robots meta ve sayfa template’ini kaydedin. Sınır durumları ekleyin: dizinin kökü, alt yol, benzer adlı yol, kodlanmış karakter, query parametresi, sondaki slash ve statik kaynak.
| Test | Örnek | Kontrol |
|---|---|---|
| Dizin kökü | /hesap/ | Kural dizin yolunu eşleştiriyor mu? |
| İç içe yol | /hesap/ayarlar/ | Tüm alt yol gerçekten kısıtlanmalı mı? |
| Benzer önek | /hesaplama/ | Geniş önek ilgisiz bir yolu da engelliyor mu? |
| Query URL | /katalog?siralama=fiyat | Crawler yol ve desteklediği query eşleşmesini beklenen biçimde yapıyor mu? |
| Statik kaynak | /assets/site.css | Sayfa düzeni ve içeriği render edilebilir mi? |
| Farklı host | magaza.example.com/urun | Doğru hostun robots dosyası mı test ediliyor? |
Robots test aracı seçilen URL’nin mevcut kuralla eşleşmesini kontrol etmeye yardım eder; canlı fetch, URL Denetleme veya sunucu yanıtı kontrolünün yerini almaz. Aracın production ile aynı host, user-agent ve güncel robots dosyasını kullandığını doğrulayın. Google’ın test araçları zaman içinde değişebilir; geçerliliği kalmamış harici araca güvenmek yerine güncel Search Console arayüzü ve resmi belgelere başvurun.
CSS, JavaScript ve Görsel Kaynaklarını Kontrol Edin
Ortak stylesheet veya script’in engellenmesi Google’ın sayfayı kullanıcının gördüğü biçimde render etmesini önleyebilir. Tüm asset dizinini kapatan eski kural, HTML URL’leri açık olsa bile kritik kaynakları engelleyebilir. URL Denetleme’de render edilmiş çıktıyı inceleyip temsilî kaynak URL’lerini test edin. Dekoratif kaynaklar, içeriği veya düzeni anlamak için kritik dosyalardan farklı önceliğe sahip olabilir.
Görsel ve video dosyalarının ayrı arama görünürlüğü olabilir. Medyayı dışarıda tutmak istiyorsanız dosya türünü, kullanıcı amacını ve crawler davranışını değerlendirin. Sayfanın anlaşılması için gereken kaynağı erişilebilir bırakın. Klasörde ne olduğunu ve template’lerin nasıl kullandığını incelemeden geniş `/assets/` veya `/uploads/` kuralı koymayın.
robots.txt ve Faceted Navigation
Sınırsız filtre ve site içi arama parametreleri düşük değerli çok sayıda URL kombinasyonu oluşturabilir. robots.txt, arama görünürlüğü gerekmeyen desenlerde tarama isteklerini yönetmenin araçlarından biri olabilir. Önce düzenlenmiş landing page’leri kullanım filtrelerinden ayırın ve kuralın değerli hedefleri kapatmayacağını doğrulayın. Filtre URL türleriyle crawl, canonical ve indeksleme politikasını eşleştirmek için e-ticaret faceted navigation rehberimize bakın.
Dolaşım bütçesini manipüle etmek amacıyla URL desenlerini sık sık ekleyip kaldırmayın. Google’ın crawl sorunlarını giderme rehberi robots.txt’yi kalıcı olarak taranmaması gereken kaynak veya sayfalar için kullanmayı, geçici bütçe ayarı gibi kullanmamayı önerir. Kural değişince ilgili istek desenlerini izleyin ve önemli URL gruplarının erişilebilir kaldığını doğrulayın.
Robots.txt’de Yaygın Hatalar
- Sayfayı aramadan kaldırmak için engellemek: bilinen URL kalabilir; doğru indeksleme aracını kullanın.
- Noindex sayfayı engellemek: crawler etiketi okuyamaz.
- robots.txt’yi gizlilik için kullanmak: dosya herkese açıktır, kullanıcı veya yetkisiz istemciyi durdurmaz.
- Tüm asset dizinini kapatmak: render için CSS, JavaScript veya medya gerekebilir.
- Yalnız ana sayfayı test etmek: kural derin yolları ve varyantları farklı etkileyebilir.
- Yerel dosyayı düzenleyip production’ı unutmak: eklenti, CDN veya hosting paneli başka dosya servis edebilir.
- Tüm botların aynı sözdizimini izlediğini varsaymak: crawler uygulamaları değişebilir.
- Staging engelini production’da bırakmak: canlı dosyayı yayın listesinde kontrol edin.
- Tarama bütçesi için sürekli kural değiştirmek: sabit ve uzun vadeli politika daha anlaşılırdır.
Yayınlama ve Geri Alma Akışı
- Şu an servis edilen robots.txt kopyasını saklayıp yanıt başlıkları ve zamanı kaydedin.
- İstenen sonucu ve açık/engelli kalması gereken URL sınıflarını yazın.
- Politikayı anlatan en küçük kural değişikliğini yapın.
- İzinli sınır yolları dahil aday dosyayı otomatik URL matrisiyle test edin.
- Staging’e dağıtıp tam genel URL ve hostta dosyayı doğrulayın.
- Production sonrası ilgili her hosttan canlı dosyayı getirip cache varyasyonunu kontrol edin.
- Kritik sayfa ve kaynaklarda URL Denetleme’yi kullanın; Search Console ve log verisini inceleyin.
- Değişiklik onaylanana kadar eski dosyayı ve geri alma sorumlusunu hazır tutun.
Migrasyon veya büyük CMS değişikliğinde robots kontrollerini release kapısına ekleyin. Staging kısıtının production’a kopyalanmadığını, production dosyasının da koruma gereken staging’e taşınmadığını doğrulayın. Staging’i kimlik doğrulama veya ağ erişim denetimiyle koruyun; robots.txt gizlilik sağlamaz.
Uygulamalı Teşhis Örneği
Yeni kategori template’inin Google’da görünmediğini düşünün. Sitemap URL’yi listeliyor ancak Search Console taramanın engellendiğini bildiriyor. Önce doğru hostun canlı robots.txt dosyasını alın. Tam kategori yolunu ve `/cat` benzeri geniş önekin kuralı eşleştirip eşleştirmediğini kontrol edin. Sonra yanıtı ve render kaynaklarını inceleyin. Filtre URL’lerini engellemek için eklenen kural, desen fazla geniş olduğu için `/category/` yollarını da yakalıyor olabilir.
Kuralı düzeltin, hem kategori URL’sini hem de hedeflenen filtre URL’lerini test edin, dağıtım yapıp canlı dosyayı yeniden getirin. Sonra URL Denetleme ile sayfayı test edip zaman içinde crawler isteklerini izleyin. Engel kalktı diye sayfanın indekslendiği sonucuna varmayın; tarama ve indeksleme ayrı aşamalardır. Erişim geldikten sonra canonical, içerik kalitesi, dahili link ve yanıt durumunu da kontrol edin.
Sık Sorulan Sorular
robots.txt sayfayı Google Search’ten kaldırır mı?
Her zaman değil. Kurala uyan crawler’ın URL’ye istek göndermesini önler; başka sinyaller URL’yi açığa çıkarırsa sonuçta kalabilir. İndekslemeyi önlemek için erişilebilir sayfada `noindex`, özel içerikte kimlik doğrulama kullanın.
Gizli URL’leri robots.txt’ye yazarak saklayabilir miyim?
Hayır. robots.txt herkese açıktır ve erişim kontrolü değildir. Hassas içeriği kimlik doğrulamayla koruyun; özel yolları herkese açık dosyada listelemeyin.
CSS ve JavaScript dosyalarını engellemeli miyim?
Yalnız sayfanın anlaşılması için gerekmiyorsa ve tarama politikası istiyorsa düşünün. Kritik kaynakları engellemek render ve sayfa yorumunu bozabilir; önce temsilî URL’leri inceleyin.
`Allow`, `Disallow` kuralını geçersiz kılar mı?
Google eşleşen çelişkili kurallarda en özgül kuralı kullanır; eşit özgüllükte belgelenmiş davranışı daha az kısıtlayıcı kuralı tercih eder. Gerçek URL’yi test edin ve crawler’ın güncel belirtimine bakın.
Google’ın hangi robots.txt sürümünü gördüğünü nasıl anlarım?
Doğru host ve zaman için robots yanıtını kontrol edip Search Console denetimi ve crawl verisini sunucu/CDN loglarıyla karşılaştırın. Cache ve dağıtım zamanı canlı dosyanın yerel kopyadan farklı olmasına yol açabilir.
robots.txt tüm arama motorlarını ve botları kontrol eder mi?
Hayır. Bu gönüllü protokoldür ve crawler desteği değişebilir. Özel veri için kimlik doğrulama kullanın, her servise uygun teknik kontrolü seçin.
Sonuç
Sağlam robots.txt politikası küçük, bilinçli, hosta özel ve gerçek URL’lerle test edilmiş olur. Önce istekleri yönetmek, indekslemeyi önlemek veya erişimi korumak istediğinizi belirleyin. Canlı dosyayı inceleyin, kesin izin/engel eşleşmelerini test edin, kritik kaynakları açık bırakın ve dağıtım sonrası sonucu doğrulayın. Crawler davranışını Search Console ve loglarla izleyin; robots kuralını canonical, noindex, kimlik doğrulama veya sağlıklı URL stratejisinin yerine koymayın.
Birincil referanslar için Google’ın robots.txt girişini (yeni sekmede açılır), robots.txt belirtimi notlarını (yeni sekmede açılır) ve noindex ile indekslemeyi engelleme rehberini (yeni sekmede açılır) okuyun. Kaynaklar Google davranışını açıklar; değişiklikten önce kendi canlı dosyanızı, hosting katmanlarını ve URL desenlerini doğrulayın.
Kural İncelemesinde Örnek Senaryolar
robots.txt değişikliklerini yalnız bir sözdizimi satırına bakarak onaylamayın. Her kuralın hangi URL sınıfı için eklendiğini ve hangi sayfaların açık kalması gerektiğini açıklayan kısa bir not tutun. Örneğin `/arama` yolu site içi arama sonuçları için kapatılmak istenmiş olabilir; benzer önekli `/arama-motoru-rehberi` makalesinin de engellenmesi istenmeyebilir. Bu iki adresi, alt yolları ve sondaki slash varyantını aynı test matrisinde gösterin.
Birden fazla crawler grubu varsa her hedefin hangi kuralları aldığını belgeleyin. Named user-agent grubunun `*` grubuyla nasıl ilişkilendiğini, aynı crawler için yinelenen grupların nasıl işlendiğini ve `Allow` istisnasının daha genel `Disallow` ile nasıl çakıştığını Google’ın güncel belirtimine göre doğrulayın. Farklı arama motorlarının ve özel amaçlı botların aynı kuralları aynı biçimde yorumlayacağını varsaymayın. Kurallar arasında belirsizlik varsa söz dizimini sadeleştirin ve temsilî URL’leri ilgili aracın güncel test yöntemiyle sınayın.
Query parametrelerinde yanlış genelleme
Filtreleri engellemek için `Disallow: /*?` gibi geniş bir desen düşünülüyorsa önce sitemap, dahili link ve log örneklerini inceleyin. Query kullanan değerli ürün varyantları veya kampanya dışındaki kalıcı landing page’ler aynı desene denk gelebilir. URL’nin query bölümüyle ilgili desen davranışı crawler uygulamasına bağlıdır; canlı örneklerde test etmek önemlidir. URL normalizasyonu, canonical ve dahili link üretimini çözmeden robots kuralına sarılmak, yalnız belirtileri saklayabilir.
Staging ve production kuralı
Staging ortamını yayından önce crawler erişimine kapatmak çoğu zaman istenir; fakat bunu yalnız robots.txt ile yapmak erişim denetimi sağlamaz. Staging URL’leri dış link veya başka sinyal yoluyla keşfedilebilir. Kimlik doğrulama, VPN veya ağ izin listesiyle erişimi koruyun. Production’da ise staging’den kopyalanmış `Disallow: /` kuralı bütün siteyi kapatabilir. Yayın otomasyonunda staging ve production robots dosyalarının ayrı kaynaktan geldiğini ve hedef ortama göre doğrulandığını kontrol edin.
Yayın Öncesi URL Test Matrisi Örneği
Bir site için test listesi sadece geliştiricinin elle girdiği birkaç örnekten oluşmamalıdır. Önemli template’leri ve sınır koşullarını kapsayan tablo, kural değişikliğinin kapsamını somutlaştırır. URL’leri sitemap ve crawl çıktısından seçin; her satıra beklenen erişim kararını ve sonucu yazın.
| Sınıf | Örnek yol | Beklenen sonuç | Yan kontrol |
|---|---|---|---|
| Ana sayfa | / | İzinli | 200 ve indexable |
| SEO rehberi | /tr/seo-rehberi/robots-txt-denetimi | İzinli | Canonical ve iç linkler |
| Hesap alanı | /hesap/ayarlar | Tarama dışı olabilir | Gerçek gizlilik için oturum kontrolü |
| Site içi arama | /arama?q=seo | Kalıcı arama hedefi değilse engel/noindex politikası | Sayfa davranışı ve query varyantları |
| Render kaynağı | /assets/app.css | Sayfa için gerekliyse izinli | URL Inspection rendered output |
| Benzer önek | /arama-rehberi | İzinli | Geniş path eşleşmesi var mı? |
| Staging hostu | staging.example.com/ | Auth/network policy ile korunmalı | Canlı hosttan ayrı robots |
Tablodaki özel hesap URL’si için robots.txt’ye güvenmek yeterli değildir; sayfanın giriş olmadan erişilemediğini ayrıca kontrol edin. İç arama URL’lerinde ise arama motoruna açık olmaması istenen sayfanın politikası `noindex`, tarama kontrolü veya her ikisini kapsayabilir; yönergelerin crawler tarafından görülebilmesi gerektiğini unutmayın. Her sınıfı kendi hedefiyle değerlendirip tek bir kuralın hepsini çözdüğünü varsaymayın.
robots.txt Yanıtını İzlemek
Dosya küçük görünse bile CDN ve proxy katmanları farklı sürüm servis edebilir. Deploy sonrası birden fazla ağ noktasından veya uygun erişim hattından yanıtı kontrol edip ETag, Last-Modified ve cache age gibi mevcut başlıkları kaydedin. Sunucu robots.txt isteğine 5xx veya 404 döndürürse crawler’ların davranışı beklenenden farklı olabilir; Google’ın robots belirtimi hata durumları ve dosyanın alınamaması için davranış tanımlar. Arıza anındaki sonucu güncel resmi belgelere göre yorumlayın ve altyapı ekibiyle birlikte çözün.
Robots dosyasının değişimini normal deployment loguna bağlayın: kim değiştirdi, hangi iş ihtiyacıyla, hangi URL matrisi çalıştırıldı, production’da hangi yanıt doğrulandı? Bu bilgiler, aylar sonra “Google niye bu sayfayı taramıyor?” sorusunu yanıtlarken tahmin yürütmeyi azaltır. Ekipler arasında dosya sahipliği belirsizse CMS, CDN ve repository kaynaklarından hangisinin production’da yetkili olduğunu belirleyin.
Engel Kaldırıldıktan Sonra Ne Beklenmeli?
Bir Disallow kuralını kaldırmak anında tarama veya indeks garantisi vermez. Crawler değişikliği yeniden görmeli, URL’yi istemeli ve sayfanın yanıtını işlemelidir. Sitenin boyutu, önceki tarama, sunucu yanıtı, iç linkler ve içerik yararı süreci etkiler. Search Console URL Denetleme üzerinden canlı erişimi test etmek, gerçek indekslenme sonucundan farklı bir soruyu yanıtlar. Geniş değişikliklerde request logları ve Crawl Stats’ı zaman içinde izleyin.
Kural kaldırıldıktan sonra hassas bir URL’nin görünür hale gelmediğini de doğrulayın. Eğer özel içerik yanlışlıkla robots ile saklanıyorsa, önce erişim kontrolünü kurup ardından gerekli arama kaldırma adımını değerlendirin. Dosya erişimini herkes için açıp sadece crawler engeline güvenmek doğru düzeltme değildir. Tersine, taranması istenen önemli sayfa hâlâ engelliyse robots dosyasına ek olarak CDN, uygulama erişim kuralı ve HTTP yanıtını araştırın.
Yorum Yaz
Yorum yapabilmek için giriş yapmalısınız. Giriş Yap