diff --git a/content/rehber/ais-tercih-nasil-yapilir-onaylama.md b/content/rehber/ais-tercih-nasil-yapilir-onaylama.md index 7e08129..fb532ed 100644 --- a/content/rehber/ais-tercih-nasil-yapilir-onaylama.md +++ b/content/rehber/ais-tercih-nasil-yapilir-onaylama.md @@ -4,6 +4,8 @@ aciklama: ÖSYM AİS tercih ekranı adım adım — kod girme, sıralama, "Terci tarih: 2026-08-05 --- +Kısa cevap: Tercihler yalnızca **ais.osym.gov.tr** ve ÖSYM Aday İşlemleri uygulamasından, T.C. kimlik numarası ve aday şifresiyle girilir; 2026'da pencere **29 Temmuz - 10 Ağustos 23.59**. Program kodlarını tek tek ekleyip satırları *istek* sırana göre dizersin, sonra **"Tercihleri Bildir"** butonuna basıp ekranda **"Tercihleriniz ÖSYM'ye bildirilmiştir"** uyarısını görmen şarttır; bu uyarı olmadan kaydedilen liste geçersizdir ve her değişiklikten sonra bildirme adımı yeniden yapılır. + Listeni kurdun; şimdi işin resmî kısmı var: tercihleri ÖSYM'nin sistemine girmek ve **onaylamak**. Her yıl adayların bir kısmı listeyi özenle kurup son adımda takılıyor — tercihler girilir ama bildirilmez, kod yanlış yazılır, değişiklikten sonra yeniden onay unutulur. Bu yazı AİS ekranını adım adım anlatıyor ve göndermeden önceki son kontrol listesini veriyor. ## Nereden, ne zamana kadar? diff --git a/content/rehber/bolum-mu-universite-mi-sehir-mi.md b/content/rehber/bolum-mu-universite-mi-sehir-mi.md index 2db0417..fde6b90 100644 --- a/content/rehber/bolum-mu-universite-mi-sehir-mi.md +++ b/content/rehber/bolum-mu-universite-mi-sehir-mi.md @@ -4,6 +4,8 @@ aciklama: İyi üniversitede kötü bölüm mü, sıradan üniversitede istediğ tarih: 2026-08-03 --- +Kısa cevap: Sıra herkes için aynı değildir. Mesleğin **diploma kilidi** varsa (tıp, diş hekimliği, eczacılık, hukuk, hemşirelik, öğretmenlik) önce bölüm, sonra şehir, en son üniversite adı gelir. Diploma kilidi yoksa ve bölüm netse, üniversitenin *o bölümdeki* kadrosu ve akreditasyonu belirleyicidir; bölüm net değilse çift anadal ve yatay geçiş imkânı geniş üniversite öne geçer. Şehir bir tercih kriteri değil, en sondaki **eleyici filtredir**: karşılayamayacağın şehirdeki satırları listeden çıkarırsın. + Tercih döneminde herkesin bir cümlesi var: "Bölüm her şeydir", "Hayır, üniversite markası her şeydir", "Asıl şehir önemli". Üçü de eksik. Bu üç başlığın **hangi durumda hangisinin öne geçtiği** belli bir sıraya oturur ve bu sıra herkes için aynı değildir. ## Karar sırası diff --git a/content/rehber/bolumun-is-imkanini-nasil-arastirirsin.md b/content/rehber/bolumun-is-imkanini-nasil-arastirirsin.md index 7d057b1..ee2aa32 100644 --- a/content/rehber/bolumun-is-imkanini-nasil-arastirirsin.md +++ b/content/rehber/bolumun-is-imkanini-nasil-arastirirsin.md @@ -4,6 +4,8 @@ aciklama: Bu bölüm iş bulur mu sorusunun cevabı forumda değil. Bir bölüm tarih: 2026-07-28 --- +Kısa cevap: Bir bölümün iş imkânı forumdan değil, beş adımda kendin araştırdığın açık kaynaklardan öğrenilir: (1) mesleğin kapısı nasıl açılıyor — diploma yetiyor mu, üstüne sınav mı var, kapı serbest mi; (2) sınav varsa kaç kişi giriyor, kaç kadro açılıyor; (3) üniversitenin ders kataloğunda sekiz yarıyılın dersleri; (4) Türkiye genelinde o bölümün kaç üniversitede açık olduğu ve toplam kontenjanı; (5) en son iki-üç mezunla "ilk işini nasıl buldun" sorusu. Sıra önemlidir: önce mesleğin kapısı, en son insan hikâyeleri. + "Bu bölüm iş bulur mu?" tercih döneminin en çok sorulan, en kötü cevaplanan sorusu. Forumlarda gördüğün cevaplar birkaç kişinin kendi hikâyesidir; akrabaların söyledikleri on yıl öncesinin piyasasıdır. İyi haber şu: bu soruyu **kendin araştırabilirsin** ve gereken kaynakların hepsi açık. Bu yazı yöntemi veriyor — hangi bölüm olursa olsun işleyen bir yöntem. ## Beş adımlı araştırma diff --git a/content/rehber/devlet-mi-vakif-mi.md b/content/rehber/devlet-mi-vakif-mi.md index 693dcb4..8593c9c 100644 --- a/content/rehber/devlet-mi-vakif-mi.md +++ b/content/rehber/devlet-mi-vakif-mi.md @@ -4,6 +4,8 @@ aciklama: Aynı bölümün beş farklı fiyat etiketi var — burslu, indirimli, tarih: 2026-07-19 --- +Kısa cevap: Devlet-vakıf ayrımı tek başına karar kriteri değildir; asıl ölçü **bölümün kadrosu ve akreditasyonu, toplam maliyet (okul ücreti + şehir + barınma) ve tabanın söyledikleri**dir. Vakıf tablosunda *Burslu*, *%50 İndirimli*, *%25 İndirimli*, *Ücretli* ve *İngilizce* etiketleri ayrı programlardır: ayrı kontenjan, ayrı taban, ayrı fiyat. Burslu programı devlet alternatifleriyle aynı blokta, istek sırana göre yaz; indirimli ve ücretli programı yalnızca aileyle bütçeyi netleştirdikten sonra listeye al. + Tercih tablolarında aynı bölümün adı beş kez geçebilir: *Psikoloji (Burslu)*, *Psikoloji (%50 İndirimli)*, *Psikoloji (%25 İndirimli)*, *Psikoloji (Ücretli)*, *Psikoloji (İngilizce)*. Bunlar ayrı programlardır: ayrı kontenjan, ayrı taban, ayrı fiyat. Bu yazı tabloyu doğru okumayı ve devlet-vakıf kararını sağlıklı vermeyi anlatıyor. ## Varyantlar ne anlama geliyor? diff --git a/content/rehber/kac-siralama-ile-hangi-bolume-girebilirim.md b/content/rehber/kac-siralama-ile-hangi-bolume-girebilirim.md index 2638535..1d0d41e 100644 --- a/content/rehber/kac-siralama-ile-hangi-bolume-girebilirim.md +++ b/content/rehber/kac-siralama-ile-hangi-bolume-girebilirim.md @@ -50,7 +50,7 @@ Sözel ve Dil tarafında bantlar daha da geniştir; öğretmenlikler için ayrı 1. **Bandını bul, ama banda güvenme.** Bant sana "hangi bölümlere bakmaya değer" der; hangi üniversitede tutacağını söylemez. Aynı bölüm içinde tabanlar 10 kat oynayabilir. 2. **Bölüm sayfasının tablosuna in.** Örneğin [Psikoloji taban puanları](/bolum/psikoloji) sayfasında 380'e yakın programın tek tek tabanını görürsün — senin sıralaman listenin neresine düşüyorsa gerçekçi bölgen orasıdır. -3. **Kendi sıralamanla tara.** [Tercih robotuna](/tercih-robotu) sıralamanı gir; robot 23.000+ programın içinden senin bandına düşenleri hayal, dengeli ve güvenli (halk arasında "garanti tercih") dilimleriyle ayırıp önüne koyar. Tablo ezberlemekten hızlıdır. +3. **Kendi sıralamanla tara.** [Tercih robotuna](/tercih-robotu) sıralamanı gir; robot 21.000+ programın içinden senin bandına düşenleri hayal, dengeli ve güvenli (halk arasında "garanti tercih") dilimleriyle ayırıp önüne koyar. Tablo ezberlemekten hızlıdır. 4. **Henüz sıralaman yoksa tersinden git.** Seneye hazırlanıyorsan istediğin bölümden başlayıp kaçıncı olman gerektiğini [hedef sıralama nasıl belirlenir?](/rehber/hedef-siralama-nasil-belirlenir) yazısındaki yöntemle çıkar. ## Unutma diff --git a/content/rehber/tercih-robotu-nedir-yok-atlas-nasil-kullanilir.md b/content/rehber/tercih-robotu-nedir-yok-atlas-nasil-kullanilir.md index 9557119..95d3b10 100644 --- a/content/rehber/tercih-robotu-nedir-yok-atlas-nasil-kullanilir.md +++ b/content/rehber/tercih-robotu-nedir-yok-atlas-nasil-kullanilir.md @@ -8,7 +8,7 @@ Tercih döneminin en çok aranan araçlarından biri "tercih robotu". Ama iki fa ## Tercih robotu ne yapar? -Özünde her tercih robotu aynı işi yapar: **başarı sıralamanı** alır, geçmiş yılların taban sıralamalarıyla karşılaştırır ve 23.000'i aşkın programın içinden senin bandına düşenleri süzer. Elle günler süren tarama işini saniyelere indirir. İyi bir robot bunun üstüne üç şey daha katar: +Özünde her tercih robotu aynı işi yapar: **başarı sıralamanı** alır, geçmiş yılların taban sıralamalarıyla karşılaştırır ve 21.000'i aşkın programın içinden senin bandına düşenleri süzer. Elle günler süren tarama işini saniyelere indirir. İyi bir robot bunun üstüne üç şey daha katar: - Programları tek yılın tabanına göre değil, **çok yıllı trende** göre dilimlemek ([tabanlar yıldan yıla nasıl oynuyor](/rehber/taban-siralamalar-nasil-degisir)), - Sonuçları **hayal / dengeli / güvenli** (halk arasında "garanti tercih") mantığıyla ayırmak ([listenin üç bölgesi](/rehber/tercih-listesi-nasil-yapilir)), diff --git a/content/rehber/tercih-sonuclari-ne-zaman-2026.md b/content/rehber/tercih-sonuclari-ne-zaman-2026.md index aa099f0..93d424f 100644 --- a/content/rehber/tercih-sonuclari-ne-zaman-2026.md +++ b/content/rehber/tercih-sonuclari-ne-zaman-2026.md @@ -4,7 +4,9 @@ aciklama: Yerleştirme sonuçları için beklenen tarih aralığı, sonucun nere tarih: 2026-08-07 --- -Tercihler 10 Ağustos 23.59'da kapandı mı, arama motorlarındaki soru değişir: **"Tercih sonuçları ne zaman açıklanacak?"** Bu yazı üç şeyi netleştiriyor: sonuçların beklendiği tarih aralığı, sonucu nereden öğreneceğin ve ekranı gördüğün anda — yerleşmiş ya da yerleşememiş olarak — atman gereken adımlar. +Kısa cevap: ÖSYM yerleştirme sonuçları için gün ilan etmez; 2026'da tercihler **10 Ağustos** gecesi kapandı, üniversite kayıtları **24 Ağustos**'ta başlıyor, bu yüzden sonuçların **15-23 Ağustos** penceresinde açıklanması beklenir. Sonuç **sonuc.osym.gov.tr** ve ÖSYM Aday İşlemleri uygulamasından sorgulanır; kesin gün yalnızca ÖSYM duyurusuyla belli olur. + +Bu yazı üç şeyi netleştiriyor: bu tarih aralığının nereden çıktığı, sonucu nereden öğreneceğin ve ekranı gördüğün anda — yerleşmiş ya da yerleşememiş olarak — atman gereken adımlar. ## Ne zaman açıklanacak? diff --git a/content/rehber/vakif-universitesi-bursu-kesilir-mi.md b/content/rehber/vakif-universitesi-bursu-kesilir-mi.md new file mode 100644 index 0000000..bd7bc7c --- /dev/null +++ b/content/rehber/vakif-universitesi-bursu-kesilir-mi.md @@ -0,0 +1,122 @@ +--- +baslik: Vakıf Üniversitesi Bursu Kesilir mi? Not Ortalaması, Hazırlık, Uzayan Yıllar ve Yatay Geçiş +aciklama: YKS ile kazanılan vakıf bursu hazırlıkta bir yıl ve programın öğretim süresi boyunca kesilmez; not ortalaması şartı genel kural değil. Hangi durumda ne olur, ücret kaç artar, kim ücretli statüye düşer — ÖSYM kılavuzu ve YÖK esaslarıyla. +tarih: 2026-09-24 +--- + +Kısa cevap: YKS tercihinde **Burslu**, **%50 İndirimli** ya da **%25 İndirimli** olarak yerleştiğin vakıf programının bursu, ÖSYM kılavuzuna göre **hazırlık sınıfında bir yıl ve programın öğretim süresi kadar** (dört yıllık lisansta dört yıl) devam eder ve **bu sürenin sonuna kadar kesilmez.** Genel kuralda not ortalaması şartı yoktur; şart "öğrenimine ve derslere devam etmek"tir. Burs üç yerde biter ya da azalır: öğretim süresini aşıp uzattığın yıllarda (kurumun kendi kararına kalır), disiplin cezası ya da kurum içi yatay geçiş gibi üniversitenin kendi mevzuatındaki hallerde ve kılavuzda **"Bk."** numarasıyla yazılmış özel koşullu programlarda (bazı ortak ve protokollü programlar not ortalaması şartı koyar). Bursun kesilmesi ile **öğrenim ücretinin artması** ayrı konulardır: ücret her yıl, YÖK'ün belirlediği sınırı (haziran ayı ÜFE–TÜFE ortalaması) geçmeyecek oranda artabilir; burslu öğrenci için bu artış zaten ödemediği bir ücrete uygulanır, indirimli öğrenci için kalan payı büyütür. + +Bu yazı vakıf üniversitesinin **kendi verdiği** YKS giriş bursunu anlatıyor. KYK bursu ve kredisi ayrı bir sistemdir; onun kesilme şartları [KYK burs mu, kredi mi](/rehber/kyk-burs-mu-kredi-mi) yazısında. + +## Önce kavramlar: burslu, indirimli, ücretli ne demek? + +Tercih tablosunda aynı bölüm birkaç satırda görünür: *Psikoloji (Burslu)*, *Psikoloji (%50 İndirimli)*, *Psikoloji (%25 İndirimli)*, *Psikoloji (Ücretli)*. Bunlar ayrı program kodlarıdır; ayrı kontenjan, ayrı taban, ayrı fiyat. Kılavuz tanımı nettir: **Burslu** öğrenim ücretinin tamamını, **%50 İndirimli** yarısını, **%25 İndirimli** dörtte birini kapsar; öğrenci kalan kısmı öder. Tabloyu okuma tekniği [Devlet mi vakıf mı](/rehber/devlet-mi-vakif-mi) yazısında; burada yalnızca "bu burs ne zaman biter" sorusuna bakıyoruz. + +Bir de kurumun kendi verdiği ek burslar vardır: tercih sırası bursu (1. tercihte %25 gibi), başarı bursu, spor bursu, kardeş indirimi. Bunlar ÖSYM yerleştirmesiyle gelen bursun parçası değildir; şartlarını üniversitenin kendisi koyar ve kendisi değiştirir. Aşağıdaki kural yalnızca **tercih kılavuzundaki program adında yazan** burs/indirim içindir. + +## Genel kural: kılavuz ne diyor? + +ÖSYM'nin 2026 Yükseköğretim Programları ve Kontenjanları Kılavuzu'nun giriş bölümündeki cümle şu: + +> "Burslu programlarda burslar, programın bursluluk oranına göre hazırlık sınıfında bir yıl ve programın öğretim süresi kadar devam ederek bu sürenin sonuna kadar kesilmez. Vakıf Yükseköğretim Kurumu tarafından bu süreden daha fazla burslu öğrenim görme imkânı verilebilir." + +Vakıf üniversitelerinin program satırlarında tekrarlanan standart koşul (Bk. 21) aynı kuralı biraz daha ayrıntılı yazar: zorunlu hazırlık sınıfı dahil, isteğe bağlı hazırlık hariç; burs/indirim **"hazırlık sınıfında bir yıl ve programın normal öğretim süresi kadar (öğrenimine ve derslere devam etmesi şartıyla) devam ederek bu sürenin sonuna kadar kesilmez"**; burs karşılıksızdır, okulu bırakırsan geriye dönük ücret istenemez. + +Bundan üç sonuç çıkar: + +1. **Süre ölçüsü "normal öğretim süresi"dir**, azami süre değil. Dört yıllık lisansta bu 8 yarıyıl, iki yıllık önlisansta 4 yarıyıldır; zorunlu hazırlık varsa üstüne bir yıl eklenir. +2. **Şart devamdır, not değil.** Genel kuralda "not ortalaması X'in altına düşerse burs kesilir" diye bir hüküm yok. Dersten kalmak, dönem uzatmak, düşük ortalama tek başına bursu kesmez; normal süre içinde kaldığın sürece burs sürer. +3. **Uzatma kurumun elindedir.** Kılavuz, üniversitenin bursu daha uzun süre verebileceğini söyler ama zorunlu kılmaz. Beşinci yıla sarkan öğrencinin bursu, üniversitenin kendi burs yönergesine göre devam eder, azalır ya da biter. + +## Hangi durumda ne olur? + +```mermaid +%% aria: Vakıf üniversitesi giriş bursunun ne zaman devam edip ne zaman bittiğini gösteren karar şeması. İlk soru programın normal öğretim süresi içinde olup olmadığındır. Süre içindeysen ikinci soru derslere devam edip etmediğindir; devam ediyorsan burs kesilmez, not ortalaman düşük olsa bile sürer; bu kutu yeşil ile işaretlidir. Derslere devam etmiyorsan ya da uzaklaştırma gibi bir disiplin cezası aldıysan burs kesilebilir; bu kutu kırmızıdır. Normal süreyi aştıysan burs üniversitenin kendi kararına kalır: bazı üniversiteler azami süreye kadar sürdürür, bazıları keser; bu kutu sarıdır. Ayrı bir dal olarak kurum içi yatay geçiş ve kılavuzdaki özel koşullu programlar vardır: geçiş yapılan bölüme göre burs oranı düşebilir ya da not ortalaması şartı devreye girebilir; bu kutu da sarıdır. +%% altyazi: Normal süre içinde ve derslere devam ediyorsan burs sürer; uzayan yıllar ve kurum içi geçişler üniversitenin kuralına bağlıdır. +flowchart TD + A{"Programın NORMAL öğretim
süresi içinde misin?
(hazırlık 1 yıl + 4 yıl lisans)"} + A -- "evet" --> B{"Derslere devam ediyor,
disiplin cezan yok mu?"} + B -- "evet" --> C("Burs KESİLMEZ
(not ortalaması düşük olsa da)") + B -- "hayır" --> D("Kesilebilir:
devamsızlık / uzaklaştırma
üniversite mevzuatına bakılır") + A -- "hayır, süreyi aştım" --> E("Üniversitenin kararı:
bazıları azami süreye
kadar sürdürür, bazıları keser") + C --> F{"Kurum içi yatay geçiş
ya da 'Bk.' özel koşullu
program mı?"} + F -- "evet" --> G("Burs oranı düşebilir
ya da not şartı devreye girer:
Bk. metnini ve burs yönergesini oku") + F -- "hayır" --> H("Mezuniyete kadar
aynı oranla devam") + + classDef garanti fill:#d1fae5,stroke:#10b981,color:#065f46 + classDef uyari fill:#fef3c7,stroke:#f59e0b,color:#92400e + classDef hayal fill:#fee2e2,stroke:#ef4444,color:#991b1b + class C,H garanti + class E,G uyari + class D hayal +``` + +| Durum | YKS giriş bursuna ne olur? | Dayanak | +|---|---|---| +| Zorunlu hazırlık sınıfı | Bir yıl burslu; hazırlığı bir yılda geçemezsen ikinci yıl kurumun kuralına bağlı | ÖSYM kılavuzu, Bk. 21 | +| İsteğe bağlı hazırlık | Burs kapsamında değil | Bk. 21 | +| Normal sürede, not ortalaması düşük | Kesilmez; genel kuralda not şartı yok | ÖSYM kılavuzu giriş bölümü, Bk. 21 | +| Normal sürede, derslere devam yok | Kesilebilir; "devam" bursun şartı | Bk. 21 | +| Disiplin cezası (uzaklaştırma vb.) | Üniversitenin burs yönergesine göre kesilebilir; çoğu kurum uzaklaştırmayı sebep sayar | Üniversite yönergeleri (örnek: İstanbul Bilgi) | +| Normal süre aşıldı (5. yıl ve sonrası) | Kılavuz zorunlu kılmaz; kurum sürdürebilir, azaltabilir ya da kesebilir | ÖSYM kılavuzu ("daha fazla ... imkânı verilebilir") | +| Kurum içi yatay geçiş (bölüm değiştirme) | Geçilen bölüme göre oran düşebilir; bazı programlarda %50'ye varan azaltma yazılı | Kılavuzdaki özel koşullar, üniversite yönergeleri | +| Okulu bırakma | Burs karşılıksız; geriye dönük ücret istenemez | Bk. 21 | +| Başka üniversiteden ayrılıp/mezun olup yeniden yerleşme | Üniversite yalnızca ücretli ya da başka indirimli statüde kayıt yapmana izin verebilir; tercih öncesi sor | ÖSYM kılavuzu giriş bölümü | + +## "Not ortalaması 2,50'nin altına düşerse burs kesilir" doğru mu? + +İnternette sık dolaşan bu cümle **genel kural değildir.** Kılavuzun genel hükmü ve vakıf programlarının standart koşulu devamı şart koşar, notu değil. Cümlenin kaynağı üç yerdir: + +- **Kılavuzdaki özel koşullu programlar.** 2026 kılavuzunda burs ile not ortalamasını birlikte anan dokuz koşul var; hepsi ortak lisans programı, meslek kuruluşu protokolü ya da KKTC/yurt dışı ortaklığı gibi özel yapılardır. Örneğin bazı uluslararası ortak programlarda tam bursun sürmesi için genel not ortalamasının 4,00 üzerinden 2,50 (bir programda 3,00) olması gerekir; altına düşünce burs %50'ye iner, ortalama düzelince geri gelir. Bu şart programın "Bk." numarasında yazar; tercih yapmadan o numarayı okuman gerekir. +- **Üniversitelerin normal süre sonrası kuralları.** Bazı üniversiteler bursu normal sürenin ötesine (örneğin lisansta 12 yarıyıla) uzatır ve bu uzatmaya not ortalaması şartı bağlar. Kural, kılavuzun korumadığı ek yıllar için geçerlidir. +- **Kurumun kendi ek bursları.** Başarı bursu, tercih bursu gibi ek indirimler her zaman kurumun şartına bağlıdır ve bu şart genelde nottur. + +Yani sorunun doğru sorulmuş hâli şu: *"YKS ile kazandığım burs normal süre içinde not yüzünden kesilir mi?"* Genel kuralda hayır. *"Programımın özel koşulu ya da üniversitemin yönergesi ek şart koyuyor mu?"* Bunu program kodunun Bk. metninden ve üniversitenin burs yönergesinden okursun. + +## Bursun kesilmesiyle karıştırılan şey: öğrenim ücreti artışı + +"Bursum kesildi" diye anlatılan hikâyelerin bir kısmı aslında **ücret artışıdır.** İndirimli öğrenci ücretin yarısını ya da dörtte üçünü öder; ücret her yıl artınca ödediği pay da büyür, oysa bursluluk oranı değişmemiştir. + +YÖK'ün bu konudaki usul ve esasları, hazırlık ve birinci sınıf dışındaki yıllar için artış oranını **haziran ayı yıllık ÜFE artışı ile TÜFE artışının ortalamasını geçmeyecek** şekilde sınırlar; ücretler en geç haziran sonuna kadar üniversitenin sitesinde ilan edilir, kayıt döneminden sonra ilan edilmemiş ek ücret istenemez. Normal süreyi aşınca yalnızca tekrar ettiğin ders ya da dönem için ücret alınır; ders başına tutar o yılın ders/kredi ücretini aşamaz. Vade farksız altı taksit hakkın vardır ve ücreti zamanında ödeyememek tek başına kaydının silinmesine yol açmaz (yeni döneme kayıt yaptıramazsın, o kadar). + +Dört yıllık toplam maliyeti hesaplarken indirimli programda kalan payın her yıl bu sınır içinde artacağını varsay. Hesap yöntemi [Yurt, burs ve yıllık maliyet](/rehber/yurt-burs-ve-yillik-maliyet) yazısında. + +## Tercih yaparken yapılacak üç kontrol + +1. **Program kodunun "Bk." satırını oku.** Standart koşul (Bk. 21) ise genel kural geçerli. Farklı bir numara varsa o metinde not, hazırlık ya da yatay geçiş şartı olabilir. +2. **Üniversitenin burs yönergesini bul.** Ara: "[üniversite adı] burs yönergesi". Şu üç soruya cevap ara: normal süre sonrası burs devam ediyor mu; hangi disiplin cezası bursu keser; kurum içi bölüm değişikliğinde oran ne olur. +3. **Kayıt öncesi yazılı cevap al.** Daha önce başka bir üniversiteye kayıt yaptırıp ayrıldıysan ya da bir programdan mezunsan, burslu programa yerleşsen bile üniversite seni ücretli statüde kaydedebilir. Bu durumdaysan tercih vermeden önce öğrenci işlerine yaz, cevabı sakla. + +Sıralamana hangi burslu ve indirimli programların düştüğünü tek ekranda görmek için [sıralamanı gir](/#hero-form); listede vakıf satırlarının yanında burs etiketi görünür, devlet/vakıf filtresiyle iki evreni ayrı da tarayabilirsin. + +## Sık sorulan sorular + +**Hazırlık sınıfında kalırsam bursum gider mi?** +Kılavuz hazırlıkta bir yıl burs sayar. İkinci hazırlık yılı kılavuzun kapsamı dışındadır; üniversite ya ücret ister ya kendi kararıyla bursu sürdürür. Kayıt öncesi sor. + +**Bir dersten kaldım, burs kesilir mi?** +Genel kuralda hayır; şart derslere devam etmektir. Normal süre içinde kaldığın sürece burs sürer. + +**Beşinci yıla sarkarsam ne olur?** +Kılavuzun koruması biter, top üniversitededir. Bazı üniversiteler azami süreye kadar sürdürür (örnek: lisansta 12 yarıyıl), bazıları keser ya da not şartı koyar. Yönergeye bak. + +**Uzaklaştırma cezası aldım.** +Çoğu üniversitenin yönergesi uzaklaştırmayı ve daha ağır cezaları burs kesme sebebi sayar; uyarı ve kınama genelde sayılmaz. Kesin liste yönergededir. + +**Aynı üniversitede bölüm değiştirirsem?** +Kurum içi yatay geçişte burs geçilen bölümün koşullarına göre yeniden belirlenebilir; bazı programlarda %50'ye varan azaltma yazılıdır. Geçişten önce yazılı sor. Dış yatay geçiş, ÇAP ve yandal kuralları [ilgili yazıda](/rehber/yatay-gecis-cap-yandal). + +**Okulu bırakırsam geriye dönük ücret öder miyim?** +Hayır. Burs karşılıksızdır; ayrılan öğrenciden bursluluk oranına göre ücret istenemez. + +**Kayıt dondurursam burs süresi uzar mı?** +Kılavuz bunu düzenlemiyor; azami süre ve kayıt dondurma ilişkisi üniversitenin yönetmeliğine bağlıdır. [Kayıt dondurma yazısı](/rehber/universitede-ilk-hafta-ders-kaydi-muafiyet-kayit-dondurma) bu ilişkiyi üç üniversite örneğiyle anlatıyor. + +## Kaynaklar + +Kaynaklara 24 Eylül 2026'da erişildi. + +- ÖSYM, [2026-YKS Yükseköğretim Programları ve Kontenjanları Kılavuzu](https://cdn.osym.gov.tr/pdfdokuman/2026/YKS/TERCIH/kontkilavuz_yktd21072026.pdf) (21 Temmuz 2026, "ön bilgi amaçlıdır" ibareli sürüm) — giriş bölümündeki burs süresi cümlesi ve ücret artışı/ayrılan-mezun öğrenci hükümleri (s. 17-18); vakıf programlarının standart koşulu Bk. 21; not ortalaması şartı içeren özel koşullar (örn. uluslararası ortak programlar, meslek kuruluşu protokol bursları). Kılavuz sayfası: [osym.gov.tr](https://www.osym.gov.tr/2026-yuksekogretim-kurumlari-sinavi-yks-yuksekogretim-programlari-ve-kontenjanlari-kilavuzu). +- Yükseköğretim Kurulu, [Vakıf Yükseköğretim Kurumlarının Hazırlık ve/veya Birinci Sınıf Dışındaki Sınıflarına Ait Öğrenim Ücretlerinin ve Ücret Artışlarının Belirlenmesine İlişkin Usul ve Esaslar](https://www.yok.gov.tr/documents/documents/69c52f33ce36f.pdf) — artış sınırı (m. 4), ilan (m. 5), ek ücret yasağı ve süre aşımında ders başına ücret (m. 6), taksit (m. 8), ödememe (m. 9), iade (m. 10). Belgede yayım tarihi yazmıyor; 2547 sayılı Kanun'un Ek 9. maddesine dayanır. +- İstanbul Bilgi Üniversitesi, [Burslar](https://www.bilgi.edu.tr/tr/yasam/ogrenci/ogrenci-destek-merkezi/burslar/) — ÖSYM bursunun hazırlıkta 4, lisansta 12, önlisansta 6 yarıyıl sürdüğü ve şiddet kaynaklı disiplin cezasında kesildiği, uzatılan sürede not ortalaması şartı; tek üniversitenin kendi kuralı, genel kural değil. +- 2547 sayılı [Yükseköğretim Kanunu](https://www.mevzuat.gov.tr/mevzuatmetin/1.5.2547.pdf), madde 44 (azami süreler) ve Ek madde 9 (vakıf yükseköğretim kurumlarında ücret). diff --git a/docs/arastirma/2026-09-24-geo-seo/00-ozet-ve-plan.md b/docs/arastirma/2026-09-24-geo-seo/00-ozet-ve-plan.md new file mode 100644 index 0000000..578f9d1 --- /dev/null +++ b/docs/arastirma/2026-09-24-geo-seo/00-ozet-ve-plan.md @@ -0,0 +1,89 @@ +# GEO (yapay zekâ cevap motorlarında görünürlük) — özet ve uygulama planı + +Tarih: 24 Eylül 2026. Üç ayrı araştırmanın birleşimi: +- `01-teknik-denetim.md` — kod ve canlı site denetimi (dosya:satır kanıtlı) +- `02-guncel-pratikler.md` — 2025-2026 kaynaklı web araştırması (54 dipnot) +- `03-icerik-ve-marka.md` — rehber envanteri, 40 soruluk soru haritası, marka bahsi, E-E-A-T + +Araştırma turunda kod değiştirilmedi; uygulama durumu en alttaki "Durum" bölümünde. Git komutu çalıştırılmadı. + +## Tek cümle teşhis + +Teknik zemin hazır (sunucu HTML'i tam, 17 AI botu açık ve 200 dönüyor, temel JSON-LD var); asıl eksikler **ölçüm yok**, **marka üçüncü tarafta hiç anılmıyor**, **yazar/tarih/hakkında kimliği yok** ve **katalog sayfaları alıntılanacak özgü cümle taşımıyor**. + +## Sorulan soru: llms.txt var mı? + +Yok, `/llms.txt` 404. Ama kanıt şunu söylüyor: Google "gerekmez" diyor, Ahrefs'in 137 bin sitelik log analizinde dosyaların %97'si hiç okunmamış, 54 çalışmalık meta-analizde 23 faktörün sonuncusu. **Yarım günlük bağlantı listesi olarak eklenir, bundan etki beklenmez.** `llms-full.txt` yapılmaz (içeriği toplu kopyalamayı kolaylaştırır, etkisi kanıtsız). + +## Raporlar arasındaki çelişki ve karar + +Teknik denetim FAQPage ve ItemList/Dataset şemasını "yüksek etki" saymış. Güncel pratik araştırması ise şunu buldu: Google AI Overviews özel şema istemiyor, ChatGPT/Perplexity JSON-LD'yi düz metin gibi okuyor, 1.885 sayfalık kontrollü çalışmada şema eklemenin etkisi sıfır, Google FAQ zengin sonuçlarını 7 Mayıs 2026'da tamamen kaldırdı. **Karar: yeni şema türü eklenmez.** Yalnızca mevcut Article şemasındaki `author`/`image` eksiği kapatılır (klasik SEO ve güven için). + +## Uygulama planı (öncelik sırasıyla) + +### Dalga 1 — bu hafta, toplam ~1 gün, kod işi az + +| # | İş | Nerede | Efor | Kaynak rapor | +|---|---|---|---|---| +| 1 | İki rehber yazısındaki yanlış "23.000" rakamını "21.000+" yap | `content/rehber/tercih-robotu-nedir-yok-atlas-nasil-kullanilir.md:11`, `content/rehber/kac-siralama-ile-hangi-bolume-girebilirim.md:53` | 10 dk | 03 | +| 2 | Ana sayfadaki kaynaksız "1.000–3.000 TL" iki geçişe dipnot bağla | `src/app/page.tsx:96`, `:188` | 20 dk | 03 | +| 3 | `tercih-sonuclari-ne-zaman-2026` yazısında tarih aralığını ilk paragrafa al | `content/rehber/tercih-sonuclari-ne-zaman-2026.md` | 15 dk | 03 | +| 4 | Article JSON-LD'ye `author` (kişi) ve `image` (OG görseli) ekle | `src/lib/seo.tsx:149-172` | 1 s | 01, 02, 03 | +| 5 | Rehber sayfasında görünür yazar adı + son güncelleme tarihi | `src/features/rehber/components/rehber-makale.tsx` | 1 s | 02 | +| 6 | Rybbit'te AI kanalı: chatgpt.com, perplexity.ai, copilot.microsoft.com, gemini.google.com, claude.ai, yandex (Yazeka) referrer'ları ayrı sayılsın; aylık not | Rybbit ayarı | 30 dk | 02 | +| 7 | Bing Webmaster "AI Performance" ve Search Console üretken AI raporunu aylık rutine ekle | `docs/ekip/YAYIN-KUYRUGU.md` rutin satırı | 15 dk | 02 | +| 8 | IndexNow betiği (yeni rehber / katalog yenilemesi sonrası Bing+Yandex'e bildirim) + Yandex Webmaster kaydı | `scripts/indexnow.ts` (yeni), anahtar dosyası `public/` | 2-3 s | 01, 02 | +| 9 | `ClaudeBot` için `Crawl-delay: 1` | `src/app/robots.ts` | 5 dk | 02 | +| 10 | `/llms.txt` route'u: site tanımı + rehber listesi (`getAllRehberler()`'den otomatik) + katalog giriş sayfaları; `text/plain` | `src/app/llms.txt/route.ts` (yeni) | 2 s | 01, 02 | + +### Dalga 2 — 2-4 hafta, asıl etki burada + +| # | İş | Nerede | Efor | Kaynak rapor | +|---|---|---|---|---| +| 11 | Katalog sayfalarına (bölüm/üniversite/il) H1 altına **veriden üretilen, sayfaya özgü 1-2 cümle** (ör. "X bölümü 2026'da Y üniversitede açıldı, taban sıralaması Z ile W arasında; son 3 yılda ... yönde değişti"). Hem ChatGPT'nin sakladığı ~200 karakterlik özet hem Google'ın "ölçekli içerik" politikasına karşı savunma | `src/features/katalog/components/{bolum,universite,il}-icerik.tsx` + veri fonksiyonu | 1-2 gün | 02 | +| 12 | Rehber yazılarında "cevap-öncelikli" düzen: ilk paragraf doğrudan cevap, H2'ler soru biçiminde. Envanterde "Hayır/Kısmi" işaretli yazılar önce (devlet-mi-vakif-mi, bolum-mu-universite-mi-sehir-mi, ais-tercih-nasil-yapilir, bolumun-is-imkanini…) | `content/rehber/*.md` | 2-3 gün toplam, yazı başına 20-40 dk | 02, 03 | +| 13 | Her rehberde KolayTercih verisinden en az bir özgün istatistik + kaynak dipnotu (yazı kuralına ekle) | rehber-yazari akışı | Düşük, sürekli | 02 | +| 14 | Ana sayfaya görünür tek cümlelik marka tanımı (AI'ın olduğu gibi alıntılayabileceği) — taslak 03'te | `src/app/page.tsx` | 30 dk, Bilal onayı | 03 | +| 15 | `/hakkinda` sayfası: kim, hangi veriyle, nasıl; veri yöntemi; iletişim | yeni sayfa | Yarım gün, Bilal'den kimlik bilgisi | 01, 03 | +| 16 | Ana sayfa SSS'ye "güvenilir mi / ücretsiz mi / ÖSYM-YÖK ile bağlantı yok" maddeleri | `src/app/page.tsx` SSS | 1 s | 03 | +| 17 | `/kosullar` ve `/gizlilik`'e veri sorumlusu unvanı/adres, "MVP taslağı" notunu kaldır | ilgili sayfalar | Bilal kararı | 03 | +| 18 | Yeni rehber: "vakıf üniversitesi bursu kesilir mi" (soru haritasındaki tek gerçek boşluk) | `content/rehber/` | Yarım gün | 03 | +| 19 | `/feed.xml` (rehber RSS) + head'de alternate link | `src/app/feed.xml/route.ts` | 3 s | 01 | + +### Dalga 3 — sezon hazırlığı, Bilal'in kişisel katılımı gerekir + +| # | İş | Kim | Not | +|---|---|---|---| +| 20 | Aylık 30-50 Türkçe prompt paneli (ChatGPT, Gemini, Perplexity, Yazeka, AI Overviews) — KolayTercih anılıyor mu, hangi rakipler çıkıyor | Bilal/ajan | Aylık 30 dk | +| 21 | Tercih dönemi basın notu: altı yıllık seriden 1-2 çarpıcı sayı (ör. 2026'da 45.033 boş kontenjan) eğitim muhabirlerine | Bilal | Marka bahsi backlink'ten ~3× güçlü | +| 22 | Reddit r/YKS, rehber öğretmen grupları, LinkedIn'de kimliği açık organik katkı | Bilal | Ekşi Sözlük'te kendi başlığını açma önerilmiyor | +| 23 | YouTube kısa video serisi (rehber özetleri) | Bilal | Yüksek efor, yavaş etki | +| 24 | Wikidata kaydı (basın bahsi oluştuktan sonra) + Organization `sameAs` | Bilal + yazilimci | Sosyal hesap açılınca | +| 25 | Eğitim botları (GPTBot, ClaudeBot, CCBot) kararını yılda bir prompt paneline göre gözden geçir | — | Anılmıyorsak kapatmak yükü %80 azaltır | + +## Yapılmayacaklar + +- `llms-full.txt` +- FAQPage, ItemList, Dataset gibi yeni şema türleri +- Ekşi Sözlük'te marka başlığı açmak +- Sürdürülemeyecek Instagram/TikTok hesabı + +## Bilal'den karar isteyenler + +1. Ana sayfa marka tanım cümlesi ve SSS ekleri (03'teki taslak, 5 dk okuma). +2. `/hakkinda` ve yasal sayfalar için tüzel/şahıs kimlik bilgisi. +3. Dalga 3'ten hangisiyle başlanacağı (basın notu en yüksek getirili, en düşük eforlu görünüyor). + +## Durum — 24 Eylül 2026 akşamı (bu oturumda yapılanlar) + +Kod ve içerik çalışma ağacında, commit atılmadı. `tsc` ve `eslint` temiz; tasarım denetimi 0 hata. + +**Dalga 1 — tamam:** #1 rakam düzeltmesi (iki yazı), #2 fiyat kaynağı (ana sayfa kart + tablo dipnotu), #3 tercih-sonuclari cevap önce, #4 Article JSON-LD `author`/`image`/`mainEntityOfPage`/publisher logo, #5 görünür "Yazan: KolayTercih Ekibi" satırı, #7 aylık AI görünürlük rutini YAYIN-KUYRUGU'na eklendi, #8 IndexNow betiği (`pnpm indexnow`) + anahtar dosyası `public/12fbe41760bb599222e2fcf0c535c267.txt` (Yandex Webmaster kaydı Bilal'de), #9 ClaudeBot `Crawl-delay: 1`, #10 `/llms.txt` (getAllRehberler'den otomatik, 46 yazı). +**Bilal'e kalan:** #6 Rybbit'te AI kanalı (arayüzden referrer kuralı); Yandex Webmaster'da IndexNow anahtarını doğrulama gerekmez ama ilk bildirimden sonra "Indexing → IndexNow" ekranına bakılmalı. + +**Dalga 2 — tamam:** #11 bölüm sayfalarına veriden üretilen açılış cümleleri (il/program/devlet-vakıf/kontenjan, taban aralığı, geçen yıla göre yön); üniversite ve il sayfalarında zaten vardı. #12 dört yazıya "Kısa cevap" paragrafı. #18 yeni yazı `vakif-universitesi-bursu-kesilir-mi` (ÖSYM 2026 kılavuzu + YÖK usul ve esasları kaynaklı). #19 `/feed.xml` + ``. +**Bilal onayı bekleyen:** #14 ana sayfa marka tanım cümlesi, #15 `/hakkinda`, #16 SSS ekleri, #17 yasal sayfalarda tüzel kimlik. Taslak metinler `03-icerik-ve-marka.md` (e) bölümünde. + +**Ayrıca düzeltilen:** rehber OG görsellerinde başlık taşması/üst üste binme. İki kök neden: (a) rakamlı başlıklarda karışık flex span satır kaydıramıyordu → başlık kelime kelime kutulara bölündü; (b) Satori aynı aile adıyla kaydedilen latin/latin-ext dosyalarından yalnızca birini kullanıyor, İ/ş/ğ başka aileden geliyordu → ext alt-kümeleri " Ext" adıyla kaydedildi, şablonlar `OG_AILE` sabitlerini kullanıyor (`src/lib/og-fonts.ts`). Bölüm/üniversite/ana sayfa OG'leri de aynı düzeltmeden yararlandı. + +**Yapılmadı:** `pnpm build` — Bilal'in dev sunucusu 3000'de çalışırken aynı `.next` dizininde build koşturmak sunucuyu bozabilir; push öncesi AGENTS.md kuralına göre ayrı worktree'de alınmalı. diff --git a/docs/arastirma/2026-09-24-geo-seo/01-teknik-denetim.md b/docs/arastirma/2026-09-24-geo-seo/01-teknik-denetim.md new file mode 100644 index 0000000..483ac0d --- /dev/null +++ b/docs/arastirma/2026-09-24-geo-seo/01-teknik-denetim.md @@ -0,0 +1,89 @@ +# GEO/SEO Teknik Denetim — 2026-09-24 + +Kanıt işaretleri: **[D]** dosya/kod veya canlı curl çıktısı okundu · **[A]** yalnızca ikincil/arama kaynağı · **[Ç]** çıkarım · **[doğrulanmalı]** teyit edilmedi. + +**Veri kısıtı:** Arama hacmi/rakip trafik aracı (Ahrefs/Similarweb) bu oturumda yetkili değil — bu raporda hacim rakamı yok. Tüm bulgular kod okuması (dosya:satır) ve canlı `curl` çıktısıyla [D] işaretli; tarayıcı/dev sunucusu açılmadı (AGENTS.md kuralı). Rybbit'e bu denetimde ihtiyaç duyulmadı. + +## Özet (5 madde) + +1. AI botlarına erişim tam açık: `robots.txt` GPTBot/ClaudeBot/PerplexityBot/Google-Extended dahil 17 botu `Allow: /` ile karşılıyor ve gerçek istekte hepsi 200 dönüyor, WAF/challenge yok — bu katman zaten doğru kurulmuş. +2. En büyük eksik yapılandırılmış veri: 863+ katalog sayfasının (634 bölüm + 229 üniversite) hiçbirinde tablodaki taban puanı/sıralama verisini makine-okunur kılan bir şema (Dataset/ItemList/Table) yok; yalnızca `BreadcrumbList` var. Rehber yazılarındaki `Article` şemasında `author` ve `image` alanı eksik. +3. `/llms.txt`, `/llms-full.txt`, `/feed.xml`, `/rss.xml` dördü de canlıda 404 — hiçbiri üretilmiyor; site 46 rehber yazısını ve katalog kapsamını hiçbir merkezi makine-okunur listede özetlemiyor. +4. İçerik tarafı zaten GEO'ya uygun yazılmış: "Kısa cevap" ile başlayan gövde, madde madde Soru-Cevap blokları, tarihli kaynak listesi, mermaid karar şeması — ama bu Soru-Cevap blokları `FAQPage` şemasına hiç bağlanmamış (yalnızca ana sayfadaki 4 soru `FAQPage` alıyor). +5. Sunucu HTML'i tam: tablo, taban puan trend grafiği (SVG+title), harita, veri kaynağı/tarih metni hepsi bot-erişilebilir ilk HTML'de geliyor (`curl` ile doğrulandı); ama tüm sayfalarda `Cache-Control: private, no-cache, no-store` ve `Last-Modified`/`ETag` yok — 1011 URL'lik sitemap'te crawl bütçesi açısından koşullu istek (If-Modified-Since) imkânı sıfır. + +## Bulgular + +| # | Bulgu | Kanıt | Etki | Efor | +|---|---|---|---|---| +| 1 | `Article` JSON-LD'de `author` yok, `image` yok | `src/lib/seo.tsx:149-172` (`articleJsonLd`); canlı `curl https://kolaytercih.com/rehber/kyk-burs-mu-kredi-mi` çıktısında `@type":"Article"` bloğunda `author`/`image` alanı yok [D] | Orta | 1s | +| 2 | Katalog sayfalarında (bölüm/il) tablo verisi için şema yok; yalnızca `BreadcrumbList` | `src/features/katalog/components/bolum-icerik.tsx:246-251`, `il-icerik.tsx:98-103` — ikisinde de tek `JsonLd` çağrısı `breadcrumbJsonLd`; `grep "@type"` sonucu ikisinde de sadece `BreadcrumbList` [D] | Yüksek | 4-6s | +| 3 | Üniversite sayfasında `CollegeOrUniversity` var ama bölüm/il sayfalarında karşılığı (`EducationalOccupationalProgram`/`Place`) yok | `universite-icerik.tsx:483-503` (`CollegeOrUniversity` + `PostalAddress`); canlı `curl https://kolaytercih.com/universite/abdullah-gul-universitesi` JSON-LD'de doğrulandı [D] | Orta | 3-4s | +| 4 | `FAQPage` yalnızca ana sayfada; rehber yazılarındaki Soru-Cevap blokları (`**Soru?**\nCevap.` deseni, ör. `kyk-burs-mu-kredi-mi.md` sonundaki 6 soru) şemaya bağlanmamış | `src/app/page.tsx:124-141` (tek kullanım yeri); `content/rehber/kyk-burs-mu-kredi-mi.md` içinde en az 6 açık soru-cevap çifti; `rehber-makale.tsx`'te `faqPageJsonLd` import edilmiyor [D] | Yüksek | 3-4s (içerik tarafında soru işaretleme kuralı + şema üretimi) | +| 5 | `/llms.txt`, `/llms-full.txt`, `/feed.xml`, `/rss.xml` 404 | `curl -o /dev/null -w "%{http_code}"` dördünde de `404`; `src/app/` altında bu route'lar yok (`find src/app -maxdepth 1 -iname "llms*" -o -iname "feed*"` boş sonuç) [D] | Yüksek | llms.txt 2s, feed.xml 3s | +| 6 | `Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate` — tüm sayfalarda (ana sayfa, rehber, katalog); `Last-Modified`/`ETag` hiçbir yanıtta yok | `curl -sI https://kolaytercih.com/`, `/rehber/kyk-burs-mu-kredi-mi`, `/universiteler/kayseri` üçünde de aynı başlık [D]; kaynak muhtemelen `next.config.ts:31` `cacheComponents: true` (PPR) — kök layout'ta `HeaderGate` gibi istek-anı dinamik parça olduğu için tüm yanıt no-store'a düşüyor [Ç] | Orta | Araştırma 2s + olası segment-config denemesi | +| 7 | `/bolum/[slug]/sayfa/[no]` ve `/universite/[slug]/sayfa/[no]` alt sayfaları (sayfalanmış tablo devamları) sitemap'te yok | `src/app/sitemap.ts:39-51` yalnızca taban `/bolum/{slug}` ve `/universite/{slug}` üretiyor, `/sayfa/{n}` yok; `sayfalama.tsx:52-69` bu alt yolların gerçek statik `` olduğunu doğruluyor [D] | Düşük | 1s (sitemap'e eklemek mi, bilinçli mi karar CTO'da) | +| 8 | Şehir haritası (`SehirPikselHaritasi`) client component | `sehir-piksel-haritasi.tsx:1` `"use client"` — ama dekoratif, kritik metin (üniversite listesi, YÖK Atlas kaynak satırı) ayrı server bileşeninde ve ilk HTML'de mevcut (canlı `curl` ile "YÖK Atlas" 7 kez, "ÖSYM" 9 kez bulundu) [D] | Düşük | — (aksiyon gerekmiyor, not amaçlı) | +| 9 | Üniversite program tablosu (`UniversiteProgramTablosu`) `"use client"` ama SSR kırılmıyor — `next/dynamic(ssr:false)` yalnızca sihirbaz/liste/dev-panel bileşenlerinde kullanılıyor, katalog/rehber hiçbirinde yok | `universite-program-tablosu.tsx:1`; `grep -rn "ssr: false"` sonucu 6 eşleşmenin hiçbiri katalog/rehber değil; canlı HTML'de `` + 46-51 satır veri doğrulandı [D] | — | — (bulgu: sorun yok, doğrulama amaçlı) | +| 10 | `Organization` JSON-LD'de `sameAs` (sosyal/kurumsal profil linki) yok; `WebSite`'ta `potentialAction`/`SearchAction` yok | `src/lib/seo.tsx:76-100` | Düşük | 1s | +| 11 | Künye/Hakkında sayfası yok — E-E-A-T için "kim yazıyor, hangi veriyle" tek yerde toplu anlatılmıyor; yalnızca `/iletisim` var ve orada yalnızca e-posta + iade metni var, tüzel kimlik (unvan, adres) yok | `src/app/iletisim/page.tsx` tam dosya okundu — `Mail` ikonu + `destek@kolaytercih.com` dışında kurumsal bilgi yok; `find src/app -iname "hakkinda*" -o -iname "kunye*"` boş sonuç [D] | Orta | 2-3s (yeni sayfa) | +| 12 | Google Search Console doğrulama meta'sı `layout.tsx`'te yok | `grep google-site-verification src/app/layout.tsx` boş [D] | — | — (mülk `sc-domain:` DNS ile doğrulanıyor olmalı — AGENTS.md'deki Search Console notuyla tutarlı, aksiyon gerekmez) [Ç] | +| 13 | IndexNow/Bing anlık bildirim entegrasyonu kodda yok | `grep -rn "indexnow" src scripts` boş sonuç [D] | Düşük | 2-3s | +| 14 | Sitemap 1011 URL, tamamı tek `sitemap.xml`'de (Google limiti 50.000 URL/dosya — sorun değil bugün, ama büyüme notu) | `curl -s .../sitemap.xml \| grep -c ""` → 1011; kırılım: 634 bölüm, 229 üniversite, 92 il, 46 rehber, 10 statik [D] | — | — (bilgi amaçlı, aksiyon yok) | +| 15 | `lastmod` değerleri katalog için tek sabit tarih (`KATALOG_VERI_TARIHI = "2026-09-21"`), rehber için yazı bazlı gerçek tarih — anlamlı, uydurma değil | `src/lib/seo.tsx:24`; sitemap çıktısında katalog URL'leri `2026-09-21`, rehber URL'leri kendi `tarih`/`guncelleme` alanı [D] | — | — (doğru kurulmuş, aksiyon yok) | +| 16 | AI botları için farklı davranış yok: `GPTBot/ClaudeBot/PerplexityBot/Google-Extended/Bingbot` + rastgele UA hepsi 200, içerik boyutu birbirine yakın (164.9–165.5 KB, fark muhtemelen script nonce/varyant) | 6 farklı UA ile `curl -A ... -w "%{http_code}"` testi [D] | — | — (doğru, aksiyon yok) | + +## Önerilen uygulama sırası + +**Dalga 1 — düşük efor, yüksek/orta etki (CTO'ya tek paket):** +1. `articleJsonLd`'ye `author` (Organization veya sabit "KolayTercih Editör Ekibi" Person/Organization) ve `image` (mevcut OG görseli) ekle → `src/lib/seo.tsx:149-172`. +2. `/llms.txt` statik veya `src/app/llms.txt/route.ts` route'u ekle: site tanımı, ana bölümler (`/bolumler`, `/universiteler`, `/rehber`), 46 rehber yazısının başlık+özet listesi (`getAllRehberler()` zaten `src/lib/rehber.ts`'te var, aynı veriyi besler), veri kaynağı (YÖK Atlas, `KATALOG_VERI_TARIHI`). Taslak içerik aşağıda. +3. `Organization` şemasına `sameAs` ekle (varsa sosyal hesap linki; yoksa madde ertelenir, Bilal'e sorulur). + +**Dalga 2 — orta efor, yüksek etki:** +4. Bölüm/il sayfalarına tablo verisini temsil eden `ItemList`/`Table` türünde şema ekle (her satır: üniversite adı, program adı, taban sıralaması, yıl) — CTO şablon düzeyinde tek fonksiyon yazıp `bolum-icerik.tsx` ve `il-icerik.tsx`'e bağlamalı, elle sayfa sayfa değil. +5. Rehber yazılarındaki soru-cevap bloklarını `FAQPage` şemasına bağla: `content/rehber/*.md` içindeki `**Soru?**\nCevap.` desenini `rehber.ts` parse aşamasında ayrıştırıp `rehber-makale.tsx`'e `faqPageJsonLd` olarak geçir. +6. `/feed.xml` (rehber RSS) route'u ekle, `sitemap.ts`'e ve ``'e (layout.tsx) `` ekle. + +**Dalga 3 — düşük öncelik / araştırma gerektirir:** +7. `Cache-Control: no-store` kaynağını netleştir — `cacheComponents` altında hangi bileşen (muhtemelen `HeaderGate`/oturum kontrolü) tüm sayfayı dinamik yapıyor; `node_modules/next/dist/docs/01-app/03-api-reference/05-config/01-next-config-js/cacheComponents.md` okunarak segment bazlı `'use cache'` ile katalog/rehber gövdesinin CDN'de önbelleklenip önbelleklenemeyeceği değerlendirilmeli. Bu iş kod değişikliği gerektirdiği için CTO/yazılımcı işi. +8. Künye/Hakkında sayfası (`/hakkinda`) — tüzel kimlik, veri metodolojisi, editör ekibi. Ürün kararı, [BİLAL]. +9. Sayfalama alt yollarını (`/sayfa/N`) sitemap'e ekleyip eklememeye CTO karar versin (bugün de linklerle keşfedilebilir durumda, kritik değil). + +## Bilal'den istenen + +- Yok. Bu tur yalnızca araştırma; Dalga 1-2 maddeleri CEO onayına, kod değişikliği CTO/yazılımcıya gidecek. + +--- + +### Ek: `/llms.txt` taslağı (Türkçe, somut) + +``` +# 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'lük tercih listesi. +> Ücretsiz katalog: 229 üniversite, 634 bölüm, il bazlı arama. + +## Veri kaynağı +Tüm taban puan/sıralama verisi YÖK Atlas {SON_YIL} yerleştirme sonuçlarından +alınır. Katalog en son {KATALOG_VERI_TARIHI} tarihinde güncellendi. + +## Ana bölümler +- /bolumler — 634 bölümün taban puanı ve sıralama tablosu +- /universiteler — il bazlı üniversite kataloğu, 229 üniversite +- /universite-siralamasi — URAP akademik başarı sıralaması +- /rehber — YKS tercih süreciyle ilgili 46 rehber yazısı (aşağıda liste) +- /paket — ücretli yapay zekâ tercih listesi hizmeti + +## Rehber yazıları +(getAllRehberler() çıktısından otomatik üretilmeli — her satır: +"- /rehber/{slug} — {baslik}: {aciklama}") + +## Kısıtlar +- Yapay zekâ önerileri yalnızca kullanıcının sıralamasıyla açılan gerçek + YÖK Atlas programlarından seçilir; havuz dışına çıkmaz. +- Yerleşme garantisi verilmez. +``` + +Not: içerik listesi elle yazılmamalı — `getAllRehberler()` (`src/lib/rehber.ts`) zaten slug/başlık/açıklama döndürüyor; route bunu build-time'da stringe çevirip üretmeli, statik `public/llms.txt` olarak elle bakım riskli (46 yazı büyüyecek). diff --git a/docs/arastirma/2026-09-24-geo-seo/02-guncel-pratikler.md b/docs/arastirma/2026-09-24-geo-seo/02-guncel-pratikler.md new file mode 100644 index 0000000..fd66534 --- /dev/null +++ b/docs/arastirma/2026-09-24-geo-seo/02-guncel-pratikler.md @@ -0,0 +1,323 @@ +# 02 — GEO için güncel pratikler (Eylül 2026) ve KolayTercih'e uyarlama + +> Tarih: 24 Eylül 2026. Yöntem: web araması + birincil kaynakların (OpenAI, Anthropic, Perplexity, Google, Cloudflare, Bing, IndexNow belgeleri; Ahrefs, Semrush, Zyppy, Vercel çalışmaları) doğrudan okunması; sitenin canlı durumu `curl` ile, kendi trafiğimiz Rybbit'ten yalnızca okuma amacıyla kontrol edildi. Kod değiştirilmedi, git komutu çalıştırılmadı. Perplexity'nin arama sayfası (`perplexity.ai/search?q=…`) otomatik erişime kapalı (HTTP 403); Türkçe sorgularda hangi sitelerin alıntılandığı bu yüzden doğrudan ölçülemedi, yerine arama motoru sonuçları vekil olarak kullanıldı ve öyle işaretlendi. Kaynaklar sondaki dipnotlarda. + +--- + +## Özet + +Yapay zekâ cevap motorlarında kaynak gösterilmenin 2026'daki en güçlü belirleyicileri sihirli bir dosya ya da özel etiket değil; sayfanın botlara açık ve sunucuda hazır HTML olarak sunulması, klasik aramada zaten iyi sıralanması, sorunun cevabını bölümün ilk cümlesinde vermesi ve içeriğin taze olmasıdır [8][7]. `llms.txt` dosyası zararsızdır ama etkisi kanıtlanmamıştır: Google "gerek yok" diyor, Ahrefs'in 137 bin siteyi kapsayan log analizinde dosyaların %97'si hiç okunmamış, 54 çalışmayı tarayan meta-analizde 23 faktörün en düşük puanlısı [3][6][8]. Yapılandırılmış veri de benzer: Google AI Overviews için özel şema istemiyor, ChatGPT ve Perplexity JSON-LD'yi düz metin gibi okuyor, 1.885 sayfalık kontrollü çalışmada şema eklemek alıntıyı kıpırdatmamış; yine de Article/Breadcrumb gibi temel türler klasik SEO için değerini koruyor [7][35][36]. Marka bahsi (Reddit, Wikipedia, YouTube, forum ve haber siteleri) backlink'ten yaklaşık üç kat daha güçlü bir sinyal; ChatGPT alıntılarının yarısından fazlası Reddit ve Wikipedia'dan geliyor, Türkiye'de bunun karşılığı Ekşi Sözlük, YouTube tercih kanalları ve tercih dönemi haber siteleridir [27][30][8]. KolayTercih'in teknik zemini büyük ölçüde hazır (sunucu HTML'i, tüm AI botlarına açık robots.txt, Article/Breadcrumb JSON-LD); eksikler ölçüm (Rybbit'te AI kanalı yok, Bing Webmaster AI raporu kurulmamış), IndexNow (Bing + Yandex, Türkiye'de aramanın %16'sı Yandex) ve rehber yazılarında görünür yazar/güncelleme tarihi ile "cevap önce" yapısıdır [41][46][48]. + +--- + +## 1. `llms.txt` standardı + +### Ne biliyoruz + +- **Kim önerdi:** Jeremy Howard (fast.ai / Answer.AI), 3 Eylül 2024. Spesifikasyonun v2'si 10 Ağustos 2026'da yayımlandı [1]. +- **Biçim (llmstxt.org):** Tek zorunlu öğe H1 başlık. Sonra kısa bir özet (blockquote), isteğe bağlı açıklama paragrafları ve H2 başlıklarıyla ayrılmış "dosya listeleri": her satır `- [ad](url): kısa not` biçiminde. "Optional" adlı bölüm, bağlam kısıtlıysa atlanabilecek ikincil bağlantıları tutar. `llms-full.txt` spesifikasyonda tanımlı değil; topluluk pratiği olarak tüm içeriğin tek Markdown dosyasında birleştirilmiş hâlidir [1]. +- **Kim benimsedi:** OpenAI, Anthropic ve Google Gemini kendi geliştirici belgeleri için llms.txt yayımlıyor; Mintlify ve GitBook otomatik üretiyor; Yoast/AIOSEO eklentileri ve Wix tüm sitelere ekliyor [1]. Dikkat: bunlar "biz de dosya yayımlıyoruz" demek, "biz bu dosyayı okuyoruz" demek değil. +- **Okuyan var mı:** Google'dan John Mueller, 17 Haziran 2025, Bluesky: "FWIW no AI system currently uses llms.txt" (bildiğim kadarıyla hiçbir yapay zekâ sistemi şu an llms.txt kullanmıyor); dosyayı eski `keywords` meta etiketine benzetti [2]. Google Search Central'ın 15 Mayıs 2026 tarihli AI arama rehberi, "efsaneler" bölümünde llms.txt'i, içerik parçalama (chunking) ve AI'ya özel şemayla birlikte "gerekmez" listesine koydu [6]; resmî belge de "AI metin dosyası, özel dosya ya da işaretleme oluşturmanız gerekmez" diyor [7]. Aynı ay Chrome'un Lighthouse 13.3 sürümü "Agentic Browsing" deneysel kategorisine llms.txt denetimi ekledi — tarayıcı ajanları için, arama için değil [6]. +- **Sunucu logları:** Ahrefs, Mayıs 2026'da trafik alan 137.210 alan adını inceledi: %28'i llms.txt yayımlamış, yaklaşık 38 bin geçerli dosyanın yalnızca ~1.100'ü herhangi bir istek almış, gelen isteklerin %96'sı bot ve bunların da önemli kısmı denetim/tarama araçları; sonuç "%97'si hiç okunmuyor" [3][4]. OpenAI'nin GPTBot'u bazı sitelerde dosyayı ara sıra çekiyor, ChatGPT aramasını besleyen OAI-SearchBot ise neredeyse hiç istemiyor; botlar dosya yoksa da sormuyor (yani yokluğu fark edilmiyor) [5]. +- **Meta-analiz:** Cyrus Shepard'ın Mayıs 2026'da 54 deney/patent/vaka çalışmasını puanladığı analizde llms.txt 23 faktör arasında 2,0/10 ile sonuncu; "alıntıyı etkilediğine dair güvenilir tek kanıt bulamadık" [8]. +- **Teknik not (zayıf kanıt):** Dosya `text/markdown` yerine `text/plain; charset=utf-8` ile sunulduğunda bazı araçların daha sorunsuz okuduğu bildiriliyor [9]. + +**Hüküm:** "Zararsız ama etkisi kanıtlanmamış." Kimseyi kaybettirmiyor; bir öğleden sonrayı hak ediyor, bir sprint'i hak etmiyor. + +### KolayTercih için anlamı + +- Bugün `kolaytercih.com/llms.txt` **404** dönüyor (24 Eyl 2026 kontrolü). Düşük maliyetli olduğu için eklenebilir: H1 "KolayTercih", iki cümle özet, H2 "Rehber" altında 46 rehber yazısının bağlantısı, H2 "Katalog" altında bölüm/üniversite/il giriş sayfaları, H2 "Optional" altında gizlilik/koşullar. Dosya `src/app/sitemap.ts` ile aynı kaynaktan (content/rehber + katalog) üretilirse eskimez. +- `llms-full.txt` üretmek için 46 yazının Markdown'ı zaten elimizde; ama bu, içeriğin toplu kopyalanmasını kolaylaştırır (bkz. §8). Şimdilik yalnızca `llms.txt` (bağlantı listesi) öneriyorum. +- Beklenti sıfıra yakın tutulmalı; "AI'da görünürlük" bunun üzerinden gelmeyecek. Asıl etki §3'teki içerik yapısından gelir. + +--- + +## 2. AI tarayıcıları: kim, ne için, nasıl davranıyor (2026) + +### Ne biliyoruz + +**Resmî belgelerden bot listesi** (amaç → robots.txt'e uyar mı): + +| Sahip | Bot | Amaç | robots.txt | Kaynak | +|---|---|---|---|---| +| OpenAI | `GPTBot` | Model eğitimi | Evet | [10] | +| OpenAI | `OAI-SearchBot` | ChatGPT aramasının dizini; engellenirse ChatGPT arama cevaplarında çıkmazsınız | Evet | [10] | +| OpenAI | `ChatGPT-User` | Kullanıcı sorusu üzerine anlık sayfa çekme | **Uygulanmayabilir** (OpenAI'nin kendi ifadesi) | [10][21] | +| Anthropic | `ClaudeBot` | Eğitim; `Crawl-delay` destekler | Evet | [11] | +| Anthropic | `Claude-SearchBot` | Arama kalitesi dizini | Evet | [11] | +| Anthropic | `Claude-User` | Kullanıcı tetiklemeli çekme | Evet (Anthropic beyanı) | [11] | +| Perplexity | `PerplexityBot` | Arama/alıntı dizini; eğitimde kullanılmıyor | Evet | [12] | +| Perplexity | `Perplexity-User` | Kullanıcı tetiklemeli çekme | Genelde uymaz | [12] | +| Google | `Googlebot` | Arama **ve AI Overviews/AI Mode** | Evet | [7][13] | +| Google | `Google-Extended` | Ayrı bot değil, robots.txt'te **kontrol anahtarı**: Gemini eğitimi ve Gemini uygulamalarında "grounding". "Google Search'e dahil olmayı etkilemez, sıralama sinyali değildir" | — | [13] | +| Microsoft | `Bingbot` | Bing dizini; Copilot cevapları bu dizine dayanır | Evet | [22] | +| Apple | `Applebot` / `Applebot-Extended` | Arama ve Siri/Apple Intelligence; Extended yalnızca eğitim opt-out anahtarı | Evet / — | [24] | +| Meta | `meta-externalagent` / `meta-webindexer` / `meta-externalfetcher` | Eğitim / Meta AI arama dizini / kullanıcı çekme | Evet / Evet / genelde uymaz | [24] | +| Amazon | `Amazonbot` / `Amzn-SearchBot` | Eğitim ve ürün geliştirme / Alexa cevapları | Evet-ish / Evet | [24] | +| Common Crawl | `CCBot` | Açık veri seti; birçok modelin başlangıç verisi (GPT-3'ün ağırlıkça ~%60'ı) | Evet | [20] | +| ByteDance | `Bytespider` | Belgesiz; Doubao eğitimi olduğu düşünülüyor | **Uymaz** (TollBit H1 2026: adını yazan Avrupa sitelerinin yarısına yakınında yasak sayfalara girdi) | [19][20] | +| DuckDuckGo | `DuckAssistBot` | DuckAssist cevapları | Evet | [24] | +| Mistral / Cohere / You.com | `MistralAI-User` / `cohere-ai` / `YouBot` | Kullanıcı çekme / eğitim / arama; YouBot da TollBit raporunda yasak sayfalara giren üç bottan biri | Karışık | [19] | + +**AI Overviews ve Google-Extended — doğrulandı:** Google'ın belgesi açık: AI Overviews ve AI Mode, Googlebot'un Arama dizininden beslenir; "bu özelliklerde görünmek için ek bir gereklilik yoktur". Görünmemek istiyorsanız klasik `nosnippet` / `max-snippet` / `noindex` kontrolleri geçerlidir; `Google-Extended`'ı kapatmak AI Overviews'ı **etkilemez** [7][13]. + +**JavaScript:** Vercel + MERJ'in Aralık 2024 analizi (aylık GPTBot 569 M, Claude 370 M, Applebot 314 M, PerplexityBot 24,4 M istek): GPTBot, ClaudeBot ve PerplexityBot JS dosyalarını indiriyor (isteklerin %11,5'i ve %23,8'i) ama **çalıştırmıyor**; yalnızca Googlebot ve Applebot tarayıcı tabanlı render yapıyor. 2026 takip analizleri aynı durumu doğruluyor. AI botlarının 404 oranı %34-35 (Googlebot %8): sitemap ve tutarlı URL'ler önemli [14]. + +**Hız/hacim:** Cloudflare'ın Ağustos 2025 verisi: AI bot trafiğinin ~%80'i eğitim amaçlı; "tarama başına geri gönderilen ziyaret" oranı Anthropic 50.000:1, OpenAI 887:1, Perplexity 118:1 [17]. 2026'da ClaudeBot ile GPTBot aylık olarak yer değiştiriyor (Temmuz 2026: ClaudeBot AI-bot trafiğinin %16,3'ü, GPTBot %9,7); `Claude-User` tek başına webin en yoğun ikinci botu (%8,3) [18]. Bytespider bazı sitelerde günde 1,4 milyon istek bildirilmiş [20]. + +**Cloudflare:** 1 Temmuz 2025'ten itibaren yeni Cloudflare alan adlarında bilinen AI tarayıcılar **varsayılan olarak engelli**; arama botları (Googlebot, Bingbot) bu engelin dışında [15]. 15 Eylül 2026'da "Block AI Bots" tek anahtarı kaldırılıp üç ayrı kontrol geldi: **Search / Training / Agent**. Reklamsız siteler için yeni varsayılan üçüne de izin; reklamlı sitelerde Search açık, Training "Disallow AI Training", Agent reklamlı sayfalarda engelli. OpenAI, Anthropic ve Perplexity'nin eğitim botları "Training"i açmadıkça engellenir; arama botları (OAI-SearchBot, PerplexityBot, Claude-SearchBot) "Search" kategorisindedir. Kontroller ücretsiz plan dahil herkese açık; panel: Security → Bots / AI Crawl Control [16]. + +**ChatGPT'nin dizini:** Ağustos 2026 Resoneo çalışması (1.249 cevap, 534 alıntılanan sayfa): OpenAI kendi dizinini ("labrador") üçüncü taraf Google-kazıma sağlayıcılarıyla birlikte kullanıyor; sayfa başına yaklaşık **200 karakter** saklıyor (H1 + ilk metin). İçerik anlaşması olmayan küçük siteler anlaşmalı sitelerle aynı biçimde sunulmuş [23]. + +### KolayTercih için anlamı + +- **robots.txt zaten doğru:** `src/app/robots.ts` 17 botu adıyla açıkça `Allow: /` yapıyor, yalnızca `/api/` kapalı; canlıda doğrulandı. Listede Bytespider, cohere-ai, YouBot, Bingbot yok; Bingbot `*` kuralıyla zaten açık. Bytespider'ı eklemenin anlamı yok (zaten uymuyor), engellemek isteniyorsa sunucu seviyesinde yapılır — ama Türkiye'de Doubao kullanıcısı yok denecek kadar az, emek harcamaya değmez. +- **Cloudflare arkasında değiliz** (yanıt başlıklarında `cf-ray` yok; deploy VPS + Docker). Dolayısıyla "varsayılan engel" bizi etkilemiyor. İleride Cloudflare'a geçilirse ilk iş Search ve Training'i "Allow" yapmak. +- **Sunucu HTML'i hazır:** rehber, bölüm ve ana sayfa `curl` ile alındığında başlıklar ve JSON-LD ham HTML'de var; Next.js SSR bu sorunu çözmüş. Tek uyarı: `/bolum/bilgisayar-muhendisligi` ham HTML'i **573 KB**. Botların ilk 200 karakteri sakladığı düşünülürse H1 ve hemen altındaki ilk paragraf sayfanın "vitrini"dir; o ilk paragraf sıralama, kontenjan ve yıl bilgisini cümle olarak vermeli. +- **Eğitim botlarına açık olmak bilinçli karar** (robots.ts yorumunda yazıyor: "aramasız yanıtlarda markanın bilinmesi buradan geçer"). Bedeli §8'de. +- `ClaudeBot` için `Crawl-delay: 1` eklemek sunucuyu korur; Anthropic bunu resmî destekliyor [11]. Diğerleri desteklemiyor. + +--- + +## 3. Alıntılanma faktörleri + +### Ne biliyoruz + +**Princeton GEO makalesi (Aggarwal vd., 2023; KDD 2024):** 10.000 sorguluk GEO-bench'te 9 taktik denendi. İstatistik ekleme (+41 %), alıntı/tırnak ekleme (+28 %), kaynak gösterme, akıcılık ve otoriter ton görünürlüğü %30-41 artırdı; anahtar kelime doldurma işe yaramadı. En iyi kombinasyon "akıcılık + istatistik". Sınır: deney Bing Chat benzeri bir sistemde yapıldı, Perplexity'de doğrulandı; Google AI Overviews'ta değil [25]. + +**2026 meta-analiz (Zyppy / Cyrus Shepard, 54 çalışma, 23 faktör, 10 üzerinden kanıt puanı) [8]:** + +| Sıra | Faktör | Puan | Türkçesi | +|---|---|---|---| +| 1 | URL erişilebilirliği | 9,5 | Bot sayfayı çekebiliyor mu, HTML'de içerik var mı | +| 2 | Arama sıralaması | 9,4 | Klasik Google/Bing sıralaması | +| 3 | Fan-out sıralaması | 9,3 | Motorun ürettiği alt-sorgularda sıralama | +| 4 | Önizleme kontrolü | 9,2 | `nosnippet`/`max-snippet` ile kendini kısıtlamamak | +| 5 | Soru-cevap eşleşmesi | 9,2 | Sorunun cevabı sayfada açıkça var | +| 8 | Cevap üstte | 8,8 | Bölümün ilk 100 kelimesinde net cevap | +| 9 | AI'ya hazır yapı | 8,6 | Başlık, liste, tablo, kısa paragraf | +| 10 | Olgusal ve spesifik | 8,3 | Sayı, tarih, isim | +| 12 | Kaynak gösterme | 8,0 | | +| 13 | Kendi başına anlamlı pasajlar | 8,0 | Her bölüm bağlamsız okunabilir | +| 15 | Tazelik | 7,0 | | +| 16 | Marka/varlık güveni | 6,8 | | +| 20 | Yapılandırılmış veri | 5,6 | | +| 22 | Domain otoritesi | 5,0 | | +| 23 | llms.txt | 2,0 | | + +Shepard'ın özeti: "SEO'yu kazan, AI alıntısını (çoğunlukla, birkaç ek adımla) kazan." + +**Sektör çalışmaları:** +- **Ahrefs (Q1 2026 raporu, 13 çalışma):** AI araçlarının alıntıladığı URL'lerin yalnızca %12'si Google ilk 10'la örtüşüyor; ChatGPT'de örtüşme %6,8; AI'nın alıntıladığı içerik organik ilk 10'dan %25,7 daha taze; 75.000 markada **YouTube'da bahsedilme** AI görünürlüğünün en güçlü habercisi (korelasyon 0,737; backlink 0,218) [26][27]. Organik ilk 10'dan gelen alıntı payı 2025 ortasında %76'dan 2026'da %38'e düştü [8]. +- **Semrush (Ocak-Nisan 2026, 126 milyon ABD prompt'u):** ChatGPT alıntılarının %28,9'u Reddit, %23,1'i Wikipedia; toplulukla referans kaynakları birlikte ~%59 [30]. **50.000 marka çalışması:** kategoriyi "sahiplenen" markaların yalnızca %52,5'i daha yüksek Authority Score'a sahip; yani domain gücü ChatGPT görünürlüğünü açıklamıyor, konu genelinde derin kapsama açıklıyor [28]. **"Hayalet alıntı" çalışması (Haziran 2026):** alıntıların %62'sinde marka adı cevabın metninde geçmiyor; karşılaştırmalı sorgular 2,4 kat daha çok marka bahsi üretiyor; kısa sorgularda bahsi oranı çok daha yüksek [29]. +- **Profound (680 milyon alıntı, Ağu 2024-Eki 2025):** ChatGPT ile Perplexity'nin ortak alıntıladığı domain oranı yalnızca %11; Reddit, Ekim 2025'te Perplexity'ye açtığı davadan sonra Perplexity alıntılarında %86 düştü [31][39]. +- **Kevin Indig:** AI'da en çok alıntılanan sayfaların ilk %10'u tipik SEO kazananlarından daha az trafik, daha az anahtar kelime, daha az backlink alıyor; marka bahsi backlink'ten ~3 kat güçlü [32]. +- **Aleyda Solis (Eyl 2026 kontrol listesi):** 30-50 temsilî prompt tanımla, görünürlüğü ölç; "erişilebilir, çıkarılabilir, tutarlı, dış kaynaklarca doğrulanmış, taze" olmayı hedefle; alıntı kaynağı sayfa ile trafik alan sayfa genelde farklı URL'lerdir; dış alan adları alıntıların %70-93'ünü oluşturur [33]. +- **iPullRank:** Google AI Mode soruyu onlarca alt-soruya böler (query fan-out), cevabı pasaj seviyesinde derler; her pasaj "varlık adı + doğrulanabilir birkaç olgu" ile tek başına anlamlı olmalı [34]. +- **ChatGPT snippet'i:** ~200 karakter, H1 + ilk metin [23]. + +### KolayTercih için anlamı + +Rehber yazıları zaten mermaid şeması, karşılaştırma tablosu ve resmî kaynak teyidiyle yazılıyor; bu, "olgusal ve spesifik" ile "kaynak gösterme" faktörlerini karşılıyor. Eksik olan, sayfanın **girişi**: örnek rehberin (`ais-tercih-nasil-yapilir-onaylama.md`) ilk paragrafı bağlam kuruyor, cevabı ikinci bölümde veriyor. Yapılacaklar: + +1. **Her rehberin ilk 2-3 cümlesi doğrudan cevap olsun** (tarih, sayı, kural). Bağlam ve hikâye sonra. Bu tek değişiklik, meta-analizde 8,8 puanlı "cevap üstte" ve ChatGPT'nin 200 karakterlik snippet'ini birlikte karşılar. +2. **H2 başlıklar soru biçiminde ve her bölüm bağımsız okunabilir** ("2026'da tercih penceresi ne zaman?" → ilk cümlede 29 Temmuz-10 Ağustos). +3. **Katalog sayfalarında (bölüm/üniversite/il) ilk paragraf cümle hâlinde özet:** "Bilgisayar Mühendisliği 2026'da 164 üniversitede 220 programla öğrenci aldı; taban sıralaması 113 ile 298.425 arasında." Tablodan önce bu cümle olmalı — botun sakladığı 200 karakter bu. +4. **Orijinal veri = bizim en güçlü kartımız:** altı yıllık taban sıralama serisi, "hangi bölümlerin kontenjanı azaldı", "boş kontenjanlar" gibi yazılar başka yerde olmayan sayılar içeriyor. Princeton'ın +41 %'lik istatistik etkisi tam burada. Her rehberde en az bir "KolayTercih verisine göre…" cümlesi ve rakam. +5. **Tazelik görünür olsun:** frontmatter'da `tarih` var ama "son güncelleme" yok; sayfada görünür güncelleme tarihi + `dateModified` (Article JSON-LD'de zaten var, ama kaynağı `tarih`e eşit). +6. **Fan-out'a hazırlık:** "2026 YKS tercih nasıl yapılır" sorusu motorda "tercih tarihleri / kaç tercih hakkı / AİS ekranı / sıralama nasıl belirlenir" alt-sorularına bölünür; bu alt-soruların her biri için ayrı, kısa, cevap-önce bölüm ya da yazı olması gerekir. 46 yazılık küme bunu büyük ölçüde karşılıyor; eksik alt-sorular §5'teki sorgu vekillerinden çıkarılabilir. +7. **Karşılaştırmalı içerik marka bahsi getirir** (Semrush: 2,4 kat): "tercih robotu mu, danışman mı, KolayTercih mi" tarzı dürüst karşılaştırma yazısı; §5'teki `21-rakipler-ve-kanallar.md` verisi hazır malzeme. + +--- + +## 4. Yapılandırılmış veri + +### Ne biliyoruz + +- **Google:** "AI Overviews ya da AI Mode'da görünmek için eklemeniz gereken özel bir schema.org yapılandırılmış verisi yoktur" [7]. Klasik zengin sonuçlar için şema hâlâ geçerli. +- **ChatGPT / Perplexity:** Mark Williams-Cook'un Şubat 2026 deneyi: yalnızca JSON-LD içine konan (görünür metinde olmayan, hatta geçersiz) bir adresi iki motor da cevaba aldı; sonuç: JSON-LD'yi **düz metin olarak** okuyorlar, şema geçerliliği fark etmiyor [36]. +- **Kontrollü çalışma (Ahrefs, 11 Mayıs 2026):** Ağustos 2025-Mart 2026 arasında JSON-LD ekleyen 1.885 sayfa, 4.000 kontrol sayfasıyla karşılaştırıldı: AI Mode +2,4 %, ChatGPT +2,2 % (istatistiksel olarak sıfırdan ayırt edilemez), AI Overviews −4,6 % (küçük ama anlamlı düşüş). Article, FAQ, Product, HowTo, Organization birlikte ölçüldü; "SEO'nun geri kalanını iyi yapıyorsanız JSON-LD kilit değil" [35]. +- **FAQPage:** Ağustos 2023'te yalnızca "tanınmış devlet ve sağlık siteleri"ne daraltıldı; **7 Mayıs 2026**'da Google FAQ zengin sonuçlarını tamamen kaldırdı (Search Console raporu Haziran, API Ağustos 2026'da bitti). İşaretleme sayfada kalabilir, zarar vermez, ama Google'da görünür karşılığı yok [37]. Bing/Perplexity için "metin olarak" okunuyor, o kadar. +- **Diğer türler:** Meta-analizde "yapılandırılmış veri" 5,6/10 [8]. Article (yazar/tarih), BreadcrumbList (site yapısı), Organization (varlık tutarlılığı) klasik SEO ve varlık tanıma için değerli; Dataset "birincil veri" sinyali için mantıklı ama AI motorlarında ölçülmüş etkisi yok; Speakable niş (sesli asistan), AI motorları kullanmıyor; ItemList liste sayfaları için uygun [38-b]. + +### KolayTercih için anlamı + +- `src/lib/seo.tsx`'te Organization, WebSite, SoftwareApplication, FAQPage, BreadcrumbList, Article ve CollegeOrUniversity var. **Bu yeterli; yeni şema eklemek AI görünürlüğü getirmez.** Küçük düzeltmeler: + - **Article `author` şu an Organization.** E-E-A-T ve Article için gerçek kişi (`Person`, ad + kısa biyografi sayfası) daha inandırıcı; rehberlerde görünür "Yazan / Son güncelleme" satırıyla eşleşmeli. + - **FAQPage'i kaldırmaya gerek yok**, ama yeni yatırım da yapılmasın; soru-cevap içeriği görünür metin olarak sayfada olsun (AI motorları zaten metni okuyor). + - Katalog sayfalarındaki altı yıllık taban sıralama tabloları için `Dataset` eklenebilir; etkisi kanıtsız, eforu düşük — "olursa iyi" sınıfı. + - JSON-LD içindeki her bilgi görünür metinde de olsun (Williams-Cook deneyi tersini gösterdi ama bu bir "tuhaflık", strateji değil; Google için de gizli-içerik riski). + +--- + +## 5. Marka bahsi ve dış varlık + +### Ne biliyoruz + +- **Modeller markayı nereden öğreniyor:** Eğitim verisinde Common Crawl, Wikipedia ve Wikidata; cevap anında ise arama dizinleri + Reddit/Wikipedia/YouTube/LinkedIn/haber siteleri. ChatGPT alıntılarının ~%52'si Reddit + Wikipedia [30]; YouTube bahsi 75 bin markada en güçlü sinyal [27]; Perplexity'de Reddit payı davadan sonra %86 düştü ama YouTube, LinkedIn, Forbes, Yelp tarzı kaynaklar sürüyor [31][39]. +- **Wikidata:** Wikipedia'dan çok daha esnek; "ciddi, herkese açık, kendi sitesi dışında kaynaklarla tanımlanabilir varlık" yeterli (haber yazısı, dizin kaydı). Wikipedia için "bağımsız, önemli kapsam" şartı çoğu küçük markayı eler [38]. +- **Türkiye bağlamı (kanıt: kendi ölçümlerimiz + arama sonuçları; Perplexity doğrudan ölçülemedi):** + - Arama pazarı, Ağustos 2026 Statcounter: Google %82,3, **Yandex %16,0**, Bing %0,9 [41]. Yandex Türkiye'nin AI aramasi Yazeka, sorguların %40'ından fazlasına yapay zekâ cevabı veriyor ve 2025'te kullanıcı tabanı %75 büyüdü [40]. Yani Türkiye'de "AI cevap motoru" denince Google AI Overviews'tan sonra ikinci sırada Yazeka var; ChatGPT ve Gemini'nin Türkiye'ye özel payı bulunamadı (küresel gen-AI site trafiği, Ağustos 2026: ChatGPT %56,7, Gemini %25,4, Claude %6,0 [50]). + - **"2026 YKS tercih nasıl yapılır"** aramasında ilk sonuçlar: gzt.com, ntv.com.tr, halic.edu.tr, **osym.gov.tr**, milliyet, hürriyet, **meb.gov.tr (PDF kılavuz)**, haberturk [42]. Haber siteleri + resmî kaynak. Cevap motorlarının aynı havuzdan beslendiği makul varsayım. + - **"bilgisayar mühendisliği taban sıralaması 2026":** haberturk, kariyer.net, boenstitu, yksprogram.com.tr, kazanabilirsin, tabanpuanlari.tr, derecekampusu, dogrutercihler, inekle [43]. Reklamlı tablo siteleri; kolaytercih.com yok. + - **"yks tercih danışmanı":** Instagram hesabı, MEB RAM sayfaları, tercih.ibb.istanbul, armut.com (1.095 danışman), koçluk siteleri [44]. Kurumsal/pazar yeri sayfaları. + - Ekşi Sözlük'te tercih dönemi yardımlaşma başlıkları var (24 May-23 Tem 2026 arası birkaç düzine girdi; `21-rakipler-ve-kanallar.md`); Reddit r/Turkey ve r/YKS otomatik erişime kapalıydı (doğrulanamadı). Ekşi'nin ChatGPT'de Türkçe kaynak olarak kullanıldığı topluluk gözlemi var, ölçülmüş veri yok [45-b]. + - Kendi Rybbit verimiz (2 Ağu-24 Eyl 2026, tüm zaman): AI kaynaklı toplam **8 ziyaret** — gemini.google.com 5, chatgpt.com 1, duckduckgo 1, yandex.com.tr 1. Sosyal medyadan sıfır. + +### KolayTercih için anlamı + +- **Ölçülebilir ilk adım:** 30-50 Türkçe prompt (Aleyda yöntemi) — "2026 tercih nasıl yapılır", "X bölümü Y sıralamayla gelir mi", "tercih listesi nasıl kurulur", "tercih danışmanı gerekli mi" — her ay ChatGPT, Gemini, Perplexity, Yazeka ve Google AI Overviews'ta elle sorulur; hangi sitelerin çıktığı tabloya işlenir. Elle yapılır, ücretsizdir; bu belgede yapılamadı çünkü arama sayfaları bot erişimine kapalı. +- **Kaynak havuzuna girmenin yolu:** tercih döneminde haber siteleri (NTV, Habertürk, Hürriyet, Milliyet eğitim editörleri) "tercih uzmanı görüşü" arıyor; KolayTercih'in altı yıllık veri serisinden çıkan bir sayı ("2026'da X programın kontenjanı boş kaldı") bir haberde geçtiğinde hem Google'a hem cevap motorlarına aynı anda girer. Bu, backlink'ten değerli "marka bahsi"dir. +- **YouTube:** Ahrefs'in en güçlü sinyali. Tercih videoları küçük izlenmeli (3-43 bin) ama rakip azlığı fırsat (`21-rakipler-ve-kanallar.md`). Kısa, veriye dayalı videolar ("altı yılda taban sıralaması en çok değişen 10 bölüm") + açıklamada kolaytercih.com bağlantısı. +- **Wikidata kaydı:** düşük efor, orta değer. Şart: kendi sitemiz dışında en az bir-iki güvenilir kaynak (haber, dizin). Wikipedia şimdilik gerçekçi değil. +- **Ekşi Sözlük:** başlık açmak/yönlendirmek marka için riskli; doğal bahsi beklenir. Ama "kolaytercih" başlığının doğru bilgi taşıması izlenmeli. +- **Tutarlı varlık kartı:** ad "KolayTercih" (tek yazım), kuruluş, ne yaptığı, iletişim — sitede, Organization JSON-LD'de, sosyal profillerde, Google İşletme Profili'nde birebir aynı. Semrush'ın "entity consistency" faktörü [28]. +- **Yazeka için özel bir şey yapmaya gerek yok**: Yandex dizinine girmek yeterli; §7'deki IndexNow + Yandex Webmaster bunu sağlar. + +--- + +## 6. Ölçüm + +### Ne biliyoruz + +- **Yönlendiren (referrer) alan adları:** `chatgpt.com` (bazen `utm_source=chatgpt.com` ekler, her tıklamada değil), `perplexity.ai`, `gemini.google.com`, `claude.ai`, `copilot.microsoft.com` (çoğu zaman `bing.com` içinde kaybolur), `you.com`, `meta.ai`, Türkiye için `yandex.com.tr` / `yazeka`. GA4'te özel kanal grubu regex'i: `chatgpt\.com|chat\.openai\.com|perplexity\.ai|gemini\.google\.com|claude\.ai|copilot\.microsoft\.com|you\.com|meta\.ai` [45]. Kullanıcı adresi görüp elle yazarsa hiç referrer gelmez; AI etkisi "direkt" trafikte saklanır. +- **Search Console:** 3 Haziran 2026'da duyurulan "Generative AI performance" raporu, 31 Ağustos 2026'dan beri tüm sitelerde. AI Overviews + AI Mode toplam **gösterim**; sayfa/ülke/cihaz/tarih kırılımı var; **tıklama, sorgu, konum yok**, AI Overviews ile AI Mode ayrılamıyor. AI Overviews'ta bir bağlantı ancak kaydırılıp görünür olunca gösterim sayılıyor [46][47]. +- **Bing Webmaster Tools:** 10-11 Şubat 2026'da "AI Performance" raporu: Copilot + Bing AI özetlerinde **alıntı sayısı**, alıntılanan sayfalar, "grounding queries" (motorun içeride ürettiği sorgular); Haziran 2026'da Intents, Topics, Citation Share, Compare eklendi. Tıklama/trafik yok, yalnızca alıntı sıklığı [48][49]. +- **Ücretsiz görünürlük araçları:** yukarıdaki iki panel + elle prompt seti. Ücretli araçlar (Profound, Peec, Otterly, Semrush AI Toolkit) bu ölçekte gereksiz. +- **Küresel ölçek:** AI yönlendirmeleri Haziran 2025'te 1,13 milyar ziyaret, yıllık +%357; %80'i ChatGPT [45]. Bizim ölçeğimizde: 8 ziyaret. + +### KolayTercih için anlamı + +- **Rybbit'te "AI" kanalı yok**; `channel` kırılımı bu siteleri "referral"a atıyor. Yapılacak: Rybbit'te referrer regex'iyle kaydedilmiş bir görünüm/filtre (yukarıdaki regex + `yandex\.com\.tr` ayrı tutulmalı çünkü Yandex hem klasik arama hem Yazeka). Kodda `chatgpt|perplexity|utm_source` geçmiyor; UTM işleme gerekmez, referrer yeter. +- **Bing Webmaster Tools'a site eklenmeli** (sitemap zaten Bing'e gönderildi, AGENTS.md notu) ve AI Performance raporu aylık okunmalı; Copilot'un Türkiye'deki payı küçük ama bu, alıntı davranışını **ücretsiz görebildiğimiz tek yer**. +- **Search Console gen-AI raporu** aylık not: hangi rehberler AI Overviews'ta gösteriliyor. Bu rapor `docs/ekip/YAYIN-KUYRUGU.md`'deki Search Console rutinine tek satır olarak eklenebilir. +- **Elle prompt paneli** (§5) — aylık 30 dakika, tablo `docs/arastirma/` altında. + +--- + +## 7. IndexNow, Bing ve Yandex + +### Ne biliyoruz + +- IndexNow: Ekim 2021'de Microsoft Bing + Yandex ortak protokolü. Destekleyenler: **Bing, Yandex, Naver, Seznam, Yep**; **Google desteklemiyor** ("izliyoruz" demenin ötesine geçmedi) [51][52]. +- Kurulum: 8-128 karakterlik anahtar üret, `https://kolaytercih.com/.txt` olarak kökte yayımla; tek URL için `GET https://api.indexnow.org/indexnow?url=…&key=…`, toplu için `POST` JSON (`host`, `key`, `urlList`, istek başına en çok 10.000 URL). Bir motora gönderilen tüm katılımcılara dağıtılır. Aşırı gönderim spam sayılır [52]. +- Türkiye'de Yandex payı Ağustos 2026'da %16 (2024'te %42'den düşmüş ama hâlâ Bing'in 18 katı) [41]; Yazeka'nın AI cevapları bu dizinden besleniyor [40]. Bing dizini ise Copilot'u besliyor [22]; ChatGPT artık kendi dizini + Google kazıması kullanıyor, Bing'e eski bağımlılığı yok [23]. + +### KolayTercih için anlamı + +- **Değer: orta, efor: düşük.** 1.011 URL'lik sitemap Bing ve Yandex'e zaten gönderildi; IndexNow, yeni rehber ya da güncellenen katalog sayfasının saatler içinde Yandex/Bing dizinine girmesini sağlar. Tercih döneminde (Temmuz-Ağustos) bir yazının aynı gün dizine girmesi anlamlı; Yazeka'da görünmek için tek somut kaldıraç bu. +- Uygulama: `content/rehber`'e yeni dosya eklendiğinde ya da katalog verisi yenilendiğinde (`KATALOG_VERI_TARIHI` değişince) değişen URL'leri IndexNow'a gönderen küçük bir betik (`scripts/` altında; deploy sonrası çalışır). Anahtar dosyası `public/` altına. +- **Yandex Webmaster'a site eklenmeli** (bugün kodda/belgede Yandex izi yok): sitemap gönderimi, Türkçe bölge ayarı, IndexNow doğrulaması. AGENTS.md'deki yayın sonrası rutine "Yandex Webmaster" satırı eklenmeli (şimdilik yalnızca Search Console + Bing var). +- Google için IndexNow çalışmaz; Search Console URL denetimi rutini (günde ~11 istek) sürer. + +--- + +## 8. Riskler + +### Ne biliyoruz + +- **`llms.txt`'e gizli bilgi:** dosya herkese açık, robots.txt gibi okunur; içine "yalnızca AI için" iç bilgi, fiyat notu, prompt talimatı koymak hem sızıntı hem de (talimat içerirse) prompt-injection sayılır; OWASP LLM01 sınıfı [53-b]. Ayrıca sayfada olmayan bilgiyi botlara vermek Google'ın "gizleme (cloaking)" tanımına yakın düşer. +- **Eğitim botlarına açık olmanın bedeli:** eğitim amaçlı tarama AI bot trafiğinin ~%80'i; Anthropic 50.000 sayfa tarayıp 1 ziyaret gönderiyor [17]. İçerik modele girer, alıntısız yeniden üretilebilir; "hayalet alıntı" çalışması alıntılanan içeriğin %62'sinde marka adının geçmediğini gösteriyor [29]. Kapatmanın bedeli ise aramasız cevaplarda ("KolayTercih nedir?") markanın hiç bilinmemesi. Bu bir tercih; bugünkü karar "açık" ve gerekçesi robots.ts'te yazılı. +- **Google spam politikası (son güncelleme 28 Ağu 2026):** "Ölçekli içerik istismarı" — kullanıcıya yardım değil sıralama amacıyla çok sayıda sayfa üretmek; AI ile yazılmış olmak tek başına ihlal değil, "değer katmadan çok sayfa" ihlal. 15 Mayıs 2026'da politikanın giriş cümlesine "**Google Search'teki üretken AI cevaplarını manipüle etmeye çalışmak**" da eklendi. Ağustos 2026 spam güncellemesi (18-21 Ağu) ölçekli içeriği hedefledi; editoryal denetimsiz yüzlerce AI sayfası yayımlayan siteler %50-80 trafik kaybetti [53][55]. Google'ın AI içerik belgesi: doğruluk, kalite, alaka; "içeriğin nasıl üretildiğini paylaşmak okuyucuya bağlam verir" [54]. +- **"AI yazdı" izlenimi:** okuyucu ve editör güvenini düşürür; Google'ın kalite değerlendirmesinde "az emek, özgünlük yok, katma değer yok" tanımına girer [54]. Kanıt gücü orta (doğrudan ölçüm yok, politika metni var). +- **Site itibarı istismarı:** üçüncü taraf içeriği ana sitenin sıralama gücünden yararlanmak için barındırmak [53]. Bizde yok; ileride "sponsorlu üniversite yazısı" teklifi gelirse hatırlanmalı (Univerlist örneği, `21-rakipler-ve-kanallar.md`). + +### KolayTercih için anlamı + +- **Katalog sayfaları (1.011 URL) "ölçekli içerik" tanımına yaklaşabilir** — eğer sayfalar yalnızca tablo şablonuysa. Her bölüm/üniversite/il sayfasında **o sayfaya özgü, veriden türeyen** en az bir-iki cümle olması (sıralama trendi, kontenjan değişimi, o ilin kaç programı) hem AI alıntısı için (§3) hem spam politikasına karşı savunmadır. `il-izgara-verisi.ts` ve altı yıllık seri bunu üretebilir. +- **Rehberler:** insan editör, görünür yazar, kaynak listesi, güncelleme tarihi — hepsi zaten iş akışında (rehber-yazari / rehber-editoru); sayfada görünür hâle gelmesi yeter. "Bu yazı X tarafından yazıldı, Y tarihinde ÖSYM kılavuzuyla kontrol edildi" satırı. +- **`llms.txt` yalnızca bağlantı listesi** olsun; site metninde olmayan hiçbir şey içermesin. +- Eğitim botları kararı **yılda bir** gözden geçirilsin: Türkçe tercih sorularında ChatGPT/Gemini aramasız cevaplarda KolayTercih'i anıyorsa açık kalmanın karşılığı var demektir; anmıyorsa GPTBot/ClaudeBot/CCBot'u kapatıp yalnızca arama botlarını (OAI-SearchBot, Claude-SearchBot, PerplexityBot, Googlebot, Bingbot) açık tutmak sunucu yükünü %80 azaltır ve görünürlüğü etkilemez [10][11][17]. + +--- + +## Öneri tablosu + +Kanıt gücü: **güçlü** = birincil belge ya da büyük örneklemli/kontrollü çalışma; **orta** = tutarlı sektör verisi, mekanizma mantıklı; **zayıf** = anekdot ya da ölçülmemiş. + +| # | Öneri | Kanıt gücü | Beklenen etki | Efor | +|---|---|---|---|---| +| 1 | Rehber ve katalog sayfalarında **ilk paragraf = doğrudan cevap** (tarih, sayı, kural); H2'ler soru biçiminde, her bölüm bağımsız okunabilir [8][23][33] | Güçlü | Yüksek — AI alıntısı ve klasik snippet birlikte | Orta (46 yazı + 3 katalog şablonu) | +| 2 | Katalog sayfalarına **veriden üretilen, sayfaya özgü özet cümleler** (H1 altına) — hem 200-karakter snippet hem "ölçekli içerik" savunması [23][53] | Güçlü | Yüksek | Orta (şablon + veri fonksiyonu) | +| 3 | Her rehberde **KolayTercih verisinden en az bir orijinal istatistik** ve kaynak dipnotu [25][8] | Güçlü (Princeton +41 %, meta-analiz 8,3) | Orta-yüksek | Düşük (yazı akışına kural) | +| 4 | Rehberlerde **görünür yazar (kişi) + son güncelleme tarihi**; Article JSON-LD `author` → `Person`, `dateModified` gerçek güncellemeden [54][8] | Orta | Orta (güven + tazelik) | Düşük | +| 5 | **Rybbit'te AI kanalı** (referrer regex; Yandex ayrı) ve aylık not [45] | Güçlü (mekanizma kesin) | Ölçüm — etki değil, görüş | Düşük | +| 6 | **Bing Webmaster AI Performance** + **Search Console gen-AI raporu** aylık okuma; YAYIN-KUYRUGU rutinine satır [46][48] | Güçlü | Ölçüm | Düşük | +| 7 | **Aylık 30-50 Türkçe prompt paneli** (ChatGPT, Gemini, Perplexity, Yazeka, AI Overviews) — elle [33] | Orta | Ölçüm + içerik boşluğu tespiti | Düşük (aylık 30 dk) | +| 8 | **IndexNow** betiği (yeni rehber / katalog yenilemesi) + **Yandex Webmaster** kaydı [51][52][41] | Güçlü (protokol resmî; Yandex %16) | Orta — Yandex/Yazeka ve Bing'de hızlı dizin | Düşük | +| 9 | **Tercih dönemi basın notu**: altı yıllık seriden çıkan 1-2 çarpıcı sayı, eğitim editörlerine [27][32] | Orta | Yüksek (marka bahsi backlink'ten 3× güçlü) | Orta (yılda 2-3 kez) | +| 10 | **YouTube**: veriye dayalı kısa videolar, açıklamada bağlantı [27] | Orta (korelasyon 0,74; nedensellik kanıtsız) | Orta-yüksek, yavaş | Yüksek | +| 11 | **Wikidata kaydı** (dış kaynak şartıyla) + tutarlı varlık kartı (ad, kuruluş, iletişim her yerde aynı) [38][28] | Orta | Düşük-orta | Düşük | +| 12 | **`llms.txt`** (yalnızca bağlantı listesi, sitemap'le aynı kaynaktan, `text/plain`) [1][3] | Zayıf (etki kanıtsız, zararsız) | Düşük | Düşük (yarım gün) | +| 13 | `ClaudeBot` için `Crawl-delay: 1` [11] | Güçlü (resmî destek) | Sunucu yükü | Çok düşük | +| 14 | **Karşılaştırmalı rehber** ("tercih robotu / danışman / KolayTercih") [29] | Orta | Orta (marka bahsi 2,4×) | Düşük | +| 15 | **Yeni şema eklememek** (Dataset isteğe bağlı); FAQPage'e yatırım yok [7][35][37] | Güçlü | — (efor tasarrufu) | — | +| 16 | Eğitim botları kararını **yılda bir** prompt paneline göre gözden geçirmek [17][29] | Orta | Risk yönetimi | Çok düşük | +| 17 | `llms-full.txt` **yapılmasın** (kopyalama kolaylığı, kanıtsız etki) | Zayıf/orta | — | — | + +**Sıra önerisi:** 5-6-8-13 (bir gün, ölçüm + altyapı) → 1-2-3-4 (içerik yapısı, asıl etki) → 7-9-14 → 10-11-12. + +--- + +## Kaynaklar + +1. llms.txt spesifikasyonu (Jeremy Howard, 3 Eyl 2024; v2 10 Ağu 2026) — https://llmstxt.org/ +2. Search Engine Roundtable, "Google Says No AI System Currently Uses LLMs.txt" (Mueller, Bluesky, 17 Haz 2025) — https://www.seroundtable.com/google-ai-llms-txt-39607.html +3. Ahrefs, "We Analyzed 137K Sites: 97% of llms.txt Files Never Get Read" (Mayıs 2026 verisi) — https://ahrefs.com/blog/llmstxt-study/ +4. Search Engine Journal, "97% Of llms.txt Files Got No Requests, Ahrefs Data Shows" — https://www.searchenginejournal.com/97-of-llms-txt-files-got-no-requests-ahrefs-data-shows/579478/ +5. 1ClickReport, "llms.txt in 2026: The Evidence Says It Does Nothing" (SE Ranking korelasyon bulgusu ve bot log özetleri, ikincil) — https://www.1clickreport.com/blog/llms-txt-evidence-2026 +6. Search Engine Journal, "Google's llms.txt Guidance Depends On Which Product You Ask" (15 May 2026 rehberi + Lighthouse 13.3) — https://www.searchenginejournal.com/googles-llms-txt-guidance-depends-on-which-product-you-ask/575431/ +7. Google Search Central, "AI Features and Your Website" — https://developers.google.com/search/docs/appearance/ai-features +8. Cyrus Shepard / Zyppy, "AI Citation Ranking Factors Analysis" (54 çalışma, 23 faktör, May 2026) — https://signal.zyppy.com/p/ai-citation-ranking-factors +9. DEV Community, "Why is my llms.txt not working in ChatGPT or Gemini" (Content-Type gözlemi, anekdot) — https://dev.to/sip/why-is-my-llmstxt-not-working-in-chatgpt-or-gemini-41dp +10. OpenAI, "Overview of OpenAI crawlers" — https://developers.openai.com/api/docs/bots +11. Anthropic, "Does Anthropic crawl data from the web, and how can site owners block the crawler?" — https://support.claude.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler +12. Perplexity, "Perplexity crawlers" — https://docs.perplexity.ai/guides/bots +13. Google Search Central, "Google's common crawlers" (Google-Extended) — https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers +14. Vercel + MERJ, "The rise of the AI crawler" (Aralık 2024) — https://vercel.com/blog/the-rise-of-the-ai-crawler +15. Cloudflare Blog, "Your site, your rules: new AI traffic options for all customers" (1 Tem 2025) — https://blog.cloudflare.com/content-independence-day-ai-options/ +16. Cloudflare Blog, "Have it both ways: stay discoverable in search while disallowing AI training" (15 Eyl 2026) — https://blog.cloudflare.com/accountable-mixed-use-ai-crawlers/ +17. Cloudflare Blog, "A deeper look at AI crawlers: breaking down traffic by purpose and industry" (Ağu 2025) — https://blog.cloudflare.com/ai-crawler-traffic-by-purpose-and-industry/ +18. websearchapi.ai, "Monthly AI Crawler Report: July 2026" (Cloudflare Radar verisinin ikincil özeti) — https://websearchapi.ai/blog/monthly-ai-crawler-report +19. PPC Land, "15% of AI page fetchers in Europe reached disallowed URLs, TollBit finds" (Ağu 2026) — https://ppc.land/15-of-ai-page-fetchers-in-europe-reached-disallowed-urls-tollbit-finds/ +20. Open Shadow, "Blocking Bytespider: Why robots.txt Isn't Enough (2026)" ve Common Crawl Wikipedia maddesi — https://www.openshadow.io/guides/blocking-bytespider ; https://en.wikipedia.org/wiki/Common_Crawl +21. Search Engine Journal, "OpenAI Says Robots.txt May Not Apply To ChatGPT's Fetch Bot" — https://www.searchenginejournal.com/openai-says-robots-txt-may-not-apply-to-chatgpts-fetch-bot/585864/ +22. Bing Search Blog, "Introducing Copilot Search in Bing" (Nis 2025) — https://blogs.bing.com/search/April-2025/Introducing-Copilot-Search-in-Bing +23. Search Engine Journal, "ChatGPT's Search Index Serves Small Sites Too, Data Shows" (Resoneo, 11 Ağu 2026) — https://www.searchenginejournal.com/chatgpts-search-index-serves-small-sites-too-data-shows/585388/ +24. Anagram, "AI crawler user-agent list 2026" ve ContextBolt, "AI Crawlers List" — https://www.anagram.ai/blog/ai-crawler-user-agent-list-2026-14-bots-and-robotstxt-tokens-to-know ; https://contextbolt.com/blog/ai-crawlers-list/ +25. Aggarwal vd., "GEO: Generative Engine Optimization" (KDD 2024) — https://collaborate.princeton.edu/en/publications/geo-generative-engine-optimization/ ; özet: https://blckalpaca.at/en/knowledge-base/seo-geo/geo-generative-engine-optimization/the-princeton-geo-study-methodology-results-and-critique +26. Ahrefs, "AI SEO statistics" ve "AI search overlap" — https://ahrefs.com/blog/ai-seo-statistics ; https://ahrefs.com/blog/ai-search-overlap/ +27. Business Wire, "Across 75,000 Brands, YouTube Mentions Are the Strongest Signal of AI Visibility, New Ahrefs Report Reveals" (26 May 2026) — https://www.businesswire.com/news/home/20260526119691/en/ +28. Semrush, "AI visibility is a topic-level game: A study of 50,000 brands in ChatGPT" (Oca-Haz 2026) — https://www.semrush.com/blog/chatgpt-topic-authority-study/ +29. Semrush, "Why 62% of AI citations don't lead to brand mentions" (9 Haz 2026) — https://www.semrush.com/blog/the-ghost-citations-study/ +30. Semrush, "2026 AI Visibility Index" (126 M prompt) — https://www.semrush.com/news/463141-semrush-releases-expanded-2026-ai-visibility-index-analyzing-126-million-ai-search-prompts/ +31. Profound, "AI Platform Citation Patterns" (680 M alıntı) — https://www.tryprofound.com/blog/ai-platform-citation-patterns +32. Kevin Indig, Growth Memo, "How AI Really Weighs Your Links" — https://www.growth-memo.com/p/how-ai-really-weighs-your-links-analysis +33. Aleyda Solis, "The AI Search Optimization Checklist" (Eyl 2026) — https://www.aleydasolis.com/en/ai-search/ai-search-optimization-checklist/ +34. iPullRank, "Query Fan-Out, Latent Intent, and Source Aggregation" ve "Relevance Engineering in Practice" — https://ipullrank.com/ai-search-manual/query-fan-out ; https://ipullrank.com/ai-search-manual/relevance-engineering +35. Ahrefs, "We Tracked 1,885 Pages Adding Schema. AI Citations Barely Moved." (11 May 2026) — https://ahrefs.com/blog/schema-ai-citations/ +36. Search Engine Roundtable, "ChatGPT & Perplexity Treat Structured Data As Text On A Page" (Williams-Cook deneyi, 6 Şub 2026) — https://www.seroundtable.com/chatgpt-perplexity-structured-data-text-40862.html +37. Search Engine Journal, "Google Drops FAQ Rich Results From Search" (7 May 2026) — https://www.searchenginejournal.com/google-drops-faq-rich-results-from-search/574429/ +38. Wikidata, "Notability" ve MLforSEO, "Wikidata for Brands" — https://www.wikidata.org/wiki/Wikidata:Notability ; https://www.mlforseo.com/knowledge-graph-strategy/wikidata-for-brands-notability-criteria-and-a-realistic-path/ +38-b. DEV Community, "Schema markup for AI search: the complete 2026 reference" (Speakable/Dataset/ItemList değerlendirmesi, ikincil) — https://dev.to/brandswarm/schema-markup-for-ai-search-the-complete-2026-reference-53ba +39. Search Engine Land, "Reddit sues Perplexity, SerpApi over scraping Google Search data" (22 Eki 2025) — https://searchengineland.com/reddit-sues-perplexity-serpapi-scraping-google-463681 +40. Anadolu Ajansı, "Yandex Search Türkiye grows user base by over 75% with AI-powered search" — https://www.aa.com.tr/en/artificial-intelligence/yandex-search-turkiye-grows-user-base-by-over-75-with-ai-powered-search/3725346 +41. Statcounter, "Search Engine Market Share Turkey" (Ağu 2026: Google 82,32 / Yandex 15,98 / Bing 0,88) — https://gs.statcounter.com/search-engine-market-share/all/turkey +42. Arama sonuçları, "2026 YKS tercih nasıl yapılır" (24 Eyl 2026) — gzt.com, ntv.com.tr, halic.edu.tr, osym.gov.tr, milliyet.com.tr, hurriyet.com.tr, meb.gov.tr, haberturk.com +43. Arama sonuçları, "bilgisayar mühendisliği taban sıralaması 2026" (24 Eyl 2026) — haberturk.com, kariyer.net, boenstitu.com, yksprogram.com.tr, kazanabilirsin.com, tabanpuanlari.tr, derecekampusu.com, dogrutercihler.com, inekle.com +44. Arama sonuçları, "yks tercih danışmanı" (24 Eyl 2026) — instagram.com/yks.rehberiniz, duzceram.meb.k12.tr, tercih.ibb.istanbul, armut.com, ogrencikoclugu.org, ilhankocakademi.com +45. Swydo, "The Agency Guide to Tracking AI Traffic in GA4" ve Trakkr, "AI Search Traffic: Live Index" (Similarweb 1,13 milyar ziyaret verisi) — https://www.swydo.com/blog/track-ai-traffic-in-ga4/ ; https://trakkr.ai/ai-search-traffic +45-b. Ekşi Sözlük, "perplexity.ai" ve ChatGPT başlıkları (topluluk gözlemi, ölçüm değil) — https://eksisozluk.com/perplexity-ai--7492963 +46. Google Search Central Blog, "Introducing Search Generative AI performance reports in Search Console" (3 Haz 2026) — https://developers.google.com/search/blog/2026/06/gen-ai-performance-reports +47. Search Engine Journal, "Google Now Reports AI Search Impressions. Here's How To Read Them" — https://www.searchenginejournal.com/google-reports-ai-search-impressions-how-to-read-them/582824/ +48. Bing Webmaster Blog, "Introducing AI Performance in Bing Webmaster Tools Public Preview" (10 Şub 2026) — https://blogs.bing.com/webmaster/February-2026/Introducing-AI-Performance-in-Bing-Webmaster-Tools-Public-Preview +49. Bing Search Blog, "New AI Visibility Insights in Bing Webmaster Tools: Intents, Topics, Citation Share, Compare" (Haz 2026) — https://blogs.bing.com/search/June-2026/New-AI-Visibility-Insights-in-Bing-Webmaster-Tools-Intents-Topics-Citation-Share-Compare +50. Similarweb, "Gen AI website traffic share update — August 2026" — https://x.com/Similarweb/status/2096878021378466096 +51. IndexNow — https://www.indexnow.org/ ; Wikipedia, "IndexNow" — https://en.wikipedia.org/wiki/IndexNow +52. IndexNow, "Documentation" — https://www.indexnow.org/documentation +53. Google Search Central, "Spam policies for Google web search" (son güncelleme 28 Ağu 2026) — https://developers.google.com/search/docs/essentials/spam-policies +53-b. OWASP, "LLM01:2025 Prompt Injection" — https://genai.owasp.org/llmrisk/llm01-prompt-injection/ +54. Google Search Central, "Google Search's guidance about AI-generated content" — https://developers.google.com/search/docs/fundamentals/using-gen-ai-content +55. GSQi, "Google's August 2026 Spam Update – Scaled Content Abuse, AI Content…" — https://www.gsqi.com/marketing-blog/august-2026-google-spam-update-case-studies/ + +Sitenin kendi durumu (24 Eyl 2026): `https://kolaytercih.com/robots.txt` (17 AI botu açık), `/llms.txt` → 404, `/sitemap.xml` → 1.011 URL, `src/lib/seo.tsx` JSON-LD türleri, Rybbit referrer kırılımı (AI kaynaklı 8 ziyaret), `docs/arastirma/2026-09-24-ogrenci-senaryolari/21-rakipler-ve-kanallar.md`. diff --git a/docs/arastirma/2026-09-24-geo-seo/03-icerik-ve-marka.md b/docs/arastirma/2026-09-24-geo-seo/03-icerik-ve-marka.md new file mode 100644 index 0000000..b15074f --- /dev/null +++ b/docs/arastirma/2026-09-24-geo-seo/03-icerik-ve-marka.md @@ -0,0 +1,230 @@ +# İçerik ve Marka — GEO Analizi (2026-09-24) + +Kapsam: yalnızca araştırma. Kod/içerik değiştirilmedi, git komutu çalıştırılmadı. +İşaretler: **[K]** koddan/dokümandan doğrulandı · **[W]** web kaynağı açılıp okundu · **[A]** yalnızca arama özeti · **[V]** varsayım. + +## Özet (5 madde) + +1. İçerik tarafı GEO'ya zaten hazır sayılır: 46 rehber yazısının çoğu "Kısa cevap:" ile açılıyor, tablo/şema yoğun, `VeriKaynagi` bileşeni kaynak+tarihi **görünür metin** olarak basıyor ("AI botları JSON-LD'ye değil sayfadaki metne güvenir" — kod yorumu) ve `robots.ts` GPTBot/ClaudeBot/PerplexityBot/Google-Extended'i açıkça izinli listede tutuyor **[K]**. Bu, çoğu Türkçe rakibin yapmadığı bir şey. +2. Buna karşılık marka **üçüncü taraf hafızasında yok denecek kadar az**: Ekşi Sözlük başlığı, Reddit, Wikipedia, haber sitesi bulunamadı; sosyal medya hesabı (Instagram/X/YouTube/TikTok) kod tabanında hiç referanslanmıyor **[W][K]**. AI motorları "kolaytercih nedir" sorusuna bizim kendi sitemiz dışında kaynak bulamıyor — GEO'nun "alıntılanma" bacağı henüz boş. +3. Güven açığı vaat dilinde değil, **rakam disiplininde** iki somut kusur var: (a) kod yorumunda "23.000 lisans iddiası yanlıştı" diye düzeltilen sayı iki rehber yazısında hâlâ "23.000+/23.000'i aşkın program" olarak duruyor **[K]**; (b) "danışman 1.000–3.000 TL alıyor" rakamı `/paket` ve ana sayfanın fiyat bölümünde kaynaklı ("Armut ortalama fiyatı, Eylül 2026") ama aynı sayfadaki Problem kartında ve Karşılaştırma tablosunda kaynaksız tekrarlanıyor **[K]**. +4. E-E-A-T'de asıl boşluk **kimlik**: hiçbir sayfada yazar adı/unvanı yok, `Article` JSON-LD'de `author` alanı hiç üretilmiyor, "Hakkında" sayfası yok, `iletisim`/`kosullar`/`gizlilik` sayfalarında tüzel kişi adı/adres/MERSİS yok ve iki yasal sayfa hâlâ "MVP taslağı, hukuki gözden geçirme gerekir" notu taşıyor **[K]**. +5. Soru haritasında (40 soru) rehber yazıları "nasıl/ne zaman/ne demek" tipi soruları iyi karşılıyor; asıl boşluk **fiyat/güvenilirlik/rakip karşılaştırması** tipi ticari sorgularda (ör. "en iyi tercih robotu hangisi", "kolaytercih güvenilir mi", "ücretsiz mi") — bunlar hem markayı arayan hem de kategori araştıran kullanıcıyı hedefliyor ve şu an hiçbir sayfa doğrudan cevap vermiyor. + +--- + +## (b) İçerik envanteri — `content/rehber/*.md` + +46 yazı. Frontmatter alanları yalnızca `baslik`, `aciklama`, `tarih`, (opsiyonel) `guncelleme` — **yazar/kaynak/özet alanı yok** `[K]` (`grep` ile tüm frontmatter anahtarları tarandı, `yazar`/`kaynak`/`ozet` hiç bulunmadı). "Cevap-öncelikli" = ilk ~100 kelimede doğrudan cevap var; "Kısa cevap:" etiketi veya eşdeğeri ilk cümlede. + +| Slug | Kelime | Güncelleme | Tablo | Dış link | Cevap-öncelikli mi | +|---|---:|---|---:|---:|---| +| ais-tercih-nasil-yapilir-onaylama | 656 | — | 0 | 0 | Kısmi (senaryo girişi var) | +| ayni-bolum-farkli-universite-siralama-farki | 3.383 | — | 64 | 3 | Evet | +| bilgisayar-mi-yazilim-muhendisligi-mi | 2.827 | — | 64 | 6 | Evet | +| bolum-mu-universite-mi-sehir-mi | 777 | — | 0 | 0 | Hayır (üç görüş anlatımıyla açılıyor) | +| bolumumu-sevmedim-hangi-kapilar-var | 986 | — | 9 | 1 | Evet | +| bolumun-is-imkanini-nasil-arastirirsin | 881 | — | 0 | 0 | Kısmi (soru tekrarı var, yöntem geç geliyor) | +| bos-kontenjanlar-ne-anlatiyor | 2.180 | 22 Eyl | 21 | 5 | Evet | +| devlet-mi-vakif-mi | 533 | — | 0 | 0 | Hayır (örnekle açılıyor) | +| ek-madde-1-puanim-yetiyor-mu | 3.086 | — | 20 | 10 | Evet | +| ek-yerlestirme-2026 | 614 | 21 Eyl | 0 | 0 | Kısmi | +| ek-yerlestirme-sonuclari-ve-kayit | 1.335 | — | 9 | 7 | Evet | +| en-cok-ogrenci-alan-devlet-universiteleri | 2.558 | — | 42 | 3 | Evet | +| en-secici-devlet-universiteleri | 2.268 | — | 50 | 4 | Evet | +| hangi-bolumlerin-kontenjani-azaldi | 3.825 | — | 61 | 3 | Evet | +| hazirlik-sinifi-ve-ogretim-dili | 776 | — | 0 | 0 | Hayır | +| hedef-siralama-nasil-belirlenir | 1.754 | 21 Eyl | 20 | 0 | Evet | +| kac-net-ile-hangi-bolum | 2.984 | — | 54 | 4 | Evet | +| kac-siralama-ile-hangi-bolume-girebilirim | 553 | 21 Eyl | 14 | 0 | Kısmi | +| kktc-universiteleri-okunur-mu | 3.797 | — | 58 | 16 | Evet | +| kyk-burs-mu-kredi-mi | 3.302 | 24 Eyl | 18 | 10 | Evet | +| merkezi-yerlestirme-nasil-calisir | 527 | — | 0 | 0 | Evet | +| mezuna-kalmak-mi-kayit-olmak-mi | 1.555 | — | 6 | 8 | Evet | +| obp-nedir-nasil-hesaplanir | 909 | 24 Eyl | 0 | 3 | Kısmi | +| olu-tercih-nedir | 516 | — | 0 | 0 | Evet | +| onlisans-mi-lisans-mi | 531 | — | 0 | 0 | Hayır | +| ozel-kosullu-programlar | 920 | 24 Eyl | 0 | 2 | Hayır | +| rehber-ogretmenler-icin-veri-kaynaklari | 3.568 | — | 37 | 25 | Evet | +| siralama-bandlari-hangi-kapilar-acilir | 3.612 | — | 78 | 2 | Evet | +| siralama-sartlari-2026 | 537 | — | 9 | 0 | Hayır | +| taban-puan-mi-siralama-mi | 510 | 21 Eyl | 0 | 0 | Evet | +| taban-siralamalar-nasil-degisir | 621 | 21 Eyl | 0 | 0 | Hayır | +| taban-siralamalari-alti-yilda-nasil-degisti | 3.132 | — | 51 | 5 | Evet | +| tercih-listesi-nasil-yapilir | 664 | — | 0 | 0 | Hayır | +| tercih-robotu-nedir-yok-atlas-nasil-kullanilir | 687 | — | 0 | 0 | Hayır | +| tercih-sonuclari-ne-zaman-2026 | 659 | — | 0 | 0 | **Hayır — asıl tarih aralığı geç geliyor (bkz. not)** | +| universite-kayit-rehberi-2026 | 771 | 21 Eyl | 0 | 2 | Kısmi | +| universite-okurken-tekrar-yks | 1.760 | — | 5 | 6 | Evet | +| universitede-ilk-hafta-ders-kaydi-muafiyet-kayit-dondurma | 4.411 | — | 32 | 7 | Evet | +| veliler-icin-tercih-rehberi | 1.177 | 22 Eyl | 8 | 0 | Hayır | +| yapay-zekaya-tercih-sordum-guvenilir-mi | 2.877 | — | 17 | 8 | Evet | +| yatay-gecis-cap-yandal | 1.280 | 24 Eyl | 0 | 3 | Hayır | +| yeni-acilan-bolumler-nasil-degerlendirilir | 3.083 | — | 44 | 4 | Evet | +| yerlesemedim-ne-yapmaliyim | 745 | 24 Eyl | 0 | 2 | Hayır | +| yks-2027-takvimi | 2.635 | — | 19 | 29 | Evet | +| yks-tercih-takvimi-2026 | 499 | — | 0 | 0 | Hayır | +| yurt-burs-ve-yillik-maliyet | 819 | — | 0 | 0 | Hayır | + +**Not — `tercih-sonuclari-ne-zaman-2026.md`:** Yüksek değerli bir sorguyu ("tercih sonuçları ne zaman açıklanacak") hedefliyor ama ilk paragraf "hangi sorunun değiştiğini" anlatıyor, asıl tarih aralığı ("Ne zaman açıklanacak?" bölümü) ikinci H2'de geliyor. AI motorları genelde ilk 1-2 paragrafı alıntılar; bu yazı için öncelikli düzeltme adayı. + +**Örüntü:** Uzun/veri-ağırlıklı yazılar (2026-09-22 tarihli, YÖK Atlas'tan üretilen "veri gazeteciliği" serisi — `ayni-bolum-farkli-universite`, `hangi-bolumlerin-kontenjani-azaldi`, `siralama-bandlari-hangi-kapilar-acilir` vb.) neredeyse tamamı cevap-öncelikli, tablo yoğun, resmî kaynak linkli. Kısa/erken tarihli yazılar (Temmuz 2026, `devlet-mi-vakif-mi`, `onlisans-mi-lisans-mi`, `hazirlik-sinifi-ve-ogretim-dili` gibi) daha anlatımsal açılıyor ve tablo yerine yalnızca mermaid şeması kullanıyor — şemanın metin karşılığı `
` içinde statik HTML'de mevcut olduğu için (`src/features/rehber/components/el-cizimi-sema.tsx:114-125` `[K]`) AI botları için tamamen kayıp değil, ama tablo kadar "alıntılanabilir tek cümle" sunmuyor. + +## (c) Soru haritası — 2026 tercih dönemi, 40 soru + +D = Durum: **Tam** / **Kısmi** / **Yok**. + +| # | Soru | Mevcut cevap | D | Önerilen sayfa tipi | +|---|---|---|---|---| +| 1 | 300 bin sıralamayla nereye girebilirim | `/sonuc` (sıralama gir) + `kac-siralama-ile-hangi-bolume-girebilirim.md` | Tam | Programatik (sihirbaz) | +| 2 | Tercih listesi kaç tercih olmalı | `tercih-listesi-nasil-yapilir.md` | Tam | Rehber | +| 3 | 24 tercih nasıl dağıtılır (hayal/dengeli/güvenli) | `tercih-listesi-nasil-yapilir.md`, `hedef-siralama-nasil-belirlenir.md` | Tam | Rehber | +| 4 | YKS tercih danışmanı ücreti ne kadar | `/paket` (kendi fiyatı + Armut kıyası) | Kısmi — rakip **danışman** fiyatları için üçüncü taraf kaynak yok, tek kaynak Armut | Rehber/karşılaştırma sayfası | +| 5 | Vakıf üniversitesi burs kesilir mi | Yok | Yok | Rehber (yeni) | +| 6 | Ek yerleştirme ne zaman | `ek-yerlestirme-2026.md`, `ek-yerlestirme-sonuclari-ve-kayit.md` | Tam (2026 için kapandı, 2027 referansı gerekecek) | Rehber (yıllık güncellenir) | +| 7 | Tercih robotu güvenilir mi | `tercih-robotu-nedir-yok-atlas-nasil-kullanilir.md`, `yapay-zekaya-tercih-sordum-guvenilir-mi.md` | Tam | Rehber | +| 8 | Kaç net ile hangi bölüm | `kac-net-ile-hangi-bolum.md` | Tam | Rehber + katalog | +| 9 | Taban puan mı sıralama mı bakılır | `taban-puan-mi-siralama-mi.md` | Tam | Rehber | +| 10 | OBP nasıl hesaplanır | `obp-nedir-nasil-hesaplanir.md` | Tam | Rehber | +| 11 | Devlet mi vakıf mı okumalı | `devlet-mi-vakif-mi.md` | Tam | Rehber | +| 12 | Bölüm mü üniversite mi şehir mi önemli | `bolum-mu-universite-mi-sehir-mi.md` | Tam | Rehber | +| 13 | Ölü tercih nedir | `olu-tercih-nedir.md` | Tam | Rehber | +| 14 | Yerleşemedim şimdi ne yapmalıyım | `yerlesemedim-ne-yapmaliyim.md` | Tam | Rehber | +| 15 | KYK burs mu kredi mi almalıyım | `kyk-burs-mu-kredi-mi.md` | Tam | Rehber | +| 16 | Yurt ve burs olmadan yıllık maliyet ne kadar | `yurt-burs-ve-yillik-maliyet.md` | Tam | Rehber | +| 17 | Tercih sonuçları ne zaman açıklanacak (2026) | `tercih-sonuclari-ne-zaman-2026.md` | Kısmi (bkz. yukarıdaki not — cevap geç geliyor) | Rehber (düzeltilmeli) | +| 18 | 2027 YKS ne zaman | `yks-2027-takvimi.md` | Tam (dürüstçe "henüz açıklanmadı" diyor) | Rehber | +| 19 | AİS'te tercih nasıl onaylanır | `ais-tercih-nasil-yapilir-onaylama.md` | Tam | Rehber | +| 20 | Ek Madde-1 ile yatay geçiş puanım yeter mi | `ek-madde-1-puanim-yetiyor-mu.md` | Tam | Rehber | +| 21 | Yatay geçiş, ÇAP, yandal nasıl işler | `yatay-gecis-cap-yandal.md` | Tam | Rehber | +| 22 | Bölümümü sevmedim ne yapabilirim | `bolumumu-sevmedim-hangi-kapilar-var.md` | Tam | Rehber | +| 23 | Bir bölümün iş imkânı nasıl araştırılır | `bolumun-is-imkanini-nasil-arastirirsin.md` | Tam | Rehber | +| 24 | Bilgisayar mü. mi yazılım mü. mi | `bilgisayar-mi-yazilim-muhendisligi-mi.md` | Tam | Rehber + katalog kıyas | +| 25 | Psikoloji/Hukuk gibi bölümlerde taban neden bu kadar değişiyor | `ayni-bolum-farkli-universite-siralama-farki.md` | Tam | Rehber | +| 26 | 2026'da hangi bölümlerin kontenjanı azaldı | `hangi-bolumlerin-kontenjani-azaldi.md` | Tam | Rehber | +| 27 | Hangi bölümler boş kaldı | `bos-kontenjanlar-ne-anlatiyor.md` | Tam | Rehber | +| 28 | En çok öğrenci alan devlet üniversitesi hangisi | `en-cok-ogrenci-alan-devlet-universiteleri.md` | Tam | Rehber | +| 29 | En seçici (girilmesi en zor) devlet üniversitesi hangisi | `en-secici-devlet-universiteleri.md` | Tam | Rehber | +| 30 | Taban sıralamaları yıllar içinde nasıl değişti | `taban-siralamalari-alti-yilda-nasil-degisti.md`, `taban-siralamalar-nasil-degisir.md` | Tam | Rehber | +| 31 | KKTC üniversiteleri okunur mu, denklik var mı | `kktc-universiteleri-okunur-mu.md` | Tam | Rehber | +| 32 | Yeni açılan bölüm (tabanı olmayan) tercih edilir mi | `yeni-acilan-bolumler-nasil-degerlendirilir.md` | Tam | Rehber | +| 33 | Üniversite kaydı nasıl yapılır, e-kayıt | `universite-kayit-rehberi-2026.md` | Tam | Rehber | +| 34 | Üniversitede ilk hafta ders kaydı/muafiyet nasıl işler | `universitede-ilk-hafta-ders-kaydi-muafiyet-kayit-dondurma.md` | Tam | Rehber | +| 35 | Veli olarak tercihte nasıl yardımcı olmalıyım | `veliler-icin-tercih-rehberi.md` | Tam | Rehber | +| 36 | ChatGPT'ye tercihimi sorsam güvenilir mi | `yapay-zekaya-tercih-sordum-guvenilir-mi.md` | Tam | Rehber (kendi kategorimizi tanımlayan en kritik yazı) | +| 37 | KolayTercih güvenilir mi / dolandırıcı mı | Yok (yalnız `/kosullar` içinde dolaylı) | **Yok** | SSS/marka güven sayfası | +| 38 | KolayTercih ücretsiz mi | `/paket` fiyatı var ama "ücretsiz mi" sorusuna direkt başlık/SSS yok | Kısmi | Ana sayfa SSS'ye madde | +| 39 | En iyi / en güvenilir tercih robotu hangisi (kategori sorgusu, marka adı geçmeden) | Yok — rakip karşılaştırma sayfası yok | **Yok** | Karşılaştırma rehberi (dikkatli, iddiasız) | +| 40 | Rehber öğretmen sınıfa tercih verisini nereden gösterir | `rehber-ogretmenler-icin-veri-kaynaklari.md` | Tam | Rehber | + +**Boşluk özeti:** 40 sorudan 33'ü tam, 5'i kısmi, 2'si tamamen yok (**#5** vakıf burs kesilme şartları, **#37/#39** marka-güven ve kategori karşılaştırma sorguları). Katalog sayfaları (`/bolum/[slug]`, `/universite/[slug]`, `/universiteler/[il]`) sayısal/programatik sorular (#1, #8, #24, #28-30) için zaten doğru araç; rehber yazısı gerektirenler yöntem/karar/duygu soruları (#5, #22, #35-39). + +## (d) Marka anılma bulguları + +- **"kolaytercih.com" / "kolay tercih yks" arama sonuçları:** Genel aramada kendi sitemiz dışında hiçbir üçüncü taraf sonucu çıkmadı; ilk sayfa YÖK Atlas, Kariyer.net, MEB kılavuzu, universitetercihleri.com, tercihrehberim.com gibi rakip/resmî sonuçlarla dolu **[W]**. +- **Ekşi Sözlük:** "kolaytercih" başlığı yok; arama sonucu genel Ekşi Sözlük sayfalarına düşüyor, marka adına özel bir entry bulunamadı **[W]**. +- **Reddit / forum:** "kolaytercih reddit" araması yalnızca rakip tercih robotu sonuçları getirdi, marka adına atıf yok **[W]**. +- **Wikipedia / Wikidata:** Türkçe Wikipedia'da "kolaytercih" ya da genel "tercih robotu" kavramına dair madde yok; YKS ve ÖSYM maddeleri var ama bunlarda ticari araç listesi/dış link bölümü yok **[W]**. Not: Wikipedia notability kuralları (bağımsız, doğrulanabilir üçüncü taraf kaynak şartı) bir startup sayfası açmaya şu an elverişli değil; girişim önerisi bunu göz önünde bulunduruyor. +- **Perplexity canlı sorgu:** `https://www.perplexity.ai/search?q=...` WebFetch ile denendi, sunucu 403 Forbidden döndürdü (kimlik doğrulama/bot engeli) — **doğrulanamadı**, sonuç alınamadı. +- **Rakipler ve içerik türleri:** + - **tercih.tv** — "Yapay Zeka Destekli YKS Tercih Robotu" konumlandırması; sayfa başlığında AI vurgusu merkezi, blog/rehber/fiyat görünmüyor (kısa fragmandan) **[W]**. + - **tercihrobotu.com.tr** — "21.493 program, 229 üniversite, 81 şehir" rakamı (bizim kendi 24 Eylül sayımımızla — 21.493 — hemen hemen örtüşüyor, muhtemelen aynı YÖK Atlas dönemine ait ayrı bir sayım), "hedef-denge-garanti" dilini kullanıyor, kendini **"26 senedir güvenle kullanılan"** ve **"ÖSYM'nin yerleştirme mantığıyla"** çalışan sistem olarak tanımlıyor — resmî kurumla bağ çağrıştıran ama açık yalanlama yapmayan sınırda bir ifade; rehber içerik türleri: "Tercihte 12 Kural", meslek bilgilendirme, sık hatalar listesi **[W]**. + - **PipeLineTercih** (`tercih.pipeline.tr/danisman`) — kendini "Yapay Zeka Kariyer Danışmanı" olarak konumlandırıyor, doğrudan bizim niş tanımımıza (AI + danışman) en yakın rakip **[A]** (yalnızca arama sonucu başlığı görüldü, sayfa içeriği açılmadı). + - **Kariyer.net / eleman.net / universitetercihleri.com** — büyük, kurumsal trafik sahibi genel platformlar; "tercih motoru" ücretsiz filtreleme aracı olarak konumlanıyor **[A]**. +- **Sosyal medya:** `src/app/layout.tsx` ve `src/components/site-footer.tsx` taranınca Instagram/X/YouTube/TikTok/LinkedIn linkine hiç rastlanmadı **[K]** — marka şu an sıfır sosyal yüzeye sahip. + +## (e) Alıntılanabilir cümle ve E-E-A-T eksikleri + +### Alıntılanabilir tanım cümleleri (var olanlar) + +| Konum | Cümle | +|---|---| +| `src/app/layout.tsx:49` | `"KolayTercih — Yapay Zekâ Destekli YKS Tercih Danışmanı"` (title, meta) | +| `src/app/layout.tsx:52-53` | `"YKS sıralamana göre gerçek YÖK Atlas verisiyle dengeli 24 tercihlik liste. İnsan danışmandan çok daha düşük fiyata, yapay zekâ destekli tercih danışmanlığı."` (meta description) | +| `src/app/opengraph-image.tsx:4-5` | `"KolayTercih — YKS tercihin, gerçek YÖK Atlas verisiyle. Sıralamanı gir, dengeli 24 tercihlik listeni al."` (OG alt metni) | +| `src/features/katalog/components/bolum-icerik.tsx:328-334` | Katalog sayfasında görünür, bölüme özgü, sayı içeren tanım cümlesi (örn. "X bölümünü açan Y üniversite programının 2026 taban puanlarını... incele") | +| `src/features/katalog/components/veri-kaynagi.tsx:28-29` | `"Kaynak: YÖK Atlas 2026 yerleştirme sonuçları. Son güncelleme: 21 Eylül 2026."` — her katalog sayfasında görünür, tarihli kaynak cümlesi | + +**Eksik:** Bu tanım cümlelerinin hiçbiri **ana sayfanın görünür body metninde** (meta değil, kullanıcının okuduğu H1/paragraf) tek cümlede durmuyor — ana sayfa hero'su (`src/features/pazarlama/components/hero-baslik.tsx`) "Tercih listeni gerçek veriyle kur, panikle değil" diyor, bu iyi bir slogan ama "KolayTercih nedir" tanımı değil; tanım yalnızca `` meta ve OG görselinde var, AI motorlarının çoğu **body metnini** önceliklendirir. **Öneri (vaatsiz, doğrulanabilir):** + +> Önce: (ana sayfada eşdeğer görünür cümle yok, yalnızca meta'da) +> Sonra (hero altına eklenebilir, mevcut veri satırının yanına): *"KolayTercih, YÖK Atlas'ın resmî yerleştirme verisiyle sıralamana uygun 24 tercihlik dengeli liste kuran, yapay zekâ destekli bir karar destek aracıdır; yerleşme garantisi vermez."* + +Bu cümle sitedeki mevcut ifadelerin (FAQ, `/kosullar`) birebir toplamı — yeni bir vaat eklemiyor, sadece dağınık gerçekleri tek yere topluyor. `[BİLAL]` değil — mevcut onaylı dilin yeniden düzenlenmesi, [KARAR] seviyesinde. + +### E-E-A-T eksikleri + +| Sinyal | Durum | Kanıt | +|---|---|---| +| Yazar adı/unvanı | Yok — hiçbir rehber yazısında byline yok | `src/features/rehber/components/rehber-makale.tsx:76-84` (yalnız yayın/güncelleme tarihi basılıyor, yazar alanı hiç yok); frontmatter'da `yazar` alanı da yok | +| `Article` JSON-LD `author` alanı | Yok — yalnızca `publisher` var | `src/lib/seo.tsx:149-172` (`articleJsonLd` fonksiyonunda `author` hiç üretilmiyor) | +| "Hakkında" sayfası | Yok | `src/app` içinde `hakkinda`/`about` rotası bulunamadı | +| Tüzel kimlik (şirket adı, adres, MERSİS/vergi no) | Yok — yalnızca destek e-postası var | `src/app/iletisim/page.tsx`, `src/app/kosullar/page.tsx`, `src/app/gizlilik/page.tsx` taranmış, hiçbirinde şirket/şahıs unvanı yok | +| Yöntem/veri kaynağı açıklaması | Kısmen var — `rehber-ogretmenler-icin-veri-kaynaklari.md` çok iyi bir kaynak dökümü ama bu bir rehber yazısı, kalıcı bir "Metodoloji" sayfası değil | `content/rehber/rehber-ogretmenler-icin-veri-kaynaklari.md` | +| Güncellenme tarihi | Var ve iyi işleniyor (`tarih`/`guncelleme` frontmatter + görünür metin + JSON-LD `dateModified`) | `src/features/rehber/components/rehber-makale.tsx:76-84`, `src/lib/seo.tsx:156-164` | +| Yasal sayfaların hukuki statüsü | **Taslak** — "MVP taslağıdır; yayına almadan önce hukuki gözden geçirme gerekir" notu hâlâ kodda | `src/app/kosullar/page.tsx:15`, `src/app/gizlilik/page.tsx:15` | +| Organizasyon şeması `sameAs` (sosyal/Wikidata bağlantısı) | Yok | `src/lib/seo.tsx:76-90` (`organizationJsonLd` yalnızca `name/url/logo/contactPoint` içeriyor, `sameAs` alanı hiç yok) | + +## (f) Güven açıkları — tüm geçiş yerleriyle + +**1. Stale/hatalı rakam hâlâ yayında ("23.000" → doğrusu "21.000+"):** +Kod yorumunda "23.000 lisans iddiası yanlıştı" diye düzeltme yapılmış (`src/lib/veri-kapsami.ts:13-16`, 24 Eylül 2026 tarihli), ama düzeltme yalnızca pazarlama sabitine uygulanmış; iki **yayında olan** rehber yazısı hâlâ eski/yanlış sayıyı taşıyor: +- `content/rehber/tercih-robotu-nedir-yok-atlas-nasil-kullanilir.md:11` — "23.000'i aşkın programın içinden" +- `content/rehber/kac-siralama-ile-hangi-bolume-girebilirim.md:53` — "robot 23.000+ programın içinden" +Bu iki yazı, aynı sitedeki `PROGRAM_SAYISI_METNI = "21.000+"` ile çelişiyor; bir AI motoru iki sayfamızdan farklı rakam alıntılarsa tutarsızlık bize atfedilir. + +**2. Kaynaksız/yarı-kaynaklı rakam ("danışman 1.000–3.000 TL"):** +Aynı iddia dört yerde geçiyor, ikisinde kaynak var ikisinde yok: +- `src/app/page.tsx:96` (Problem kartı, "Danışman lüks haline geldi") — **kaynak yok**, en yakın dipnot (`page.tsx:553`) sayfanın çok aşağısında, ayrı bir bölümde. +- `src/app/page.tsx:188` (Karşılaştırma tablosu hücresi) — **kaynak yok**. +- `src/app/page.tsx:549` + `553-554` (Fiyat bölümü) — kaynaklı: "Danışman fiyat aralığı: Armut ortalama fiyatı, Eylül 2026." +- `src/app/paket/page.tsx:49-54` — kaynaklı, aynı dipnotla. +Armut kendisi de bir pazar yeri ilan ortalaması, bağımsız bir fiyat araştırması değil — dipnotta şeffaf ama iddianın gücü ("iyi bir tercih danışmanı") tek bir platformun ilan ortalamasına dayanıyor. Öneri: Problem kartı ve karşılaştırma tablosundaki iki kaynaksız tekrara da aynı dipnotu ekle ya da metni "Danışmanlar genelde 1.000–3.000 TL istiyor*" işaretiyle bağla. + +**3. `[BİLAL]` — yasal sayfa statüsü:** `/kosullar` ve `/gizlilik` hâlâ "hukuki gözden geçirme gerekir" notuyla canlıda. Marka/güven riski: bir KVKK/tüketici hukuku denetiminde veri sorumlusu kimliğinin (unvan/adres/MERSİS) hiç yazmaması sorun olur. Bu `guvenlik-uyum` ajanının asıl konusu ama marka güveni açısından da not düşülüyor — geri dönüşü kolay (metne madde eklemek), kararı hukuki. + +**4. Vaat dilinde açık bulunamadı — pozitif bulgu:** `garanti` kelimesinin tüm kod ve içerik geçişleri tek tek tarandı (yukarıdaki grep dökümü); marka **hiçbir yerde** kendi ağzından yerleşme garantisi/olasılığı vermiyor. `src/lib/ai/rapor.ts:81-86` LLM prompt'unda açıkça yasaklanmış ("ASLA garanti, kesin, yüzde yüz deme"), `src/lib/tadimlik-havuzu.ts:58-63` üretilen gerekçe metinlerini regex ile bu kelimelere karşı süzüyor, `classDef garanti` iç CSS sınıf adı kullanıcıya hiç sızmıyor (`src/lib/risk.ts:17-24`, `DILIM_ETIKET.garanti = "Güvenli"`). Bu, AGENTS.md'de zaten belgelenmiş bir disiplin ve rapor boyunca doğrulandı — **öncelikli iş listesine girmiyor**, ama gelecekte yeni bir yüzey eklenirken (ör. yeni bir pazarlama sayfası) bu disiplinin bozulmaması için tek kontrol maddesi olarak `pnpm tasarim:denetim`/lint'e benzer bir "garanti dili" grep kontrolü önerilebilir. + +**5. Resmî kurum ima/logo:** `ÖSYM`/`YÖK` logosu hiçbir yerde kullanılmıyor (public/ klasöründe ilgili dosya yok); `/kosullar` sayfası açıkça "ÖSYM ya da YÖK ile bağlantılı değildir" diyor (`src/app/kosullar/page.tsx:43`). Rakip `tercihrobotu.com.tr`'nin "ÖSYM'nin yerleştirme mantığıyla çalışıyor" ifadesiyle karşılaştırıldığında bizim dilimiz daha temiz — bu bir fark yaratma noktası olarak pazarlama metnine taşınabilir (ör. "ÖSYM/YÖK ile bağlantımız yok, veri kaynağımız halka açık YÖK Atlas'tır" gibi bir güven cümlesi). + +--- + +## Öncelikli 10 iş + +Sınıflandırma: **hemen** (bu hafta, <2 saat), **yakın** (2-4 hafta, sezon dışı ama 2027 hazırlığı), **sezon** (2027 tercih dönemine, Tem-Ağu 2027'ye kadar bekleyebilir). Kurucu kapasitesi günde 1-2 saat, yan proje — az ama bileşik iş önceliklendirildi. + +| # | İş | Etki | Efor | Kim | Zaman | +|---|---|---|---|---|---| +| 1 | İki rehber yazısındaki "23.000" rakamını "21.000+" ile değiştir (yukarıdaki 2 dosya:satır) | Yüksek — aktif tutarsızlık, düzeltmesi trivial | Çok düşük (~10 dk) | `rehber-editoru` | Hemen | +| 2 | Ana sayfa Problem kartı (L96) ve Karşılaştırma tablosu (L188) için "1.000–3.000 TL" rakamına kaynak dipnotu ekle/bağla | Orta-yüksek — kaynaksız rakam riskini kapatır | Düşük (~20 dk) | `marka` önerir, `yazilimci`/`rehber-editoru` uygular | Hemen | +| 3 | `tercih-sonuclari-ne-zaman-2026.md` girişini yeniden sırala: tarih aralığı ilk paragrafa alınsın | Yüksek — çok aranan sorguda cevap gecikmesi | Düşük (~15 dk) | `rehber-editoru` | Hemen | +| 4 | `Article` JSON-LD'ye `author` alanı ekle (Organization ya da isimli bir "KolayTercih Ekibi" kişisi) | Orta — E-E-A-T sinyali, ölçeklenebilir (tek yerden tüm yazılara yayılır) | Düşük (`src/lib/seo.tsx` fonksiyonuna 1 alan) | `cto`→`yazilimci` | Yakın | +| 5 | `organizationJsonLd`'a `sameAs` alanı ekle (kurulacak sosyal hesaplar + varsa gelecekte Wikidata) | Düşük-orta — bugün boş, hesaplar açılınca değerli olur | Çok düşük | `yazilimci` | Yakın (hesaplarla birlikte) | +| 6 | Ana sayfaya görünür, tek cümlelik marka tanımı ekle (yukarıdaki öneri metni) | Orta-yüksek — AI alıntı yüzeyini meta'dan body'ye taşır | Düşük | `marka` önerir → [KARAR] | Hemen | +| 7 | "Hakkında" sayfası: kuruluş amacı, veri yöntemi, iletişim, (varsa) tüzel kimlik | Yüksek — E-E-A-T'nin en büyük tek boşluğu | Orta (yeni sayfa + hukuki/kimlik bilgisi gerektirir) | `urun-yoneticisi` backlog'a alır, içerik `marka`/Bilal | Yakın | +| 8 | `/kosullar`, `/gizlilik` sayfalarına veri sorumlusu unvanı/adres/MERSİS ekle, "MVP taslağı" notunu kaldır | Yüksek (hukuki + güven) | Orta — hukuki karar gerektirir | `guvenlik-uyum` + `[BİLAL]` | Yakın | +| 9 | `#5` (vakıf burs kesilme şartları) için yeni rehber yazısı | Orta — soru haritasındaki gerçek boşluk, veli/öğrenci ikisi de arıyor | Orta (yeni yazı, ~1000-1500 kelime, kaynak taraması) | `rehber-yazari` | Yakın | +| 10 | Marka güven/SSS sayfası ya da mevcut ana sayfa SSS'sine "KolayTercih güvenilir mi / ücretsiz mi / kimlerin işi" maddeleri ekle | Orta — #37/#38/#39 boşluklarını kapatır, marka arandığında (şu an sıfır) ilk temas noktası hazır olur | Düşük-orta | `marka` taslak → [KARAR] | Yakın | + +**Sezon'a bırakılanlar (2027 tercih dönemine kadar zaman var, düşük aciliyet):** rakip karşılaştırma rehberi (#39, hassas — rakip adı geçirmeden "tercih robotu nasıl seçilir" tipi tarafsız çerçeve önerilir), dış varlık girişimleri (aşağıda), Wikipedia/Wikidata girişimi (notability koşulları oluşana kadar erken). + +## Dış varlık planı — 8 girişim + +Sıfır sosyal/üçüncü-taraf ayak izinden başlanıyor `[K]`. Hepsi etik, spam olmayan, doğrulanabilir; sosyal medyada gerçek paylaşım/hesap açma bu ajanın yetkisinde değil — hepsi **taslak/öneri** düzeyinde. + +1. **Reddit r/YKS ve benzeri alt forumlarda organik katkı** — Bilal ya da ekip, kendi hesabıyla, ürünü açıkça beyan ederek ("kurucusuyum") gerçek sorulara rehber yazılarına link vermeden önce **önce metinle** cevap verir, link ikincil. Efor: düşük, sürekli; risk: düşük (şeffaflık varsa spam sayılmaz), **kim: Bilal**. +2. **YouTube — kısa "tercih listesi nasıl kurulur" video serisi** (3-5 dk, rehber yazılarının görsel özeti) — AI motorları YouTube transkriptlerini de kaynak gösteriyor. Efor: orta-yüksek (çekim+kurgu), **kim: Bilal**, risk: düşük. +3. **Rehber öğretmen toplulukları/forumları** (Facebook grupları, MEB'e bağlı rehberlik öğretmeni ağları) — `rehber-ogretmenler-icin-veri-kaynaklari.md` yazısı zaten bu kitleye yazılmış; doğrudan bu gruplarda paylaşılabilir. Efor: düşük, **kim: Bilal**, risk: düşük (hedef kitleye değerli, satış dili yok). +4. **Instagram/TikTok hesabı açma** — veri görselleştirme (taban sıralaması değişimi gibi) kısa kartlar/reels. Efor: orta, sürekli içerik gerektirir — kurucu kapasitesiyle (günde 1-2 saat) çelişebilir, **düşük öncelik**, **kim: Bilal**, risk: düşük ama sürdürülemezse yarım bırakılmış hesap izlenimi verir (zaten var olmamaktan daha kötü olabilir — dikkatli başlanmalı). +5. **Basın/haber sitesi teması** — "2026'da 45.033 kontenjan boş kaldı" gibi veri bulgularımız (`bos-kontenjanlar-ne-anlatiyor.md`) eğitim muhabirlerine veri kaynağı olarak sunulabilir (ör. kısa bir e-posta ile "bu veriyi biz çıkardık, kaynak gösterirseniz kullanabilirsiniz"). Efor: düşük (yazı zaten var, tek gereken erişim), **kim: Bilal**, risk: düşük. +6. **Wikidata girişi (Wikipedia değil)** — Wikidata'nın notability eşiği Wikipedia'dan daha düşük; bir "yazılım/web sitesi" öğesi olarak KolayTercih'in temel kimlik bilgileri (isim, URL, ülke, konu) eklenebilir, bu bazı AI knowledge graph'larının kaynağı. Efor: düşük, risk: düşük ama silinme riski var (bağımsız kaynak azlığı) — önce #5'teki basın teması gerçekleşirse daha sağlam olur. **Kim: Bilal**, **sezon**. +7. **Rehber yazılarını LinkedIn'de "veri bülteni" olarak paylaşma** — B2B/veli kitlesi (ebeveynler LinkedIn'de daha aktif olabilir), aynı zamanda rehber öğretmenlerin bir kısmı da orada. Efor: düşük (var olan içeriği yeniden paketlemek), **kim: Bilal**, risk: düşük. +8. **Ekşi Sözlük'te marka başlığı açma — önerilmiyor / dikkatli:** Ekşi Sözlük kültüründe kurucunun kendi markası hakkında entry açması genelde reklam olarak görülüp silinir/negatif tepki alır; bunun yerine mevcut "yks tercih", "tercih robotu" gibi genel başlıklara, kimliğini açıkça belirterek (nick'te ima değil, entry içinde "kurucusuyum" notuyla) bilgilendirici bir entry bırakmak daha güvenli. Efor: düşük, risk: **orta** (topluluk tepkisi), **kim: Bilal**, **sezon** (aceleye getirilmemeli). + +--- + +## Bilal'den istenen + +1. `/kosullar` ve `/gizlilik` sayfalarındaki tüzel kimlik boşluğu (unvan/adres/MERSİS) — bunu doldurmak için gerçek şirket/şahıs bilgisi lazım; `guvenlik-uyum` ile birlikte 15 dk'lık bir karar. +2. Madde 6 ve 10'daki ("ana sayfaya tek cümlelik tanım", "marka güven SSS'i") taslak metinleri onaylar mısın — mevcut onaylı dilin (FAQ, /kosullar) yeniden düzenlenmesi, yeni vaat içermiyor, [KARAR] seviyesinde ama ana sayfaya dokunduğu için görmen iyi olur (~5 dk okuma). +3. Dış varlık planındaki #1-3 (Reddit, YouTube, rehber öğretmen grupları) senin kişisel katılımını gerektiriyor — hangisiyle başlamak istediğini işaretlersen `urun-yoneticisi` backlog'a sırayla koyar. diff --git a/docs/ekip/YAYIN-KUYRUGU.md b/docs/ekip/YAYIN-KUYRUGU.md index 91fe518..a225fa4 100644 --- a/docs/ekip/YAYIN-KUYRUGU.md +++ b/docs/ekip/YAYIN-KUYRUGU.md @@ -20,6 +20,34 @@ Her URL denetimi isteğinden sonra o günün satırı güncellenir. **13'e varı | 24 Eyl 2026 | **12 / 12** | 11 başarılı bildirim + 1 boşa giden istek: 12. istekte (`yerlesemedim-ne-yapmaliyim`, yeniden tarama) Search Console **"Kota Aşıldı"** dedi. Yani bu mülkte gerçek günlük sınır **11 başarılı istek**; 12.'yi deneme, o gün dur | | *(sonraki bildirim günü)* | — / 11 | Önce aşağıdaki bekleyenler | +## Yayın sonrası ek adımlar ve aylık AI görünürlük rutini (24 Eyl 2026'dan itibaren) + +Kaynak: `docs/arastirma/2026-09-24-geo-seo/00-ozet-ve-plan.md`. + +**Her yayında, Search Console adımından sonra (kota yemez, sınırsız):** +```sh +pnpm indexnow https://kolaytercih.com/rehber/ # Bing + Yandex'e anlık bildirim +``` +Toplu yayında `pnpm indexnow --rehber`. Anahtar dosyası `public/.txt`; canlıda 200 dönmeli. + +**Ayda bir (ayın ilk haftası), sonuç bu dosyanın altındaki tabloya yazılır:** +1. **Bing Webmaster → AI Performance:** Copilot'ta alıntı sayısı ve hangi sayfalar. +2. **Search Console → Performans → "Üretken yapay zekâ" görünümü:** AI Overviews/AI Mode gösterimleri (yalnızca gösterim, tıklama yok). +3. **Rybbit → Referrer:** `chatgpt.com`, `perplexity.ai`, `copilot.microsoft.com`, `gemini.google.com`, `claude.ai`, `yandex` (Yazeka) kaynaklı oturum sayısı. (Rybbit'te bunlar için ayrı kanal tanımlanmalı — Bilal, arayüzden.) +4. **Prompt paneli (elle, ~30 dk):** ChatGPT, Gemini, Perplexity, Yazeka ve Google AI Modu'nda aynı 30 Türkçe soru ("300 bin sıralamayla nereye girebilirim", "tercih listesi kaç tercih olmalı", "yks tercih danışmanı ücreti", "en iyi tercih robotu hangisi" …). Her soru için: KolayTercih anıldı mı, hangi siteler alıntılandı. Sorular `docs/arastirma/2026-09-24-geo-seo/03-icerik-ve-marka.md` (c) bölümündeki 40 soruluk haritadan. + +| Ay | Bing AI alıntı | GSC üretken AI gösterim | Rybbit AI oturum | Prompt panelinde anılma (n/30) | Not | +|---|---|---|---|---|---| +| Eyl 2026 | — | — | 8 (tüm zaman, 5'i Gemini) | — | başlangıç | + +## Yazıldı, yayında değil (commit bekliyor) + +| Adres | Yazıldı | Not | +|---|---|---| +| `/rehber/vakif-universitesi-bursu-kesilir-mi` | 24 Eyl 2026 | GEO soru haritasındaki tek gerçek boşluk (`docs/arastirma/2026-09-24-geo-seo/03-icerik-ve-marka.md`). Yayın sonrası: canlıda 200 → sitemap sayımı 1 → `pnpm indexnow` → Search Console (kota 11) | + +Aynı gün güncellenen ve yeniden tarama isteyecek yazılar (canlıya çıkınca): `devlet-mi-vakif-mi`, `bolum-mu-universite-mi-sehir-mi`, `ais-tercih-nasil-yapilir-onaylama`, `bolumun-is-imkanini-nasil-arastirirsin`, `tercih-sonuclari-ne-zaman-2026`, `kac-siralama-ile-hangi-bolume-girebilirim`, `tercih-robotu-nedir-yok-atlas-nasil-kullanilir` (kısa cevap paragrafı ve rakam düzeltmeleri). + ## Bekleyenler — 24 Eylül'de güncellenen yazılar (yeni adres değil, yeniden tarama) 24 Eyl 2026'da beş rehber yazısı düzeltildi ve canlıya çıktı (commit `b11c2c9`); hepsi zaten dizinde ("URL Google'da mevcut"). Yeniden tarama isteği aynı kotadan düşer. 24 Eyl'de kota 11 yeni adresle dolduğu için bunlar **25 Eyl 2026 ve sonrasına** kaldı. Sıra, değişikliğin büyüklüğüne ve mevsime göre: diff --git a/package.json b/package.json index e6c1739..8f8865a 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "scripts": { "dev": "next dev", "build": "next build", + "indexnow": "tsx scripts/indexnow.ts", "start": "next start", "lint": "eslint && pnpm tasarim:denetim", "ingest": "tsx scripts/ingest.ts", diff --git a/public/12fbe41760bb599222e2fcf0c535c267.txt b/public/12fbe41760bb599222e2fcf0c535c267.txt new file mode 100644 index 0000000..7a32613 --- /dev/null +++ b/public/12fbe41760bb599222e2fcf0c535c267.txt @@ -0,0 +1 @@ +12fbe41760bb599222e2fcf0c535c267 diff --git a/scripts/indexnow.ts b/scripts/indexnow.ts new file mode 100644 index 0000000..2a3f6c7 --- /dev/null +++ b/scripts/indexnow.ts @@ -0,0 +1,92 @@ +/** + * IndexNow bildirimi (Bing + Yandex; Google desteklemiyor). + * + * Anahtar dosyası: public/.txt — canlıda https://kolaytercih.com/.txt + * olarak sunulur; IndexNow her bildirimde bu dosyayı okuyup anahtarı doğrular. + * Anahtar gizli değildir (dosya zaten herkese açık), ama değiştirilirse + * public/ altındaki dosya da birlikte değişmeli. + * + * Kullanım (canlıda 200 dönen adresler için, yayından SONRA): + * pnpm indexnow https://kolaytercih.com/rehber/ [...] + * pnpm indexnow --rehber # content/rehber altındaki tüm yazılar + * pnpm indexnow --sitemap # canlı sitemap.xml'deki tüm adresler (10.000'e kadar) + * + * Bing Webmaster → IndexNow sekmesinde alınan bildirimler görünür; Yandex + * Webmaster'da "Indexing → IndexNow" altında. Aynı adres günde bir kez yeter. + */ +import fs from "node:fs"; +import path from "node:path"; + +const HOST = "kolaytercih.com"; +const SITE = `https://${HOST}`; +const UC = "https://api.indexnow.org/indexnow"; + +function anahtarOku(): string { + const dizin = path.join(process.cwd(), "public"); + const dosya = fs + .readdirSync(dizin) + .find((f) => /^[0-9a-f]{32}\.txt$/.test(f)); + if (!dosya) { + throw new Error("indexnow: public/ altında <32 hex>.txt anahtar dosyası yok"); + } + const anahtar = fs.readFileSync(path.join(dizin, dosya), "utf8").trim(); + if (anahtar !== dosya.replace(/\.txt$/, "")) { + throw new Error(`indexnow: ${dosya} içeriği dosya adıyla eşleşmiyor`); + } + return anahtar; +} + +function rehberAdresleri(): string[] { + const dizin = path.join(process.cwd(), "content", "rehber"); + return fs + .readdirSync(dizin) + .filter((f) => f.endsWith(".md")) + .map((f) => `${SITE}/rehber/${f.replace(/\.md$/, "")}`); +} + +async function sitemapAdresleri(): Promise { + const res = await fetch(`${SITE}/sitemap.xml`); + if (!res.ok) throw new Error(`indexnow: sitemap ${res.status}`); + const xml = await res.text(); + return [...xml.matchAll(/([^<]+)<\/loc>/g)].map((m) => m[1].trim()); +} + +async function main() { + const args = process.argv.slice(2); + let adresler: string[]; + if (args.includes("--rehber")) adresler = rehberAdresleri(); + else if (args.includes("--sitemap")) adresler = await sitemapAdresleri(); + else adresler = args.filter((a) => a.startsWith("http")); + + adresler = [...new Set(adresler)].filter((a) => a.startsWith(SITE)); + if (adresler.length === 0) { + console.error("indexnow: adres yok. Kullanım: pnpm indexnow | --rehber | --sitemap"); + process.exit(1); + } + if (adresler.length > 10_000) { + throw new Error("indexnow: tek istekte en fazla 10.000 adres"); + } + + const key = anahtarOku(); + const res = await fetch(UC, { + method: "POST", + headers: { "Content-Type": "application/json; charset=utf-8" }, + body: JSON.stringify({ + host: HOST, + key, + keyLocation: `${SITE}/${key}.txt`, + urlList: adresler, + }), + }); + // 200 = işlendi, 202 = alındı (anahtar sonra doğrulanacak), 4xx = hata. + console.log(`indexnow: ${adresler.length} adres → HTTP ${res.status}`); + if (!res.ok && res.status !== 202) { + console.error(await res.text()); + process.exit(1); + } +} + +main().catch((e) => { + console.error(e); + process.exit(1); +}); diff --git a/src/app/feed.xml/route.ts b/src/app/feed.xml/route.ts new file mode 100644 index 0000000..38d3ad2 --- /dev/null +++ b/src/app/feed.xml/route.ts @@ -0,0 +1,54 @@ +import { getAllRehberler } from "@/lib/rehber"; +import { SITE_NAME, SITE_URL } from "@/lib/seo"; + +/** + * Rehber yazılarının RSS 2.0 beslemesi. Kök layout metadata'sındaki + * alternates.types bu adresi olarak 'e yazar. + * Cache Components altında istek verisi okunmadığı için prerender edilir. + */ +function xmlKacis(metin: string): string { + return metin + .replaceAll("&", "&") + .replaceAll("<", "<") + .replaceAll(">", ">") + .replaceAll('"', """); +} + +/** "YYYY-MM-DD" → RFC 822 (RSS pubDate). Gün 09:00 Türkiye saati kabul edilir. */ +function rfc822(iso: string): string { + return new Date(`${iso}T09:00:00+03:00`).toUTCString(); +} + +export async function GET() { + const yazilar = getAllRehberler(); + const enYeni = yazilar[0]?.guncelleme ?? yazilar[0]?.tarih; + + const items = yazilar + .map( + (y) => ` + ${xmlKacis(y.baslik)} + ${SITE_URL}/rehber/${y.slug} + ${SITE_URL}/rehber/${y.slug} + ${xmlKacis(y.aciklama)} + ${rfc822(y.tarih)} + `, + ) + .join("\n"); + + const xml = ` + + + ${SITE_NAME} Tercih Rehberi + ${SITE_URL}/rehber + YKS tercih dönemi rehberi: veriye dayalı, öğrenci diliyle yazılar. + tr + +${enYeni ? ` ${rfc822(enYeni)}\n` : ""}${items} + + +`; + + return new Response(xml, { + headers: { "Content-Type": "application/rss+xml; charset=utf-8" }, + }); +} diff --git a/src/app/layout.tsx b/src/app/layout.tsx index dcc4338..3eba033 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -52,6 +52,9 @@ export const metadata: Metadata = { description: "YKS sıralamana göre gerçek YÖK Atlas verisiyle dengeli 24 tercihlik liste. İnsan danışmandan çok daha düşük fiyata, yapay zekâ destekli tercih danışmanlığı.", applicationName: "KolayTercih", + alternates: { + types: { "application/rss+xml": "/feed.xml" }, + }, openGraph: { type: "website", locale: "tr_TR", diff --git a/src/app/llms.txt/route.ts b/src/app/llms.txt/route.ts new file mode 100644 index 0000000..cc2459b --- /dev/null +++ b/src/app/llms.txt/route.ts @@ -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" }, + }); +} diff --git a/src/app/page.tsx b/src/app/page.tsx index 39a1138..14b9ac1 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -93,7 +93,7 @@ const problems = [ icon: Wallet, title: "Danışman lüks haline geldi", description: - "İyi bir tercih danışmanı 1.000–3.000 TL istiyor. Ücretsiz robotların çoğu ise yalnızca liste filtreliyor; listeyi kurup gerekçesini yazmıyor.", + "Armut'ta tercih danışmanlığı ilanları ortalama 1.000–3.000 TL (Eylül 2026). Ücretsiz robotların çoğu ise yalnızca liste filtreliyor; listeyi kurup gerekçesini yazmıyor.", }, ]; @@ -185,7 +185,7 @@ const comparison = [ { feature: "Fiyat", robot: "Ücretsiz", - danisman: "1.000–3.000 TL", + danisman: "1.000–3.000 TL*", tercihai: `${PAKET_FIYATI} TL · tek seferlik`, }, ]; @@ -524,6 +524,9 @@ export default function Home() {
+

+ * Danışman fiyat aralığı: Armut ortalama fiyatı, Eylül 2026. +

diff --git a/src/app/robots.ts b/src/app/robots.ts index aefc555..c1df152 100644 --- a/src/app/robots.ts +++ b/src/app/robots.ts @@ -25,7 +25,7 @@ const AI_BOTLARI = [ "Amzn-SearchBot", // Model eğitimi: aramasız yanıtlarda markanın bilinmesi buradan geçer "GPTBot", - "ClaudeBot", + // ClaudeBot aşağıda kendi grubunda (Crawl-delay için); buraya yazma. "Google-Extended", "Applebot-Extended", "meta-externalagent", @@ -38,6 +38,9 @@ export default function robots(): MetadataRoute.Robots { rules: [ { userAgent: "*", allow: "/", disallow: DISALLOW }, { userAgent: AI_BOTLARI, allow: "/", disallow: DISALLOW }, + // Anthropic Crawl-delay'i resmî olarak destekliyor (support.claude.com); + // eğitim taraması 1011 URL'lik katalogda saniyede 1 istekle yeter. + { userAgent: "ClaudeBot", allow: "/", disallow: DISALLOW, crawlDelay: 1 }, ], sitemap: `${SITE_URL}/sitemap.xml`, }; diff --git a/src/features/katalog/components/bolum-icerik.tsx b/src/features/katalog/components/bolum-icerik.tsx index 4da8337..3b15470 100644 --- a/src/features/katalog/components/bolum-icerik.tsx +++ b/src/features/katalog/components/bolum-icerik.tsx @@ -16,6 +16,7 @@ import { getBolumBySlug, uniSlugFromAd, } from "../katalog-queries"; +import type { Program } from "@/types/yokatlas"; import { JsonLd, breadcrumbJsonLd, @@ -156,6 +157,63 @@ function siraAraligiMetni({ return verisiz > 0 ? `${aralik} ile taban verisi olmayanlar` : aralik; } +/** + * İlk sayfanın açılış cümleleri: kaç ilde kaç program, devlet/vakıf dağılımı, + * toplam kontenjan, taban sıralaması aralığı ve bir önceki yıla göre yön. + * Yön için yalnızca iki yılda da sırası olan programlar sayılır; sıra sayısı + * büyümüşse o programa daha geriden yerleşilmiş demektir (öğrenci dilinde + * "gevşedi"). Beş programdan azsa yön cümlesi kurulmaz. + */ +function bolumVeriOzeti(bolum: BolumDetay, programlar: Program[]): string { + const { stats } = bolum; + const iller = new Set(); + let kontenjan = 0; + let gevseyen = 0; + let sikilasan = 0; + let karsilastirilan = 0; + for (const p of programlar) { + if (p.il) iller.add(p.il); + kontenjan += p.kontenjanSon ?? 0; + const onceki = p.siraGecmisi[p.siraGecmisi.length - 2]; + if (p.siraSon != null && onceki != null) { + karsilastirilan += 1; + if (p.siraSon > onceki) gevseyen += 1; + else if (p.siraSon < onceki) sikilasan += 1; + } + } + const digerTur = stats.toplam - stats.devlet - stats.vakif; + const dagilim = [ + stats.devlet > 0 ? `${sayi(stats.devlet)} devlet` : null, + stats.vakif > 0 ? `${sayi(stats.vakif)} vakıf` : null, + digerTur > 0 ? `${sayi(digerTur)} KKTC/yurt dışı` : null, + ] + .filter(Boolean) + .join(", "); + const ilSayisi = iller.size > 0 ? iller.size : stats.ilSayisi; + const cumleler = [ + `${bolum.ad} bölümü ${SON_YIL} YKS yerleştirmesinde ${sayi(ilSayisi)} ilde ${sayi(stats.toplam)} programda öğrenci aldı (${dagilim}${kontenjan > 0 ? `; toplam ${sayi(kontenjan)} kontenjan` : ""}).`, + ]; + if (stats.minSira != null && stats.maxSira != null) { + cumleler.push( + stats.minSira === stats.maxSira + ? `Taban başarı sıralaması ${sayi(stats.minSira)}.` + : `Taban başarı sıralaması programa göre ${sayi(stats.minSira)} ile ${sayi(stats.maxSira)} arasında değişiyor.`, + ); + } + if (karsilastirilan >= 5) { + // Yüzdeye iyelik eki gerekmeyen kalıp: "%7'sinde / %9'unda" gibi ek + // seçimi sayının okunuşuna bağlı, şablonda güvenle kurulamaz. + const kucOran = Math.round((sikilasan / karsilastirilan) * 100); + const buyOran = Math.round((gevseyen / karsilastirilan) * 100); + cumleler.push( + kucOran >= buyOran + ? `${ONCEKI_YIL}'e göre taban sıralaması sayı olarak küçülen (yerleşmesi zorlaşan) program oranı %${kucOran}, büyüyen (kolaylaşan) %${buyOran}.` + : `${ONCEKI_YIL}'e göre taban sıralaması sayı olarak büyüyen (yerleşmesi kolaylaşan) program oranı %${buyOran}, küçülen (zorlaşan) %${kucOran}.`, + ); + } + return cumleler.join(" "); +} + export function bolumSayfaMetadata(slug: string, sayfa: number): Metadata { const bolum = getBolumBySlug(slug); if (!bolum) return {}; @@ -237,6 +295,11 @@ export function BolumIcerik({ slug, sayfa }: { slug: string; sayfa: number }) { } } const { stats } = bolum; + // Sayfaya özgü, veriden türeyen özet cümle (GEO: yapay zekâ cevap motorları + // sayfa başına ilk metni saklar; 1011 katalog sayfasının aynı şablon cümleyle + // açılması hem alıntıyı hem Google'ın "ölçekli içerik" politikasını zorlar — + // docs/arastirma/2026-09-24-geo-seo). Rakamlar tablodakiyle aynı kaynaktan. + const veriOzeti = ilkSayfa ? bolumVeriOzeti(bolum, tumProgramlar) : null; const hapSinifi = "inline-flex h-10 items-center gap-2 rounded-full border border-slate-200 bg-white px-4 text-sm font-semibold text-slate-800"; @@ -325,9 +388,8 @@ export function BolumIcerik({ slug, sayfa }: { slug: string; sayfa: number }) { {ilkSayfa ? (

- {bolum.ad} bölümünü açan {sayi(tumProgramlar.length)} üniversite - programının {SON_YIL} taban puanlarını, başarı sıralamalarını ve - kontenjanlarını incele.{" "} + {veriOzeti} Aşağıdaki tabloda her programın taban puanı, başarı + sıralaması ve kontenjanı var.{" "} {TERCIH_YILI} tabanları, yerleştirme sonuçları açıklandığında netleşir. diff --git a/src/features/rehber/components/rehber-makale.tsx b/src/features/rehber/components/rehber-makale.tsx index 4443ced..d12cd72 100644 --- a/src/features/rehber/components/rehber-makale.tsx +++ b/src/features/rehber/components/rehber-makale.tsx @@ -74,7 +74,8 @@ export function RehberMakale({ slug }: { slug: string }) { {yazi.aciklama}

- Yayın: + Yazan: KolayTercih Ekibi · Yayın:{" "} + {yazi.guncelleme ? ( <> {" · "}Güncelleme:{" "} diff --git a/src/lib/seo.tsx b/src/lib/seo.tsx index 6d784cd..c4a6483 100644 --- a/src/lib/seo.tsx +++ b/src/lib/seo.tsx @@ -153,20 +153,38 @@ export function articleJsonLd(opts: { datePublished: string; /** Verilmezse yayın tarihi kullanılır (yazı hiç güncellenmemiş). */ dateModified?: string; + /** Mutlak görsel adresi; verilmezse yolun opengraph-image'ı kullanılır. */ + image?: string; }): JsonLdData { + const url = `${SITE_URL}${opts.path}`; return { "@context": "https://schema.org", "@type": "Article", headline: opts.title, description: opts.description, - url: `${SITE_URL}${opts.path}`, + url, + mainEntityOfPage: url, + image: opts.image ?? `${url}/opengraph-image`, datePublished: opts.datePublished, dateModified: opts.dateModified ?? opts.datePublished, inLanguage: "tr", + // Yazar kurum olarak verilir: yazılar tek imzayla değil ekipçe yazılıp + // resmî kaynakla (ÖSYM/YÖK) teyit ediliyor; görünür yazar satırı + // rehber-makale.tsx'te aynı adı kullanır. Kişi adı yayımlanacaksa + // burası Person'a çevrilir (docs/arastirma/2026-09-24-geo-seo). + author: { + "@type": "Organization", + name: `${SITE_NAME} Ekibi`, + url: SITE_URL, + }, publisher: { "@type": "Organization", name: SITE_NAME, url: SITE_URL, + logo: { + "@type": "ImageObject", + url: `${SITE_URL}/kolay-tercih-mark.png`, + }, }, }; }