Robots.txt Nedir? Neden Önemlidir, URL’de Nasıl Görünür?
Robots.txt, arama motoru botlarına (crawler/spider) sitenizin hangi bölümlerini tara(bile)cekleri ve dizine ekle(bile)cekleri hakkında talimat veren, kök dizinde yer alan düz metin dosyasıdır. Temel amaç; sunucuyu gereksiz yükten korumak, özel/teknik alanları taramadan uzak tutmak ve bot davranışını çerçevelemektir. Dosyanın konumu her zaman sitenin kökünde olmalıdır:
https://www.siteadresiniz.com/robots.txt
Robots.txt olmasa da arama motorları sitenizi tarar; yani varlığı zorunlu değildir. Ancak doğru hazırlanmış bir robots.txt, özellikle büyük sitelerde tarama verimliliğini artırır, test/filtre sayfalarını ayıklar, dizin temizliğini kolaylaştırır ve SEO süreçlerini daha yönetilebilir kılar.
Robots.txt SEO’ya Nasıl Katkı Sağlar?
Robots.txt doğrudan sıralama faktörü olmasa da dolaylı etkileri güçlüdür:
- Tarama Bütçesi (Crawl Budget) Verimliliği: Filtre, arama sonuçları, sınırsız parametreli URL’ler gibi “gürültü” üreten alanlar dışarıda tutulursa botlar değerli içeriklere daha sık ulaşır.
- Gereksiz Dizine Eklemenin Önüne Geçme: İncelenmesini istemediğiniz teknik dizinler (ör. /wp-admin/, /tmp/), test sürümleri ve duplicateler taranmamış olur.
- Sunucu Sağlığı: Tarama yükünü kontrol etmek, özellikle yoğun trafiğe sahip ortamlarda yanıt sürelerini ve kararlılığı iyileştirir.
- Temiz Site Haritası Entegrasyonu: Robots içinde Sitemap bildirimi, arama motorlarına içerik keşfini hızlandırır.
Önemli: Robots.txt dizine eklemeyi engellemez; taramayı kısıtlar. Daha önce dizine girmiş bir URL’yi arama sonuçlarından düşürmek için noindex (sayfa içinde meta robots) veya HTTP X-Robots-Tag gerekir.
Robots.txt URL’de Nasıl Gözükür?
Robots.txt dosyası sitenin kök dizininde yer alır ve arama motoru botlarının erişimini yönetir.
Aşağıdaki örnek, doğru ve hatalı dosya konumlarını gösterir:
Doğru: siteadresiniz.com/robots.txt Dosya kök dizinde olmalı, bu format tüm botlar tarafından tanınır.
Yanlış: siteadresiniz.com/main/robots.txt veya alt klasörler
Robots.txt alt klasörlerde yer alırsa arama motorları bu dosyayı göremez.
Protokol Eşleşmesi: Site HTTPS ise robots.txt de HTTPS üzerinden sunulmalıdır. Bu, hem güvenlik hem de bot uyumluluğu açısından önemlidir.
Robots.txt Olmasa Olur mu?
Evet, küçük ve basit sitelerde olmasa da işler yürür. Ancak büyüdükçe, parametreli yapılar ve filtreli sayfalar çoğaldıkça tarama verimliliği düşer. Büyük/orta ölçekli siteler, e-ticaret projeleri ve çok dilli yapılarda mutlaka olmalı ve düzenli olarak gözden geçirilmelidir. Alt alan adlarının her biri kendi robots.txt dosyasına sahip olmalıdır.
Popüler Botlar ve Hangi Motorlar Tarafından Kullanıldıkları
Aşağıdaki tablo, sık karşılaşılan botları ve kullanım alanlarını özetler (ChatGPT dahil):
Arama Motoru / Servis | Bot (User-Agent) | Not |
Googlebot | Web genel tarayıcı | |
Googlebot-Image, Googlebot-Video | Görsel/Video | |
AdsBot-Google | Reklam kalite tarayıcısı | |
Google-Extended | Google yapay zekâ eğitim kontrol UA’sı (robots ile yönetim) | |
Bing (Microsoft) | Bingbot | Web genel tarayıcı |
BingPreview | Önizleme | |
Yandex | YandexBot | Web |
Baidu | Baiduspider | Çin pazarında yaygın |
DuckDuckGo | DuckDuckBot | Gizlilik odaklı arama |
Apple | Applebot | Siri/Spotlight içerik keşfi |
Seznam | SeznamBot | CZ/SK pazarı |
Yahoo | Slurp (tarihsel), pratikte Bing altyapısı | Çoğunlukla Bingbot kullanır |
OpenAI (ChatGPT) | GPTBot, ChatGPT-User | İçerik alma/önizleme kontrolleri |
Common Crawl | CCBot | Web arşivi, birçok yapay zekâ veri kaynağı |
Perplexity | PerplexityBot | Cevap motoru |
Anthropic | ClaudeBot, Claude-Web | Yapay zekâ içerik tarayıcıları |
SEO Araçları | AhrefsBot, SemrushBot, MJ12bot | Denetim ve link grafı |
Bu botların bazıları crawl-delay veya Allow desteğini farklı yorumlar. Google crawl-delay yönergesini desteklemez; tarama hızını Search Console’dan yönetirsiniz. Bing/Yandex gibi motorlar crawl-delay komutunu anlayabilir.
Robots.txt Yazarken Dikkat Edilmesi Gerekenler
Kök dizinde tek dosya: /robots.txt
UTF-8 ile düz metin, BOM’suz.
Küçük/büyük harf duyarlılığı yol adlarında önemlidir.
Desenler: * (joker), $ (satır sonu) çoğu bot tarafından desteklenir; ancak evrensel standart değildir.
Önce izin ver (Allow), sonra engelle (Disallow) kuralını motorlar farklı sırada değerlendirebilir; Google önce Allow’ları toplar, sonra Disallow uygular.
Noindex ≠ Disallow: Dizinden çıkarma için sayfa içinde noindex (veya X-Robots-Tag) gerekir. Sırf Disallow ile dizinden düşmez.
Sitemap bildirimi ekleyin ve doğru protokol/alanı kullanın.
Alt alan adlarına ayrı robots.txt sağlayın.
Canlıya almadan test edin: GSC robots testi, staging ortamlarında erişim.
Komutlar: User-agent, Allow, Disallow, Crawl-delay, Sitemap
Bu komutlar robots.txt dosyasının temel yapı taşlarıdır.
Her biri arama motorlarına farklı bir yönerge verir:
- User-agent: Kuralların hangi bota uygulanacağını belirtir.
- Allow: Belirli klasör veya dosyalara erişime izin verir.
- Disallow: Belirtilen alanların taranmasını engeller.
- Sitemap: Arama motorlarına site haritasının konumunu bildirir.
Temel iskelet:
User-agent: *
Allow: /
Disallow:
Sitemap: https://www.siteadresiniz.com/sitemap.xml
🔍 Bu örnekte tüm botlara tam erişim izni verilmiş ve site haritası bildirilmiştir.
1) Botlara Özel Kurallar
Bazı durumlarda her bot için aynı kuralları uygulamak istemeyebilirsiniz.
Bu noktada botlara özel kurallar tanımlayarak, belirli arama motorlarının sitenizin bazı bölümlerine erişimini kısıtlayabilir veya izin verebilirsiniz.
Belirli botu hedeflemek:
User-agent: Googlebot
Disallow: /deneme/
User-agent: Bingbot
Allow: /deneme/
Bu örnekte Googlebot, /deneme/ klasörünü tarayamazken Bingbot aynı klasöre erişebilmektedir. Bu yapı, arama motorları arasında farklı stratejiler uygulamak istediğinizde (örneğin test sayfalarını yalnızca belirli botlardan gizlemek gibi) oldukça kullanışlıdır.
💡 İpucu: Her User-agent bloğu birbirinden bağımsızdır.
Google ve Bing gibi farklı motorlar için ayrı kurallar oluşturabilir, erişim düzeyini istediğiniz şekilde belirleyebilirsiniz.
2) Dizin / Sayfa Engelleme-İzin Verme
Robots.txt ile belirli klasörleri veya dosyaları arama motorlarından gizleyebilir ya da erişime açabilirsiniz.
Bu yöntem, gereksiz sayfaların dizine eklenmesini önler ve crawl bütçesini optimize eder.
Tüm siteyi değil, sadece istenen dizinleri sınırlandırmak:
User-agent: *
Disallow: /cgi-bin/
Disallow: /tmp/
Allow: /assets/css/
📁 Bu örnekte /cgi-bin/ ve /tmp/ dizinleri engellenirken, CSS klasörü açık bırakılmıştır.
Belirli bir dosyayı izin ver, klasörü engelle:
User-agent: *
Disallow: /docs/
Allow: /docs/kilavuz.pdf
“/docs” klasörü tamamen engellenir, ancak “kilavuz.pdf” dosyası arama motorları tarafından taranabilir.
Bu yöntem, özel belgeleri korurken belirli içeriklerin görünürlüğünü sağlar.
3) Parametreli URL’leri Sakinleştirme
Bazı web sitelerinde filtreleme, arama veya sıralama işlemleri için kullanılan URL parametreleri (?, &, sort=, filter= vb.) tarama bütçesini gereksiz yere tüketir.
Bu tür URL’leri robots.txt ile hariç tutarak, arama motorlarının yalnızca temel sayfaları taramasını sağlayabilirsiniz.
User-agent: *
Disallow: /*?
Bu komut, içinde “?” karakteri bulunan tüm URL’leri taramadan hariç tutar.
Yani /urunler?renk=mavi veya /arama?kelime=telefon gibi parametreli sayfalar indekslenmez.
Bu yöntem, e-ticaret veya blog filtreleme sistemlerinde yinelenen içeriklerin önüne geçmek için idealdir.
Yalnızca .asp ile bitenleri engelle:
makefile
Kodu kopyala
User-agent: *
Disallow: /*.asp$
Bu komut yalnızca uzantısı .asp ile biten sayfaları engeller.
Örneğin, iletisim.asp veya test.asp gibi sayfalar taranmaz, ancak .html veya .php sayfalar etkilenmez.
$ işareti, desenin satır sonunda aranması gerektiğini belirtir; yani yalnızca tam eşleşme sağlanır.
💡İpucu: Bu yöntemi farklı dosya uzantıları için de kullanabilirsiniz. Örneğin .zip, .pdf veya .old gibi yedek ve statik dosyaları arama motorlarından gizlemek için uygundur.
4) Crawl-delay (Google desteklemez)
User-agent: Bingbot
Crawl-delay: 5
Yandex/Bing gibi botlar için sunucu yükünü azaltır. Google’da tarama hızını Search Console > Ayarlar > Tarama kısmından yönetin.
5) ChatGPT/OpenAI ve Diğer Yapay Zekâ Botlarını Sınırlama
Tam engelleme:
User-agent: GPTBot
Disallow: /
User-agent: ChatGPT-User
Disallow: /
User-agent: CCBot
Disallow: /
Kısmi izin:
User-agent: GPTBot
Disallow: /
Allow: /blog/
6) Toplu Kural Grupları
Aynı blok içinde birden fazla kural:
User-agent: *
Disallow: /admin/
Disallow: /search
Disallow: /?*
Allow: /blog/
Sitemap: https://www.siteadresiniz.com/sitemap.xml
Örnek Senaryolar (Uygulamalı)
E-Ticaret / Filtreli Sayfalar:
User-agent: *
Disallow: /*?color=
Disallow: /*?size=
Disallow: /*?sort=
Allow: /urunler/
WordPress Yönetim Alanı:
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Staging/Önizleme Ortamı (Geçici):
User-agent: *
Disallow: /
Yayına geçince kaldırmayı unutmayın; aksi halde siteniz taranmaz.
Sık Yapılan Hatalar ve Kaçınma Yolları
Tüm siteyi yanlışlıkla kapatmak: Disallow: / “her şeyi engeller”; staging’den canlıya taşınırken unutulabilir.
Noindex’i robots ile sanmak: Dizinden kaldırma değil, taramayı kısıtlama yapar. Dizinden düşürmek için sayfanın erişilebilir olması ve noindex alması gerekir.
Alt alan adını unutmak: shop.site.com için ayrı https://shop.site.com/robots.txt gerekir.
Sitemap’ı farklı alanla karıştırmak: Protokol ve alan adı robots ile birebir uyumlu olsun.
Agresif wildcard: Disallow: /a => /about da engellenir; davranışı bilin ve spesifik desenler kullanın.