Blog'a Dön
GEO & Yapay Zeka

llms.txt Nedir? AI Tarayıcı Yönetimi Rehberi

25 Ağustos 2026
Next GEO Agency
llms.txt Nedir? AI Tarayıcı Yönetimi Rehberi

llms.txt, sitenizin kök dizinine konulan ve yapay zeka modellerine sitenizin ne olduğunu, hangi sayfaların önemli olduğunu ve nereye bakmaları gerektiğini düz Markdown ile anlatan bir özet dosyasıdır.

Bu dosya Eylül 2024'te Answer.AI'dan Jeremy Howard tarafından bir öneri olarak yayımlandı. Çıkış noktası basit bir sıkıntıydı: bir dil modeli sitenizi ziyaret ettiğinde karşısına navigasyon menüleri, çerez uyarıları, JavaScript ile sonradan yüklenen bileşenler ve reklam kutuları çıkıyor. Modelin bağlam penceresi sınırlı olduğu için bu gürültünün içinden "bu site ne yapar, kimlere hizmet verir, hangi sayfası işime yarar" sorusunun cevabını çıkarmak pahalı bir iş.

llms.txt bu işi ucuzlatıyor. Ama tek başına yeterli değil. Bir yapay zeka tarayıcısının dosyayı okuyabilmesi için önce sitenize girebilmesi gerekiyor ve pratikte en çok kaybedilen yer tam burası: robots.txt doğru yazılmış olsa bile, önündeki CDN katmanı botu sessizce geri çevirebiliyor. Bu yazıda hem dosyanın nasıl yazıldığını hem de bu görünmez engellerin nasıl tespit edildiğini, kendi sitemizdeki gerçek yapılandırma üzerinden anlatıyorum.

llms.txt hangi sorunu çözüyor?

Bir sitenin HTML'i insanlar için tasarlanmıştır. Bir ürün sayfasında asıl bilgi belki 200 kelimedir ama sayfanın kaynağı 300 KB'tır. Model bu 300 KB'ı işlemek zorunda kalırsa ya bağlamının önemli kısmını harcar ya da sayfayı kısaltarak okur — ikisi de sizin aleyhinize.

llms.txt, bu kalabalığın yanına elle hazırlanmış temiz bir "içindekiler" koyar. İçinde şunlar bulunur:

  • Sitenin tek cümlelik kimliği (kim, ne yapar, kime yapar)
  • Hizmet veya ürün listesi, kısa açıklamalarla
  • Önemli sayfaların tam URL'leri ve ne içerdikleri
  • Blog veya dokümantasyon başlıkları, her biri için bir satırlık özet
  • İletişim yolu

Bunun getirisi doğrudan alıntılanma ihtimalidir. Bir kullanıcı ChatGPT veya Perplexity'ye "İstanbul'da klinikler için GEO hizmeti veren ajans" diye sorduğunda, model elindeki en net ve en az belirsizlik içeren kaynağı tercih eder. Sitenizin kimliğini kendi cümlenizle yazmışsanız, model o cümleyi tahmin etmek zorunda kalmaz.

llms.txt ile robots.txt arasındaki fark ne?

İkisi sık karıştırılıyor ama işlevleri taban tabana zıt.

robots.txt bir izin dosyasıdır. "Şu tarayıcı şu klasöre girebilir mi?" sorusuna cevap verir. Onlarca yıllık, üzerinde uzlaşılmış bir protokoldür ve tarayıcılar buna genellikle uyar.

llms.txt bir içerik dosyasıdır. Hiçbir şeyi engellemez veya serbest bırakmaz. "Girdiysen, işte özet" der. Resmî bir standart da değildir; öneri niteliğindedir ve her model sağlayıcısının bunu okuduğuna dair bir garanti yoktur.

Bu yüzden sıralama önemlidir: önce robots.txt ile kapıyı açarsınız, sonra llms.txt ile içeriye yol tarifi koyarsınız. Kapı kapalıyken yol tarifi yazmanın anlamı yok.

Bir de üçüncü katman var: yapılandırılmış veri. JSON-LD şeması, llms.txt'in söylediğini makine tarafından doğrulanabilir biçimde tekrar eder ve modele "bu, işaretlenmiş bir varlık" sinyali verir; şema tarafını Schema Markup ve E-E-A-T yazımızda ele almıştık.

Gerçek bir llms.txt nasıl görünüyor?

Aşağıdaki, nextgeoagency.com'un yayındaki llms.txt dosyasının kısaltılmış hâli:

# Next GEO Agency

> Turkiye merkezli GEO (Generative Engine Optimization) ve SEO ajansi.
> Yerel hizmet isletmelerinin ve profesyonel danismanlarin ChatGPT, Gemini,
> Perplexity ve Google gibi arama motorlarinda bulunmasini saglayarak musteri
> kazanmasina calisir. Hizmet verdigi baslica alanlar: klinikler,
> hukuk burolari, emlak ofisleri, guzellik salonlari ve KOBI'ler.

Site: https://nextgeoagency.com
Diller: Turkce (varsayilan), Ingilizce
Guncelleme: 2026-08-24

## Hizmetler
- GEO (Generative Engine Optimization): ChatGPT, Gemini, Claude, Perplexity ve
  Google SGE gibi yapay zeka arama motorlarinda marka gorunurlugu
- SEO: teknik SEO, anahtar kelime arastirmasi, icerik optimizasyonu, yerel SEO
- Kurumsal Web Sitesi Tasarimi: hizli, mobil uyumlu, SEO ve GEO uyumlu siteler

## Sayfalar
- [Ana Sayfa](https://nextgeoagency.com/)
- [Cozumler](https://nextgeoagency.com/cozumler)
- [Blog](https://nextgeoagency.com/blog)
- [Iletisim](https://nextgeoagency.com/iletisim)

## Makaleler
- [Schema Markup ve E-E-A-T](https://nextgeoagency.com/blog/108) — Schema.org
  yapılandırılmış verisi ve E-E-A-T sinyalleri nasıl kurulur?
- [GEO Stratejisi Nasıl Kurulur?](https://nextgeoagency.com/blog/112) — Sıfırdan
  GEO stratejisi için adım adım pratik yol haritası.

## Iletisim
https://nextgeoagency.com/iletisim

Dikkat edilecek üç nokta var. Birincisi, dosya # Başlık ile açar ve hemen ardından > işaretli bir blok alıntı gelir — spesifikasyonda zorunlu olan tek şey H1 başlıktır, ama özet alıntısı modelin ilk okuduğu yerdir ve boş bırakılmamalıdır. İkincisi, tüm bağlantılar mutlak URL'dir; model dosyayı bağlamından kopararak okuyabilir, göreli yol işine yaramaz. Üçüncüsü, her satırın sonundaki tire işaretinden sonraki açıklama isteğe bağlı görünse de asıl değeri taşır: model o satırı okuyup sayfayı hiç ziyaret etmeden kullanabilir.

robots.txt tarafında AI botlarına nasıl izin verilir?

Çoğu sitede sorun bir yasaklama değil, eksikliktir: User-agent: * altında Allow: / yazar ama AI tarayıcıları isim isim tanımlanmamıştır. Bazı tarayıcılar joker kuralı doğru yorumlar, bazıları kendi adına yazılmış blok arar; en güvenlisi açık yazmaktır.

Kendi robots.txt dosyamızın ilgili bölümü:

# Icerik sinyalleri: arama, AI cevaplarinda kaynak gosterme ve
# model egitimi icin izin verilmistir.
User-agent: *
Content-Signal: search=yes, ai-input=yes, ai-train=yes
Allow: /

# --- Yapay zeka arama motorlari ve asistanlar (GEO icin kritik) ---
User-agent: GPTBot
Allow: /

User-agent: OAI-SearchBot
Allow: /

User-agent: ChatGPT-User
Allow: /

User-agent: ClaudeBot
Allow: /

User-agent: Claude-SearchBot
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: Google-Extended
Allow: /

User-agent: CCBot
Allow: /

Sitemap: https://nextgeoagency.com/sitemap.xml

Content-Signal satırı Cloudflare'in içerik sinyalleri politikasından gelir ve üç ayrı kullanımı ayrı ayrı beyan eder: aramada indekslenme (search), yapay zeka cevabına girdi olma (ai-input) ve model eğitiminde kullanılma (ai-train). Bu bir zorlama değil, bir tercih beyanıdır — ama hiç beyan etmemekten iyidir.

Son satırdaki Sitemap direktifini atlamayın; birçok AI tarayıcısı keşfe robots.txt'ten başlar.

Hangi bot kime ait ve ne için tarar?

Karar verirken botun sahibinden çok ne yaptığına bakmak gerekir. Aynı şirketin arama botu ile eğitim botu farklı sonuçlar doğurur: arama botunu engellerseniz AI cevaplarında görünmezsiniz, eğitim botunu engellerseniz sadece gelecekteki modellerin hafızasına girmezsiniz.

BotKime aitNe için tararİzin verilmeli mi?
GPTBotOpenAIModel eğitimi için genel taramaGörünürlük hedefiyse evet; içerik lisanslama kaygısı varsa tartışılır
OAI-SearchBotOpenAIChatGPT arama sonuçlarında kaynak/link göstermeKesinlikle evet — ChatGPT'de görünmenin yolu buradan geçer
ChatGPT-UserOpenAIKullanıcı bir bağlantı verdiğinde anlık sayfa getirmeEvet, engellemek doğrudan kullanıcı talebini reddetmektir
ClaudeBotAnthropicGenel tarama ve eğitimEvet
Claude-SearchBotAnthropicClaude'un arama cevaplarında kaynak göstermeKesinlikle evet
PerplexityBotPerplexityArama indeksi oluşturma, cevaplarda alıntılamaKesinlikle evet
Google-ExtendedGoogleAyrı bir tarayıcı değil; içeriğin Gemini eğitimi ve temellendirmesinde kullanılıp kullanılmayacağını belirleyen izin anahtarıEvet — engellemek Google aramasını etkilemez ama Gemini'de kaynak olmanızı engeller
Applebot-ExtendedAppleApple Intelligence tarafında içerik kullanım izniEvet
CCBotCommon CrawlAçık veri seti üretir; birçok modelin eğitim verisi buradan gelirEvet, geniş dolaylı erişim sağlar
BytespiderByteDanceGenel tarama ve eğitimİsteğe bağlı; agresif tarama şikâyetleri varsa hız sınırı düşünülebilir

Tablodaki en kritik satır Google-Extended. Bunu bir tarayıcı sanıp engelleyen çok site var; oysa Googlebot'un normal taramasını hiç etkilemez, sadece içeriğinizin Gemini cevaplarına girmesini kapatır. Yani klasik SEO'nuzdan hiçbir şey kazanmadan GEO tarafında kaybedersiniz.

En sinsi tuzak: CDN katmanı robots.txt'inizi geçersiz kılabilir

Bu yazının en pahalı bilgisi burada. Dosyanızı kusursuz yazmış olabilirsiniz; siteniz bir CDN veya proxy arkasındaysa (Cloudflare, Fastly, benzeri) o katman isteği sizin sunucunuza hiç ulaştırmadan geri çevirebilir.

Cloudflare özelinde dikkat edilecek iki ayar var:

  1. "Block AI bots" / AI Crawl Control. Tek tıkla açılan bu özellik, tanıdığı tüm AI tarayıcılarını kenar sunucuda durdurur. Açıksa sizin robots.txt'inizin hiçbir hükmü kalmaz — bot dosyayı okumaya bile gelemez. Cloudflare bu kontrolü Search, Agent ve Training olmak üzere üç kategoriye ayırıyor ve yeni eklenen alan adlarında bazı kategoriler varsayılan olarak engelli gelebiliyor. GEO hedefi olan bir sitede üçünün de Allow olması gerekir.

  2. Yönetilen robots.txt. CDN kendi robots.txt dosyasını servis etmeye başlarsa, public/ klasörünüzdeki dosya hiç görünmez. Değişiklik yaptığınızda tarayıcıdan değil, dışarıdan curl ile kontrol edin — gördüğünüz içerik gerçekten sizin yazdığınız mı?

Aynı ailede üçüncü bir sorun daha var ve bu neredeyse hiç konuşulmuyor: Email Obfuscation. Cloudflare'in bu özelliği sayfadaki e-posta adreslerini spam botlarından korumak için JavaScript'e sarar; adres HTML kaynağında [email protected] gibi bir yer tutucuya dönüşür ve ancak tarayıcıda JS çalışınca çözülür. AI tarayıcılarının önemli bölümü JavaScript çalıştırmaz. Sonuç: model iletişim sayfanızı okur, e-posta adresini göremez ve "bu işletmenin iletişim bilgisi bulunamadı" der. Yerel hizmet işletmeleri için bu, GEO'nun tam kalbinden vurulmasıdır. Çözüm, iletişim sayfası için bu özelliği kapatmak veya adresi JSON-LD şeması içinde de düz metin olarak vermektir.

Kurulumu curl ile nasıl doğrularsınız?

Tarayıcınızda sayfanın açılması hiçbir şey kanıtlamaz; siz bir bot değilsiniz. Doğrulamanın tek yolu bot kimliğiyle istek atmaktır:

# 1) robots.txt ve llms.txt gerçekten yayında mı, içeriği sizin yazdığınız mı?
curl -s https://nextgeoagency.com/robots.txt | head -20
curl -s https://nextgeoagency.com/llms.txt  | head -15

# 2) Bot user-agent'ı ile ana sayfa 200 dönüyor mu?
curl -A "GPTBot/1.1" -sI https://nextgeoagency.com/ | head -1
curl -A "OAI-SearchBot/1.0" -sI https://nextgeoagency.com/ | head -1
curl -A "PerplexityBot/1.0" -sI https://nextgeoagency.com/ | head -1
curl -A "ClaudeBot/1.0" -sI https://nextgeoagency.com/blog/112 | head -1

# 3) Botun aldığı HTML dolu mu, yoksa boş bir <div id="root"> mü?
curl -A "GPTBot/1.1" -s https://nextgeoagency.com/blog/112 | grep -o "<h1[^>]*>[^<]*" | head -3

# 4) E-posta adresi kaynak HTML'de düz metin olarak var mı?
curl -A "GPTBot/1.1" -s https://nextgeoagency.com/iletisim | grep -c "email-protection"

Beklenen sonuçlar: ikinci gruptaki her satır HTTP/2 200 dönmeli. 403 görüyorsanız araya bir güvenlik katmanı girmiştir. Üçüncü komut gerçek bir başlık metni yazdırmalı — hiçbir şey yazdırmıyorsa siteniz istemci tarafında render ediliyordur ve bot boş sayfa görüyordur; bu durumda sunucu tarafı render veya statik üretime geçmek gerekir. Dördüncü komut 0 dönmeli; 1 veya üstü dönüyorsa e-posta gizleme açıktır.

Kontrolleri deploy sonrası her seferinde tekrarlayın. Bir CDN ayarı yanlışlıkla açıldığında sitede gözle görülür hiçbir değişiklik olmaz — sadece AI tarafında sessizce görünmez olursunuz.

Bu dosyaları neden elle düzenlememelisiniz?

Elle yazılan bir llms.txt ilk gün doğrudur, üçüncü ayda yalan söyler. Yeni yazılar eklenir, dosyaya işlenmez; model sitenizin altı ay önceki hâlini öğrenir.

Bizim sitemizde llms.txt ve sitemap.xml hiç elle açılmaz. scripts/generate-seo-files.ts her build öncesi makale listesini okuyup ikisini de sıfırdan yazar:

// public/llms.txt — makale bölümü yazı listesinden üretilir
const llms = `# Next GEO Agency

> ${ozet}

Guncelleme: ${bugun}

## Sayfalar
${sayfalar.map((s) => `- [${s.ad}](${SITE}${s.yol})`).join('\n')}

## Makaleler
${posts.map((p) => `- [${esc(p.title)}](${SITE}/blog/${p.id}) — ${esc(p.excerpt)}`).join('\n')}
`;
writeFileSync(resolve(root, 'public/llms.txt'), llms, 'utf8');

Bu script package.json içinde prebuild adımına bağlıdır, yani npm run build her çalıştığında otomatik tetiklenir. Yeni bir yazı yayımlamak için tek yapılan şey içerik dosyasına bir kayıt eklemek; sitemap, llms.txt ve güncelleme tarihi kendiliğinden düzelir. İnsanın unutabileceği hiçbir adım kalmaz.

Aynı mantığı hangi altyapıyı kullanırsanız kullanın kurabilirsiniz: WordPress'te bir eklenti veya zamanlanmış görev, Next.js'te bir route handler, statik sitede bir build script'i. Önemli olan dosyanın üretilmiş olması, yazılmış olması değil. Bu yaklaşımın daha geniş çerçevesini GEO stratejisi kurma rehberimizde bulabilirsiniz.


Sıkça Sorulan Sorular

llms.txt zorunlu mu, olmazsa sitem AI aramalarında görünmez mi?

Zorunlu değil, resmî bir standart da değil. Dosya olmasa da yapay zeka tarayıcıları sitenizi tarayabilir ve içeriğinizi kullanabilir. llms.txt, doğru anlaşılma ihtimalinizi artıran bir kolaylık katmanıdır; asıl belirleyici olan sitenizin tarayıcılara açık olması ve içeriğin sunucu tarafından render edilmesidir.

llms.txt dosyasını sitemin neresine koymalıyım?

Kök dizine, yani https://siteniz.com/llms.txt adresinden erişilebilecek şekilde. Statik dosya klasörünüze (public/, static/ veya sunucunun kök klasörü) koymanız yeterlidir. Alt dizine konulan bir llms.txt tarayıcılar tarafından aranmaz.

GPTBot'a izin verirsem içeriğim model eğitiminde kullanılır mı?

Evet, GPTBot'un beyan edilen amacı budur. Eğitimde kullanılmasını istemiyor ama ChatGPT cevaplarında kaynak olarak görünmek istiyorsanız, GPTBot'u Disallow yapıp OAI-SearchBot ve ChatGPT-User'a izin verebilirsiniz. Bu ikisi arama ve anlık getirme içindir, eğitim için değil.

robots.txt dosyamı düzelttim ama botlar hâlâ giremiyor, sebebi ne olabilir?

En yaygın sebep CDN veya güvenlik katmanıdır. Cloudflare gibi bir proxy kullanıyorsanız "Block AI bots" özelliği, bot yönetimi kuralları veya bir WAF kuralı isteği sizin sunucunuza ulaşmadan durdurabilir. curl -A "GPTBot/1.1" -sI https://siteniz.com/ komutu 403 dönüyorsa sorun robots.txt'te değil, önündeki katmandadır.

llms.txt ile llms-full.txt arasındaki fark nedir?

llms.txt bir içindekiler tablosudur: başlıklar, kısa açıklamalar ve bağlantılar içerir. llms-full.txt ise tüm içeriğin düz metin hâlini tek dosyada toplar. İkincisi genellikle dokümantasyon siteleri için anlamlıdır; kurumsal bir site veya blog için llms.txt tek başına yeterlidir ve bakımı çok daha kolaydır.

Bu yazıdaki curl komutlarını kendi alan adınızla çalıştırmak on dakikanızı alır ve çoğu zaman sürpriz bir sonuç verir. Daha kapsamlı bir kontrol isterseniz Next GEO Agency'nin teknik altyapı çözümlerine göz atabilir veya iletişim sayfasından ücretsiz teknik denetim isteyebilirsiniz; robots.txt, llms.txt, CDN ayarları ve render davranışını birlikte inceleyip somut bir düzeltme listesi çıkarıyoruz.