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.
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:
https://umutrecepdurna.com/robots.txtRobots.txt Nasıl Çalışır?
Bir bot siteye gelmeden önce ilk yaptığı iş robots.txt'i okumaktır:
- Bot
https://site.com/robots.txtURL'sine HTTP isteği gönderir - Eğer dosya varsa içeriği okur, kuralları belleğine alır
- Sayfayı taramak istediğinde önce kurallara bakar
- 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:
User-agent: * # Tüm botlar
User-agent: Googlebot # Sadece Google
User-agent: Bingbot # Sadece BingDisallow / Allow
Hangi yolların kapalı/açık olduğunu söyler:
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çıkDisallow: 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:
Sitemap: https://umutrecepdurna.com/sitemap.xmlBirden fazla sitemap varsa her biri ayrı satırda belirtilir.
Tipik bir robots.txt örneği
# 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.xmlRobots.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:
// 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.
- `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.txtadresine bakabilir. Hangi yolları gizlediğini açıkça söylersin. Hassas içerik için authentication kullan. - Wildcard'ları yanlış kullanmak.
Disallow: /*.pdfyazmak istediğinde sadeceDisallow: /*.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.
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ı.