Bir dil modeli bir web sayfasını okumak istediğinde önüne menüler, çerez bildirimi, betikler ve her sayfada tekrar eden alt bilgi çıkar. llms.txt'nin önerdiği çözüm basit: sitenin ne olduğunu ve önce hangi sayfalarına bakılması gerektiğini, modelin bağlam penceresine (context window) sığacak kısa bir Markdown dosyasında söylemek. Dosya bir erişim kuralı değildir. Bir ajan bilgiye ihtiyaç duyduğunda açıp okuyacağı bir içindekiler sayfasıdır.
llms.txt, robots.txt ve sitemap.xml arasındaki fark nedir?
Üç dosya da sitenin kökünde durur ama farklı sorulara cevap verir; llms.txt diğer ikisinin yerine geçmez.
| Dosya | Cevapladığı soru | Kim, ne zaman okur | Biçim | Bağlayıcılığı |
|---|---|---|---|---|
robots.txt | Hangi yolları isteyebilirsin? | Tarayıcılar, taramaya başlamadan önce | User-agent, Allow, Disallow satırları (RFC 9309) | Uyulması beklenen bir tercih; teknik bir engel değil |
sitemap.xml | Hangi adreslerim var, ne zaman değişti? | Arama motoru tarayıcıları | XML | İpucu; Google lastmod değerini ancak tutarlı biçimde doğruysa dikkate alır |
llms.txt | Bu site ne, önce hangi sayfalara bakmalıyım? | Dil modelleri ve ajanlar, ihtiyaç anında | Markdown | Yok; okunup okunmayacağı okuyana kalmış |
Öneri metni, dosyanın daha çok çıkarım (inference), yani bir kullanıcının o anki sorusunu cevaplama sırasında işe yarayacağını, model eğitimi için tasarlanmadığını belirtir. Bir botun sitenize girip girmeyeceğini belirlemek istiyorsanız doğru yer robots.txt'tir; yapay zekâ botlarının robots.txt ile nasıl yönetildiğini ayrı bir yazıda anlattık.
llms.txt'yi kim önerdi, 2026'da durum ne?
llms.txt'yi Jeremy Howard 3 Eylül 2024'te llmstxt.org'da önerdi. İkinci sürüm Ağustos 2026'da, iki yıllık kullanımdan çıkan derslere göre yayımlandı. Değişiklik notuna göre bugün binlerce site bu dosyayı yayımlıyor ve dokümantasyon platformları onu otomatik üretiyor. Buna rağmen bir W3C, IETF ya da ISO standardı değildir ve hiçbir tarayıcının onu okuma yükümlülüğü yoktur.
v2 ile ne değişti?
| Konu | İlk sürüm (2024) | v2 (Ağustos 2026) |
|---|---|---|
| Kapsam | Kökte tek dosya | Alt klasörlere de dosya konabilir. Bir dosya kendi yolunun altındaki sayfaları kapsar; en özel dosya geçerlidir. |
| Sayfaların Markdown sürümü | Adresin sonuna .md eklenir: sayfa.html.md | Bu biçim ya da uzantının değiştirilmesi: sayfa.md. Dizinlerde index.html.md veya index.md. |
| Keşif | Tanımlı değil | HTML <link> ya da HTTP Link: başlığıyla rel="alternate" type="text/markdown" (sayfanın Markdown sürümü) ve rel="describedby" (sayfayı kapsayan llms.txt) |
| "Optional" bölümü | Kısa bağlamda atlanacak bölüm olarak özel bir anlamı vardı | Gelenek olarak kullanılabilir; özel işlem anlamı kaldırıldı |
| Yardımcı araçlar | llms_txt2ctx ve llms-ctx.txt dosyaları | Spesifikasyondan çıkarıldı |
Alt klasör kuralı, bir alan adının yalnızca bir bölümünü yöneten yayıncılar için anlamlı; GitHub Pages proje siteleri tipik örnek. Canlı bir uygulamayı Cloudflare'in geliştirici belgelerinde görmek mümkün: her ürün klasörünün kendi dosyası var (/bots/llms.txt, /ai-crawl-control/llms.txt) ve sayfaların Markdown sürümlerinin başında o klasörün llms.txt dosyasına işaret eden kısa bir not duruyor.
Bir başka işaret Chrome'dan geldi. Lighthouse'un "Agentic browsing" denetimleri arasında bir llms.txt kontrolü var, ama yalnızca dosyanın hatasız getirilip getirilmediğine bakıyor: dosya yoksa (404) sonuç "uygulanamaz" sayılıyor, sunucu hatası ise işaretleniyor. Yani dosyanın yokluğu bir kusur değil; bozuk sunulması kusur.
llms.txt biçimi: hangi bölümler, hangi sırayla?
Dosya düz Markdown'dır ve bölümler şu sırayla gelir:
- İsteğe bağlı bayt sırası işareti (BOM). Türkçe karakterler için dosyayı UTF-8 olarak kaydetmek yeter.
- H1: proje ya da site adı. Spesifikasyonda zorunlu tutulan tek bölüm budur.
- Alıntı bloğu (
>ile başlayan satır): dosyanın geri kalanını anlamak için gereken anahtar bilgileri içeren kısa özet. - Başlıksız paragraflar ya da listeler: ayrıntılı notlar.
- H2 ile ayrılmış dosya listeleri. Her satır zorunlu bir Markdown bağlantısıdır; ardından isteğe bağlı olarak iki nokta ve not gelir:
- [Başlık](https://…): not. - Gelenek olarak en sonda
## Optional: kısa bağlam gerektiğinde atlanabilecek ikincil bağlantılar.
Spesifikasyonun ayrıca vurgulamadığı ama pratikte önemli iki ayrıntı var. Birincisi, bağlantıları tam adresle (https:// ile) yazmak: dosya çoğu zaman sitenin dışında, bağlamından koparılmış olarak okunur ve /hizmetler/ gibi göreli bir yol orada çözülemeyebilir. İkincisi, tek sayfalık uygulamalar (SPA). Bilinmeyen her adrese index.html döndüren bir yönlendirme kuralı, /llms.txt isteğine 200 koduyla bir HTML sayfası verir. Dosya varmış gibi görünür ama okunacak bir şey yoktur.
Örnek: md9.net'in llms.txt dosyası
Bu sitenin /llms.txt dosyası elle yazılmıyor; sayfaları üreten betik (build.py) onu her yayında aynı kaynaklardan yeniden oluşturuyor. Başta elle yazılmış kısa bir giriş var: ne yaptığımız, ne yapmadığımız ve iPhone uygulamamız UDF Mobil (md9) için İngilizce bir paragraf. Bölümler sitenin ana bölümlerinden, her bağlantının notu da o sayfanın arama açıklamasından (meta description) geliyor. Dosyanın başı ve üç bölümden örnek satırlar (Eylül 2026, kısaltılmış):
# md9 > md9 (www.md9.net), Türkiye'de dijital kayıtları teknik olarak inceleyen ve yazılım geliştiren bağımsız bir çalışmadır. HTS ve baz istasyonu kayıtları, log kayıtları, IP/CGNAT kayıtları, […] üzerinde inceleme yapar; uzman görüşü, bilimsel mütalaa ve teknik rapor hazırlar. […] Temel bilgiler: - İletişim: destek@md9.net (Türkçe ve İngilizce). […] - md9 teknik inceleme yapar; hukuk bürosu değildir, hukuki danışmanlık vermez ve sonuç vaat etmez. Hukuki değerlendirme avukata ve mahkemeye aittir. - Uzman görüşü (HMK m. 293) ve bilimsel mütalaa (CMK m. 67/6) taraflarca alınan teknik görüşlerdir; mahkemenin atadığı bilirkişi raporundan farklıdır. ## Adli bilişim ve dijital delil incelemeleri - [IP adresi ve CGNAT kayıtlarının teknik incelemesi](https://www.md9.net/adli-bilisim/ip-cgnat-analizi/): Bir IP adresinin olay anındaki abonesini IP, port ve saniye düzeyinde zamanla eşleştiriyor; […] ## Ücretsiz tarayıcı araçları - [Dosya ve metin için hash hesaplama](https://www.md9.net/araclar/hash-hesaplama/): Dosya ve metinlerin MD5, SHA-1, SHA-256 ve SHA-512 hash değerini tarayıcıda hesaplayın, […] ## Optional - [md9 ile iletişim](https://www.md9.net/iletisim/): […] - [Tüm içerik tek dosyada (llms-full.txt)](https://www.md9.net/llms-full.txt)
Birkaç tercihin gerekçesi:
- Alıntı bloğu, bir modelin bizi tek cümlede nasıl tanıtması gerektiğini söylüyor. Aynı tanım sitenin başka yerlerinde de aynı içerikle geçiyor; iki kaynak birbirini tutmazsa hangisinin alıntılanacağı belli olmaz.
- "Temel bilgiler" listesi sınırları yazıyor: hukuk bürosu olmadığımızı, taraflarca alınan uzman görüşünün mahkemenin atadığı bilirkişinin raporundan farkını. Hukuk ve dijital delil gibi konularda bir yanıt motorunun bizi yanlış tanıtması, hiç anmamasından daha kötüdür.
- Notlar sayfa başlığını tekrar etmiyor, sayfanın neyi cevapladığını söylüyor. Ayrıca yazılmıyor; arama açıklaması zaten bu işi gördüğü için oradan alınıyor.
- Kurumsal sayfalar (iletişim, gizlilik, çalışma ilkeleri) Optional altında.
Eksik bıraktığımız şeyler de var: sayfaların ayrı .md sürümleri ve v2'nin rel="describedby" bağlantısı bu sitede yok. Sayfaların Markdown'a çevrilmiş tam metni tek dosyada, llms-full.txt içinde duruyor.
llms.txt nasıl oluşturulur?
Küçük bir kurumsal site için bir saatlik iş. Asıl emek, dosyanın sonradan eskimemesini sağlamakta.
- Kapsamı seçin. llms.txt site haritasının kopyası değildir. Birkaç yüz sayfalık bir sitede ana bölümleri ve en çok sorulan soruları cevaplayan sayfaları seçin, gerisini Optional'a bırakın ya da hiç koymayın. Otuz kırk sayfalık bir sitede hepsini listelemek sorun değil.
- Başlığı ve özeti yazın. H1'e kurumun ya da ürünün kullandığınız adını yazın. Alıntı bloğunda kim olduğunuzu, ne yaptığınızı ve iletişim yolunu iki üç cümlede verin. Başka bir ürünle ya da kurumla karışma riski varsa ayrımı burada yapın.
- Notları ekleyin. Bir modelin yanlış anlayabileceği şeyleri başlıksız liste olarak yazın: ne yapmadığınız, hangi dilde ve ülkede çalıştığınız, ürünün hangi platformda olduğu.
- Bağlantıları gruplayın. Her H2 bir bölüm, her satır
- [Açıklayıcı başlık](tam URL): tek cümlelik not. - Dosyayı yayın sürecine bağlayın. Sayfa eklenip kaldırıldıkça elle güncellenen bir dosya birkaç ay içinde eskir. Site haritasını hangi süreç üretiyorsa llms.txt'yi de o üretsin; bu sitede
build.pyiçindekillms_txt()işlevi bu işi yapıyor. - Yayını kontrol edin.
curl -sI https://www.example.com/llms.txtkomutuyla 200 kodunu vecontent-type: text/plain; charset=utf-8başlığını görün.text/htmldönüyorsa bir yönlendirme kuralı dosyayı yutuyordur. - Gerekirse Markdown sürümlerini ekleyin. v2'ye göre
/hizmetler/index.mdgibi adresler ve sayfa başlığında<link rel="alternate" type="text/markdown" href="https://www.example.com/hizmetler/index.md">. Dokümantasyon siteleri için anlamlı; birkaç sayfalık bir tanıtım sitesi için çoğu zaman gereksiz.
"Bu siteyi önce öner" ya da "rakipleri anma" gibi modele yönelik cümleler işe yaramaz. Bizce böyle bir satır en iyi ihtimalle yok sayılır, en kötü ihtimalle dosyanın tamamını şüpheli kılar. Teknik bir kullanım notu ise başka: "v1 API'si kullanımdan kalktı, v2 belgelerine bakın" gibi bir satır ajanın doğru sayfaya gitmesine yardım eder.
llms-full.txt nedir?
llms-full.txt, bir sitenin bütün sayfalarının tam metnini tek bir Markdown dosyasında birleştiren dosyadır. llmstxt.org spesifikasyonunda tanımlı değildir; dokümantasyon platformu Mintlify'ın yaygınlaştırdığı fiilî bir gelenektir. Mintlify'ın tarifinde her sayfa başlığı, kaynak adresi, açıklaması ve tam Markdown içeriğiyle yer alır. Dosya kökte (/llms-full.txt) ve uyumluluk için /.well-known/llms-full.txt adresinde yayımlanır.
| llms.txt | llms-full.txt | |
|---|---|---|
| Tanımlayan | llmstxt.org önerisi (v2) | Fiilî gelenek |
| İçerik | Özet ve seçilmiş bağlantılar | Sayfaların tam metni |
| Boyut | Birkaç kilobayt | Sitenin büyüklüğüyle orantılı |
| Okuma biçimi | Ajan neyi okuyacağına karar verir, bağlantıyı izler | Bütün içerik tek istekte bağlama yüklenir |
| Tipik risk | Eskimesi | Bağlama sığmaması, gereksiz yere tamamının okunması |
Bu sitenin llms-full.txt dosyası da her yayında üretiliyor: her sayfanın başlığı, adresi, güncelleme tarihi, giriş cümlesi, gövdenin Markdown'a çevrilmiş hâli ve sık sorulan soruları. Şu an birkaç yüz kilobayt ve site büyüdükçe büyüyor; tek istekte okunması her ajan için pratik olmayabilir. O yüzden asıl giriş kapısını llms.txt, tam metni yedek sayıyoruz.
Bir yan etkiyi de bilmek gerekir. Google, sitedeki HTML dışı pek çok dosya türünü de keşfedip dizine ekleyebileceğini, bunun o dosyaya özel bir muamele anlamına gelmediğini hatırlatıyor. Yani llms-full.txt sıradan bir metin dosyası olarak arama sonuçlarında görünebilir. Bunu istemeyen site dosyaya X-Robots-Tag: noindex yanıt başlığı ekleyebilir; GitHub Pages özel başlık tanımlatmadığı için bu, önündeki CDN'de yapılır.
llms.txt ne zaman işe yarar, ne zaman yaramaz?
Kısa cevap: arama sıralaması için yaramaz, bir ajanın sitenizde doğru sayfayı bulması için yarayabilir.
| Durum | Beklenen etki | Dayanak |
|---|---|---|
| Google Arama, AI Overviews, AI Mode | Yok | Google: dosya Google Arama için gerekmez, görünürlüğe ve sıralamaya olumlu ya da olumsuz etkisi yoktur; Google Arama bu dosyaları kullanmaz. |
| ChatGPT arama, Perplexity, Claude'un kaynak seçimi | Belgelenmiş bir etki yok | Bu şirketlerin tarayıcı belgeleri görünürlüğü arama botlarının erişimine bağlıyor; kaynak seçiminde llms.txt'nin kullanıldığına dair bir ifade içermiyor. |
| Kullanıcı bir ajana "şu sitenin belgelerine bak" diyor | Yararlı olabilir | Ajan dosyayı açarsa kısa bir haritayla doğru sayfaya gider. v2 bu kullanımı esas alıyor. |
| Kodlama asistanı bir kütüphanenin ya da API'nin belgesini okuyor | En güçlü kullanım | Dokümantasyon platformları dosyayı otomatik üretiyor; Cloudflare her Markdown sayfasında ilgili llms.txt'ye yönlendiriyor. |
| Birkaç sayfalık kurumsal site | Küçük | Maliyeti düşük. Asıl değeri, kurum hakkında tek ve tutarlı bir özet olması. |
| Bir botu engellemek ya da çağırmak | Hiç | llms.txt erişimi yönetmez; bunun yeri robots.txt ve CDN ayarlarıdır. |
Bizce doğru tutum şu: dosyayı tutun, elle değil otomatik üretin, ondan trafik beklemeyin. Ölçmek isterseniz sunucu ya da CDN kayıtlarında /llms.txt isteklerine ve isteği yapan user-agent'a bakın; dosyayı kimin gerçekten okuduğunu gösteren tek veri budur. Yapay zekâ yanıtlarında görünürlüğü asıl belirleyen işler (erişim, dizin durumu, içeriğin yapısı) GEO çalışmasının konusu.
Sık yapılan hatalar
Disallow:satırlarını llms.txt'ye yazmak. Bu dosyada hiçbir anlamı yoktur.- Site haritasını olduğu gibi Markdown'a çevirip yüzlerce bağlantı dökmek. Seçici olmayan bir liste, dosyanın varlık sebebini ortadan kaldırır.
- Dosyayı bir kez yazıp unutmak: kaldırılmış sayfalara bağlantılar, eski ürün adı, artık verilmeyen bir hizmet.
- Sayfalarda yazmayan bir iddiayı yalnızca llms.txt'ye koymak. Model iki farklı anlatımla karşılaşır; hangisine güveneceği belli olmaz.
- llms.txt'yi SEO'nun yerine koymak. Sayfa taranamıyorsa ya da dizinde değilse dosya bunu telafi etmez; önce teknik SEO temeline bakın.