Robots.txt Nedir? SEO ve WordPress için Kapsamlı Rehber

Written by OpenSEO

robots.txt nedir

Robots.txt dosyası, web sitenizin arama motoru botlarına hangi sayfaları tarayıp tarayamayacaklarını söyleyen bir tür dijital trafik işaretidir.

Bu dosya, sitenizin tarama bütçesini (Crawl Budget) yönetmenize ve arama motorlarının sitenizde nasıl gezineceğini kontrol etmenize olanak tanır. Robots.txt nedir sorusunun cevabı basitçe, arama motorlarına rehberlik eden ve düşük değerli, gereksiz veya teknik sayfaların (örneğin, filtreleme sonuçları, sepet sayfaları gibi) taranarak zaman kaybedilmesini önleyen bir metin dosyası olarak özetlenebilir.

Bu rehberde, robots.txt dosyasının ne olduğunu, SEO açısından neden kritik bir öneme sahip olduğunu (ve hangi hataların sitenize zarar verebileceğini) ve doğru bir şekilde nasıl yapılandırılacağını adım adım öğreneceksiniz. Web sitesi sahipleri ve SEO uzmanları için vazgeçilmez bir kaynak!

Robots.txt Dosyasının Temelleri ve Yapısı

Robots.txt, web sitenizin kök dizininde bulunan ve arama motoru botlarına (crawlers) hangi sayfalara erişip erişemeyeceklerini belirten basit bir metin dosyasıdır.

Bu dosyanın birincil amacı, arama motorlarının sitenizi tarama sürecini yönlendirmek, sunucu yükünü azaltmak ve en önemlisi SEO için tarama bütçesini (crawl budget) optimize etmektir. Değersiz, teknik veya yinelenen sayfaların (örneğin, arama sonuç sayfaları, filtreler) taranmasını engelleyerek, Google’ın önemli sayfalarınıza odaklanmasını sağlar.

Robots.txt Tam Olarak Nedir ve Nasıl Çalışır?

robots.txt dosyası, teknik adıyla “Robot Dışlama Protokolü” (Robot Exclusion Protocol – REP) adı verilen bir web standardının parçasıdır.

En basit tanımıyla, sitenizin kök dizininde (yani siteadi.com/robots.txt adresinde) bulunan, herkesin erişip okuyabildiği, düz bir metin (.txt) dosyasıdır.

⚙️ Çalışma Prensibi: Bir Ricadır, Yasa Değil

Bu dosyanın nasıl çalıştığını anlamak, yapacağınız tüm SEO ayarlarının temelini oluşturacaktır.

Bir arama motoru botu (Googlebot, Bingbot vb.) sitenize geldiğinde, herhangi bir sayfayı taramadan önce her zaman ilk olarak siteadi.com/robots.txt adresini kontrol eder.

Bu dosyayı okur ve içinde kendisi için (veya tüm botlar için) tanımlanmış kurallara bakar. Bu kurallar, bota “Şu dizinlere girme”, “Şu sayfalara dokunma” veya “Sadece şu alana girebilirsin” şeklinde yol gösterir.

En Önemli Kural: robots.txt bir yasa veya güvenlik duvarı değil, bir tavsiyedir.

  • “İyi” Botlar (Googlebot, Bingbot): Bu dosyadaki kurallara %100 uyar.
  • “Kötü” Botlar (Spam Botları, Veri Kazıyıcılar): Bu dosyayı tamamen görmezden gelir. Zaten robots.txt herkese açık olduğu için, engellediğiniz dizinleri görüp özellikle oraya saldırmayı bile deneyebilirler. (Güvenlik konusuna bir sonraki H2’de detaylıca gireceğiz).

Basit İşleyiş Adımları:

  1. Bot Sitenize Gelir: Googlebot, sitenizi taramak ister.
  2. Önce robots.txt‘yi İster: Başka bir yere bakmadan siteadi.com/robots.txt adresine bir istek gönderir.
  3. Dosyayı Okur ve Yorumlar: Dosya varsa, içindeki Disallow (İzin Verme) ve Allow (İzin Ver) kurallarını kendi User-agent‘ı (kullanıcı aracısı) için analiz eder.
  4. Kurallara Uyar: Eğer dosyada “/sepet/ dizinine girme” yazıyorsa, Googlebot bu dizine girmeyi denemez ve tarama bütçesini oraya harcamaz.
  5. Dosya Yoksa (404 Hatası): Eğer sitenizde bir robots.txt dosyası bulunamazsa, bot sitenizdeki her şeyi tarama izni olduğunu varsayar.

Temel Yönergeler: User-agent, Disallow, Allow

Şimdi robots.txt dosyasını oluşturmamızı sağlayan temel komutlara bakalım. Bu dosya sadece üç ana komutun birleşimiyle çalışır:

1. User-agent (Kullanıcı Aracısı)

Bu komut, hangi botu hedeflediğinizi belirten kuralın başlangıç satırıdır. Her kural bloğu mutlaka bir User-agent ile başlamalıdır.

  • Anlamı: “Bu komutları hangi bot okumalı?”
  • Örnekler:
    • User-agent: * Bu, “Tüm botlar” anlamına gelen joker karakterdir. Genellikle bu kullanılır. Aşağıdaki kuralların tüm botlar (Google, Bing, Yandex, DuckDuckGo vb.) için geçerli olduğunu belirtir.
    • User-agent: Googlebot Bu, sadece Google’ın ana arama botunu hedefler.
    • User-agent: Bingbot Bu, sadece Microsoft’un Bing botunu hedefler.
    • User-agent: AhrefsBot Bu, sadece Ahrefs SEO aracının botunu hedefler.

2. Disallow (İzin Verme / Engelle)

Bu komut, User-agent ile belirlediğiniz botun girmesini istemediğiniz dizinleri veya sayfaları belirtir. Dosyanın ana işlevi budur.

  • Anlamı: “Bu bölüme girme.”
  • Örnekler:
    • Disallow: /wp-admin/ Botlara “WordPress yönetici panelimin olduğu /wp-admin/ dizinine ve altındaki hiçbir şeye girme” dersiniz. Bu, en yaygın ve doğru kullanımlardan biridir.
    • Disallow: /sepet/ Botlara “/sepet/ dizinine girme” dersiniz. Bu, SEO için önemi olmayan ve her kullanıcı için farklı içerik üreten (yinelenen içerik yaratma potansiyeli olan) sayfaların taranmasını engeller.
    • Disallow: / ÇOK TEHLİKELİ! Bu, sitenizdeki her şeyin taranmasını engeller. Sitenizi yanlışlıkla tüm arama motorlarından kaldırabilirsiniz.
    • Disallow: (Boş bırakmak) Bu, “Engellenecek hiçbir şey yok” anlamına gelir. Botlara her yeri tarayabileceklerini söylersiniz.

3. Allow (İzin Ver)

Bu komut, Disallow ile engellenmiş bir dizin içindeki belirli bir alt dizine veya dosyaya istisnai olarak izin vermek için kullanılır. Disallow kuralını geçersiz kılmak (ezmek) için kullanılır.

  • Anlamı: “Üst dizini engelledim ama sadece bu dosyaya girebilirsin.”
  • Kullanım Senaryosu: Genellikle Allow komutu, CSS ve JavaScript (JS) dosyalarının taranmasına izin vermek için kritik öneme sahiptir. Google’ın sitenizi doğru görebilmesi için bu dosyaları okuyabilmesi gerekir.Örneğin, WordPress’te /wp-includes/ dizinini engellemek yaygındır, ancak bu dizin içindeki bazı JS dosyalarına Google’ın erişmesi gerekebilir:PlaintextUser-agent: * Disallow: /wp-includes/ Allow: /wp-includes/js/
    • Anlamı: “Tüm botlara: /wp-includes/ dizinine girmeyi yasaklıyorum, ANCAK bu dizinin altındaki /wp-includes/js/ klasörüne girmene izin veriyorum.”

Bu üç komut, robots.txt dosyasının %99’unu oluşturur. Şimdi, bu komutları bir araya getirerek standart bir dosyada nasıl göründüklerine bakalım.

Örnek Bir Standart Robots.txt Dosyası

İşte çoğu web sitesi için hem güvenli hem de SEO dostu bir başlangıç noktası olarak kabul edilebilecek, yaygın olarak kullanılan standart bir robots.txt dosyası örneği.

Bu örnek, özellikle WordPress siteleri için iyi bir temel oluşturur.

User-agent: *
Allow: /wp-admin/admin-ajax.php
Disallow: /wp-admin/
Disallow: /wp-login.php
Disallow: /readme.html
Disallow: /search/
Disallow: /etiket/
Disallow: /go/

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

📜 Bu Dosyanın Satır Satır Anlamı

  • User-agent: * Anlamı: “Bu kurallar aşağıdaki istisnalar hariç tüm botlar için geçerlidir.”
  • Allow: /wp-admin/admin-ajax.php Anlamı: “Bir sonraki satırda /wp-admin/ dizinini engelleyeceğim, ancak Google’ın sayfayı düzgün oluşturması (render) için kritik olan admin-ajax.php dosyasına özel olarak izin veriyorum.” (Not: Bu, Allow ve Disallow komutlarının birlikte nasıl çalıştığına harika bir örnektir.)
  • Disallow: /wp-admin/ Anlamı: “WordPress yönetim paneli URL’lerimi tarama.” (Gereksizdir ve tarama bütçesini tüketir).
  • Disallow: /wp-login.php Anlamı: “WordPress giriş sayfamı tarama.” (SEO değeri yoktur).
  • Disallow: /readme.html Anlamı: “WordPress kurulumuyla gelen ve sürüm bilgisi içeren readme.html dosyasını tarama.”
  • Disallow: /search/ Anlamı: “Sitemin iç arama sonuçları sayfalarını (siteadi.com/search/arama-terimi) tarama.” (Bu sayfalar sonsuz sayıda ve düşük kalitelidir, yinelenen içeriğe yol açar).
  • Disallow: /etiket/ Anlamı: “WordPress etiket sayfalarını (/tag/) tarama.” (Not: Bu, yaygın bir SEO stratejisidir. Eğer etiket sayfalarınız gerçekten değerli ve özgün içerik sunmuyorsa, taranmalarını engellemek ‘yinelenen içerik’ sorununu ve tarama bütçesi israfını önler. Kategori sayfaları (/kategori/) genellikle taranmaya açık bırakılır.)
  • Disallow: /go/ Anlamı: “Dışarıya giden bağlantılar için kullandığım yönlendirme dizinini (genellikle ‘affiliate’ linkleri için /go/ veya /out/ kullanılır) tarama.”

  • Sitemap: https://www.siteadi.com/sitemap.xml Anlamı: Bu, robots.txt‘nin bir parçası olan en önemli SEO yönergelerinden biridir. Botlara, “Tarama kuralları burada, ancak keşfetmeni istediğim tüm önemli sayfalarımın listesi de bu site haritası dosyasında” demenin en net yoludur. Google, Bing ve Yandex bu komutu anlar.

2. En Kritik Hata: Robots.txt bir Güvenlik Aracı DEĞİLDİR!

Bu, robots.txt konusunda yapılan en yaygın ve potansiyel olarak en tehlikeli hatadır.

Birçok web sitesi sahibi, /admin/, /uploads/private/ veya /musteri-bilgileri/ gibi dizinleri robots.txt dosyasına Disallow olarak ekleyerek bu sayfaları “gizlediklerini” veya “koruduklarını” sanır.

Gerçekte yaptıkları şey, tam tersine bir etki yaratmaktır.

İşte neden robots.txt ASLA bir güvenlik aracı olarak kullanılmamalıdır:

  1. robots.txt Herkese Açıktır: Sitenizdeki robots.txt dosyasını (tarayıcıya siteadi.com/robots.txt yazarak) herkes okuyabilir. Kötü niyetli bir kişi veya bot, ilk olarak bu dosyaya bakar.
  2. Kötü Botlar Kurallara Uymaz: robots.txt bir “ricadır”. Googlebot gibi iyi botlar bu ricaya uyar. Ancak spam botları, veri kazıyıcılar ve bilgisayar korsanları bu dosyayı umursamaz.
  3. Kötü Botlar İçin Bir Haritadır: Dosyanıza Disallow: /cok-gizli-yonetim-paneli/ yazdığınızda, aslında tüm dünyaya “Hey! Benim çok gizli bir panelim var ve tam olarak burada!” diye bağırmış olursunuz. Kötü botlar, özellikle bu engellenen dizinlere saldırmaya çalışır.

Özetle: robots.txt‘yi, evinize “Lütfen girmeyin, değerli eşyalar bu odada” yazan bir notu kapıya asmak gibi düşünebilirsiniz. Nazik misafirler (Google) notu okur ve girmez. Hırsızlar ise notu okur ve doğrudan o odaya yönelir.

Gerçek güvenlik, sunucu düzeyinde parola koruması (.htaccess), IP kısıtlaması veya sayfaya erişim için giriş koşulu gerektiren sistemlerle sağlanır.

Sitenizi arama motorlarından gizlemenin doğru yolu robots.txt değil, bir sonraki bölümde inceleyeceğimiz noindex etiketidir. Bu ikisi arasındaki fark, SEO’nun en kritik konularından biridir.

Disallow (Engelleme) vs. Noindex (Dizine Ekleme) Arasındaki Hayati Fark

Bu farkı anlamak, SEO’daki en temel ancak en kritik konulardan biridir. Bu iki komut tamamen farklı amaçlara hizmet eder ve yanlış kullanıldıklarında ciddi SEO sorunlarına yol açarlar.

İkisi arasındaki farkı basit bir “Ev Ziyareti” benzetmesiyle açıklayalım:

  • Disallow (robots.txt): Bu, evinizin bahçe kapısına (veya zil paneline) koyduğunuz bir nottur.
  • Noindex (Meta Tag): Bu, evinizin içinde, antredeki duvara astığınız bir nottur.

Disallow (Tarama Kontrolü)

Bu komut, robots.txt dosyasında yer alır ve arama motoru botunun tarama (crawl) davranışını hedefler.

  • Ne Yapar: Bot’a “Bu kapıdan içeri girme” der.
  • Benzetme: Googlebot bahçe kapısındaki (robots.txt) “Zile Basma!” (Disallow: /sayfa/) notunu görür.
  • Sonuç: Bot, o sayfaya hiç girmez ve sayfada ne olduğunu (içerik, resimler veya noindex etiketi) asla öğrenemez.
  • Amacı: Tarama bütçesini korumak. Google’ın /wp-admin/ gibi önemsiz sayfaları tarayarak zaman kaybetmesini engellemek.

Noindex (Dizin Kontrolü)

Bu komut, sayfanın kendi HTML <head> etiketi içinde yer alan bir meta etikettir. Botun dizine ekleme (index) davranışını hedefler.

  • Ne Yapar: Bot’a “İçeri girebilirsin, etrafa bakabilirsin, ama lütfen burada gördüklerini kimseye anlatma (Google sonuçlarında gösterme)” der.
  • Benzetme: Googlebot bahçe kapısından girer (çünkü robots.txt‘de engel yoktur), evin kapısını açar ve antredeki (<head> etiketi) “Bu ev satılık veya kiralık değil, listeye ekleme” (noindex) notunu görür.
  • Sonuç: Bot, sayfayı tarar, içeriğini okur, noindex talimatını görür ve bu sayfayı arama sonuçlarından kaldırır veya hiç eklemez.
  • Amacı: Bir sayfanın varlığının bilinmesini ama arama sonuçlarında görünmemesini sağlamak (Örn: “Teşekkürler” sayfası, gizli kampanyalar, düşük kaliteli kullanıcı profilleri).

⛔ En Ölümcül Hata: Disallow ve Noindex‘i Birlikte Kullanmak

Bir sayfayı arama sonuçlarından kaldırmak istediğinizde, içgüdüsel olarak her ikisini de yapmak mantıklı görünebilir:

  1. Sayfayı robots.txt‘den engellersiniz (Disallow).
  2. Sayfanın HTML’ine noindex etiketi eklersiniz.

Peki, ne olur?

Googlebot gelir, bahçe kapısındaki (robots.txt) “Girme!” (Disallow) notunu görür ve geri döner. Evin içindeki antreye asla ulaşamadığı için, duvardaki “Listeye Ekleme!” (noindex) notunu asla göremez.

Sonuç (Paradoks): Google, bu sayfaya başka sitelerden link verilirse (backlink) varlığından haberdar olur. Sayfayı tarayamadığı için içeriğini bilmez ama “Böyle bir sayfa var ama sahibi tarafından engellenmiş” diyerek, Google sonuçlarında şöyle bir kayıt oluşturabilir:

“Bu sayfanın açıklaması robots.txt nedeniyle kullanılamıyor.”

Yani, sayfayı gizlemeye çalışırken, aslında içeriği belirsiz bir şekilde dizine eklenmesine neden olursunuz.

Altın Kural

  • Bir sayfanın dizine girmesini istemiyorsanız: Sadece noindex meta etiketi kullanın ve o sayfanın robots.txt‘de engellenmediğinden (Disallow edilmediğinden) emin olun.
  • Bir bölümün taranmasını istemiyorsanız (ve dizine girip girmemesi umurunuzda değilse): Sadece Disallow kullanın (Örn: /wp-admin/).

Neden “Gizli” Sayfalar İçin Robots.txt Kullanılmamalı?

“Gizli” veya “hassas” kabul ettiğiniz sayfaları (örneğin, bir yönetim paneli, bir müşteri listesi, özel bir kampanya sayfası) robots.txt kullanarak engellemek, içeriğinizi korumak yerine onu aktif olarak tehlikeye atar.

İşte bunun üç temel nedeni:

1. Bir Haritayı Halk Kütüphanesine Asmaktır

robots.txt dosyası, doğası gereği, herkese açık bir dosyadır. Tıpkı ana sayfanız gibi, siteadi.com/robots.txt adresini yazan herkes (insan veya bot) bu dosyayı saniye saniye okuyabilir.

“Gizli” sayfanızı buraya Disallow olarak eklediğinizde, onu gizlemiş olmazsınız; tam tersine, varlığını tüm dünyaya ilan etmiş olursunuz.

2. Kötü Niyetli Botlar İçin Bir “Davetiyedir”

Kötü niyetli yazılımlar ve saldırı botları, bir web sitesini taramaya başlarken ilk baktıkları yerlerden biri robots.txt dosyasıdır. Neden mi?

Çünkü site sahibinin “nereleri gizlemeye çalıştığını” görmenin en kolay yolu budur.

Sizin dosyanızda şöyle bir satır gördüklerinde:

Disallow: /admin-paneli-v2/ Disallow: /ozel-musteri-datalari/

Bu, o botlar için şu anlama gelir: “Saldırıya başlamak için en zayıf ve en değerli yerler muhtemelen bu dizinlerdir. İlk burayı dene.”

3. Sadece “İyi” Botları Durdurur

robots.txt protokolü bir “centilmenlik anlaşmasıdır”.

  • Googlebot, Bingbot (İyi Botlar): Bu kurallara saygı duyar ve engellediğiniz dizine girmez.
  • Spam Botları, Veri Kazıyıcılar, Hackerlar (Kötü Botlar): Bu kuralları tamamen görmezden gelir. Onların tek amacı robots.txt dosyanızda “girme” dediğiniz yerlere girmektir.

Sonuç: “Gizli” bir sayfayı robots.txt ile engellediğinizde, o sayfaya girmesini istediğiniz tek bot olan Google’ı (eğer noindex etiketini görmesini istiyorsanız) engeller, ancak girmesini istemediğiniz herkesi oraya davet edersiniz.

Doğru Yöntem Nedir?

  • Gerçekten Gizli Sayfalar (Yönetim, Müşteri Verisi): Sunucu düzeyinde parola koruması (.htaccess, htpasswd) veya giriş yapma zorunluluğu (login wall) ile korunmalıdır.
  • Aramada Görünmesi İstenmeyen Sayfalar (Teşekkür Sayfası): Sadece noindex meta etiketi kullanılmalıdır.

Arama Motorları Engellenen Sayfaları Yine de Dizinleyebilir mi? (Evet!)

Evet! Bu, SEO’da en kafa karıştırıcı paradokslardan biridir ve Disallow ile Noindex farkını anlamanın neden bu kadar kritik olduğunu gösterir.

Bir sayfayı robots.txt ile Disallow (Engelle) komutuyla engellemeniz, o sayfanın taranmasını durdurur, ancak dizine eklenmesini (indexing) garanti altına almaz.

Peki bu nasıl olur?

Keşif Yolu: Dışarıdan Gelen Bağlantılar (Backlinkler)

Arama motorları bir sayfayı keşfetmek için sadece sitenizi taramaz; diğer sitelerden size gelen bağlantıları da takip eder.

İşte adım adım süreç:

  1. Siz Engellersiniz: Siz, siteadi.com/gizli-sayfam/ adresini robots.txt dosyanızda Disallow olarak işaretlersiniz.
  2. Başkası Link Verir: Başka bir web sitesi (veya kendi sitenizdeki bir sayfa, fark etmez), sizin engellediğiniz bu sayfaya bir link verir.
    • Örnek: baskasite.com adresinde, <a href="https://siteadi.com/gizli-sayfam/">Buradaki gizli rapora bakın</a> şeklinde bir link bulunur.
  3. Google Linki Görür: Googlebot, baskasite.com‘u tararken bu linki görür ve “Hmm, siteadi.com/gizli-sayfam/ diye bir URL varmış” diyerek bu yeni URL’yi keşfeder.
  4. Google Sitenize Gelir: Googlebot bu yeni keşfettiği URL’yi taramak için sitenize gelir.
  5. robots.txt Durdurur: Bot, sitenize girer girmez robots.txt dosyanızı okur ve /gizli-sayfam/ adresinin Disallow olduğunu görür.
  6. Bot Geri Döner: Kurala uyar ve sayfaya girmez.
  7. Paradoks Başlar: Google’ın elinde şimdi şöyle bir bilgi var:
    • “Bu URL’nin varlığını biliyorum (çünkü link verildi).”
    • “Ama robots.txt yüzünden içeri girmem, içeriğini okumam yasak.”

🔍 Sonuç: Arama Motoru Sonuç Sayfasında (SERP) Ne Görünür?

Google, içeriğini hiç görmediği bu sayfayı yine de dizine ekleyebilir. Çünkü Google’ın bakış açısıyla, o sayfada “dizine ekleme” (noindex) diyen bir komut olup olmadığını bilmesinin hiçbir yolu yoktur (çünkü sayfaya girmesi engellenmiştir).

Bu durumda, arama sonuçlarında o meşhur, kötü görünümlü snippet ile karşılaşırsınız:

[Sayfa Başlığı Kullanılamıyor]

https://siteadi.com/gizli-sayfam

Bu sayfanın açıklaması robots.txt nedeniyle kullanılamıyor.

Daha da kötüsü, Google bazen sayfa başlığı veya açıklama olarak, o sayfaya link veren sitenin kullandığı bağlantı metnini (anchor text) kullanabilir. Eğer başka bir site size “X Firmasının Gizli Müşteri Listesi” metniyle link verdiyse, Google’da tam olarak bu başlık görünebilir.


🔑 Altın Kural (Tekrar)

Bir sayfanın arama sonuçlarından tamamen ve temiz bir şekilde kaldırılmasını istiyorsanız, yapmanız gereken tek şey noindex meta etiketidir.

Asla hem Disallow hem de noindex‘i aynı anda kullanmayın. Google’ın sayfayı kaldırması için noindex etiketini görmesi, görmesi için de o sayfayı taramasına (robots.txt‘de engellenmemiş olmasına) izin vermeniz gerekir.

3. Robots.txt ve SEO: Tarama Bütçesi Optimizasyonu

İlk iki bölümde robots.txt‘nin ne olduğunu ve ne olmadığını (yani bir güvenlik aracı olmadığını) netleştirdik. Şimdi, dosyanın gerçek SEO gücüne odaklanıyoruz: Tarama Bütçesi Optimizasyonu (Crawl Budget Optimization).

Bu, özellikle orta ve büyük ölçekli siteler için SEO başarısının gizli anahtarlarından biridir.

Arama motorları, sitenizi taramak için sonsuz bir zamana veya kaynağa sahip değildir. Google’ın sitenizde geçireceği zamana ve tarayacağı sayfa sayısına “tarama bütçesi” denir.

Eğer bu değerli bütçenin, sitenizin önemsiz, düşük kaliteli veya teknik sayfalarını (WordPress yönetim paneli, sit içi arama sonuç sayfaları, binlerce etiket sayfası, sepet sayfaları vb.) tarayarak harcanmasına izin verirseniz, Google’ın yeni eklediğiniz kritik blog yazılarına veya önemli ürün sayfalarına ulaşması gecikebilir ya da hiç gerçekleşmeyebilir.

İşte robots.txt, bu bütçeyi bir finans yöneticisi gibi yönetmenizi sağlar.

Disallow komutunu kullanarak Googlebot’a “Zamanını bu gereksiz sayfalarda harcama, bunun yerine git ve benim için gerçekten önemli olan içerikleri tara” dersiniz. Bu, sitenizin daha hızlı ve daha verimli bir şekilde dizine eklenmesini sağlamanın en etkili yoludur.

Şimdi bu bütçeyi nasıl yöneteceğimizin detaylarına inelim.

Tarama Bütçesi (Crawl Budget) Nedir ve Neden Önemlidir?

Tarama bütçesi (Crawl Budget), Google’ın sitenizi taramak için ayırdığı kaynakların ve zamanın toplamıdır.

Bunu, Google’ın siteniz için sahip olduğu bir “günlük harcama limiti” olarak düşünebilirsiniz. Google’ın kaynakları sonsuz değildir; web’deki trilyonlarca sayfayı taramak zorundadır. Bu nedenle, her siteye ne kadar zaman ayıracağını belirleyen bir sistem kullanır.

Google, bu bütçeyi iki ana faktöre göre belirler:

  1. Tarama Hızı Sınırı (Crawl Rate Limit):
    • Nedir? Sitenizin sunucusunun Googlebot’un tarama hızına ne kadar dayanabildiğidir.
    • Nasıl Çalışır? Eğer Googlebot sitenizi tararken sunucunuz yavaşlamaya başlar veya hatalar (örn: 503 hataları) verirse, Googlebot sunucunuza zarar vermemek için tarama hızını otomatik olarak düşürür. Siteniz hızlı ve sağlıklıysa, tarama hızını artırır.
  2. Tarama Talebi (Crawl Demand):
    • Nedir? Google’ın sitenizi ne kadar sık taramak “istediğidir”.
    • Nasıl Çalışır? Google, sitenizdeki içeriğin popüler (çok link alıyorsa) ve “taze” (sık güncelleniyorsa) olup olmadığını analiz eder. Sık sık yeni ve değerli içerik yayınlayan bir haber sitesi, tarama talebi yüksek olduğu için daha büyük bir bütçe alır.

Tarama Bütçesi Neden Önemlidir?

Tarama bütçesi, özellikle 10.000’den fazla sayfası olan büyük e-ticaret siteleri, forumlar veya çok fazla içeriğe sahip portallar için hayati önem taşır.

  • Eğer Bütçe Yetersizse: Sitenizdeki sayfa sayısı (örn: 50.000), Google’ın size ayırdığı bütçeden (örn: günde 1.000 sayfa tarama) fazlaysa, binlerce sayfanız hiç taranmayabilir veya dizine eklenmeyebilir.
  • Eğer Bütçe İsraf Edilirse:robots.txt ile müdahale etmezseniz, Google bu değerli b “bütçeyi” sitenizin “çöp” sayfalarını tarayarak harcayabilir. Örneğin:
    • Filtreleme sayfaları (/urunler?renk=mavi&beden=large)
    • Sonsuz takvim arşivleri
    • Sitenizin iç arama sonuçları
    • Kullanıcı profilleri

robots.txt İşte Tam Bu Noktada Devreye Girer:

Disallow komutunu kullanarak Google’ın bu “çöp” sayfaları taramasını engellersiniz. Böylece Google’ın tüm bütçesi, gerçekten önemli olan ana kategori, ürün ve blog sayfalarınızı taramak için kullanılır. Bu, yeni içeriğinizin Google’da çok daha hızlı görünmesini sağlar.

Yinelenen İçeriği (Duplicate Content) Önlemek İçin Robots.txt Kullanımı

robots.txt dosyası, yinelenen içerik (duplicate content) sorununu doğrudan “çözmez”, ancak bu soruna yol açan önemsiz URL varyasyonlarının taranmasını engelleyerek tarama bütçesini korur.

Bu konuyu netleştirmek çok önemlidir.

Yinelenen İçerik Nerede Oluşur?

Yinelenen içerik, genellikle aynı içeriğin birden fazla farklı URL üzerinden erişilebilir olması durumunda ortaya çıkar. Google, hangi URL’nin “ana” sürüm olduğuna karar veremez.

En yaygın suçlular şunlardır:

  1. Filtreleme ve Sıralama (E-ticaret):
    • .../urun-kategorisi/
    • .../urun-kategorisi/?renk=mavi
    • .../urun-kategorisi/?renk=mavi&beden=L
    • .../urun-kategorisi/?sort=fiyat-dusuk Bu URL’lerin tümü aynı kategori sayfasını gösterir, sadece ürün sıralaması değişir. Bunlar, tarama bütçesini tüketen binlerce “düşük kaliteli” sayfa oluşturur.
  2. UTM ve Takip Parametreleri:
    • .../blog-yazisi/
    • .../blog-yazisi/?utm_source=facebook
    • .../blog-yazisi/?kaynak=mail Bu URL’ler de %100 aynı içeriği gösterir.
  3. Yazdırılabilir (Print) Sürümler:
    • .../blog-yazisi/
    • .../blog-yazisi/?print=true

Robots.txt Nasıl Yardımcı Olur? (Tarama Bütçesi Yönü)

robots.txt kullanarak, bu parametreleri içeren URL’lerin taranmasını engelleyebilirsiniz. Bu, Google’ın bu sonsuz URL havuzunda boğulmasını engeller.

Örnek robots.txt Kuralı (Filtreler için):

User-agent: *
Disallow: /*?renk=
Disallow: /*?beden=
Disallow: /*?sort=
  • Anlamı: “İçinde ?renk=, ?beden= veya ?sort= parametrelerini içeren hiçbir URL’yi tarama.”

Örnek robots.txt Kuralı (Tüm Parametreler için – Dikkatli Kullanın):

User-agent: *
Disallow: /*?*
  • Anlamı: “İçinde soru işareti (?) olan, yani parametre içeren hiçbir URL’yi tarama.”
  • Risk: Bu kural, ?page=2 gibi önemli (ve taranması gereken) sayfalama URL’lerini de engelleyebileceği için çok tehlikeli olabilir.

⚠️ Önemli Uyarı: Robots.txt vs. Canonical Etiket

Bu, robots.txt‘nin kullanılmaması gereken bir senaryodur. Yinelenen içeriğin “indekslenmesini” düzeltmek için robots.txt‘yi kullanmak, daha önce bahsettiğimiz “Disallow vs. Noindex” hatasına yol açar.

Yinelenen içeriğin doğru çözümü rel="canonical" etiketidir.

  • rel="canonical" (Doğru Çözüm): .../urun-kategorisi/?renk=mavi sayfasının <head> bölümüne eklenen bir etiketle Google’a “Bu sayfanın asıl sürümü .../urun-kategorisi/ adresidir. SEO gücünü (linkleri) o adrese aktar.” dersiniz. Bu, Google’ın her iki sayfayı da taramasına izin verir, ancak indeksi tek bir yerde birleştirir.
  • robots.txt (Sadece Bütçe Çözümü): Sadece taramayı engeller. Google, canonical etiketini göremez (çünkü sayfayı taraması engellenmiştir).

En İyi Strateji (Büyük Siteler İçin):

  1. Önce canonical Kullanın: Tüm parametreli sayfaların, ana sürümlerine rel="canonical" etiketi ile işaret ettiğinden emin olun. Bu, SEO gücünü birleştirir.
  2. Sonra robots.txt Ekleyin: Tarama bütçenizde hala ciddi bir sorun varsa (Google Search Console’da “Tarıldı – şu anda dizine eklenmedi” uyarısı çoksa), ek olarak bu parametreli URL’leri robots.txt ile engelleyerek Google’ın bütçesini boşa harcamasının önüne geçin.

Gereksiz Sayfaları Taramadan Dışlama (Filtreler, Etiketler vb.)

Tarama bütçesi optimizasyonunun en pratik ve etkili yolu, Google’ın taramasını istemediğiniz tüm sayfaları net bir şekilde robots.txt ile engellemektir.

Bu “gereksiz” sayfalar, sitenizin SEO’suna hiçbir değer katmayan, ancak Google’ın değerli zamanını tüketen sayfalardır. Amacımız, Googlebot’u bu sayfalardan uzak tutarak enerjisini Kategori, Ürün ve Hizmet sayfalarınız gibi önemli içeriklere odaklamaktır.

İşte engellenmesi gereken en yaygın sayfa türleri ve robots.txt örnekleri:

1. Site İçi Arama Sonuçları

Kullanıcıların sitenizde yaptığı aramalar (siteadi.com/search/?q=arama) sonsuz sayıda, düşük kaliteli ve genellikle “sonuç bulunamadı” diyen sayfalar oluşturur. Bunlar Google’ın dizininde asla yer almamalıdır.

# Site içi arama sonuçlarını engelle (WordPress için yaygın)
User-agent: *
Disallow: /search/
Disallow: /*?s=
Disallow: /*?q=

2. Filtreler ve Parametreler (E-ticaret ve Listelemeler)

Bir önceki konuda bahsettiğimiz gibi, ?renk=mavi, ?fiyat=dusuk gibi parametreler, tarama bütçesinin bir numaralı düşmanıdır.

# Yinelenen içeriğe yol açan parametreleri engelle
User-agent: *
Disallow: /*?renk=
Disallow: /*?beden=
Disallow: /*?siralama=

(İleri Düzey İpucu: Disallow: /*?* kuralı, içinde ? olan her şeyi engeller. Çok etkilidir ancak siteniz /blog?page=2 gibi önemli parametreler kullanıyorsa tehlikeli olabilir.)

3. WordPress’e Özgü Arşivler ve Etiketler

WordPress, varsayılan olarak SEO için her zaman değerli olmayan birçok arşiv sayfası oluşturur.

  • Etiket Sayfaları (/etiket/): Eğer etiket sayfalarınız için özel bir içerik stratejiniz yoksa, bu sayfalar genellikle farklı blog yazılarından alınmış kısa parçaların bir listesidir. Bu, Google’ın gözünde “düşük kaliteli” ve “yinelenen” içerik olarak görülebilir.
  • Tarih Arşivleri (/2025/11/): Neredeyse hiçbir kullanıcı sitenizde bu şekilde gezinmez. SEO değeri sıfırdır.
  • Yazar Arşivleri (/author/yazar-adi/): Eğer siteniz tek yazarlı bir blog ise, yazar arşivi sayfası ana blog sayfanızın %100 kopyasıdır.
# Düşük değerli WordPress arşivlerini engelle
User-agent: *
Disallow: /etiket/
Disallow: /author/
Disallow: /2025/
Disallow: /2024/
# (veya tarihleri daha genel engellemek için /20* gibi kalıplar)

4. Kullanıcıya Özel Sayfalar

Sepet, hesap, ödeme, giriş yapma gibi sayfalar her kullanıcıya özeldir ve Google’ın dizininde bulunmalarının hiçbir anlamı yoktur.

# Kullanıcıya özel e-ticaret sayfalarını engelle
User-agent: *
Disallow: /sepet/
Disallow: /hesabim/
Disallow: /odeme/
Disallow: /wp-login.php
Disallow: /wp-admin/

Bu gereksiz sayfaları dışlayarak, Googlebot’a net bir mesaj vermiş olursunuz: “Benim önemli içeriklerim bunlar değil. Lütfen zamanını asıl para kazandığım ve sıralama almak istediğim sayfalara harca.”

Bu optimizasyonu tamamlayan son bir kritik adım daha var: Google’a “İşte benim tüm önemli sayfalarımın listesi” demek.

Site Haritası (Sitemap) Konumunu Belirtme

robots.txt dosyanızın en güçlü, ancak en basit SEO komutlarından biridir.

Önceki adımlarda Disallow komutlarıyla arama motoru botlarına nereye gitmemelerini veya nerede zaman kaybetmemelerini söyledik.

Sitemap komutuyla da onlara tam tersini, yani “Taramanı istediğim en önemli sayfalarımın listesi tam olarak burada” demenin en net yolunu sunarız.

Bu, tarama bütçesi optimizasyonunun “negatif” (engelleme) kısmını, “pozitif” (yönlendirme) bir sinyalle mükemmel bir şekilde dengeler. Botlara bir labirentin çıkmaz sokaklarını (Disallow) göstermekle kalmayıp, onlara hazine haritasını (Sitemap) da vermiş olursunuz.

📜 Nasıl Eklenir?

Bu komut, herhangi bir User-agent bloğundan bağımsız olarak, dosyanın genellikle en üstüne veya en altına eklenir.

Sözdizimi (Syntax): Sitemap: komutunu ve ardından site haritanızın tam (mutlak) URL’sini yazmanız yeterlidir.

Örnek:

User-agent: *
Disallow: /wp-admin/
Disallow: /search/
# ...diğer tüm kurallar...

# Site Haritası Konumu
Sitemap: https://www.siteadi.com/sitemap.xml

💡 Önemli İpuçları ve En İyi Uygulamalar

  1. Mutlak URL Kullanın: Sitemap: /sitemap.xml gibi göreceli bir yol kullanmayın. Her zaman https://www... ile başlayan tam URL’yi belirtin.
  2. WordPress ve SEO Eklentileri: Rank Math veya Yoast SEO gibi eklentiler kullanıyorsanız, ana site haritanız genellikle sitemap_index.xml gibi bir “indeks” dosyası olur. robots.txt dosyanıza eklemeniz gereken URL de budur. Google, bu indeks dosyasını okuyarak diğer tüm alt haritaları (yazılar, sayfalar, ürünler vb. için) keşfedecektir.
    • Örnek: Sitemap: https://www.siteadi.com/sitemap_index.xml
  3. Birden Fazla Site Haritası: Sitenizin birden fazla site haritası varsa (örn: biri yazılar, biri ürünler için ve bir indeks dosyanız yoksa), birden fazla Sitemap: satırı ekleyebilirsiniz:PlaintextSitemap: https://www.siteadi.com/post-sitemap.xml Sitemap: https://www.siteadi.com/product-sitemap.xml
  4. Sadece Google İçin Değil: Site haritanızı Google Search Console üzerinden gönderebilirsiniz, ancak robots.txt dosyasına eklemek, Bing, Yandex, DuckDuckGo gibi tüm arama motorlarının haritanızı anında bulmasını sağlar. Bu evrensel bir yöntemdir.

4. WordPress Siteleri İçin Robots.txt Yönetimi (Pratik Uygulama)

WordPress, dünyanın en popüler içerik yönetim sistemi (CMS) olmasının yanı sıra, SEO yönetimi için de esnek bir altyapı sunar. Ancak bu esneklik, bazı teknik detayları da beraberinde getirir.

Çoğu WordPress kullanıcısının bilmediği şey, WordPress’in kurulumdan itibaren sanal (virtual) bir robots.txt dosyasını otomatik olarak oluşturduğudur. Eğer sunucunuzun kök dizininde fiziksel bir robots.txt dosyası yoksa, WordPress /wp-admin/ dizinini ve birkaç çekirdek dosyayı engelleyen temel bir sanal dosyayı devreye sokar.

Bu varsayılan dosya, “hiç yoktan iyidir” ancak optimize edilmiş bir SEO stratejisi için yetersizdir.

Gerçek tarama bütçesi optimizasyonu yapmak, e-ticaret (WooCommerce) filtrelerini yönetmek veya düşük değerli arşiv sayfalarını engellemek için bu dosyanın kontrolünü elinize almanız gerekir.

Bu bölümde, WordPress siteniz için ideal robots.txt dosyasının neye benzediğini, bu dosyayı nasıl kolayca düzenleyeceğinizi (SEO eklentileriyle) ve sitenizi arama motorlarından yanlışlıkla “gizlemenize” yol açacak kritik hatalardan nasıl kaçınacağınızı pratik olarak ele alacağız.

WordPress’te İdeal Robots.txt Dosyası Nasıl Olmalı?

Bu, WordPress SEO’da “mükemmel” cevabı aranan sorulardan biridir.

Geçmişte (5-10 yıl önce), “ideal” robots.txt dosyası, /wp-content/plugins/ ve /wp-includes/ gibi onlarca dizini engelleyen karmaşık bir dosyaydı.

Ancak bu artık GÜNCEL DEĞİLDİR ve ÇOĞUNLUKLA YANLIŞTIR.

Google’ın sitenizi “görme” şekli değişti. Googlebot artık sitenizi bir kullanıcı gibi “render” ediyor (görsel olarak oluşturuyor). Sitenizin düzgün görünmesi (ve Google tarafından doğru anlaşılması) için, eklentilerinizden (/plugins/) ve çekirdek dosyalardan (/includes/) gelen CSS ve JavaScript dosyalarına erişmesi şarttır.

Bu yüzden, 2024 ve sonrası için “ideal” WordPress robots.txt dosyası, gereksiz karmaşıklıktan kaçınan, “az ve öz” bir yaklaşıma sahiptir.

🌟 WordPress İçin İdeal ve Güvenli Robots.txt Dosyası

Aşağıdaki dosya, çoğu WordPress sitesi (bloglar, kurumsal siteler ve WooCommerce dahil) için en iyi başlangıç noktasıdır.

# -----------------------------------------------------------
# WordPress için Modern & SEO Odaklı Robots.txt
# -----------------------------------------------------------

User-agent: *
# Tüm botlar için genel kurallar.

# 1. WordPress Yönetim Alanı
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

# 2. Düşük Değerli Çekirdek Dosyalar ve Sayfalar
Disallow: /wp-login.php
Disallow: /wp-register.php
Disallow: /readme.html
Disallow: /license.txt

# 3. Tarama Bütçesi Optimizasyonu (SEO)
Disallow: /search/
Disallow: /*?s=
Disallow: /etiket/
Disallow: /author/

# 4. Site Haritası (En Önemli Kısım)
# (URL'yi kendi site haritanızla değiştirmeyi UNUTMAYIN)
Sitemap: https://www.siteadi.com/sitemap_index.xml

# -----------------------------------------------------------
# İsteğe Bağlı: AI Botları (ChatGPT vb.)
# -----------------------------------------------------------
User-agent: GPTBot
Disallow: /

User-agent: CCBot
Disallow: /

🧐 Bu Dosyadaki Kuralların Satır Satır Açıklaması

  • User-agent: * Anlamı: “Bu kurallar tüm botlar için geçerlidir.”

Bölüm 1: WordPress Yönetim Alanı

  • Disallow: /wp-admin/ Anlamı: “Yönetim panelimi tarayarak tarama bütçeni boşa harcama.” Bu, bir robots.txt dosyasındaki en standart kuraldır.
  • Allow: /wp-admin/admin-ajax.php Anlamı: “Ama bir istisna var. Sitemin ön yüzündeki (frontend) bazı özellikler (örn: ‘daha fazla yükle’ butonu) çalışmak için bu admin-ajax.php dosyasını kullanıyor. Sitemi doğru ‘görmen’ için bu tek dosyaya erişmene izin veriyorum.” Bu, modern SEO için kritik bir satırdır!

Bölüm 2: Düşük Değerli Dosyalar

  • Disallow: /wp-login.php
  • Disallow: /wp-register.php
  • Disallow: /readme.html Anlamı: Bunlar, SEO değeri olmayan, halka açık olmaması gereken (giriş sayfaları) veya WordPress sürümünüz gibi bilgileri ifşa eden (readme) teknik dosyalardır. Taranmalarına gerek yoktur.

Bölüm 3: SEO ve Tarama Bütçesi

  • Disallow: /search/ ve Disallow: /*?s= Anlamı: “Sitemin iç arama sonuçları sayfalarını tarama.” Bu sayfalar sonsuz sayıda, düşük kaliteli ve yinelenen içerik oluşturur. Tarama bütçesini korumak için engellenmeleri şarttır.
  • Disallow: /etiket/ Anlamı: “Etiket sayfalarımı tarama.” (Not: Bu, bir SEO tercihidir. Eğer etiket sayfalarınız için özel içerik girmiyor, onları bir kategori gibi yönetmiyorsanız, çoğu zaman ana yazıların “zayıf kopyaları” olarak görülürler. Engellemek, bütçeyi korur.)
  • Disallow: /author/ Anlamı: “Yazar arşivlerini tarama.” (Not: Eğer siteniz tek yazarlı bir blog ise, yazar arşivi sayfanız ana blog sayfanızla %100 aynı içeriktedir. Bu, yinelenen içeriktir. Engellemek en doğrusudur.)

Bölüm 4: Site Haritası

  • Sitemap: https://www.siteadi.com/sitemap_index.xml Anlamı: “İşte benim önemli sayfalarımın tam listesi. Nereye gideceğini buradan bulabilirsin.” Bu, Google’a yol göstermenin en net yoludur. (Kendi site haritası URL’nizi SEO eklentinizden (Rank Math/Yoast) alıp buraya yapıştırmalısınız).

Bölüm 5: AI Botları (İsteğe Bağlı)

  • User-agent: GPTBot
  • Disallow: / Anlamı: “ChatGPT’nin botunun, içeriğimi kendi modelini eğitmek için kullanmasını istemiyorum.” Bu, son zamanlarda popülerleşen bir eklentidir ve tamamen isteğe bağlıdır.

WordPress’te Sık Yapılan Hatalar (Örn: /wp-admin/ veya Eklenti Dosyalarını Engellemek)

robots.txt dosyası ne kadar güçlüyse, yanlış yapılandırıldığında o kadar tehlikelidir. Özellikle WordPress’te, internetten bulunan eski veya güncel olmayan robots.txt örneklerini kopyalayıp yapıştırmak, sitenizin SEO’suna geri dönülmez zararlar verebilir.

İşte en sık yapılan ve sitenizin “köküne kibrit suyu eken” o kritik hatalar:

Hata 1: /wp-content/plugins/ ve /wp-content/themes/ Dizinlerini Engellemek (En Yıkıcı Hata)

Bu, 10 yıl önceki robots.txt dosyalarının “varsayılan” kuralıydı. Mantık, botların eklenti ve tema dosyalarını tarayarak bütçe harcamamasıydı.

BU ARTIK TAMAMEN YANLIŞ!

  • Neden Hata? Googlebot artık sitenize bir ziyaretçi gibi bakar; yani sitenizi “görsel olarak oluşturur” (render eder). Sitenizin düzgün görünmesi (ve Google’ın “mobil uyumlu” olduğunu anlaması) için temanızdan (/themes/) gelen CSS dosyalarına ve eklentilerinizden (/plugins/) gelen JavaScript (JS) dosyalarına ihtiyacı vardır.
  • Ne Olur? Bu dizinleri engellerseniz, Googlebot sitenize baktığında bozuk, stil (CSS) olmayan, işlevsiz (JS) bir “iskelet” görür. Bu, Google’ın gözünde sitenizin kalitesini düşürür, mobil uyumluluk testlerinden kalmanıza ve sıralama kaybetmenize neden olur.
  • Doğrusu: Bu dizinlere ASLA dokunmayın. Bırakın Googlebot ihtiyacı olan CSS ve JS dosyalarını özgürce tarasın.

Hata 2: Yanlışlıkla Tüm Siteyi Engellemek (Disallow: / veya WordPress Ayarı)

Bu, genellikle iki şekilde yapılan “nükleer” hatadır:

  1. Manuel Hata: robots.txt dosyasına Disallow: / (sadece bir eğik çizgi) eklerseniz, bu “Tüm botlara: Sitemin TAMAMINI engelle!” anlamına gelir. Siteniz 1-2 hafta içinde Google’dan tamamen kaybolur.
  2. WordPress “Tuzak” Ayarı: WordPress’te, Ayarlar > Okuma menüsü altında “Arama motoru görünürlüğü” adlı bir kutucuk bulunur. Bu kutucuğu işaretlediğinizde, WordPress otomatik olarak sitenizin sanal robots.txt dosyasına Disallow: / kuralını ekler.
    • Ne Olur? Bu ayar, site “yapım aşamasındayken” kullanışlıdır. Ancak siteyi yayına aldıktan sonra bu kutucuğun işaretli unutulması, sitenizin asla dizine eklenmemesine neden olur. Sitenizi yayına alırken ilk kontrol etmeniz gereken yer burasıdır.

Hata 3: /wp-admin/ Kuralını Yanlış Uygulamak (İstisnayı Atlamak)

Bir önceki konuda “ideal” dosyayı konuşmuştuk. Çoğu kişi Disallow: /wp-admin/ kuralını doğru bir şekilde ekler, ancak kritik istisnayı unutur.

  • Neden Hata? Disallow: /wp-admin/ kuralı, o dizin altındaki her şeyi engeller. Oysa modern WordPress temaları ve eklentileri (örneğin “daha fazla yükle” butonları, form gönderimleri) çalışmak için /wp-admin/admin-ajax.php dosyasına ihtiyaç duyar.
  • Ne Olur? Googlebot, bu admin-ajax.php dosyasına erişemezse, sayfanızın bazı bölümlerinin yüklenemediğini veya çalışmadığını düşünür. Bu, eksik içerik algılamasına yol açar.
  • Doğrusu: Her zaman şu ikiliyi birlikte kullanın:PlaintextDisallow: /wp-admin/ Allow: /wp-admin/admin-ajax.php

Hata 4: Bir Yazıyı/Sayfayı “Gizlemek” İçin robots.txt Kullanmak

Bu, daha önce H2’de detaylıca konuştuğumuz “Disallow vs. Noindex” hatasının WordPress’teki pratik yansımasıdır.

  • Senaryo: “Sezonsal bir kampanya sayfam var, artık görünmesin” veya “Bu eski blog yazısını Google’dan kaldırmak istiyorum” diyen bir kullanıcı, o sayfanın URL’sini robots.txt‘ye Disallow olarak ekler.
  • Neden Hata? Sayfayı engellediğiniz için, Googlebot o sayfaya girip sizin eklediğiniz (veya SEO eklentinizle ekleyeceğiniz) noindex etiketini asla göremez.
  • Doğrusu: Bir WordPress yazısını veya sayfasını dizinden kaldırmak için ASLA robots.txt kullanmayın. Bunun yerine, o sayfanın düzenleme ekranına gidin ve SEO eklentinizin (Rank Math, Yoast vb.) meta kutusundan “Bu sayfayı dizine ekleme” (Noindex) seçeneğini işaretleyin.

SEO Eklentileri (Rank Math, Yoast) ile Robots.txt Düzenleme

WordPress’in güzelliklerinden biri, sunucunuza FTP veya cPanel ile bağlanmak gibi teknik işlemlere gerek kalmadan robots.txt dosyanızı doğrudan yönetmenize olanak tanımasıdır.

Bu işlemi yapmanın en güvenli ve en kolay yolu, zaten kullanmakta olduğunuz SEO eklentileri (Rank Math veya Yoast SEO) üzerinden ilerlemektir.

Bu eklentiler, WordPress’in “sanal” robots.txt dosyasını geçersiz kılan ve sizin düzenlemelerinizi kaydeden gerçek (fiziksel) bir robots.txt dosyası oluşturur.

1. Rank Math ile robots.txt Düzenleme

Rank Math, robots.txt düzenleyicisini doğrudan “Genel Ayarlar” içerisine yerleştirmiştir.

Adımlar:

  1. WordPress Admin Panelinizde, sol menüden Rank Math > Genel Ayarlar‘a gidin.
  2. Açılan ekranda, üstteki sekmelerden robots.txt Düzenle (veya Edit robots.txt) sekmesine tıklayın.
  3. Karşınıza boş veya varsayılan kuralları içeren bir metin kutusu çıkacaktır.
  4. Bu kutuya, bir önceki konuda belirlediğimiz “İdeal Robots.txt” kurallarını yapıştırın.
  5. Değişiklikleri Kaydet butonuna tıklayın.

Rank Math, bu işlemi yaptığınız anda sitenizin kök dizinine fiziksel bir robots.txt dosyası oluşturacak veya mevcut olanı güncelleyecektir.

2. Yoast SEO ile robots.txt Düzenleme

Yoast SEO, bu ayarı biraz daha “gizli” bir menü olan “Araçlar” bölümünde tutar.

Adımlar:

  1. WordPress Admin Panelinizde, sol menüden Yoast SEO > Araçlar‘a gidin.
  2. Karşınıza gelen listeden “Dosya düzenleyicisi” aracını bulun ve tıklayın.
  3. Eğer sitenizin kök dizininde zaten bir robots.txt dosyası yoksa, Yoast size “Bir robots.txt dosyası oluştur” şeklinde bir buton gösterecektir. Bu butona tıklayın.
  4. Karşınıza robots.txt içeriğini düzenleyebileceğiniz metin kutusu çıkacaktır.
  5. Bu kutuya ideal kurallarınızı yapıştırın.
  6. robots.txt dosyasına değişiklikleri kaydet butonuna tıklayın.

⚠️ Önemli Güvenlik Uyarısı (İzin Hatası)

Bazen, SEO eklentileri dosyayı kaydetmeye çalıştığınızda “Dosya kaydedilemedi” veya “Yazma izni yok” gibi bir hata verebilir.

  • Neden Olur? Bu, sunucunuzdaki güvenlik ayarlarının (dosya izinlerinin), WordPress’in (veya PHP’nin) kök dizine dosya yazmasını engellemesinden kaynaklanır.
  • Çözümü Nedir?
    1. Hızlı Çözüm: robots.txt dosyasını bir metin düzenleyicide (Notepad vb.) kendiniz oluşturun ve bir FTP istemcisi (FileZilla gibi) veya hosting panelinizin (cPanel, Plesk vb.) “Dosya Yöneticisi” aracılığıyla sitenizin ana kök dizinine (public_html veya httpdocs klasörünün içi) manuel olarak yükleyin.
    2. Teknik Çözüm: Sunucunuzdaki kök dizinin “yazma izinlerini” (CHMOD) geçici olarak 666 yapın, dosyayı eklenti üzerinden kaydedin ve ardından güvenlik için hemen tekrar 644 olarak güncelleyin. (Eğer bu cümle size anlamsız geliyorsa, ilk çözümü uygulayın).

SEO eklentilerini kullanmak, robots.txt dosyanızı sitenizin kontrol panelinden ayrılmadan hızlıca güncellemenin ve SEO stratejinize anında müdahale etmenin en pratik yoludur.

Sanal Robots.txt vs. Gerçek (Fiziksel) Dosya Yönetimi

Bu, WordPress’in çalışma mantığını anlamak için çok önemli bir teknik ayrımdır. Sitenizin robots.txt dosyasını kimin kontrol ettiğini bilmek, SEO stratejinizin temeltaşıdır.

Kısacası: Gerçek (Fiziksel) bir dosya, her zaman Sanal (Virtual) dosyayı ezer ve geçersiz kılar.

İşte bu iki durumun detaylı açıklaması:

1. Sanal (Virtual) Robots.txt (WordPress’in Varsayılanı)

WordPress’i ilk kurduğunuzda, sitenizin kök dizininde (FTP/cPanel) fiziksel bir robots.txt dosyası bulunmaz.

Ancak, bu bir dosyanız olmadığı anlamına gelmez.

  • Nasıl Çalışır? Bir arama motoru botu (Googlebot) sitenize gelip siteadi.com/robots.txt adresini istediğinde, WordPress bu isteği “yakalar” ve anlık olarak, anında bir robots.txt içeriği oluşturur (generate eder).
  • İçeriği Nedir? Bu sanal dosyanın içeriği çok basittir. Genellikle sadece şunları içerir:PlaintextUser-agent: * Disallow: /wp-admin/ Allow: /wp-admin/admin-ajax.php
  • Ne Zaman Devreye Girer? Sadece ve sadece kök dizinde robots.txt adında fiziksel bir dosya yoksa devreye girer.
  • Dezavantajı: Bu dosya “sanal” olduğu için, onu FTP’de veya sunucu dosya yöneticisinde göremezsiniz ve doğrudan düzenleyemezsiniz. Ayrıca, SEO için kritik olan Disallow: /search/ veya Sitemap: gibi özel kuralları içermez.

2. Gerçek (Fiziksel) Robots.txt (Sizin Kontrolünüz)

Bu, sizin (veya SEO eklentinizin) bilinçli olarak sitenizin kök dizinine yerleştirdiği robots.txt adında gerçek bir metin dosyasıdır.

  • Nasıl Çalışır? Bir bot siteadi.com/robots.txt adresini istediğinde, sunucunuz WordPress’in sanal dosya oluşturmasına fırsat vermeden doğrudan bu fiziksel dosyayı bulur ve içeriğini bota sunar.
  • Nasıl Oluşturulur?
    1. SEO Eklentileri (Önerilen): Rank Math veya Yoast SEO’nun “Dosya Düzenleyicisi” aracılığıyla robots.txt kurallarınızı kaydettiğiniz an, bu eklentiler sizin için kök dizine fiziksel bir robots.txt dosyası oluşturur.
    2. Manuel Yöntem: Bir metin dosyası oluşturup, adını robots.txt yapıp, FTP veya cPanel ile sitenizin public_html (veya httpdocs) dizinine yükleyebilirsiniz.
  • Avantajı: Tam kontrol sizdedir. İstediğiniz tüm Disallow, Allow ve Sitemap kurallarını ekleyebilirsiniz.

👑 Öncelik Sırası: Kim Kazanır?

Bu, en önemli kuraldır:

Eğer sitenizin kök dizininde robots.txt adında fiziksel bir dosya varsa, WordPress’in oluşturduğu sanal dosya tamamen GÖRMEZDEN GELİNİR.

Sunucunuz her zaman fiziksel dosyaya öncelik verir.

Bu nedenle, Rank Math veya Yoast SEO eklentisinden robots.txt dosyanızı düzenlediğinizde, aslında “sanal” dosyayı değil, “gerçek” fiziksel dosyayı yönetmiş olursunuz ve bu dosya, sanal olanın yerini alır.

5. İleri Düzey ve Özel Senaryolar

Buraya kadar robots.txt dosyasının temellerini, SEO ile ilişkisini ve standart bir WordPress sitesi için nasıl yapılandırılması gerektiğini A’dan Z’ye ele aldık.

Ancak web, standart bloglardan ve kurumsal sitelerden çok daha karmaşıktır. Siteniz bir e-ticaret devi olabilir (WooCommerce), birden fazla dilde yayın yapabilir veya belirli botların (AI modelleri veya SEO araçları gibi) erişimini özel olarak yönetmek isteyebilirsiniz.

Bu “İleri Düzey” bölümde, robots.txt dosyanızın yeteneklerini, bu özel ve teknik senaryolara uyacak şekilde nasıl genişletebileceğimizi inceleyeceğiz.

Standart ayarların ötesine geçerek, robots.txt dosyanızı sitenizin benzersiz ihtiyaçları için ince ayar yapmaya başlayalım.

WooCommerce Siteleri İçin Özel Ayarlar (Sepet, Hesap, Teşekkür Sayfaları)

e-Ticaret (WooCommerce) siteleri, robots.txt optimizasyonu için en kritik adaylardır. Neden? Çünkü binlerce ürün, kategori, filtre ve kullanıcı hesabı URL’si üreterek, tarama bütçesini en hızlı tüketen site türleridir.

Eğer bir WooCommerce siteniz varsa ve robots.txt dosyanız yoksa veya optimize edilmemişse, Google’ın bütçesinin çoğunu “Sepet” veya “Hesabım” gibi SEO değeri sıfır olan sayfaları tarayarak boşa harcadığından emin olabilirsiniz.

İdeal bir WooCommerce robots.txt dosyası, standart WordPress kurallarına ek olarak aşağıdaki e-ticaret’e özgü sayfaları mutlaka engellemelidir.

1. Sepet, Ödeme ve Hesap Sayfaları

Bu sayfalar her kullanıcıya özeldir, dinamik olarak oluşturulur ve Google’ın dizininde olmalarının hiçbir anlamı yoktur. Bunlar, tarama bütçesi için “kara delik” gibidir.

# --- WooCommerce Özel Kuralları ---

# 1. Kullanıcıya özel sayfaları engelle
Disallow: /sepet/
Disallow: /cart/
Disallow: /odeme/
Disallow: /checkout/
Disallow: /hesabim/
Disallow: /my-account/

# (Not: URL'leriniz Türkçe (sepet) veya İngilizce (cart) olabilir.
# Sitenizde hangisinin kullanıldığını kontrol edip onu ekleyin.)

2. Filtreler ve Parametreler (En Önemli Kısım)

WooCommerce’in en büyük tarama bütçesi tuzağı, ürün filtreleme parametreleridir. ?filter_color=mavi, ?min_price=100, ?orderby=price gibi URL’ler binlerce, hatta on binlerce “yinelenen içerik” URL’si oluşturur.

# 2. Ürün filtrelerini ve sıralamalarını engelle
# (Bu, tarama bütçenizi kurtaracak en önemli kuraldır)
Disallow: /*?filter_
Disallow: /*?min_price=
Disallow: /*?max_price=
Disallow: /*?orderby=
Disallow: /*?rating_filter=
Disallow: /*?product_count=

3. “Teşekkürler” (Sipariş Alındı) Sayfası

Sipariş tamamlandıktan sonra görünen “Teşekkürler” sayfası (/order-received/) da dizine eklenmemelidir. Ancak bunu robots.txt ile engellemek yerine, “Disallow vs. Noindex” kuralımızı hatırlayalım:

  • En İyi Yöntem: Bu sayfanın robots.txt‘de engellenmemesi ve SEO eklentisi (Yoast/Rank Math) üzerinden noindex (dizine ekleme) olarak ayarlanmasıdır.
  • Alternatif (Eğer Zaten noindex ise): Bütçeyi korumak için robots.txt‘ye eklenebilir.PlaintextDisallow: /checkout/order-received/

Örnek: WooCommerce için İdeal robots.txt

Tüm bu kuralları, standart WordPress kurallarımızla birleştirdiğimizde, optimize edilmiş bir WooCommerce robots.txt dosyası şöyle görünür:

User-agent: *
# --- WordPress Temel Kuralları ---
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /wp-login.php
Disallow: /readme.html

# --- WooCommerce Temel Kuralları ---
Disallow: /sepet/
Disallow: /cart/
Disallow: /odeme/
Disallow: /checkout/
Disallow: /hesabim/
Disallow: /my-account/
Disallow: /checkout/order-received/

# --- Tarama Bütçesi ve Filtre Optimizasyonu ---
Disallow: /search/
Disallow: /*?s=
Disallow: /*?filter_
Disallow: /*?min_price=
Disallow: /*?orderby=

# --- Site Haritası (Çok Önemli) ---
Sitemap: https://www.siteadi.com/sitemap_index.xml

Bu yapılandırma, Googlebot’un enerjisini “Sepet” veya “Mavi renkli ürünler” yerine, ana Ürün ve Kategori sayfalarınıza odaklamasını sağlar.

Çok Dilli (Multilingual) Sitelerde Robots.txt Yapılandırması

Çok dilli (multilingual) sitelerin robots.txt yapılandırması, sitenizin hangi teknik altyapıyı (subdomain, subdirectory vb.) kullandığına bağlı olarak tamamen değişir.

Burada robots.txt dosyasının asıl amacı, hreflang etiketlerinin yaptığı “dizine ekleme” işine karışmak değil, tarama bütçesini yönetmek ve botları doğru site haritalarına yönlendirmektir.

En yaygın iki senaryo üzerinden gidelim:

1. Senaryo: Alt Dizin (Subdirectory) Kullanımı (En Yaygın)

Bu, WPML veya Polylang gibi eklentilerin kullandığı en yaygın ve SEO dostu yöntemdir.

  • Yapı: siteadi.com/en/, siteadi.com/tr/, siteadi.com/de/
  • Temel Kural: Bu senaryoda, teknik olarak tek bir web sitesi vardır. Bu nedenle, siteadi.com/robots.txt adresinde de sadece bir tane robots.txt dosyası bulunur.

Bu tek dosya, tüm diller için kuralları içermelidir.

Örnek Yapılandırma (/en/ ve /tr/ için):

User-agent: *

# 1. EVRENSEL KURALLAR (Tüm Diller İçin Ortak)
# Bu dosyalar her zaman kök dizindedir ve dil-bağımsızdır.
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /wp-login.php

# 2. DİLE ÖZGÜ TARAMA BÜTÇESİ KURALLARI
# Gereksiz sayfaları her dil için ayrı ayrı engellemelisiniz.
# (Permalink yapınız dile göre değişir, örn: /tag/ vs /etiket/)

# --- İngilizce (en) ---
Disallow: /en/search/
Disallow: /en/tag/
Disallow: /en/cart/
Disallow: /en/checkout/

# --- Türkçe (tr) ---
Disallow: /tr/arama/
Disallow: /tr/etiket/
Disallow: /tr/sepet/
Disallow: /tr/odeme/

# 3. SİTE HARİTALARI (EN KRİTİK KISIM)
# Botlara tüm dillerin haritalarını burada göstermelisiniz.
# Çoğu eklenti, tüm dil haritalarını içeren bir "sitemap_index.xml" oluşturur.
# O dosyayı göstermeniz yeterlidir:
Sitemap: https://www.siteadi.com/sitemap_index.xml

# Eğer indeks dosyanız yoksa, tüm haritaları tek tek listeleyebilirsiniz:
# Sitemap: https://www.siteadi.com/en-sitemap.xml
# Sitemap: https://www.siteadi.com/tr-sitemap.xml

2. Senaryo: Alt Alan Adı (Subdomain) Kullanımı

Bu yapıda her dil, teknik olarak Google’ın gözünde “ayrı bir web sitesi” olarak kabul edilir.

  • Yapı: en.siteadi.com, tr.siteadi.com, de.siteadi.com
  • Temel Kural: Her subdomain’in kendi kök dizini ve dolayısıyla kendi robots.txt dosyası olmalıdır.
    • https://en.siteadi.com/robots.txt
    • https://tr.siteadi.com/robots.txt

Örnek Yapılandırma:

https://en.siteadi.com/robots.txt dosyasının içeriği: (Sadece İngilizce siteye ait kuralları ve sitemap’i içerir)

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /search/
Disallow: /tag/
Disallow: /cart/

Sitemap: https://en.siteadi.com/sitemap.xml

https://tr.siteadi.com/robots.txt dosyasının içeriği: (Sadece Türkçe siteye ait kuralları ve sitemap’i içerir)

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /arama/
Disallow: /etiket/
Disallow: /sepet/

Sitemap: https://tr.siteadi.com/sitemap.xml

⚠️ Önemli Not: hreflang vs. robots.txt

Çok dilli sitelerde “hangi kullanıcının hangi dildeki sayfayı görmesi gerektiğini” belirleyen şey robots.txt değildir. Bu işi, sayfaların <head> bölümüne eklenen hreflang etiketleri yapar (ve WPML gibi eklentiler bunu otomatik yapar).

robots.txt‘nin buradaki tek görevi, Google’ın değerli tarama bütçesini her dil için oluşturulan /sepet/, /arama/ gibi gereksiz sayfalarda harcamasını engellemek ve botlara tüm site haritalarının yerini net bir şekilde göstermektir.

Belirli Botları Hedefleme veya Engelleme (GPTBot, AhrefsBot vb.)

robots.txt dosyasının en esnek özelliklerinden biri, kuralları tüm botlara (User-agent: *) uygulamak yerine, belirli botları (kullanıcı aracılarını) adıyla hedefleyebilmenizdir.

Bu, User-agent: komutunun gücünü gösterir. Bir bot robots.txt dosyanızı okuduğunda, önce kendi adıyla (örn: User-agent: GPTBot) eşleşen özel bir kural bloğu arar. Bulursa, yalnızca o bloğu okur ve User-agent: * bloğunu görmezden gelir. Eğer kendi adıyla eşleşen bir blok bulamazsa, varsayılan (*) bloğu okur.

Bu özelliği kullanmanın iki yaygın ve pratik nedeni vardır:

1. AI ve Veri Kazıma Botlarını Engellemek (GPTBot, CCBot)

Günümüzde en popüler kullanım senaryolarından biri budur. Birçok web sitesi sahibi, içeriklerinin OpenAI (ChatGPT), Google (Gemini/VertexAI) veya Common Crawl gibi büyük AI modellerini eğitmek için izinsiz olarak “kazınmasını” (scraped) istememektedir.

robots.txt aracılığıyla bu botlara “Sitemdeki içeriği veri setiniz için kullanmanıza izin vermiyorum” diyebilirsiniz.

Nasıl Yapılır: robots.txt dosyanıza aşağıdaki blokları eklersiniz. Disallow: / komutu, o bota “Sitemin hiçbir yerine girmene izin vermiyorum” anlamına gelir.

# --- AI Veri Kazıma Botlarını Engelleme ---

# OpenAI (ChatGPT) botunu engelle
User-agent: GPTBot
Disallow: /

# Google'ın AI botlarını engelle (VertexAI/Gemini)
User-agent: Google-Extended
Disallow: /

# Common Crawl (Birçok AI modelinin veri kaynağı) botunu engelle
User-agent: CCBot
Disallow: /

Not: Bu kurallar User-agent: * bloğunuzun başına veya sonuna eklenebilir. Sıraları önemli değildir.

2. SEO Araçlarının Botlarını Engellemek (AhrefsBot, SemrushBot vb.)

Diğer bir yaygın kullanım, Ahrefs, Semrush, Majestic, Moz gibi SEO analiz araçlarının botlarını engellemektir.

Bunu Neden Yaparsınız?

  1. Sunucu Yükü: Bu botlar (özellikle AhrefsBot) bir siteyi çok agresif tarayabilir ve paylaşımlı hosting gibi zayıf sunucularda yavaşlamaya neden olabilir.
  2. Veri Gizliliği: Rakiplerinizin bu araçları kullanarak sitenizi (backlink profilinizi, en iyi sayfalarınızı) bu kadar kolay analiz etmesini istemeyebilirsiniz.

Nasıl Yapılır: Tıpkı AI botları gibi, bu botları da adlarıyla hedefleyerek engelleyebilirsiniz.

# --- SEO Araç Botlarını Engelleme ---

User-agent: AhrefsBot
Disallow: /

User-agent: SemrushBot
Disallow: /

User-agent: MJ12bot
Disallow: /

User-agent: DotBot
Disallow: /

⚠️ Çok Önemli Uyarı (SEO Araçları İçin)

Eğer AhrefsBot‘u engellerseniz, siz de Ahrefs aracını kullanarak kendi sitenizi analiz edemezsiniz.

Bu araçlar, kendi botlarının robots.txt tarafından engellenip engellenmediğini kontrol eder. Eğer engelliyseniz, Ahrefs size “Sitenizi tarayamıyoruz çünkü sahibi tarafından engellendik” uyarısını gösterecektir.

Sonuç: Bu botları engellemek, rakiplerinizin işini zorlaştırır ancak sizin de bu araçlardan alacağınız verimi sıfırlar. Genellikle sunucunuza gerçekten zarar vermiyorlarsa, bu botları engellemek tavsiye edilmez.

Yapılandırılmış Veriler ve Robots.txt İlişkisi

Bu, SEO’nun iki farklı teknik alanının nasıl kesiştiğini gösteren harika bir “ileri düzey” konudur.

Bu ikisi arasındaki ilişki doğrudan değil, tek yönlü bir bağımlılıktır.

Basitçe söylemek gerekirse: Robots.txt bir kapı bekçisidir (Giriş İzni). Yapılandırılmış Veri (Schema) ise odanın içindeki etiketlerdir (İçeriğin Ne Olduğu).

Eğer kapı bekçisi (robots.txt) botun odaya (sayfa) girmesine izin vermezse, bot odanın içindeki etiketleri (Yapılandırılmış Veri) asla göremez.

1. Temel Bağımlılık: Tarama İzni

Yapılandırılmış verileriniz (örn: Ürün, Makale, SSS şeması), sayfanızın HTML kodunun içinde (genellikle <head> bölümünde JSON-LD olarak) bulunur.

Google’ın bu şemayı “görmesi”, “işlemesi” ve sizi arama sonuçlarında Zengin Snippet’ler (Rich Results) ile ödüllendirmesi için, öncelikle o sayfayı tarayabilmesi gerekir.

  • Senaryo: siteadi.com/urun/harika-urun/ sayfanıza mükemmel bir “Ürün” şeması eklediniz (fiyat, stok, puanlar vb.).
  • Hata: Ancak bir hata yaptınız ve tarama bütçesi optimizasyonu için /urun/ dizinini robots.txt dosyanızda Disallow ile engellediniz.
  • Sonuç: Googlebot, /urun/ dizinine asla girmeyecektir. O sayfayı tarayamayacağı için, içine yerleştirdiğiniz o mükemmel “Ürün” şemasını hiçbir zaman keşfedemez. Zengin snippet alamazsınız.

2. İleri Düzey Sorun: JavaScript (JS) Dosyalarının Engellenmesi

Bu, robots.txt kaynaklı en sinsi yapılandırılmış veri sorunudur.

Bazı modern WordPress eklentileri veya temaları, yapılandırılmış verileri doğrudan HTML’e yazmak yerine, bir JavaScript dosyası aracılığıyla sayfaya “enjekte eder”.

  • Senaryo: SEO eklentiniz, “Makale” şemasını /wp-content/plugins/seo-eklentisi/js/schema-generator.js gibi bir dosya aracılığıyla yüklüyor.
  • Hata: Sizin robots.txt dosyanız, “eski okul” bir tavsiyeye uyarak tüm /wp-content/plugins/ dizinini veya tüm .js dosyalarını engelliyor. (Daha önce bunun neden “En Yıkıcı Hata” olduğunu konuşmuştuk).
  • Sonuç: Googlebot, ana HTML sayfasını tarar ancak şemayı yüklemesi gereken schema-generator.js dosyasına erişemez (çünkü robots.txt tarafından engellenmiştir). Google, sayfayı “oluştururken” (render) JS dosyası yüklenmediği için, yapılandırılmış veriniz görünmez olur. Google Search Console’da “Yapılandırılmış Veri Algılanmadı” hatası alırsınız.

🔑 Özet ve Altın Kural

robots.txt ve Yapılandırılmış Veriler tamamen farklı işler yapar, ancak yapılandırılmış verilerin çalışması robots.txt‘nin iznine bağlıdır.

Altın Kural: Eğer bir sayfadan Zengin Snippet (Rich Result) almayı hedefliyorsanız, o sayfanın (ve o sayfadaki şemayı yükleyen .js/.css gibi kaynakların) robots.txt dosyanızda KESİNLİKLE ENGELLENMEMİŞ olduğundan emin olmalısınız.

6. Özet: Kontrol Listesi ve Sık Sorulan Sorular

Bu kadar teknik bilginin ardından, robots.txt dosyanızı optimize ederken elinizin altında bulunması gereken pratik bir kontrol listesi ve aklınıza takılabilecek son soruların cevapları aşağıdadır.

✅ Hızlı Kontrol Listeniz (Checklist)

Sitenizin robots.txt dosyasını incelerken veya oluştururken bu 7 adımı kontrol edin:

  1. WordPress “Görünürlük” Ayarı Doğru mu?
    • Kontrol: WordPress Admin > Ayarlar > Okuma menüsüne gidin. “Arama motoru görünürlüğü” kutucuğunun İŞARETLİ OLMADIĞINDAN emin olun. (Bu, en tehlikeli Disallow: / hatasını önler).
  2. CSS ve JS Dosyaları Engelli mi?
    • Kontrol: Dosyanızda Disallow: /wp-content/plugins/ veya Disallow: /wp-content/themes/ gibi satırlar var mı? Varsa, Google’ın sitenizi “bozuk” görmesine neden oluyorsunuz demektir. Bu satırları hemen silin.
  3. admin-ajax.php İstisnası Eklendi mi?
    • Kontrol: Disallow: /wp-admin/ kuralınız var mı? Varsa, hemen bir üst veya alt satırına Allow: /wp-admin/admin-ajax.php kuralını ekleyerek sitenizin fonksiyonlarının düzgün taranmasını garantileyin.
  4. Site Haritası (Sitemap) Belirtildi mi?
    • Kontrol: Dosyanızın en altında Sitemap: https://siteadi.com/sitemap_index.xml gibi (kendi URL’nizle) site haritanızı belirten bir satır var mı? Bu, Google’a yol göstermenin en net yoludur.
  5. Tarama Bütçesi Korunuyor mu?
    • Kontrol: Disallow: /search/, Disallow: /*?s=, Disallow: /etiket/ gibi düşük değerli sayfaları engelleyerek Google’ın bütçesini koruyor musunuz?
  6. WooCommerce Kuralları Eklendi mi? (E-ticaret siteleri için)
    • Kontrol: Disallow: /sepet/, Disallow: /hesabim/ ve en önemlisi Disallow: /*?filter_ gibi parametre engelleri mevcut mu?
  7. “Gizleme” Hatası Yapılıyor mu?
    • Kontrol: Google’dan kaldırmak istediğiniz bir sayfanın URL’sini Disallow ile engellediniz mi? Bu yanlıştır. O sayfadan Disallow kuralını kaldırın ve o sayfanın SEO eklentisi ayarından noindex (dizine ekleme) olarak işaretleyin.

Robots.txt Testi Nasıl Yapılır? (Google Search Console)

robots.txt dosyanızda yaptığınız değişiklikleri sitenize yükledikten sonra, “Acaba bir şeyi bozdum mu?” veya “Google kurallarımı doğru anladı mı?” endişesi yaşamanız çok doğaldır.

Neyse ki Google, tam da bu iş için “Robots.txt Test Aracı” adında ücretsiz bir araç sunar. Bu araç, Google’ın sitenizdeki dosyayı nasıl gördüğünü ve yorumladığını size tam olarak gösterir.

⚠️ Önemli Güncelleme (2024 ve Sonrası)

Google Search Console’un eski arayüzündeki “Robots.txt Test Aracı” artık kullanımdan kaldırıldı. Ancak, Google bu aracın daha gelişmiş ve yeni bir sürümünü kullanıma sundu.

İşte bu yeni aracı nasıl kullanacağınız:

Adres: https://www.google.com/webmasters/tools/robots-testing-tool

(Not: Bu araca erişmek için sitenizin Google Search Console’da mülk olarak doğrulanmış olması ve o hesapla giriş yapmanız gerekir.)

⚙️ Yeni Test Aracı Nasıl Kullanılır?

Bu araç, robots.txt dosyanızı analiz etmenin ve test etmenin iki yolunu sunar:

Seçenek 1: Canlı Sitedeki Dosyayı Test Etme (Mevcut Durum)

  1. Yukarıdaki bağlantıdan aracı açın.
  2. Sol üstteki mülk seçiciden sitenizi seçin.
  3. Araç, otomatik olarak sitenizdeki (siteadi.com/robots.txt) mevcut robots.txt dosyasını çekecek ve ekranın sol tarafındaki kod düzenleyiciye yükleyecektir.
  4. Ekranın sağ tarafında, dosyanızda Google’ın bulduğu hataları (örn: geçersiz kural) veya uyarıları anında görebilirsiniz.
  5. Test Alanı: Sayfanın alt kısmındaki metin kutusuna, sitenizden bir URL’nin son ekini (örn: /sepet/ veya /wp-content/plugins/bir-dosya.js) girin.
  6. TEST ET butonuna basın.
  7. Araç size anında o URL için “ENGELENDİ” (Kırmızı) veya “İZİN VERİLDİ” (Yeşil) sonucunu gösterecek ve hangi kural satırının bu engele neden olduğunu vurgulayacaktır.

Seçenek 2: Dosyayı Güncellemeden Önce Test Etme (Taslak Testi)

Bu, aracın en güçlü özelliğidir. Sitenizdeki dosyayı değiştirmeden önce, yeni kurallarınızın ne yapacağını test edebilirsiniz.

  1. Aracı açın ve sitenizi seçin.
  2. Bu rehberde hazırladığımız “ideal” robots.txt kurallarını kopyalayın.
  3. Ekranın sol tarafındaki kod düzenleyiciye bu yeni kuralları yapıştırın. (Bu, sitenizdeki canlı dosyayı değiştirmez, sadece bir simülasyon yapar).
  4. Şimdi, test etmek istediğiniz URL’leri tek tek deneyin:
    • Test 1: /wp-admin/ yazın ve TEST ET‘e basın. Sonuç: ENGELENDİ (Harika, çalışıyor).
    • Test 2: /wp-admin/admin-ajax.php yazın ve test edin. Sonuç: İZİN VERİLDİ (Harika, Allow kuralımız çalışıyor).
    • Test 3: /wp-content/plugins/herhangi-bir-eklenti/style.css yazın ve test edin. Sonuç: İZİN VERİLDİ (Harika, CSS/JS dosyalarını engellemiyoruz).
    • Test 4: /etiket/seo/ yazın ve test edin. Sonuç: ENGELENDİ (Harika, tarama bütçesi kuralımız çalışıyor).

Tüm kurallarınızın beklediğiniz gibi çalıştığından emin olduktan sonra, bu kodları kopyalayıp Rank Math/Yoast eklentiniz aracılığıyla sitenize güvenle kaydedebilirsiniz.

robots.txt dosyası, sitenizin SEO sağlığı üzerinde sessiz ama derin bir etkiye sahip teknik bir dosyadır. Doğru yapılandırıldığında, Google’ın değerli tarama bütçesini en önemli sayfalarınıza odaklar; yanlış yapılandırıldığında ise (özellikle Disallow: / veya /wp-content/ engellemeleriyle) sitenizi Google’da görünmez kılabilir.

Bu rehberdeki adımları ve Google’ın test aracını kullanarak sitenizin arama motorlarıyla doğru iletişim kurduğundan emin olabilirsiniz.

Eğer tüm bu teknik optimizasyonlar gözünüzü korkuttuysa veya sitenizin tarama bütçesinin ve robots.txt yapılandırmasının uzman bir göz tarafından incelenmesini istiyorsanız, profesyonel bir SEO hizmeti alarak teknik altyapınızı emin ellere teslim edebilirsiniz.

Sıkça Sorulan Sorular

robots.txt dosyamın olup olmadığını nasıl anlarım?

Tarayıcınızın adres çubuğuna siteadi.com/robots.txt yazın. Karşınıza bir metin dosyası çıkıyorsa (veya 404 hata sayfası değilse), bir dosyanız var demektir.

Hiç robots.txt dosyam yok. Bu büyük bir SEO sorunu mu?

Hayır, “büyük” bir sorun değil. Çünkü WordPress, siz bir dosya oluşturmasanız bile /wp-admin/ dizinini engelleyen temel bir “sanal” robots.txt dosyasını otomatik olarak sunar. Ancak bu, SEO için optimize edilmiş bir dosya değildir. Tarama bütçesini korumak ve site haritanızı belirtmek için bu rehberdeki gibi fiziksel bir dosya oluşturmanız şiddetle tavsiye edilir.

Bir sayfayı robots.txt ile engelledim ama hala Google’da görünüyor. Neden?

Çünkü robots.txt bir “dizinden kaldırma” aracı değildir. Google’ın o sayfaya girmesini engellediniz ancak Google, başka sitelerden o sayfaya verilen linkler nedeniyle onun varlığından haberdar. Girmesine izin vermediğiniz için de sizin eklediğiniz noindex etiketini göremiyor.
Çözüm: O sayfayı robots.txt engelinden kaldırın ve sayfaya sadece noindex meta etiketi ekleyin.

AI (GPTBot vb.) botlarını engellemek SEO’mu olumsuz etkiler mi?

Hayır, etkilemez. GPTBot (OpenAI) veya Google-Extended (Google’ın AI botu), Google’ın ana arama botu olan Googlebot‘tan farklıdır. AI botlarını engellemek, sitenizin Google arama sonuçlarındaki sıralamasına veya dizine eklenmesine hiçbir olumsuz etki yapmaz.

robots.txt dosyamı güncelledim, Google bunu ne zaman görür?

Google, robots.txt dosyanızı genellikle günde bir kez (bazen daha sık veya daha seyrek) kontrol eder ve önbelleğe alır. Değişikliklerinizin tam olarak işleme alınması 24 ila 48 saati bulabilir. Google Search Console’daki “Robots.txt Test Aracı”nı kullanarak Google’ın dosyanızın en son sürümünü görüp görmediğini kontrol edebilirsiniz.

OpenSEO

Ben Yılmaz. OpenSEO markası altında, WordPress sitelerinin hız, güvenlik ve SEO problemlerini kökten çözüyorum. 8 yılı aşkın tecrübemle projenizin tek muhatabıyım.

SEO Fiyatları Rehberi

Yorum yapın