Robots.txt (Robots Exclusion Protocol - RFC 9309) ve Tarama Bütçesi Rehberi
Arama motoru optimizasyonunun (SEO) en temel ve aynı zamanda en tehlikeli dosyası robots.txt protokolüdür. Web sitenizin kök dizininde yer alan bu yalın metin dosyası, arama motoru örümceklerine (Googlebot, Bingbot, YandexBot vb.) ve yapay zeka tarayıcılarına (GPTBot, ClaudeBot) sitenizin hangi dizinlerini tarayabileceğini, hangi yollardan uzak durması gerektiğini bildirir. Doğru yapılandırılmış bir robots.txt dosyası tarama bütçenizi (crawl budget) optimize ederek kritik sayfalarınızın indekslenme hızını katlarken; yanlış yerleştirilen tek bir eğik çizgi (Disallow: /) milyonlarca liralık bir web sitesinin Google dizininden saatler içinde tamamen silinmesine yol açabilir. inovoice Robots.txt Oluşturucu & Doğrulayıcı, RFC 9309 standartlarına tam uyumlu hatasız yönergeler hazırlamanızı sağlar.
1. Robots Exclusion Protocol (REP) Standartları ve RFC 9309
Robots.txt standardı ilk kez 1994 yılında Martijn Koster tarafından gayriresmi bir uzlaşı olarak ortaya atılmış; 2022 yılında ise Internet Engineering Task Force (IETF) tarafından resmi olarak RFC 9309 numarasıyla internet standardı haline getirilmiştir. Bu standarda göre:
- Robots.txt dosyası mutlaka web sitesinin en üst kök dizininde (
https://alanadiniz.com/robots.txt) yer almalıdır. Alt dizinlerdeki (örneğin/tr/robots.txt) dosyalar botlar tarafından tamamen yok sayılır. - Dosya UTF-8 formatında kodlanmış düz metin (text/plain) olmalı ve HTTP 200 durum koduyla sunulmalıdır. Dosya boyutu maksimum 500 Kibibyte (KiB) sınırını aşmamalıdır; aşan kısımlar Googlebot tarafından kesilir.
- Eğer sunucu robots.txt için 5xx Sunucu Hatası döndürürse, Googlebot sitenize zarar vermemek adına tüm tarama işlemlerini geçici olarak durdurur. 404 Bulunamadı kodu dönerse, hiçbir kısıtlama olmadığını varsayarak tüm siteyi tarar.
2. Temel Direktifler, Sözdizimi Kuralları ve Joker Karakterler (Wildcards)
Robots.txt dosyası yukarıdan aşağıya doğru satır satır işlenen yönerge bloklarından oluşur:
- User-agent: Yönergenin hangi arama motoru veya bot için geçerli olduğunu tanımlar. Yıldız sembolü (
User-agent: *) tüm genel botları kapsar. Özel bir bot hedeflenecekse (örneğinUser-agent: GooglebotveyaUser-agent: GPTBot) ayrı bir blok açılır. - Disallow: Botların erişmesini istemediğiniz dizin veya URL yolunu belirtir. Örneğin
Disallow: /admin/yazıldığında/admin/ile başlayan hiçbir sayfa taranmaz. - Allow: Engellenmiş bir ana dizin altındaki belirli bir dosya veya alt klasöre istisnai izin vermek için kullanılır. Örneğin
Disallow: /wp-admin/kuralının hemen altınaAllow: /wp-admin/admin-ajax.phpeklenerek tema/eklenti AJAX çağrılarının taranması sağlanır. - Sitemap: XML site haritanızın tam mutlak URL adresini (
Sitemap: https://siteniz.com/sitemap_index.xml) belirtir. Botların yeni içerikleri keşfetmesini hızlandırır. Birden fazla sitemap satırı eklenebilir. - Joker Karakterler (* ve $):
•*(Yıldız): Sıfır veya daha fazla karakteri temsil eder. ÖrneğinDisallow: /*?*sort=yönergesi içinde soru işareti ve sort parametresi geçen tüm dinamik filtre URL'lerini engeller.
•$(Dolar): URL'nin tam olarak bittiği yeri simgeler. ÖrneğinDisallow: /*.pdf$yönergesi sadece .pdf uzantısıyla biten dosyaları engeller.
User-agent: *
Disallow: /sepet/
Disallow: /odeme/
Disallow: /hesabim/
Disallow: /admin/
Disallow: /*?*search=
Disallow: /*?*filter_*
Allow: /wp-admin/admin-ajax.php
Allow: /*.css$
Allow: /*.js$
# Yapay Zeka Botlarının Veri Kazımasını Engelleme
User-agent: GPTBot
Disallow: /
User-agent: CCBot
Disallow: /
Sitemap: https://inovoice.com.tr/sitemap.xml
3. En Kritik SEO İkilemi: Disallow ile Noindex Arasındaki Fark
SEO sektöründe yapılan en yaygın ve tehlikeli hata; arama sonuçlarından kaldırılmak istenen sayfaların robots.txt ile engellenmesidir. Bu iki kavramın çalışma mantığı tamamen farklıdır:
- Disallow (Tarama Engeli): Botun o sayfaya gidip HTML kodunu indirmesini ve çalıştırmasını engeller. Ancak bu sayfa internette başka bir sayfadan veya siteden link alıyorsa, Google o sayfayı dizine ekleyebilir. Arama sonuçlarında "Bu sonuç için sayfa sahibinin uyguladığı robots.txt nedeniyle bir açıklama sunulamıyor" uyarısıyla URL açık kalır.
- Noindex (İndeks Engeli): Sayfanın arama motoru dizininden tamamen çıkarılmasını sağlar. Bunun çalışabilmesi için botun sayfayı tarayabilmesi gerekir! Eğer bir sayfayı hem robots.txt ile Disallow yapıp hem sayfaya
noindexetiketi koyarsanız; bot sayfayı tarayamayacağı için noindex etiketini göremez ve sayfa Google arama sonuçlarında kalmaya devam eder!
4. Tarama Bütçesi (Crawl Budget) ve E-Ticaret Optimizasyonu
Google her web sitesine, sitenin popülaritesine, sunucu hızına ve büyüklüğüne göre günlük belirli bir Tarama Bütçesi (Crawl Budget) tahsis eder. 50.000 ürünlü bir e-ticaret sitesinde; renk, beden, fiyat aralığı ve sıralama filtreleri kombinasyonlar oluşturarak milyonlarca önemsiz URL (Faceted Navigation) türetebilir.
Eğer bu gereksiz parametreler robots.txt üzerinden engellenmezse; Googlebot tüm günlük tarama kotasını anlamsız filtre sayfalarını tarayarak tüketir ve yeni eklediğiniz asıl kârlı ürünlerinizi veya güncel blog yazılarınızı aylarca indeksleyemez.
5. Gerçekçi Kurumsal Vaka Analizleri
Vaka 1: 60.000 Ürünlü E-Ticaret Sitesinde Tarama Bütçesi Kurtarma Operasyonu
Büyük bir anne-bebek e-ticaret sitesinde Google Search Console "Tarama İstatistikleri" raporunda botun günde 150.000 istek yaptığı, ancak yeni eklenen ürünlerin dizine girmesinin 3 haftayı bulduğu tespit edilmiştir. Log analizinde Googlebot'un zamanının %72'sini sonsuz filtre sayfalarında (?color=...&size=...&price=...) harcadığı anlaşılmıştır.
- Uygulanan Çözüm: Robots.txt dosyasına parametre regex kuralları eklendi:
Disallow: /*?*filter_veDisallow: /*?*sort=. - Elde Edilen Sonuç: Boşa harcanan tarama trafiği 48 saat içinde %85 azaldı. Googlebot tarama enerjisini yeni eklenen ürün sayfalarına yöneltti; ortalama ürün indeksleme süresi 21 günden 4 saate düştü ve sitenin organik trafiği 2 ay içinde %42 artış kaydetti.
Vaka 2: Canlıya Alınırken Unutulan "Disallow: /" Faciası ve Kriz Yönetimi
Kurumsal bir B2B makine üreticisi, yeni web sitesi tasarımını test (staging) sunucusundan canlı alan adına taşırken yazılım ekibi test ortamındaki Disallow: / kuralını robots.txt dosyasında unutmuştur.
- Yaşanan Kriz: 5. günün sonunda şirketin Google'daki 120 anahtar kelimelik ilk 3 sıra pozisyonu SERP'ten silinmeye başlamış, organik form talepleri bıçak gibi kesilmiştir.
- Müdahale Protokolü: inovoice acil müdahalesiyle robots.txt temizlendi, Google Search Console üzerinden "robots.txt'yi yeniden test et ve bildir" isteği tetiklendi ve ana XML site haritası Google API aracılığıyla anlık 'Ping' edildi. Site sıralamaları 96 saat içinde eski pozisyonlarına başarıyla döndürüldü.
6. Popüler Platformlar İçin Doğru Robots.txt Kıyaslama Tablosu
| Web Altyapısı | Önerilen Disallow Yolları | Zorunlu Allow İstisnaları | Kritik Dikkat Noktası |
|---|---|---|---|
| WordPress / Blog | /wp-admin/, /trackback/, /xmlrpc.php | /wp-admin/admin-ajax.php | /wp-content/ ve /wp-includes/ engellenmemeli (CSS/JS kilitlenir) |
| WooCommerce / E-Ticaret | /cart/, /checkout/, /my-account/, /*?add-to-cart= | /wp-content/uploads/ | Filtre ve sıralama parametreleri joker karakterle kısıtlanmalı |
| Laravel / Özel PHP | /admin/, /storage/logs/, /api/internal/ | /assets/, /build/ | Blade şablonlarının kullandığı derlenmiş CSS/JS yolları açık olmalı |
| Shopify | /checkout, /carts, /orders, /search | Shopify CDN varlıkları | Shopify robots.txt dosyasını 'robots.txt.liquid' şablonundan yönetir |
| Next.js / Headless | /api/, /_next/data/ | /_next/static/ | SSR/SSG sayfalarında statik build klasörlerinin taranabilmesi şarttır |
7. Robots.txt Yapılandırmasında Yapılan 6 Kritik Hata
/assets/ veya /css/ klasörlerini Disallow yaparsanız, Google sitenizi kırık/bozuk algılar ve mobil uyumluluk cezası verir.
Disallow: /gizli-musteri-listesi-2026/ gibi bir satır yazmak kötü niyetli korsanlara doğrudan hedef göstermektir. Hassas sayfalar robots.txt ile değil, parola ve sunucu düzeyinde erişim kısıtlamasıyla korunmalıdır.
Disallow: /admin/ yönergesi /Admin/ veya /ADMIN/ adreslerini engellemez. URL yapınızın harf standardına göre kurallar kurgulanmalıdır.
<meta name="robots" content="noindex"> etiketini okuyup dizinden silmelidir.
Sitemap: /sitemap.xml gibi göreceli yollar geçersizdir. Arama motorları mutlak URL bekler: Sitemap: https://inovoice.com.tr/sitemap.xml şeklinde protokol ve alan adı eksiksiz yazılmalıdır.