Blog · 27 Ekim 2026

Robots.txt Nedir? Doğru Yazım, Örnekler ve Sık Yapılan Hatalar

Robots.txt, sitenizin kök dizininde duran ve arama motoru tarayıcılarına hangi adresleri tarayıp hangilerini taramamaları gerektiğini söyleyen düz metin dosyasıdır. Bir kilit değil, bir yönergedir: Googlebot gibi kurallara uyan tarayıcılar onu dikkate alır, kötü niyetli botlar ise yok sayabilir. En önemli nokta şu: robots.txt taramayı kontrol eder, dizine eklemeyi değil.

Bu rehberde dosyanın nerede durması gerektiğini, satır satır sözdizimini, WordPress, e-ticaret ve Next.js için kullanıma hazır örnekleri, noindex ile farkını, yapay zekâ tarayıcılarını nasıl engelleyebileceğinizi ve bir sitenin trafiğini tek satırla sıfırlayabilen hataları anlatıyoruz.

Robots.txt ne işe yarar?

Arama motorları bir siteyi ziyaret etmeden önce genellikle ilk olarak /robots.txt adresini ister. Dosyadaki kurallar, tarayıcının o sitede hangi yollara girebileceğini belirler. Bunun pratikteki faydaları şunlardır:

Robots.txt, teknik SEO çalışmasının en küçük ama en riskli dosyasıdır. Doğru yazıldığında fark edilmez; yanlış yazıldığında sitenin tamamını aramadan silebilir.

Robots.txt dosyası nerede olmalı?

Dosya yalnızca alan adının kökünde geçerlidir ve adı küçük harfle robots.txt olmalıdır:

Dosya UTF-8 kodlamalı düz metin olmalı ve sunucu 200 durum koduyla yanıt vermelidir. Google, robots.txt dosyasının ilk 500 KiB'lik bölümünü işler; bu sınıra yaklaşan bir dosya zaten gereğinden karmaşıktır. Dosya hiç yoksa ya da 404 dönüyorsa Google bunu "kısıtlama yok" olarak yorumlar ve siteyi serbestçe tarar. Buna karşılık dosya sürekli sunucu hatası (5xx) veriyorsa Google temkinli davranıp taramayı yavaşlatabilir veya durdurabilir. Bu yüzden robots.txt'nin hata vermeden açıldığından emin olmak, içeriği kadar önemlidir.

Robots.txt sözdizimi: satır satır

Dosya, her biri bir veya daha fazla User-agent satırıyla başlayan gruplardan oluşur. Her grubun altında o tarayıcıya uygulanacak Disallow ve Allow kuralları yer alır. # ile başlayan satırlar yorumdur.

# Tüm tarayıcılar için kurallar
User-agent: *
Disallow: /yonetim/
Disallow: /sepet
Allow: /yonetim/yardim/

Sitemap: https://www.ornek.com/sitemap.xml

User-agent

Kuralın hangi tarayıcıya uygulanacağını belirtir. * tüm tarayıcılar anlamına gelir. Googlebot, Bingbot gibi adlar ise yalnızca o tarayıcıyı hedefler. Burada sık gözden kaçan bir kural vardır: bir tarayıcı kendisine özel bir grup bulursa yalnızca o grubu uygular ve * grubunu tamamen yok sayar. Yani Googlebot için ayrı bir grup açtıysanız, genel gruptaki yasakları oraya da yeniden yazmanız gerekir.

Disallow

Taranmasını istemediğiniz yolu belirtir. Yol, alan adından sonraki kısımdır ve büyük-küçük harfe duyarlıdır: Disallow: /Arama kuralı /arama adresini engellemez. Boş bir Disallow: satırı "hiçbir şey yasak değil" demektir. Disallow: / ise sitenin tamamını yasaklar.

Allow

Yasaklanmış bir klasörün içindeki belirli bir alt yolu yeniden açar. Google, bir URL'ye birden fazla kural uyduğunda en uzun (en spesifik) yol eşleşmesine sahip kuralı uygular. Uzunluklar eşitse daha az kısıtlayıcı olan, yani Allow kazanır.

Sitemap

Site haritanızın tam URL'sini bildirir. Herhangi bir grubun parçası değildir, dosyanın herhangi bir yerinde durabilir ve birden fazla kez kullanılabilir. Mutlaka tam adres yazılmalıdır, göreli yol geçersizdir. Site haritasını nasıl hazırlayıp göndereceğinizi sitemap rehberimizde ayrıntılı anlattık.

Joker karakterler: * ve $

Google ve diğer büyük arama motorları iki özel karakteri destekler:

KuralEngellerEngellemez
Disallow: /arama/arama, /arama?q=koltuk, /aramalar/urun/arama
Disallow: /arama//arama/koltuk/arama, /aramalar
Disallow: /*?sirala=/koltuk?sirala=fiyat/koltuk
Disallow: /*.pdf$/katalog.pdf/katalog.pdf?v=2
Disallow: /*?Soru işareti içeren tüm adreslerParametresiz tüm adresler

Tablonun ilk satırı önemli bir uyarı içerir: Disallow kuralları önek eşleşmesiyle çalışır. /arama yazdığınızda /aramalar gibi aynı harflerle başlayan başka sayfaları da istemeden engelleyebilirsiniz. Klasör kastediyorsanız sona eğik çizgi koyun.

Google'ın desteklemediği satırlar

İnternette dolaşan eski örneklerde görülen bazı satırlar Google tarafından dikkate alınmaz:

Hazır robots.txt örnekleri

Aşağıdaki örnekler başlangıç noktasıdır. Kopyalamadan önce kendi URL yapınızla karşılaştırın; başka bir siteye uyan kural sizinkinde önemli bir bölümü kapatabilir.

Basit kurumsal site

User-agent: *
Disallow:

Sitemap: https://www.ornek.com/sitemap.xml

Hiçbir şeyi engellemeyen bu dosya, yasaklanacak özel bir bölümü olmayan küçük siteler için çoğu zaman en doğru seçimdir. Engellenecek bir şey yoksa engellemeyin.

WordPress

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /?s=
Disallow: /search/

Sitemap: https://www.ornek.com/wp-sitemap.xml

WordPress, fiziksel bir dosya yoksa ilk üç satıra benzeyen sanal bir robots.txt üretir. admin-ajax.php için Allow satırı önemlidir; birçok tema ve eklenti sayfa içeriğini bu uç noktadan yükler. /wp-content/ ya da /wp-includes/ klasörlerini engellemeyin: tema dosyaları, görseller, CSS ve JavaScript buradan gelir ve Google'ın sayfayı doğru işlemesi için gereklidir. Site haritası adresi, kullandığınız yapıya göre farklı olabilir; tarayıcıda açarak doğrulayın.

E-ticaret sitesi

User-agent: *
Disallow: /sepet
Disallow: /odeme
Disallow: /hesabim
Disallow: /*?sirala=
Disallow: /*&sirala=
Disallow: /*?q=
Disallow: /*sessionid=

Sitemap: https://www.ornek.com/sitemap.xml

E-ticarette asıl sorun filtre ve sıralama parametreleridir. Renk, beden, fiyat ve sıralama seçenekleri birleştiğinde tek bir kategori binlerce URL üretebilir. Ancak hangi filtre sayfasının engelleneceğine kör karar vermeyin: "siyah deri koltuk" gibi gerçek arama talebi olan filtre kombinasyonları, kendi başına sıralanabilecek değerli sayfalar olabilir. Bu ayrımı nasıl yapacağınızı e-ticaret SEO çalışmasında kategori ve filtre stratejisiyle birlikte düşünmek gerekir. Parametrenin URL'nin başında ? ile mi, ortasında & ile mi geldiğine göre iki ayrı kural yazmanız gerektiğine dikkat edin.

Next.js (App Router)

Next.js'te robots.txt'yi elle yazmak yerine app/robots.ts dosyasıyla üretebilirsiniz. Çerçeve bu dosyadan derleme sırasında /robots.txt çıktısını oluşturur:

import type { MetadataRoute } from "next";

export default function robots(): MetadataRoute.Robots {
  return {
    rules: [
      { userAgent: "*", allow: "/", disallow: ["/api/", "/panel/"] },
    ],
    sitemap: "https://www.ornek.com/sitemap.xml",
  };
}

Bu yöntemin avantajı, kuralları ortam değişkenine bağlayabilmenizdir. Örneğin yalnızca üretim ortamında taramaya izin verip test ortamında her şeyi kapatabilirsiniz. Ama bu esneklik, aşağıda anlatacağımız en tehlikeli hatanın da kapısını açar: ortam değişkeni yanlış ayarlanırsa canlı site Disallow: / ile yayına çıkar. /_next/ klasörünü engellemeyin; sayfanın JavaScript ve CSS dosyaları oradan yüklenir.

Robots.txt sayfayı dizinden çıkarmaz: noindex ile farkı

En yaygın yanlış anlama budur. Robots.txt bir sayfanın taranmasını engeller, dizine eklenmesini değil. Engellenen bir sayfaya başka sitelerden veya kendi sitenizden bağlantı veriliyorsa Google o adresi yine de dizine ekleyebilir. Bu durumda sonuçlarda genellikle açıklama metni olmadan, yalnızca URL ve bağlantı metninden türetilmiş bir başlıkla görünür.

ÖzellikRobots.txt DisallowNoindex (meta etiket veya X-Robots-Tag)
Neyi kontrol eder?TaramayıDizine eklemeyi
Sayfa sonuçlardan kalkar mı?Garanti değilEvet, sayfa yeniden tarandıktan sonra
Google sayfanın içeriğini görür mü?HayırEvet, okumak zorundadır
Tarama bütçesi tasarrufuSağlarSağlamaz, sayfa taranmaya devam eder
Nerede tanımlanır?Kök dizindeki tek dosyadaHer sayfanın HTML başlığında veya HTTP yanıtında
Uygun kullanımSonsuz parametre, iç arama, teknik alanlarİnce içerik, teşekkür sayfaları, etiket arşivleri

İkisini birlikte kullanma tuzağı

Bir sayfayı hem robots.txt ile engelleyip hem de noindex etiketi eklerseniz, Google sayfayı tarayamadığı için noindex etiketini hiç göremez. Sonuç: sayfa dizinde kalmaya devam edebilir. Doğru sıra şöyledir:

  1. Sayfaya <meta name="robots" content="noindex"> etiketini ekleyin (PDF gibi HTML olmayan dosyalarda X-Robots-Tag: noindex HTTP başlığını kullanın).
  2. Robots.txt'de o sayfaya engel olmadığından emin olun.
  3. Google sayfayı yeniden tarayıp sonuçlardan kaldırana kadar bekleyin.
  4. Sayfa dizinden çıktıktan sonra, tarama bütçesi gerçekten sorun ise robots.txt engelini o zaman ekleyin.

Gizli tutulması gereken bir içerik söz konusuysa ne robots.txt ne de noindex yeterlidir. Robots.txt herkese açık bir dosyadır; içine yazdığınız yollar, sitenizde neyi saklamaya çalıştığınızı da ilan eder. Gerçek gizlilik için şifre koruması veya sunucu düzeyinde erişim kısıtlaması gerekir.

Yapay zekâ tarayıcılarını engelleme

Yapay zekâ şirketlerinin tarayıcıları da robots.txt'yi okur ve büyük sağlayıcılar kendi user-agent adlarını yayımlar. Böylece içeriğinizin model eğitiminde kullanılmasını veya yapay zekâ asistanlarının sayfanızı çekmesini site bazında kontrol edebilirsiniz. Bilinen başlıca adlar:

User-agentSahibiKullanım amacı
GPTBotOpenAIModel eğitimi için içerik toplama
OAI-SearchBotOpenAIChatGPT arama sonuçlarında gösterim
ChatGPT-UserOpenAIKullanıcının isteğiyle sayfa ziyareti
Google-ExtendedGoogleİçeriğin Gemini modellerinde kullanımına izin verip vermeme
ClaudeBotAnthropicModel eğitimi için içerik toplama
PerplexityBotPerplexityPerplexity yanıtları için dizinleme
CCBotCommon CrawlPek çok modelin eğitiminde kullanılan açık veri seti
Applebot-ExtendedAppleİçeriğin Apple'ın yapay zekâ modellerinde kullanımı

Örneğin model eğitimine kapatıp arama tabanlı yapay zekâ yanıtlarında görünmeye devam etmek isterseniz:

User-agent: GPTBot
Disallow: /

User-agent: ClaudeBot
Disallow: /

User-agent: CCBot
Disallow: /

User-agent: Google-Extended
Disallow: /

User-agent: *
Disallow: /yonetim/

Bu konuda üç noktayı bilmek gerekir:

Hangi sayfalarınızın Google'ın yapay zekâ özetlerinde göründüğünü takip etmek, bu kararın etkisini ölçmenin en somut yoludur. seoanalytics.com.tr panelindeki AI özeti görünürlüğü raporu, robots.txt'de yaptığınız bir değişiklikten önceki ve sonraki dönemi karşılaştırmanıza yardımcı olur.

Search Console robots.txt raporu

Google Search Console'un ayarlar bölümündeki robots.txt raporu, Google'ın sitenizde bulduğu robots.txt dosyalarını, en son ne zaman getirildiklerini, getirme durumunu ve dosyada tespit edilen uyarı ya da hataları gösterir. Bir alan adı mülkünde alt alan adlarının dosyaları da burada ayrı ayrı listelenir.

Raporu şu durumlarda mutlaka kontrol edin:

Ayrıca sayfa dizine ekleme raporunda "robots.txt tarafından engellendi" ve "robots.txt tarafından engellenmesine rağmen dizine eklendi" türündeki durumları izleyin. İkincisi, yukarıda anlattığımız noindex karışıklığının en net işaretidir. Raporların nasıl okunacağı için Google Search Console rehberimize göz atabilirsiniz.

Felaket hataları ve nasıl önlenir?

1. Canlıda unutulan Disallow: /

Geliştirme ve test ortamlarında sitenin taranmaması için Disallow: / kullanılır. Site yayına alınırken bu dosya taşınır ve kimse fark etmez. Birkaç gün içinde gösterimler düşmeye başlar, birkaç hafta içinde sayfalar sonuçlardan kaybolur. Önlemek için:

2. CSS ve JavaScript dosyalarını engellemek

Google sayfaları bir tarayıcı gibi işler. Stil ve betik dosyalarına erişemezse sayfayı eksik görür, mobil uyumluluğunu yanlış değerlendirir ve JavaScript ile yüklenen içeriği hiç göremeyebilir. /assets/, /static/, /_next/, /wp-content/ gibi klasörleri engellemeyin. Search Console'daki URL denetleme aracıyla canlı testi çalıştırıp işlenmiş sayfanın ekran görüntüsüne bakmak, bu sorunu fark etmenin en hızlı yoludur.

3. Önek eşleşmesini hesaba katmamak

Disallow: /blog yazan biri yalnızca blog ana sayfasını engellediğini düşünür; oysa /blog-yazilari, /blogger ve tüm blog yazıları da engellenir. Her kuralı yazdıktan sonra, etkileyebileceği gerçek URL'leri tek tek düşünün.

4. Özel grup açıp genel kuralları unutmak

Googlebot için ayrı bir grup açtığınız anda Googlebot, User-agent: * altındaki kuralları uygulamayı bırakır. Genel gruptaki yasaklar Googlebot için geçerli olmaz. Özel grup açıyorsanız gerekli tüm kuralları oraya da kopyalayın.

5. Büyük-küçük harf ve yanlış dosya adı

Robots.txt veya robots.TXT adlı bir dosya bazı sunucularda bulunamaz. Yollar da harfe duyarlıdır. Dosya adını küçük harfle yazın ve kurallarda URL'lerinizdeki yazımı birebir kullanın.

Robots.txt kontrol listesi

  1. Dosya alan adının kökünde, robots.txt adıyla duruyor ve 200 durum koduyla açılıyor mu?
  2. Canlı sitede Disallow: / satırı yok mu?
  3. CSS, JavaScript ve görsel klasörleri engellenmemiş mi?
  4. Dizinden çıkarmak istediğiniz sayfalar robots.txt yerine noindex ile mi yönetiliyor?
  5. Her Disallow kuralının önek eşleşmesiyle neleri kapsadığı kontrol edildi mi?
  6. Özel user-agent grupları varsa genel kurallar onlara da eklendi mi?
  7. Sitemap satırı tam URL ile yazılmış ve adres çalışıyor mu?
  8. Yapay zekâ tarayıcıları için verdiğiniz kararlar güncel user-agent adlarıyla yazılmış mı?
  9. Değişiklik sonrası Search Console robots.txt raporunda yeni sürüm görünüyor mu?
  10. Alt alan adlarının her birinin kendi robots.txt dosyası kontrol edildi mi?

Sık sorulan sorular

Her sitenin robots.txt dosyası olmak zorunda mı?

Hayır. Dosya yoksa Google siteyi kısıtlamasız tarar. Yine de site haritasını bildirmek ve gelecekte gerekebilecek kuralları tek yerden yönetmek için basit bir robots.txt bulundurmak iyi bir alışkanlıktır.

Robots.txt ile engellediğim sayfa neden hâlâ Google'da görünüyor?

Çünkü robots.txt taramayı engeller, dizine eklemeyi değil. Sayfaya bağlantı veren başka adresler varsa Google URL'yi içeriğini görmeden dizine ekleyebilir. Sayfayı kaldırmak için robots.txt engelini kaldırıp noindex etiketi ekleyin ve Google'ın sayfayı yeniden taramasını bekleyin.

Robots.txt değişikliği ne kadar sürede etkili olur?

Google robots.txt dosyasını genellikle bir süre önbellekte tutar; bu süre çoğu zaman bir günü geçmez. Acil durumlarda Search Console'daki robots.txt raporundan yeniden getirme isteği göndererek süreci hızlandırabilirsiniz.

GPTBot'u engellersem ChatGPT yanıtlarında hiç görünmez miyim?

Mutlaka değil. GPTBot model eğitimi için kullanılan tarayıcıdır; ChatGPT'nin arama özelliği için OpenAI ayrı bir tarayıcı adı kullanır. Hangisini engellediğiniz, eğitim verisinden mi yoksa arama yanıtlarından mı çıkacağınızı belirler. Adlar değişebileceği için kararı vermeden önce sağlayıcının güncel belgelerine bakın.

Diğer yazılar

Robots.txt Nedir? Doğru Yazım, Örnekler ve Sık Yapılan Hatalar | SEO Analytics