Her geçen gün daha fazla insan ChatGPT, Perplexity ve diğer yapay zeka araçlarını içerik aramak ve özetlemek için kullanıyor. Daha önceki SEO’dan SAO’ya başlıklı yazılarımdan birinde tartışıldığı gibi, web sitelerine ve bloglara yapılan ziyaretlerin çoğunluğunun yapay zeka aracıları tarafından yapılacağı zaman meselesi.
İçeriğinizi dil modelleri için erişilebilir hale getirmek söz konusu olduğunda, karmaşık tarama çözümlerinden daha basit bir yol var - özellikle Astro ile oluşturulmuş statik olarak oluşturulmuş siteler için. Bu yazıda, blog içeriğinizi LLM’lere temiz, yapılandırılmış bir biçimde sunan bir llms.txt dosyası oluşturma konusunda size yol göstereceğim.
llms.txt nedir?
Bir llms.txt dosyası kavramsal olarak robots.txt’ye benzer, ancak özellikle dil modelleri için tasarlanmıştır. LLM’lerin ayrıştırması ve anlaması kolay, içeriğinizin yapılandırılmış, metin tabanlı bir gösterimini sağlar.
LLM’ler bağlantılar aracılığıyla birden çok sayfada gezinmede pek iyi değildir. Bunun yerine, LLM’ler içeriği tek bir sayfadan kazımada ve belleğine kaydetmede çok iyidir. llms.txt’nin paha biçilmez hale geldiği yer burasıdır.
Crawl4AI Gibi Tarama Araçları Neden Aşırıya Kaçabilir?
Crawl4AI gibi araçlar, LLM’ler için güçlü web sitesi tarama yetenekleri sunar. Dinamik siteler için LLM’ler.txt oluşturmak için ideal olsalar da, statik siteler için aşırıya kaçabilirler.
Özellikle içerik genellikle ön sayfası olan markdown dosyaları olarak depolandığı Astro siteleri için, doğrudan sunulmaya hazır mükemmel şekilde yapılandırılmış içeriğiniz zaten var.
Astro’da bir llms.txt Uç Noktası Uygulama
Astro siteniz için LLMs.txt dosyalarını nasıl oluşturabileceğiniz aşağıda açıklanmıştır.
src/pages/llms.txt.ts (veya Astro yapılandırmanıza bağlı olarak src/pages/api/llms.txt.ts) konumunda bir dosya oluşturun ve aşağıdaki kodu ekleyin:
import { getCollection } from "astro:content";
import type { APIRoute } from "astro";
export const GET: APIRoute = async () => {
try {
// Fetch all content collections
const [blogs, features, transcriptions, alternatives, help] = await Promise.all([
getCollection("blog"),
getCollection("features"),
getCollection("transcription"),
getCollection("alternatives"),
getCollection("help")
]);
// Sort blogs by date (newest first)
const sortedBlogs = blogs
.filter(post => !post.data.draft)
.sort((a, b) => new Date(b.data.date).getTime() - new Date(a.data.date).getTime());
// Filter non-draft content
const activeFeatures = features.filter(item => !item.data.draft);
const activeTranscriptions = transcriptions.filter(item => !item.data.draft);
const activeAlternatives = alternatives.filter(item => !item.data.draft);
const content = `# Web Sitenizin Adı - Eksiksiz İçerik Kılavuzu
Bu belge, web sitenizdeki tüm içeriği içerir.
Web sitesi: https://yourwebsite.com
Son Güncelleme: ${new Date().toISOString().split('T')[0]}
## Blog İçeriği
${sortedBlogs
.map((post) => `#
## ${post.data.title}
URL: https://yourwebsite.com/blog/${post.data.slug || post.id}
Yayınlandı: ${post.data.date}
Kategori: ${post.data.category}
Yazar: ${post.data.author}
Açıklama: ${post.data.description}
${post.body}
---`).join('\n\n')}
## Ek İçerik Bölümleri
${activeFeatures
.map((feature) => `#
## ${feature.data.title}
URL: https://yourwebsite.com/${feature.data.slug}
Kategori: ${feature.data.category}
${feature.data.description}
${feature.body}
---`).join('\n\n')}
---
Bu içerik, yapay zeka asistanlarının web sitenizin tekliflerini anlamalarına ve doğru bilgi sağlamasına yardımcı olmak için sağlanmıştır.`;
return new Response(content, {
headers: {
"Content-Type": "text/plain; charset=utf-8",
"Cache-Control": "public, max-age=3600" // 1 saat önbelleğe alın
},
});
} catch (error) {
console.error('llms.txt oluşturulurken hata:', error);
return new Response('llms.txt oluşturulurken hata', { status: 500 });
}
};
Bu Kod Nasıl Çalışır?
Bu kod, aşağıdakileri yapan bir API uç noktası oluşturur:
getCollection()kullanarak içerik koleksiyonlarınızdaki tüm gönderileri getirir- Yalnızca yayınlanan makaleleri dahil etmek için taslak içeriği filtreler
- En son içeriği ilk olarak göstermek için içeriği tarihe göre sıralar
- Site başlığınızla başlayan yapılandırılmış bir metin dosyası oluşturur
- Her gönderi için şunları içerir:
- Gönderi başlığı bir başlık olarak
- Gönderiye doğrudan bir bağlantı
- Meta veriler (tarih, kategori, yazar, açıklama)
- Gönderinin tam içeriği
- Uygun hata günlüğü ile hataları zarifçe ele alır
- Performans için önbelleğe alma dahil uygun başlıkları ayarlar
İçerik Yapınıza Göre Özelleştirme
Koleksiyon Adlarını Ayarlama
Yukarıdaki örnekte birden çok koleksiyon kullanılmaktadır. Yalnızca bir blog koleksiyonunuz varsa, basitleştirin:
export const GET: APIRoute = async () => {
const posts = await getCollection("blog"); // Koleksiyon adınıza göre ayarlayın
const publishedPosts = posts
.filter(post => !post.data.draft)
.sort((a, b) => new Date(b.data.date).getTime() - new Date(a.data.date).getTime());
const content = `# Blog Adınız
${publishedPosts
.map((post) => `# ${post.data.title}
https://yourwebsite.com/blog/${post.data.slug || post.id}
${post.data.description}
${post.body}
`).join('\n\n')}`;
return new Response(content, {
headers: { "Content-Type": "text/plain; charset=utf-8" },
});
};
İçerik Filtreleme Ekleme
Belirli kategorileri hariç tutmak veya yalnızca öne çıkan içeriği dahil etmek isteyebilirsiniz:
// Yalnızca öne çıkan gönderileri dahil et
const featuredPosts = posts.filter(post => post.data.featured && !post.data.draft);
// Belirli kategorileri hariç tut
const filteredPosts = posts.filter(post =>
!post.data.draft && !['internal', 'private'].includes(post.data.category)
);
llms.txt Kullanmanın Faydaları
1. Geliştirilmiş Yapay Zeka Keşfedilebilirliği
Yapay zeka araçları, birden çok sayfayı taramadan tüm içerik kitaplığınızı hızlı bir şekilde anlayabilir.
2. Yapay Zeka Yanıtları için Daha İyi Bağlam
Kullanıcılar içeriğinizle ilgili sorular sorduğunda, yapay zeka modelleri kapsamlı, yapılandırılmış bilgilere erişebilir.
3. Yapay Zeka Çağı için SEO
Arama yapay zeka destekli sonuçlara doğru evrimleşirken, yapay zeka tüketimi için yapılandırılmış içeriğe sahip olmak çok önemli hale geliyor.
4. Performans Faydaları
Statik oluşturma, llms.txt dosyanızın derleme sırasında oluşturulduğu ve hızlı yanıt süreleri sağladığı anlamına gelir.
llms.txt Uygulamanızı Test Etme
Uç noktayı uyguladıktan sonra, şunları yaparak test edin:
- Uç noktayı doğrudan ziyaret edin:
https://yoursite.com/llms.txt - Tüm gönderilerin dahil olduğundan emin olmak için içerik yapısını kontrol edin
- Biçimlendirmenin temiz ve okunaklı olduğunu doğrulayın
- llms.txt içeriğinizi analiz etmelerini isteyerek Yapay Zeka araçlarıyla test edin
llms.txt için En İyi Uygulamalar
İçeriği Güncel Tutun
Yeni içerik yayınladığınızda sitenizi yeniden oluşturarak llms.txt’nizi düzenli olarak güncelleyin.
İlgili Meta Verileri Ekleyin
Yapay zekanın bağlamı anlamasına yardımcı olmak için yayın tarihlerini, kategorileri ve açıklamaları ekleyin.
İçeriği Açıkça Yapılandırın
Bölümler arasında tutarlı başlık biçimleri ve net ayırıcılar kullanın.
Dosya Boyutunu İzleyin
Yüzlerce gönderisi olan siteler için, dosyayı yönetilebilir tutmak için içeriği sayfalandırmayı veya filtrelemeyi düşünün.
Sonuç
Astro web siteniz için bir llms.txt dosyası oluşturmak, içeriğinizi yapay zeka dil modelleri için erişilebilir hale getirmenin basit bir yoludur. Bu yaklaşım, sitenizin içeriğinin yapılandırılmış, kapsamlı bir görünümünü oluşturmak için Astro’nun içerik koleksiyonlarından yararlanır.
Yapay zeka içerik keşfi için giderek daha önemli hale geldikçe, llms.txt uygulamak web sitenizi yapay zeka destekli arama ortamında daha iyi görünürlük için konumlandırır. Uygulama basittir, performanslıdır ve Astro derleme sürecinizin bir parçası olarak bakımı kolaydır.
İçeriğinizin yapay zeka destekli arama ve keşfin geleceğine hazır olduğundan emin olmak için bugün llms.txt’yi uygulamaya başlayın.
Sıkça Sorulan Sorular
llms.txt ile sitemap.xml arasındaki fark nedir?
sitemap.xml, arama motoru tarayıcıları için sayfalarınızı listelerken, llms.txt içeriği, dil modellerinin anlaması ve işlemesi için optimize edilmiş bir biçimde sağlar.
llms.txt dosyamı ne sıklıkla güncellemeliyim?
llms.txt dosyanız, Astro sitenizi yeniden oluşturduğunuzda otomatik olarak güncellenir, bu nedenle içerik yayınlama programınızla güncel kalır.
llms.txt’ye resimler ve medya ekleyebilir miyim?
llms.txt metin tabanlıdır, bu nedenle dosyaların kendileri yerine resimlerin ve medyanın açıklamalarını ekleyin. Yapay zekanın etkili bir şekilde işleyebileceği metinsel içeriğe odaklanın.
llms.txt SEO’mu etkiler mi?
Hayır, llms.txt geleneksel SEO’yu olumsuz etkilemez. İçeriği yapay zeka araçları için erişilebilir hale getirerek mevcut SEO stratejinizi tamamlamak üzere tasarlanmıştır.
llms.txt dosyam ne kadar büyük olmalı?
Kesin bir sınır yoktur, ancak makul tutun. Yüzlerce gönderisi olan siteler için, yalnızca en önemli veya son içeriğinizi dahil etmek için filtrelemeyi düşünün.