feat(geo): llms.txt, RSS, IndexNow, Article yazar/görsel, bölüm sayfasına veri özeti, vakıf bursu yazısı
All checks were successful
Deploy / deploy (push) Successful in 6m16s
All checks were successful
Deploy / deploy (push) Successful in 6m16s
GEO araştırması (docs/arastirma/2026-09-24-geo-seo) Dalga 1-2 uygulaması: - /llms.txt ve /feed.xml route'ları (getAllRehberler'den otomatik), head'de RSS linki - Article JSON-LD: author, image, mainEntityOfPage, publisher logo; görünür 'Yazan' satırı - robots: ClaudeBot ayrı grupta Crawl-delay 1 - scripts/indexnow.ts (pnpm indexnow) + public anahtar dosyası - bölüm sayfası açılışı veriden üretilen özgü cümleler (il/program/tür/kontenjan, taban aralığı, yıllık yön) - ana sayfa fiyat iddiasına kaynak; iki yazıda 23.000 -> 21.000+; beş yazıya 'Kısa cevap' açılışı - yeni yazı: vakif-universitesi-bursu-kesilir-mi (ÖSYM 2026 kılavuzu + YÖK ücret esasları) - YAYIN-KUYRUGU: IndexNow adımı ve aylık AI görünürlük rutini Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
62
src/app/llms.txt/route.ts
Normal file
62
src/app/llms.txt/route.ts
Normal file
@@ -0,0 +1,62 @@
|
||||
import { getAllRehberler } from "@/lib/rehber";
|
||||
import { KATALOG_VERI_TARIHI, SITE_URL } from "@/lib/seo";
|
||||
import { SON_YIL, VERI_ARALIGI } from "@/lib/veri-yillari";
|
||||
import { PROGRAM_SAYISI_METNI } from "@/lib/veri-kapsami";
|
||||
import { trTarih } from "@/lib/tarih";
|
||||
|
||||
/**
|
||||
* llmstxt.org biçiminde site özeti: H1, tek paragraf özet, H2 altında
|
||||
* bağlantı listeleri. Yalnızca sitede zaten görünen bilgiyi taşır; içerik
|
||||
* gövdesi (llms-full.txt) bilinçli olarak üretilmez — etkisi kanıtsız,
|
||||
* toplu kopyalamayı kolaylaştırır (docs/arastirma/2026-09-24-geo-seo).
|
||||
*
|
||||
* Rehber listesi getAllRehberler()'den gelir; sitemap ile aynı kaynak,
|
||||
* elle bakım yok. Cache Components altında istek verisi okunmadığı için
|
||||
* build'de prerender edilir.
|
||||
*/
|
||||
export async function GET() {
|
||||
const yazilar = getAllRehberler();
|
||||
const rehberSatirlari = yazilar
|
||||
.map(
|
||||
(y) =>
|
||||
`- [${y.baslik}](${SITE_URL}/rehber/${y.slug}): ${y.aciklama}`,
|
||||
)
|
||||
.join("\n");
|
||||
|
||||
const metin = `# KolayTercih
|
||||
|
||||
> Türkiye'de YKS (üniversite giriş sınavı) tercih danışmanlığı: YÖK Atlas'ın
|
||||
> resmî yerleştirme verisine dayanan, yapay zekâ destekli 24 tercihlik dengeli
|
||||
> liste. Ücretsiz katalog: bölüm, üniversite ve il sayfalarında ${VERI_ARALIGI}
|
||||
> taban sıralamaları.
|
||||
|
||||
Veri kaynağı: YÖK Atlas ${SON_YIL} yerleştirme sonuçları, ${PROGRAM_SAYISI_METNI}
|
||||
program. Katalog en son ${trTarih(KATALOG_VERI_TARIHI)} tarihinde güncellendi.
|
||||
KolayTercih, ÖSYM ya da YÖK ile bağlantılı değildir; yerleşme garantisi vermez.
|
||||
Yapay zekâ önerileri yalnızca kullanıcının sıralamasıyla açılan gerçek programlar
|
||||
arasından seçilir.
|
||||
|
||||
## Ana bölümler
|
||||
|
||||
- [Bölümler](${SITE_URL}/bolumler): bölüm bazında taban puanı ve sıralama tabloları
|
||||
- [Üniversiteler](${SITE_URL}/universiteler): il bazlı üniversite kataloğu
|
||||
- [Üniversite sıralaması](${SITE_URL}/universite-siralamasi): URAP akademik başarı sıralaması
|
||||
- [Tercih Rehberi](${SITE_URL}/rehber): tercih süreciyle ilgili ${yazilar.length} rehber yazısı
|
||||
- [Nasıl çalışır](${SITE_URL}/meraklisina): sihirbaz ve liste mantığının anlatımı
|
||||
- [Paket](${SITE_URL}/paket): ücretli yapay zekâ tercih listesi hizmeti
|
||||
|
||||
## Rehber yazıları
|
||||
|
||||
${rehberSatirlari}
|
||||
|
||||
## Optional
|
||||
|
||||
- [Gizlilik](${SITE_URL}/gizlilik)
|
||||
- [Kullanım koşulları](${SITE_URL}/kosullar)
|
||||
- [İletişim](${SITE_URL}/iletisim)
|
||||
`;
|
||||
|
||||
return new Response(metin, {
|
||||
headers: { "Content-Type": "text/plain; charset=utf-8" },
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user