umut-recep-durna-logo-darkUmut RecepDurna · SEO Uzmanı
SEO

Robots.txt Nedir?

Robots.txt, sitenin kök dizininde duran ve arama motoru botlarına "hangi sayfaları taraman serbest, hangileri kapalı" diyen küçük bir metin dosyasıdır.

Umut Recep Durna27 Nisan 20245 dk okuma
Robots.txt Nedir?

Bir kütüphaneye giriyorsun. İçeride binlerce kitap, raflar dolu. Kütüphanenin girişinde bir tabela: "Halka açık raflar serbest. Z koridoru sadece personel için. Arşiv bölümü kapalı." Sen ne yapacağını anlarsın, tabela sınırları söyledi.

Web sitelerinde robots.txt tam olarak bu kütüphane tabelasıdır. Googlebot, Bingbot gibi arama motoru botları siteye gelmeden önce kök dizinde (/robots.txt) bu dosyayı okur. Hangi sayfaları tarayabileceğini, hangilerine girmemesi gerektiğini buradan öğrenir.

Tanım olarak: robots.txt, web sitelerinin kök dizininde bulunan ve arama motoru botlarına tarama (crawling) izinlerini bildiren bir metin dosyasıdır. Robots Exclusion Protocol (RFC 9309) standardına uyar.

URL formatı her zaman aynıdır:

text
https://umutrecepdurna.com/robots.txt

Robots.txt Nasıl Çalışır?

Bir bot siteye gelmeden önce ilk yaptığı iş robots.txt'i okumaktır:

  1. Bot https://site.com/robots.txt URL'sine HTTP isteği gönderir
  2. Eğer dosya varsa içeriği okur, kuralları belleğine alır
  3. Sayfayı taramak istediğinde önce kurallara bakar
  4. Kural izin veriyorsa tarar, vermiyorsa atlar

Önemli detay: robots.txt bir öneri/talimattır, fiziksel engel değildir. Saygın botlar (Google, Bing, DuckDuckGo) kurallara uyar; spam botlar veya scraping yapan kötü niyetli yazılımlar bu dosyayı yok sayabilir. Yani robots.txt güvenlik aracı değil, SEO/crawl bütçe yönetimi aracıdır.

Robots.txt Nasıl Yazılır?

Dosya UTF-8 düz metindir, üç ana komut kullanır.

User-agent

Hangi bota hitap ettiğini söyler:

text
User-agent: *           # Tüm botlar
User-agent: Googlebot   # Sadece Google
User-agent: Bingbot     # Sadece Bing

Disallow / Allow

Hangi yolların kapalı/açık olduğunu söyler:

text
User-agent: *
Disallow: /admin/       # /admin/ dizini ve alt sayfaları yasak
Disallow: /private.pdf  # Belirli dosya yasak
Disallow: /             # Tüm site yasak (DİKKAT)
Allow: /admin/login     # /admin/ yasak ama login sayfası açık

Disallow: boş bırakılırsa "her şey serbest" anlamına gelir. Disallow: / ise "tüm site kapalı" demektir, kullanırken çok dikkat.

Sitemap

Site haritasının URL'sini bota söyler:

text
Sitemap: https://umutrecepdurna.com/sitemap.xml

Birden fazla sitemap varsa her biri ayrı satırda belirtilir.

Tipik bir robots.txt örneği

text
# Umut Recep Durna, robots.txt
User-agent: *
Disallow: /admin/
Disallow: /api/
Disallow: /studio/
Disallow: /tesekkurler

# AdsBot Google için ayrı kural
User-agent: AdsBot-Google
Disallow:

# Sitemap referansı
Sitemap: https://umutrecepdurna.com/sitemap.xml

Robots.txt vs Noindex vs Canonical

Sıkça karıştırılır. Üç araç farklı amaçlar için kullanılır:

  • Robots.txt, bot sayfayı taramaya bile gelemesin der. Sayfa içeriği Google'a sunulmaz.
  • Noindex meta tag (<meta name="robots" content="noindex">), bot sayfayı tarar ama arama sonuçlarında göstermez.
  • Canonical, sayfa indekslenebilir ama "asıl olan başka bir URL" diye işaret eder.

Önemli: bir sayfayı hem robots.txt'le yasaklayıp hem noindex etiketi koymak çelişkilidir. Çünkü bot sayfaya giremezse noindex'i okuyamaz. Bir sayfayı arama sonuçlarından kaldırmak istiyorsan noindex kullan, robots.txt'le engelleme.

WordPress / Shopify / Next.js'te Robots.txt

WordPress, Yoast SEO ya da Rank Math eklentilerinden direkt düzenlenir (Yoast → Tools → File editor). WP varsayılan olarak otomatik bir robots.txt üretir, eklentiyle override edebilirsin.

Shopify, Shopify temaları otomatik bir robots.txt oluşturur. Theme.liquid dosyasında özelleştirme yapılabilir, ama Shopify bazı varsayılan kuralları (ör. /admin/) zorunlu tutar.

Next.js (App Router), app/robots.ts veya app/robots.txt dosyası ile dinamik üretilir:

ts
// app/robots.ts
import type { MetadataRoute } from "next";

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

Custom kodlu sitelerde basit robots.txt dosyası public/ veya kök dizine yerleştirilir.

Robots.txt'i Test Etmek

Dosyayı yayına almadan önce mutlaka test et.

Google Search Console'da: "Settings → robots.txt" raporu kuralları doğrular ve hangi sayfaların engellendiğini gösterir.

Online araçlar:

  • TechnicalSEO.com Robots.txt Tester, kural simülasyonu yapar
  • Merkle Robots.txt Tester, UA seçimi ile test
  • Screaming Frog SEO Spider, siteyi tararken robots.txt kurallarını uygular, hangi sayfaların engellendiğini raporlar

Yeni site açtığımda her zaman önce robots.txt'i test ediyorum, yanlış bir Disallow: / kuralı sitenin tamamını Google'dan kaldırabilir.

Sık Yapılan Hatalar
  • `Disallow: /` ile tüm siteyi kapatmak. Geliştirme aşamasında konulan bu kural canlıya alınınca unutulursa site Google'da kaybolur. Canlıya almadan önce mutlaka kaldır.
  • CSS / JS dosyalarını engellemek. Eski güvenlik mantığıyla Disallow: /wp-content/themes/ yazmak Google'ın sayfayı render etmesini engeller, mobil uyumluluk sıralama düşüşüne yol açar.
  • Sensitive dosyaları robots.txt'le gizlemeye çalışmak. Robots.txt public bir dosya, herkes /robots.txt adresine bakabilir. Hangi yolları gizlediğini açıkça söylersin. Hassas içerik için authentication kullan.
  • Wildcard'ları yanlış kullanmak. Disallow: /*.pdf yazmak istediğinde sadece Disallow: /*.pdf$ doğru kullanım, eksik $ ile beklenmedik eşleşmeler olabilir.
  • Sitemap'i unutmak. Robots.txt'te sitemap referansı olmazsa Google sitemap'i diğer yollardan keşfetmek zorunda kalır, gecikme.
Sonuç

Robots.txt sitenin teknik SEO altyapısının ilk basamağıdır. Kötü yazıldığında sitenin tamamını Google'dan kaldırabilir; iyi yazıldığında crawl bütçesini optimize eder, bot trafiğini doğru sayfalara yönlendirir.

Pratik öneri: Yeni site açıldığında ilk gün robots.txt yazılır, Search Console'da test edilir. Sitemap referansı eklenir. Geliştirme/staging ortamı için ayrı Disallow: / kuralı varsa canlıya almadan önce mutlaka temizlenir. Aylık olarak Search Console "robots.txt blocked" raporunu kontrol et, beklenmedik engel varsa düzelt.

İlgili içerik: Robots.txt'in birlikte kullanıldığı Sitemap Nedir? yazısı, teknik SEO denetiminin tamamı için SEO hizmeti sayfası.

#robots.txt#crawl bütçesi#teknik seo#googlebot
PaylaşXLinkedInWhatsApp