llms.txt
Sitenin LLM'ler ve ajanlar için Markdown özeti
Bir sitenin kökünde (ya da bir alt yolda) duran, LLM'lere ve ajanlara sitenin ne olduğunu ve en önemli sayfalarının nerede olduğunu Markdown ile anlatan önerilmiş bir dosya: /llms.txt.
llms.txt, Jeremy Howard'ın Eylül 2024'te llmstxt.org'da yayımladığı
bir öneri (resmî bir standart değil). Fikir basit: HTML sayfaları
insanlar için yapılır; menü, reklam ve JavaScript arasında asıl bilgiyi
temiz metne çevirmek zor, bağlam penceresi de sınırlı. O yüzden siteye
/llms.txt adında, Markdown ile yazılmış, kısa ve elle seçilmiş bir
"içindekiler" konur.
Spesifikasyona göre dosya şu sırayı izler: tek zorunlu bölüm olan
bir H1 (site ya da proje adı); kısa bir özet içeren bir
blockquote; başlık içermeyen serbest açıklama paragrafları; ve
H2 başlıklarıyla ayrılmış "dosya listeleri". Her liste maddesi bir
[ad](url) bağlantısı ve isteğe bağlı olarak : sonrasında kısa bir
not içerir. ## Optional başlığı geleneksel olarak "bağlam kısaysa
atlanabilir" bağlantılar için kullanılır.
Ağustos 2026'da yayımlanan v2 üç şeyi netleştirdi: dosya bir alt
yolda da durabilir (/docs/llms.txt yalnızca /docs/ altını kapsar,
en spesifik dosya geçerlidir); sayfaların temiz Markdown sürümü
sayfa.html.md ya da sayfa.md adresinde sunulabilir; ve bu dosyalar
rel="alternate" type="text/markdown" ile rel="describedby" bağlantı
ilişkileriyle (HTML <link> ya da HTTP Link: başlığı) bulunabilir
hâle getirilir. Sık görülen llms-full.txt (tüm içeriğin tek dosyada
birleştirilmesi) ise spesifikasyonun parçası değil; Mintlify gibi
dokümantasyon platformlarının yaydığı bir gelenek.
Önemli uyarı: llms.txt arama sıralaması ya da AI cevaplarında alıntı garantisi vermez. Google, AI Overviews ve AI Mode için "yeni makine okunur dosyalar, AI metin dosyaları ya da işaretlemeler" gerekmediğini açıkça yazıyor. Dosyanın bugün en net faydası, dokümantasyonunu okuyan kodlama ajanları ve kullanıcı adına sayfa açan asistanlar için.
Büyük bir kütüphaneye ilk kez gelen bir araştırmacıyı düşün. robots.txt
kapıdaki görevlidir: "şu bölümlere girebilirsin, şuraya giremezsin."
sitemap.xml kütüphanedeki her kitabın tam envanteridir; eksiksiz ama
bir saatte okunacak gibi değil. llms.txt ise danışma masasındaki
kütüphanecinin elinize tutuşturduğu tek sayfalık nottur: "Burası şunun
kütüphanesi; başlamak için şu üç kitap, ayrıntı için şu raf, vaktin
kalırsa şunlar."
Not kimseyi içeri sokmaz, kitapları da daha önemli yapmaz; sadece acelesi olan okuyucunun doğru rafı daha hızlı bulmasını sağlar.
Bir yazılım kütüphanesinin dokümantasyon sitesi /llms.txt yayımlıyor:
H1'de kütüphane adı, blockquote'ta tek cümlelik tanım, ardından
"Önemli notlar" paragrafı ("v3'te API değişti, eski örnekleri
kullanma"), sonra ## Docs, ## Examples ve ## Optional
başlıklarıyla bağlantı listeleri. Her bağlantı sayfanın .md
sürümüne gidiyor.
Bir geliştirici kodlama ajanına "bu kütüphaneyle bir CRUD uygulaması
yaz" dediğinde ajan önce /llms.txt'i okuyup ilgili iki .md
sayfasını açıyor; menülerle dolu HTML'i token token parse etmek
yerine birkaç bin token'lık temiz Markdown ile çalışıyor.
Bu sitenin kendisi de (AI Atlas) terimlerinden ve rehberlerinden
dinamik olarak üretilen bir /llms.txt sunuyor.
# Örnek Proje
> Örnek Proje, X'i Y için yapan açık kaynaklı bir Python kütüphanesidir.
Önemli notlar:
- v3 ile API değişti; v2 örnekleri çalışmaz.
- Tüm bağlantılar sayfaların Markdown sürümlerine gider.
## Docs
- [Hızlı başlangıç](https://example.com/docs/quickstart.md): Kurulum ve ilk örnek
- [API referansı](https://example.com/docs/api.md): Tüm fonksiyonlar ve parametreler
## Optional
- [Değişiklik günlüğü](https://example.com/changelog.md)# Dosya var mı, text/plain ya da text/markdown dönüyor mu?
curl -sI https://example.com/llms.txt | grep -i -E "^(HTTP|content-type)"
# v2: sayfa, Markdown sürümünü ve kapsayan llms.txt'i Link başlığıyla duyuruyor mu?
curl -sI https://example.com/docs/page.html | grep -i "^link:"
# Link: </docs/page.html.md>; rel="alternate"; type="text/markdown", </docs/llms.txt>; rel="describedby"
# Hangi bot dosyayı gerçekten istiyor? (nginx erişim logu)
grep "GET /llms" /var/log/nginx/access.log | awk -F'"' '{print $6}' | sort | uniq -c | sort -rn- Dokümantasyon, API referansı ya da geliştirici ürünü yayımlıyorsan; kodlama ajanları bu dosyaları gerçekten okuyor
- Sitende ajanların kullanıcı adına bilgi aradığı ürün, fiyat, politika gibi net sayfalar varsa
- Sayfalarının temiz Markdown sürümünü zaten üretebiliyorsan (statik site, docs platformu, CMS eklentisi)
- Ucuz ve geri alınabilir bir deney olarak; birkaç saatlik iş, bakım maliyeti düşük
- Google sıralaması ya da AI Overviews görünürlüğü için tek çare diye; Google bunun gerekmediğini söylüyor
- Klasik SEO temelleri (taranabilirlik, indeks, iyi içerik) eksikken; önce onlar
- Dosyayı elle güncel tutamayacaksan ve otomatik üretemiyorsan; eskimiş bir llms.txt hiç olmamasından kötü olabilir
llms.txt'i bir sıralama faktörü sanmak
Google'ın AI özellikleri dokümanı ek dosya ya da işaretleme gerekmediğini yazıyor; John Mueller Haziran 2025'te 'hiçbir AI sistemi şu an llms.txt kullanmıyor' dedi. Hiçbir büyük cevap motoru llms.txt'i alıntı sinyali olarak kullandığını açıklamadı.
robots.txt ile karıştırmak
llms.txt erişim izni vermez ya da engellemez. Botları yönetmek robots.txt'in işi; llms.txt yalnızca içerik haritasıdır.
Tüm siteyi tek dosyaya boca etmek
Spesifikasyon kısa, seçilmiş bir özet istiyor. Binlerce bağlantı listesi sitemap'in işi; ayrıntıyı bağlantılı .md sayfalarına bırak.
llms-full.txt'i standart sanmak
llms-full.txt llmstxt.org spesifikasyonunda yok; docs platformlarının yaydığı bir gelenek. Büyük dokümantasyonda dosya on megabaytları bulabilir ve hiçbir bağlam penceresine sığmaz.
Ölçmeden karar vermek
Sunucu loglarında /llms.txt ve .md isteklerini hangi user-agent'ların yaptığına bak. Kimse istemiyorsa bu bir veridir; isteyenler çoğunlukla kodlama ajanları ve araçlar olacaktır.