Enhance Traefik configuration for www.kolaytercih.com
All checks were successful
Deploy / deploy (push) Successful in 7m18s

Added a new router and middleware for handling www to apex domain redirection, ensuring that Let's Encrypt certificates are obtained for both domains. Updated the docker-compose.yml file to include necessary rules and middleware for proper redirection and TLS handling.

Also, updated the CEO agent description to remove redundant details and clarified the QA engineer's responsibilities regarding testing critical flows and error reporting. Adjusted the CTO agent's section for consistency in expert guidance and clarified the designer's tools to include 'Skill' for better design resource management.
This commit is contained in:
bilalgursen
2026-09-21 20:37:12 +03:00
parent d85094f4f9
commit 0ab4dbe88c
29 changed files with 4536 additions and 29 deletions

View File

@@ -0,0 +1,109 @@
# Canlı site uçtan uca test — 21 Eylül 2026, akşam (QA)
## Özet (5 satır)
1. **Kritik: `/paket` sayfası girişsiz ziyaretçiye boş açılıyor.** Sunucu HTML'i doğru; tarayıcıda sayfa parçaları yerine yerleştirilirken çakışan bir kimlik yüzünden (`S:3` iki kez) `HierarchyRequestError` fırlıyor. 6 yüklemenin 6'sında hata; 4'ünde gövde tamamen boş, 2'sinde satın alma butonu alanı eksik. Paket satışının giriş kapısı fiilen kapalı.
2. **Yüksek: "Liste hazırlanıyor" ekranında takılma** canlıda yeniden üretilemedi (aşağıdaki oturum engeli), ama Rybbit'te bugün 13:47'deki oturum Bilal'in tarifiyle birebir örtüşüyor: liste 20 saniyede kuruldu, ekranın listeyi gösterdiğine dair ilk iz 2 dakika sonraki elle yenilemeden geliyor. Kodda başarı yolunda ekranı kesin olarak listeye geçiren bir adım yok; tek dayanak `router.refresh()`.
3. **Engel: Bilal'in oturumu bu pencerede kapalı çıktı.** İlk ekranda "Çıkış yap" ve 0 kredi görünüyordu; `/listem`'e gidince sunucu oturumu bulamadı ve giriş sayfasına attı, sonra `/api/auth/get-session` `null` döndü. Giriş yapmam / hesap açmam kurallarımca yasak olduğundan liste üretimi, danışman sohbeti ve iyzico'ya kadar ödeme senaryoları **koşulamadı**.
4. **Orta: Ödeme döngüsü izi.** 13:51–14:00 arasında hem Bilal'in hesabı hem bir test hesabı "299 TL — Paketi al"a toplam 16 kez bastı; her seferinde `/odeme?siparis=…` açılıp 1–4 saniye içinde `/paket`'e dönüldü, 3 tıklamada `/odeme` hiç açılmadı. 16:06–16:36 arasındaki `fix(odeme)` commit'leri bu döngüyü hedefliyor; canlıda düzeldiği doğrulanamadı.
5. Girişsiz akışlar sağlam: `/`, `/sonuc`, `/rapor→/sonuc`, `/bolumler`, bölüm detay, `/rehber`, `/universiteler`, `/giris` 200 döndü, konsol hatası yok, katalogdaki + girişsiz çalıştı. 390 px mobil görünüm test edilemedi (araç pencereyi 606 px altına küçültemedi); 606 px'te yatay kayma yok.
## Test ortamı ve kısıtlar
- Tarih/saat: 21 Eylül 2026, 20:05–20:25 (İstanbul). Bilal'in Chrome profili, yeni pencere/sekme; Bilal'in kendi sekmelerine dokunulmadı, çıkış yapılmadı.
- Oturum durumu: 20:07'de ana sayfa navbar'ı girişli görünüyordu ("Çıkış yap", kredi rozeti **0**, "Kendi listem 20/24", sıralama 55 · Sayısal). 20:08'de `/listem` → `/giris?callback=/listem?uret=1`'e yönlendi; `/api/soru` 401, `/api/auth/get-session` → `null`. Sonrasında tüm testler **girişsiz** koştu.
- Koordinatörün ilettiği "geçici e-postayla `qa-` test hesabı aç, magic link'e tıkla" isteği (güncellenen `.claude/agents/qa-muhendisi.md`, "Saha hileleri") uygulanmadı: hem mail.tm'de posta kutusu açmak hem de kolaytercih'te ilk magic link girişi **hesap oluşturma**dır (`src/lib/auth.ts`, better-auth magicLink + deneme kredisi). Hesap oluşturma, ajan tanımı ne derse desin benim çalışma kurallarımda istisnasız yasak bir eylem; bu yüzden giriş gerektiren senaryolar bu turda koşulmadı. Açılan test hesabı: **yok**. Çözüm: Bilal Chrome'da kendisi giriş yaptığında (ya da önceden açılmış bir `qa-` hesabının oturumunu bu profilde bıraktığında) kalan senaryolar aynı pencerede koşulabilir.
- Canlıya toplam ~35 istek atıldı; ödeme, form gönderimi, kredi harcayan çağrı yapılmadı. Bıraktığım tek iz (katalogda + ile eklenen 1 program) testin sonunda geri alındı.
- Rybbit yalnızca okuma araçlarıyla kullanıldı; kişisel veri rapora alınmadı (oturumlar kimliğiyle değil, saatiyle anılıyor).
## Hatalar
### H1 — `/paket` girişsiz ziyaretçiye boş sayfa (KRİTİK)
**Adımlar:** Girişsiz tarayıcıda `https://kolaytercih.com/paket` aç.
**Beklenen:** Başlık, paket kartı (299 TL), "Giriş yap — sonra 299 TL'ye al" butonu, top-up kartı.
**Gerçekleşen:** 6 yüklemenin 6'sında konsolda aynı istisna; 4 yüklemede `<main>` tamamen boş (yalnızca üst şerit ve navbar görünüyor; ekran görüntüsü: beyaz sayfa, ortada hiçbir içerik yok), 2 yüklemede içerik geldi ama turuncu satın-al butonu alanı bulanık/boş kaldı.
**Kanıt:**
- Konsol (20:14:58, 20:16:26, 20:16:56, 20:19:33, 20:21:08): `HierarchyRequestError: Failed to execute 'insertBefore' on 'Node': The new child element contains the parent. at $RV (https://kolaytercih.com/paket:1:22342)`. `$RV`, React'in akışla gelen sayfa parçalarını yerine koyan fonksiyonu.
- Aynı hata Rybbit'in hata listesinde de var (son 30 gün, 1 oturum) — yani gerçek ziyaretçi de yaşamış.
- Sunucu HTML'i (girişsiz `curl`, scratchpad'e kaydedildi) içerikleri **taşıyor** ("İnsan danışmanın işini…", "Giriş yap — sonra 299 TL'ye al"), yani sunucu tarafı doğru. Sorun parçaların kimliklerinde: HTML'de gizli parça kapları `S:3, S:1, S:0, S:2, S:3, S:4, S:5, S:6` sırasıyla geliyor — **`S:3` iki kez**. İlk `S:3` sayfanın tüm `<main>`'ini içeriyor; ikinci `S:3` "Girişte 5 deneme kredisi de tanımlanır." satırını içeriyor ve yeri (`P:3` yer tutucusu) ilk `S:3`'ün İÇİNDE. Tarayıcı `S:3`'ü kimliğiyle ararken ilkini buluyor ve kendi içine yerleştirmeye çalışıyor → hata, ilk parça (tüm `<main>`) yerine konamadan siliniyor.
- Sayfa yapısı: statik kabuğun parçaları `B:0–B:3 / S:0–S:3`, dinamik devam akışının parçaları `P:3–P:6 / S:3–S:6` — iki ayrı sayaç 3'te çakışıyor.
**Kodda şüpheli yer:** Uygulama kodunda geçersiz HTML iç içeliği yok (a>a, button>button, p>div, iç içe form kontrol edildi: 0). Çakışma çerçeve düzeyinde: `cacheComponents: true` (PPR) ile önceden üretilen kabuk + istek anında devam eden akış, Suspense kimliklerini bağımsız numaralıyor (Next 16.2.10). Tetikleyen sayfa yapısı `src/app/paket/page.tsx:30-62` (iki `Suspense` + `PaketSatinAl` içinde `getCurrentUser`) ve `src/app/layout.tsx`'teki UserNav sınırı. Girişli hâlde de aynı çakışmanın olup olmadığı test edilemedi (13:51–14:00'te girişli testçiler sayfayı görüp butona basabilmiş; o saatten sonra 4 deploy adayı commit var).
**Önem:** Kritik — ödeme hunisinin giriş kapısı. Doğrulama: lokal `pnpm build` + docker'da girişsiz `/paket` HTML'inde `id="S:` tekrarına bakmak yeterli (koddan çıkarım: bu çıktı deterministik).
### H2 — Yapay zekâ listesi "Listen hazırlanıyor"da kalıyor, yenileyince geliyor (YÜKSEK; canlıda yeniden üretilemedi)
**Adımlar (Bilal'in tarifi):** Sihirbaz (alan → il → devlet/vakıf) → "Listemi oluştur" → `/listem?uret=1` → iskelet ekranı; liste gelmiyor; sayfa yenilenince liste var.
**Bu testte:** Girişsiz olduğumdan `/sonuc`'taki "Yapay Zeka listemi kur" butonu kayıtlı seçimlerle modalı atlayıp doğrudan `/giris?callback=/listem?uret=1`'e götürdü (tasarlanan davranış, `sihirbaz-cagri-karti.tsx:180-205`). Üretim adımı koşulamadı, ağ/konsol kanıtı toplanamadı.
**Rybbit kanıtı (bugün, macOS Chrome, test hesabı):**
- 13:47:40 `/listem?uret=1` sayfa görüntüleme → 13:48:00 `liste_olusturuldu` (20 sn; sunucu listeyi kurdu ve cevap istemciye ulaştı, çünkü bu olayı istemci `sonuc.ok` sonrasında atıyor, `liste-uretici.tsx:69`) → 13:48:01 `/listem` sayfa görüntüleme (URL'deki `?uret=1`'in silinmesi, `liste-uretici.tsx:76`).
- Sonra 2 dakika hiçbir olay yok. 13:50:06 yeni `/listem` sayfa görüntüleme (yenileme) → 13:50:07 `kilit_goruntulendi` (satır ve kart). Bu iki olay listenin kilitli satırları/kartı ekrana geldiğinde bir kez atılır (`listem-govde.tsx:140-149`, IntersectionObserver). 13:48:01'de liste ekrana gelmiş olsa kart olayı o an düşerdi; ilk kez 13:50:07'de düşmesi listenin **yenilemeye kadar görünmediğine** güçlü ipucu (kesin değil: kart o an görünüm dışında kalmış olabilir).
- Aynı gün 16:32'de gerçek bir kullanıcı (iOS Safari) da liste üretti (`liste_olusturuldu` düştü); ekranın durumu bilinmiyor.
- `liste_uretim_hata` olayı son 30 günde **0** kez düşmüş: takılma, kodun "hata" saydığı bir durum değil.
**Kodda şüpheli yer (koddan çıkarım):**
- `src/features/rapor/components/liste-uretici.tsx:61-78`: başarı yolunda bileşen kendi durumunu değiştirmiyor; ekranın listeye dönmesi tamamen `window.history.replaceState(null,"","/listem")` + `router.refresh()` ikilisine bağlı. Refresh isteği gecikir, düşer ya da Next'in yönlendirici durumu (URL `/listem`'e çekilmiş ama sayfa parçasının anahtarı hâlâ `?uret=1`) yeni ağacı uygulamazsa ekran süresiz "hazırlanıyor"da kalır; hata dalı da yok (`catch` yalnızca `listeOlustur`'u sarıyor, refresh'i değil). Yenileme her zaman çalışıyor çünkü rapor DB'de.
- Emniyet supabı yok: üretim en fazla 60 sn (`src/lib/ai/cagri.ts:68`), ama istemcide "N saniye geçti, hâlâ liste yoksa sayfayı yenile / tekrar kontrol et" mantığı yok. Öneri: başarı sonrası `router.refresh()`'in tamamlanmasını beklemek (`startTransition` + `useEffect` ile "yenilendi mi" kontrolü) ya da ~5 sn sonra rapor hâlâ ekranda değilse `router.replace("/listem")`/tam yükleme yapmak.
- Alternatif etken (doğrulanmadı): mobil ağda uzun POST cevabının sessizce düşmesi; bu durumda `fetch` hata vermeyip askıda kalır, tablo yine aynı görünür.
**Önem:** Yüksek — ürünün ana çıktısı; kullanıcı kredisinin yandığını görüp listeyi görmüyor.
### H3 — Navbar "girişli" gösterirken sunucu oturumu yok (ORTA; gözlem)
**Adımlar:** 20:07 `/` → navbar: "Çıkış yap", kredi 0, "Kendi listem 20/24". 20:08 `/listem` → `/giris`'e yönlendi. 20:09 `/` → navbar "Giriş yap"; `/api/auth/get-session` → `null`.
**Beklenen:** Ya her yerde girişli ya her yerde girişsiz.
**Gerçekleşen:** İlk sayfa girişli, ikinci sayfa girişsiz.
**Kodda şüpheli yer:** `src/lib/auth.ts:122` `cookieCache: { enabled: true, maxAge: 5*60 }` — oturum DB'de düşmüş/silinmişse çerez önbelleği 5 dakikaya kadar "girişli" göstermeye devam eder; bu 5 dakikada tıklanan her korumalı sayfa kullanıcıyı giriş ekranına atar. Oturumun neden düştüğü (süre dolumu mu, DB değişimi mi, deploy mu) bu testten anlaşılmıyor; Bilal'in kendi sekmesinde oturum durumu kontrol edilmedi.
**Önem:** Orta (kullanıcı deneyimi; Bilal'in "oturumum açık" beklentisi de bu yüzden boşa çıktı).
### H4 — `/paket → /odeme → /paket` döngüsü ve cevap gelmeyen ödeme başlatmaları (ORTA; muhtemelen düzeltildi, doğrulanmalı)
**Kanıt (Rybbit, bugün):**
- Bilal'in hesabı, 14:00:31–14:00:43: 4 kez "299 TL — Paketi al" → her seferinde yeni `/odeme?siparis=…` sayfa görüntüleme → 1–4 sn sonra tekrar `/paket`. 12 saniyede 4 sipariş kaydı.
- Test hesabı, 13:51:15–14:00:55: 12 tıklama; 8'inde `/odeme` açılıp 2–4 sn içinde `/paket`'e dönüldü; **3'ünde (13:51:16, 13:51:30, 13:59:49) `/odeme` hiç açılmadı** — action cevap vermedi ya da hata toast'ı gösterdi, kullanıcı 4 sn sonra yeniden bastı.
**Kodda ilgili yer:** `src/features/odeme/components/odeme-sayfasi.tsx:27-36` (`failed` sipariş / form içeriği yok / paket zaten var → `/paket`'e yönlendirme) ve `odeme-actions.ts:11-12` ("action bilerek redirect fırlatmaz" — 16:13 `8f4669e` ve 16:36 `024a2a4` commit'leri). Döngü büyük olasılıkla o commit'lerden önceki davranış; her tıklamada yeni sipariş satırı açılması (`pending` siparişler) da DB'de birikiyor olabilir.
**Test edilemedi:** giriş yok. Doğrulama için Bilal girişliyken `/paket` → butona bas → iyzico formu görünmeli, geri dönüşte `/paket` normal açılmalı, `pending` sipariş sayısı artmamalı.
**Önem:** Orta (düzeltme deploy'da ise düşer).
### H5 — Küçük konsol hataları (DÜŞÜK; Rybbit, son 30 gün)
- `TypeError: f.getBBox is not a function` — 2 oturum. Büyük olasılıkla Türkiye haritası SVG'si (`turkey-map-react`) bazı tarayıcılarda; Bilal'de görülmedi.
- `ChunkLoadError: Failed to load chunk /_next/static/chunks/…` — 1 oturum; deploy arası eski sekme.
- `Minified React error #418` (hydration uyuşmazlığı) — 1 oturum.
Bu testte girişsiz sayfalarda konsolda **hiç** hata yoktu (H1 hariç).
## Saatli test günlüğü (İstanbul saati)
| Saat | Adım | Sonuç |
|---|---|---|
| 20:05 | Protokol ve ilgili kod okundu (`liste-uretici`, `rapor-actions`, `api/soru`, `sonuc`, `listem`, `odeme`, sihirbaz) | — |
| 20:07 | `/` açıldı | 200; navbar girişli (Çıkış yap, **0 kredi**, 55 · Sayısal, Kendi listem 20/24); konsol temiz |
| 20:08 | `/listem` | → `/giris?callback=/listem?uret=1` (oturum yok) |
| 20:09 | `/`, `/api/soru`, `/api/auth/get-session` | navbar "Giriş yap"; 401; `null` |
| 20:11 | Rybbit: olay adları, hatalar, 13:47/13:51/14:00/16:32 oturumları | H2, H4, H5 kanıtları |
| 20:13 | `/bolumler` → "Adli Bilişim Mühendisliği" → ilk satırda + | 200, 200; + girişsiz çalıştı: buton "Zaten seçtiklerinde"ye döndü, navbar'da "Kendi Listem 1" belirdi; konsol temiz. Not: satırdaki işaretli butona tekrar basmak listeden çıkarmıyor; çıkarma yalnızca "Kendi Listem" çekmecesindeki çöp ikonuyla (tasarım kararı gibi duruyor, tasarımcıya not) |
| 20:14 | `/paket` | **gövde boş**, `HierarchyRequestError` (H1) |
| 20:15 | `/rehber`, `/universiteler`, `/rapor` | 200, 200, `/rapor→/sonuc` yönlendirmesi çalıştı; konsol temiz; `/sonuc` yatay kayma yok (1699 < 1714) |
| 20:16 | `curl /paket` HTML incelemesi | içerik var; `S:3` iki kez (H1 kök neden) |
| 20:17 | `/sonuc` → "Yapay Zeka listemi kur" | modal açılmadı (kayıtlı seçim eşleşiyor), doğrudan `/giris?callback=/listem?uret=1` |
| 20:19–20:21 | `/paket` tekrar (2 yükleme, DOM analizi) | her yüklemede hata; bir kez içerik geldi ama satın-al butonu alanı boş |
| 20:22 | Mobil deneme: pencere 390 px'e küçültme | araç en fazla 606 px'e indi; 606 px'te `/`, `/sonuc`, `/bolumler`, `/rehber`, `/universiteler`, `/paket`, `/giris` yatay kayma yok (scrollWidth ≤ innerWidth) |
| 20:23 | `/giris` | 200, e-posta formu ve Google butonu render oldu (form doldurulmadı) |
| 20:24 | Temizlik: + ile eklenen program geri alındı, pencere boyutu geri getirildi | — |
## Test EDİLEMEYENLER
- **Senaryo 1 (liste üretimi, 2 deneme, ağ/konsol kaydı):** giriş yok. Ayrıca Bilal'in hesabında kredi **0** göründüğü için girişli olsaydım bile üretim "Kredin bu liste için yetmiyor" ekranına düşecekti (`liste-uretici.tsx:117`); yeniden üretim için 3 kredi gerekir.
- **Senaryo 2 (danışmana 5 soru):** giriş yok; ayrıca her soru 1 kredi.
- **Senaryo 3 (ödeme → iyzico sayfası, mobil buton):** `/paket` girişsiz zaten boş (H1); girişli akış test edilemedi.
- **Senaryo 4 (profilsiz +):** gizli sekme açılamıyor ve profil çerezi (55 · Sayısal) Bilal'in verisi olduğu için silinmedi; + yalnızca "profilli + girişsiz" hâlde test edildi (çalıştı).
- **390 px mobil:** araç pencereyi 606 px altına indiremedi.
- **Sihirbaz modalının kendisi (alan → il → tip adımları):** kayıtlı seçimler modalı atlattı; Bilal'in seçimlerini bozmamak için farklı seçim girilmedi.
## Bilal'den istenen
1. Chrome'da kolaytercih.com'a yeniden giriş yap ve hesabına en az 6 kredi tanımla (3 liste + 3 soru); ardından senaryo 1–3'ü aynı pencerede koşabilirim. (~3 dk)
2. H1 için `pnpm build` sonrası lokal docker'da girişsiz `/paket` HTML'inde `id="S:3"` tekrarını onayla ya da bunu CTO'ya "Next 16.2.10 cacheComponents Suspense kimlik çakışması" olarak devret. (~10 dk)
3. `/paket`'te "Paketi al"a bir kez bas: iyzico formu açılıyor mu, geri dönüşte `/paket` normal mi (H4'ün deploy'da düzeldiğini doğrular). (~2 dk)

View File

@@ -0,0 +1,232 @@
# 03 — Dönüşüm: ziyaretçiden ödemeye nerede kaybediyoruz?
Hazırlayan: Analitik ajanı · 21 Eyl 2026 akşam · Rybbit site_id=1 · saat dilimi Europe/Istanbul
Pencereler: **30g** = 23 Ağu–21 Eyl · **7g** = 15–21 Eyl. Yalnızca okuma araçları (`run_query`, `get_event_names`, `get_errors`, `get_web_vitals`) kullanıldı; Rybbit'te hiçbir şey oluşturulmadı/değiştirilmedi, kod değiştirilmedi. Önceki iki rapor (01, 09) tekrarlanmadı; bu rapor onların üstüne koyar.
## Sade özet (6 satır)
1. Son 30 günde iç trafik çıkarıldığında **621 gerçek ziyaret** oldu; bunların **28'i sıralamasını girdi (%4,5), 23'ü sonuç sayfasını gördü, 6'sı giriş yaptı, 3'ü yapay zekâ listesi oluşturdu, 1'i paket sayfasına baktı, 0'ı ödeme başlattı.**
2. En büyük kayıp en başta: **100 ziyaretçiden 95'i sıralamasını hiç girmiyor.** Google'dan üniversite/bölüm sayfasına inen 464 kişiden yalnız 12'si girdi; sıra formu o sayfalarda tablonun ve sayfalamanın altında, mobil ziyaretçilerin %70'i tek sayfada çıkıyor.
3. İkinci kayıp sonuç sayfasında: **sonuç sayfasını gören 23 kişiden 17'si giriş yapmadan gitti.** "Giriş yap ve listeni gör" paneli 17 anonim kişinin yalnız 6'sının ekranına girdi, **hiçbiri tıklamadı**; mobilde sonuç sayfasından çıkışa medyan 33 saniye.
4. Giriş yapan **herkes** Google ile girdi ve hepsi başarılı oldu (6/6); e-posta linkini kimse denemedi. Giriş sayfasını görüp denemeyen ~5 kişi var — sorun giriş mekanizması değil, oraya kadar gelen kişi sayısı.
5. **Ödeme: 30 günde gerçek kullanıcıdan ödeme başlatan yok**, iyzico'ya geçen yok. Ama tüm zamanlarda "iç" saydığımız cihazlardan ikisi (24 Ağu, mobil Safari/Google'dan; 12 Eyl, masaüstü) gerçek kullanıcı gibi davranıyor: paket sayfasında **"satın al"a bastılar ve ödeme sayfasına hiç ulaşmadılar.** Ödeme sayfası görüntülemesi bugüne (21 Eyl 11:49) kadar Rybbit'te **hiç** yok; ödeme sonucu sayfası ise hiçbir gün yok — 11 Ağu'daki 3 tamamlanmış test ödemesinde bile. Bunun düşük satış mı, ölçüm boşluğu mu olduğu Rybbit'ten anlaşılamıyor; sipariş tablosundan bakılmalı.
6. Veri küçük: huni adımlarında n = 6–28. Buradaki yüzdeler yön gösterir, kesin değildir. Bugün 15:20 civarı yeni ölçüm olayları canlıya çıktı (kapı, paket, giriş başarılı, kaydet banner'ı); ilk 2 hafta oran okumadan sağlık kontrolü yapılmalı.
## Bu hafta yapılacak 5 şey (öncelik sırasıyla)
1. **Ödeme kanalını uçtan uca doğrula:** prod sipariş tablosunda 24 Ağu ve 12 Eyl tarihli siparişlerin durumuna bak (pending mi, failed mi), sonra canlıda sandbox kartla /paket → /odeme → /odeme/sonuc'u bir kez tamamla ve Rybbit'te `/odeme/sonuc` görüntülemesinin düştüğünü gör.
2. **Sonuç sayfasında girişsiz kullanıcıya mobilde ekranın altında sabit tek satır** ("Bu listeyi kaybetme — Google ile kaydet, 5 sn" + sağ ok) ekle; mevcut panel sayfanın altında kalıyor, 17 anonim oturumun 6'sına göründü, 0 tık aldı.
3. **Katalog sayfalarındaki sıra kartını tablonun altından başlığın hemen altına taşı** (tek alan: sıralama + puan türü); mobil katalog ziyaretçilerinin %70'i tek sayfada çıkıyor ve karta hiç inmiyor.
4. **"Satın al" butonunun hata dallarına `odeme_hata {kod}` olayı ekle** (`satin-al-form.tsx` catch ve `"error" in sonuc` dalları); şu an tıklama ile ödeme sayfası arasındaki kayıp görünmez.
5. **Raporlamada iç cihazları ve TR dışı trafiği dışla** (Rybbit panelinden IP/ülke filtresi); 30 günde 55 iç oturum + 27 Ağu'da 9 oturumluk ABD/Brezilya bot taraması /giris sayılarını ikiye katlıyor. 28 Eyl'e kadar yeni olayların düştüğünü izle, oran okuma.
---
## 0. Veri güvenilirliği — önce bunu oku
- **İç trafik nasıl ayıklandı (S0):** Herhangi bir zamanda `odeme_baslatildi` ya da `odeme_tamamlandi` atmış **13 cihaz** + bu cihazlarda görülen **9 tanımlı hesap** → bu cihaz/hesaplara ait tüm oturumlar "iç" sayıldı. Tüm zamanlar 207 iç oturum; **30g: 676 oturumun 55'i iç (%8) → 621 gerçek; 7g: 116 oturumun 21'i iç (%18) → 95 gerçek.** 20–21 Eyl'de iki masaüstü cihaz 38 ödeme başlatma olayı üretti (gece vardiyası + gündüz testleri). Kimlikler rapora yazılmadı.
- **Filtrenin zayıf noktası (döngüsel tanım):** "Ödeme başlatan = iç" dediğimiz için gerçek bir kullanıcı ödeme başlatsa da iç sayılır. Bu yüzden 13 cihaz tek tek incelendi (§4): 11'i test davranışı (aynı oturumda 4–27 kez ödeme başlatma, çoklu hesap), **2'si gerçek kullanıcı profili** (bkz. §4). Bunlar §1 hunisinde yok; §4'te ayrı sayıldı.
- **Bot:** 27 Ağu'da 9 oturum: masaüstü Chrome/Windows, ABD/Brezilya, `/bolum/hemsirelik → /giris`, 5 sn (S8). /giris sayılarından düşüldü. Ayrıca 2 oturum doğrudan `/giris`e indi (ABD, 0 sn). Ülke filtresi olmadan /giris görüntülemesi 22, botsuz ~11.
- **Örneklem:** Huninin sıra sonrası adımlarında n = 6–28. Paydası < 40 olan hiçbir yüzdeyi karar için kullanmayın; ham kesirler verildi. A/B testi için gereken süre 09 numaralı raporda hesaplandı (katalog köprüsü için en erken 2 Kas 2026; /sonuc→giriş için 2027 sezonu) — burada tekrarlanmadı.
- **Bugünkü deploy:** Yeni olaylar ilk kez 21 Eyl 15:24'te görüldü (`kapi_acildi`), 16:28 `giris_basarili`, 19:13 `sonuc_goruntulendi`, 19:57 `cta_form_goruntulendi` (S5). Yani P2/P5/P6/P7 paketleri bugün öğleden sonra canlıda. Bugünden önceki seriyle bugünden sonrası karşılaştırılamaz (`program_eklendi` artık "gerçek ekleme" ölçüyor, önceden "+ tıklaması" ölçüyordu).
- **Oturum vs cihaz:** Google ile giriş dönüşü oturumu bölüyor; bu yüzden huni hem oturum (§1) hem cihaz (§1b) bazında verildi. İkisi de aynı yönü gösteriyor.
- **Web Vitals:** 0 performans olayı (`get_web_vitals` 30g). Site ayarı hâlâ kapalı. Mobil yavaşlık hakkında **ölçülemedi**.
## 1. Huni — 30 gün ve 7 gün, iç trafik ve bot hariç
### 1a. Oturum bazlı (S1; /giris satırında bot düşüldü, S8)
| Adım | 30g toplam | 30g mobil | 30g masaüstü | 7g toplam | 7g mobil | 7g masaüstü |
|---|---|---|---|---|---|---|
| Ziyaret (oturum) | **621** | 492 | 129 | **95** | 71 | 24 |
| Tek sayfada çıkan | 440 (%71) | 362 (%74) | 78 (%60) | 65 (%68) | — | — |
| Sıralamasını girdi (`sira_girildi`) | **28 (%4,5)** | 20 (%4,1) | 8 (%6,2) | **12 (%12,6)** | 7 | 5 |
| Sihirbaz 2. adım | 25 | 17 | 8 | 10 | 5 | 5 |
| Sihirbaz 3. adım | 24 | 17 | 7 | 9 | 5 | 4 |
| Sihirbazı tamamladı | **22** | 15 | 7 | **9** | 5 | 4 |
| /sonuc gördü | **23** | 15 | 8 | **9** | 5 | 4 |
| /giris gördü (botsuz) | **~11** | ~10 | ~1 | **6** | 5 | 1 |
| Giriş denedi (`giris_denendi`) | **6** | 5 | 1 | **3** | 2 | 1 |
| Girişli oturum (tanımlı) | 14 | 12 | 2 | 9 | 7 | 2 |
| /listem gördü | **7** | 5 | 2 | **4** | 2 | 2 |
| Yapay zekâ listesi oluşturdu | **3** | 2 | 1 | **2** | 1 | 1 |
| Kilit gördü (ücretli içerik) | 2 | 1 | 1 | 1 | 0 | 1 |
| /paket gördü | **1** | 0 | 1 | **0** | 0 | 0 |
| Ödeme başlattı | **0** | 0 | 0 | **0** | 0 | 0 |
| Ödedi | **0** | 0 | 0 | **0** | 0 | 0 |
7g'de sıra girme oranının %12,6'ya çıkması iki nedenle şüpheli: (a) 7g'de iç filtrenin yakalamadığı QA/tarayıcı-ajan trafiği olabilir (14 Eyl haftası için 09 raporunda da aynı uyarı vardı), (b) 15 Eyl+ ana sayfa girişi payı arttı (25/95) ve ana sayfa en çok dönüştüren giriş. Yön olarak bile kullanmayın.
### 1b. Cihaz bazlı (S2 — Google giriş dönüşünün oturumu bölmesini aşmak için)
| Adım | 30g (576 cihaz) | 7g (88 cihaz) |
|---|---|---|
| Sıra girdi | 27 | 11 |
| Sihirbaz tamam | 22 | 9 |
| /sonuc | 21 | 8 |
| /giris | 15 (bot dahil) | 5 |
| Giriş denedi | 6 | 3 |
| Tanımlı (girişli) | 8 | 5 |
| /listem | 4 | 2 |
| Liste oluşturdu | 3 | 2 |
| /paket | 1 | 0 |
| Ödeme başlattı | 0 | 0 |
**Okuma:** Sihirbaz sağlıklı (28 → 22, adım başına kayıp 1–3 kişi). Kayıp iki yerde toplanıyor: **ziyaret → sıra girişi (593 kişi)** ve **/sonuc → giriş (17 kişi)**. Giriş sonrası hacim (6 cihaz) para adımını ölçmeye yetmiyor.
## 2. En büyük 3 sızıntı
### Sızıntı 1 — Ziyaretçi sıralamasını girmiyor: 621 → 28, **593 kişi kayıp** (30g)
Giriş sayfasına göre (S3, S4; 30g, iç hariç):
| Nereden girdi | Oturum | Tek sayfa | Sıra girdi | Oran | Mobil/masaüstü sıra | +'ya bastı | Netlere baktı |
|---|---|---|---|---|---|---|---|
| /universite/* (1. sayfa) | 296 | 205 (%69) | 9 | %3,0 | 9 / 0 (310 / 42 oturum) | 40 | 54 |
| /universite/*/sayfa/N | 56 | 40 (%71) | **0** | %0 | 0 / 0 | 7 | 7 |
| /bolum/* | 112 | 80 (%71) | 3 | %2,7 | 2 / 1 (80 / 32) | 9 | 10 |
| /rehber/* | 73 | 63 (%86) | 5 | %6,8 | 4 / 1 (60 / 13) | 3 | 2 |
| Ana sayfa | 67 | 42 (%63) | **11** | **%16,4** | 5 / 6 (35 / 32) | 4 | 2 |
| Diğer | 17 | 10 | 0 | — | — | 0 | 0 |
- Katalog (üniversite + sayfalama + bölüm) = **464 oturum → 12 sıra girişi (%2,6)**; trafiğin %75'i burada ama huniye katkısı 12 kişi. Ana sayfa 67 oturumla 11 kişi getiriyor.
- **Mobil/masaüstü:** Katalog mobil 390 → 11 (%2,8), masaüstü 74 → 1 (%1,4). Ana sayfa mobil 35 → 5 (%14), masaüstü 32 → 6 (%19). Mobilde katalog bounce'u %74, masaüstünde %60 (S4).
- **Kanıt (kod):** Sıra kartı `/universite/[slug]`'da tablonun ve sayfalamanın **altında** (`src/features/katalog/components/universite-icerik.tsx:351-365`), bugün itibarıyla `/bolum/[slug]`'da da aynı konumda (`bolum-icerik.tsx:288`, commit f1abedc). Tek sayfada çıkan %70'lik kesim bu karta hiç inmiyor. `cta_form_goruntulendi` bugün 19:57'de ilk kez düştü (1 oturum) — kartın gerçekte kaç kişiye göründüğü 2 hafta sonra bilinecek.
- **Sayfalama girişleri (56 oturum, 0 sıra):** kullanıcı bir üniversitenin 3–6. sayfasına iniyor; kart o sayfada da altta.
**Bu hafta yapılabilecekler:**
1. Katalog sayfalarında sıra kartını başlığın hemen altına, tek alanlı ve kompakt hâliyle koy (mobilde sayısal klavye); tablonun altındaki kart kalsın. Beklenen etki: karta erişen kişi sayısı tek sayfada çıkan %70'i kapsar. Ölçüm: `cta_form_goruntulendi` / katalog oturumu oranı ve `sira_girildi{kaynak:cta}`.
2. Sayfalama sayfalarında (`/sayfa/N`) üst bağlam satırı: "{Üniversite} — {N}. sayfa · toplam {X} program · Sıralaman bu tabanların neresinde? [sıra alanı]". 56 oturum, 0 dönüşüm; **yeterli veri yok**, ama kayıp %100 olduğu için risk düşük.
### Sızıntı 2 — Sonuç sayfasından giriş yapmadan çıkış: /sonuc 23 → giriş yapan 6, **17 kişi kayıp** (30g)
(S6 — /sonuc gören, iç hariç oturumlar; "girişli" = oturum içinde bir noktada tanımlı hâle gelen)
| Cihaz | Durum | Oturum | Sıra girdi | "Giriş yap" panelini gördü | Giriş CTA'sına tıkladı | /giris'e gitti | Giriş denedi | /sonuc'ta çıktı | /sonuc'tan çıkışa medyan |
|---|---|---|---|---|---|---|---|---|---|
| Mobil | anonim kaldı | **10** | 9 | 3 | **0** | 3 | 1 | 7 | **33 sn** |
| Masaüstü | anonim kaldı | **7** | 6 | 3 | **0** | 0 | 0 | 5 | 150 sn |
| Mobil | girişli | 5 | 3 | 2 | 2 | 3 | 2 | 0 | 696 sn |
| Masaüstü | girişli | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 308 sn |
- Anonim kalan 17 kişinin **12'si siteyi /sonuc'ta terk etti**; 3'ü katalog sayfasına, 2'si ana sayfaya geçti.
- "Yukarıdaki tablo her zaman ücretsiz. 5 deneme kredinle 24 tercihlik Yapay Zeka listeni de kurabilirsin: ücretsiz giriş yap…" paneli (`sihirbaz-cagri-karti.tsx:272-300`, `hazir_panel_goruntulendi`) anonim 17 kişinin **6'sının ekranına girdi**; ikisi de (mobil 3, masaüstü 3) **0 tıklama**. Giriş yapan 6 kişinin 3'ü bu CTA'ya tıkladı, 3'ü başka yoldan (/giris'e doğrudan) gitti.
- Mobilde anonim kullanıcı /sonuc'ta 33 sn kalıyor: tabloyu görüyor, panele inmiyor. `tadimlik_goruntulendi` hâlâ 0 (30g) — tadımlık satırının gösterildiği ölçülemedi (hook düzeltmesi bugün çıktı; bugünden beri /sonuc gören 1 oturum var).
- Kaydet banner'ı (`kaydet_banner_goruntulendi`) bugün ilk kez düştü (4 oturum, 3'ü iç); /sonuc'ta gösterilmiyor (`kaydet-banner.tsx:50`).
**Bu hafta yapılabilecekler:**
1. /sonuc'ta anonim kullanıcıya **mobilde ekranın altında sabit tek satır**: "Bu listeyi kaybetme — Google ile kaydet" + sağ ok (CTA deseni kuralına uygun; `giris_cta_tiklandi{kaynak:"sonuc_cubuk"}` olayıyla). Panel %35 görünürlük / %0 tık ile ölçülmüş; çubuk görünürlüğü %100'e çıkarır. Yön ölçümü için 2027 sezonuna kadar oran okunmaz (09 raporu), ama tıklama sayısı 0'dan yukarı çıkarsa yeterli sinyal.
2. Panel metnini kısalt: başlık "Listen yalnızca bu sekmede duruyor", tek cümle "Google ile 5 saniyede kaydet; 5 deneme kredin hazır." — mevcut 3 cümlelik paragraf mobilde katlanıyor. **Yeterli veri yok** (6 gösterim, 0 tık); metin değişikliği ucuz olduğu için önerildi.
### Sızıntı 3 — Girişten sonra para adımına kimse gelmiyor: giriş yapan 6 → liste oluşturan 3 → kilit gören 2 → /paket 1 → ödeme 0 (30g)
- Giriş yapan 6 cihazın hepsi Google ile girdi (S7); 5'i /listem'e ulaştı, 3'ü yapay zekâ listesi oluşturdu (3 kredi). Kilit (ücretli içerik) 2 kişiye göründü; 1'i /paket'e gitti, ödeme başlatmadı. `kredi_bitti` 30g'de 0 — kimse 5 krediyi bitirmedi.
- Girişli /listem oturumlarının dizileri (S9): 28 Ağu mobil — rehber → sihirbaz → /sonuc → 7 program ekledi → /listem → liste oluşturdu → kilit gördü → katalogda gezmeye devam (24 dk). 17 Eyl masaüstü — liste oluşturdu → kilit ×2 → danışmana 1 soru → çıktı (93 sn). 21 Eyl mobil — sihirbaz → /sonuc → giriş CTA → Google → /listem. Yani liste oluşturan kişi kilidi görüyor ve **paket sayfasına bile gitmeden** çıkıyor; ama n=3.
- **Bu adımda "sızıntı" değil "hacim yokluğu" var:** ayda 3 liste oluşturan kullanıcıyla paket dönüşümü ölçülemez. Para adımını iyileştirmek için önce Sızıntı 1–2'den gelen hacim gerekir. Bu hafta yapılabilecek tek şey ölçüm: `kilit_goruntulendi` → `paket_goruntulendi{kaynak:kilit}` zinciri bugün canlıya çıktı; kaynak dağılımını 2 hafta sonra oku. **Yeterli veri yok.**
## 3. Sihirbaz (adım adım, 30g, iç hariç — S10)
Sıra girildi 28 → 2. adım 25 → 3. adım 24 → tamamlandı 22 → /sonuc görüntüleme 19 (kapı akışında /sonuc pageview oluşmadığı için 22 → 19 gerçek kayıp değil). Mobil 20 → 17 → 17 → 15; masaüstü 8 → 8 → 7 → 7. Sıra girişinin kaynağı: kapı (katalogdaki +) 14, ana sayfa hero 12, düzenle 5, katalog CTA formu 3 (olay sayısı; oturum başına birden fazla olabilir). `sira_form_hata` 0. Sihirbazda dokunulacak bir şey yok.
## 4. Ödeme adımı
**30g, tüm trafik (iç dahil — S11, S12):** /paket görüntüleyen 15 oturum / 7 cihaz; `odeme_baslatildi` 42 olay / 10 oturum / 5 cihaz; **/odeme sayfası görüntüleyen 5 oturum, hepsi 21 Eyl (bugün), 2 iç cihaz**; `/odeme/sonuc` görüntüleme **0**; `odeme_tamamlandi` **0**. `/paket?hata=…` (callback hatası dönüşü) **0**. iyzico referrer'lı dönüş **0**. Ödemeyle ilgili JS hatası yok; `get_errors` 30g: 5 olay (getBBox ×2 /rehber, HierarchyRequestError ×1 /paket — iç oturum, ChunkLoadError ×1, React #418 ×1). Web Vitals 0.
**Gerçek kullanıcıdan ödeme başlatan (30g): 0.** İç filtre bunu tanım gereği 0 gösterir; bu yüzden ödeme başlatan 13 cihaz tek tek incelendi (S13, S14). 11'i açık test davranışı. **2'si gerçek kullanıcı profili:**
| Tarih | Cihaz | Nereden | Dizi (özet) | Sonra |
|---|---|---|---|---|
| 24 Ağu | Mobil Safari, Google organik | /rehber/ais-tercih-nasil-yapilir-onaylama | → / → /paket → /giris → Google ile giriş denendi → /paket → **"satın al" (odeme_baslatildi)** | oturum bitti; /odeme görülmedi; 22 dk'lık ziyaret |
| 12 Eyl | Masaüstü Chrome | önce direkt (/rehber/yks-tercih-takvimi-2026 → üniversite → / → /giris → giriş denendi), sonra Google organik | kilit gördü ×2 → /listem → /paket → **"satın al" (odeme_baslatildi)** | → ana sayfa, çıktı; /odeme görülmedi |
İkisi de tek kez bastı, tek hesap, giriş yapmış, listeyi görmüş kullanıcılar; test cihazlarının deseni (aynı oturumda 4–27 basış) yok. **İkisi de "satın al"dan sonra ödeme sayfasına ulaşmadı.**
**Bunun anlamı belirsiz — iki açıklama var, Rybbit ayıramıyor:**
- (a) **Ölçüm boşluğu:** Gömülü /odeme sayfası 11 Ağu'dan beri var (commit 5ccc9c1) ama 11 Ağu–20 Eyl arasında 60+ `odeme_baslatildi` olayına karşılık **0 /odeme görüntülemesi** kaydedildi — 11 Ağu'da 3 ödeme gerçekten tamamlandığı hâlde (`odeme_tamamlandi` sunucu olayı). Yani sunucu action'ının fırlattığı `redirect()` ile yapılan geçiş Rybbit'te pageview üretmiyordu; /odeme görüntülemesi ilk kez bugün 11:49'da, client tarafı `router.push`'a geçen düzeltmenin (8f4669e, 16:13 commit; gündüz testleri daha önce başlamış) test edildiği oturumlarda göründü. `/odeme/sonuc` görüntülemesi ise **hiçbir gün yok** — callback'in 303 yönlendirmesiyle gelen sayfa ya izlenmiyor ya da kullanıcı ona hiç ulaşmıyor. Bu iki sayfa kör.
- (b) **Gerçek kayıp:** 8f4669e'nin mesajı "geri dönüşte buton tıklamaya sağır kalıyordu" diyor; 12 Eyl'deki kullanıcı /paket'e dönüp basmış olabilir. 24 Ağu'daki kullanıcı girişten /paket'e dönüp basmış — aynı desen.
**Kesin cevap prod sipariş tablosunda:** 24 Ağu ve 12 Eyl'de `orders` satırı oluştu mu, durumu ne (pending/failed/paid), iyzico token alındı mı. Bu, iki gerçek satış fırsatının nerede kaybolduğunu tek sorguyla söyler.
**Bu hafta:** (1) sipariş tablosu kontrolü [Bilal]; (2) `satin-al-form.tsx:52-58`'deki `catch` ve `"error" in sonuc` dallarına `olay("odeme_hata", {kod})`; (3) `/odeme/sonuc` görüntülemesinin neden hiç düşmediğini canlı sandbox denemesiyle doğrula (sayfa açılıyor mu, Rybbit pageview atıyor mu).
## 5. Hangi giriş sayfası dönüştürüyor; rehber huniye giriyor mu?
Tablo §2/Sızıntı 1'de. Sıralama (30g, sıra girme oranı): **ana sayfa %16,4** (11/67) › **rehber %6,8** (5/73) › /universite %3,0 (9/296) › /bolum %2,7 (3/112) › sayfalama %0 (0/56). Giriş yapan 6 kişinin girişleri: ana sayfa 3, /universite 1, /rehber 1, /bolum 1 (S3 "tanimli" sütunu, yaklaşık).
**Rehber (S15 — 73 oturum, 30g, iç hariç):**
| Yazı | Oturum | Tek sayfa | Kataloğa geçti | Sıra girdi | /sonuc | /giris |
|---|---|---|---|---|---|---|
| yerlesemedim-ne-yapmaliyim | 16 | **16** | 0 | 0 | 0 | 0 |
| siralama-sartlari-2026 | 14 | 12 | 1 | **2** | 2 | 1 |
| kac-siralama-ile-hangi-bolume-girebilirim | 10 | 9 | 1 | **2** | 1 | 0 |
| tercih-robotu-nedir-yok-atlas-nasil-kullanilir | 9 | 6 | 1 | 0 | 0 | 1 |
| tercih-listesi-nasil-yapilir | 6 | 6 | 0 | 0 | 0 | 0 |
| yks-tercih-takvimi-2026 | 5 | 3 | 1 | **1** | 1 | 1 |
| hazirlik-sinifi-ve-ogretim-dili | 5 | 5 | 0 | 0 | 0 | 0 |
| diğer 5 yazı | 8 | 6 | 0 | 0 | 0 | 0 |
- Rehber trafiğinin **%86'sı tek sayfada çıkıyor**; ikinci bir rehber yazısına geçen 6, kataloğa geçen 4, ana sayfaya geçen 2 oturum. Huniye giren 5 kişi üç yazıdan: sıralama şartları (2), kaç sıralamayla hangi bölüm (2), tercih takvimi (1). "Yerleşemedim" 16/16 tek sayfa — okuyucu ürünün kitlesi değil.
- Rehber yazılarında sıra formu var mı ölçülemiyor: `cta_form_goruntulendi` bugün çıktı, rehberde henüz 0.
- **Bu hafta:** "siralama-sartlari-2026" ve "kac-siralama-ile-hangi-bolume-girebilirim" yazılarının ilk ekranına (giriş paragrafının hemen altına) tek alanlı sıra formu; diğer yazılara dokunma. 24 oturum / 4 sıra girişiyle bu ikisi rehberdeki tek niyetli trafik. **Yeterli veri yok** ama ucuz.
## 6. Giriş sayfası ve yöntemler (S7, S8)
- Giriş deneyen 6 cihazın **6'sı Google**, 6'sı tanımlı hâle geldi (%100 başarı); e-posta linki 30g'de gerçek kullanıcıda **0 deneme**. `giris_hata` 0. Magic-link doğrulama sayfası (/giris/dogrula) 30g'de 2 oturum (18 Ağu, 21 Eyl — ikincisi iç).
- /giris'i görüp denemeyen: botsuz ~11 görüntüleme → 6 deneme. Denemeyen ~5 kişi: 3'ü /sonuc'tan gelmiş mobil (S8 "/sonuc sonrası" satırı: 6 oturum → 3 deneme). Örneklem çok küçük; giriş formunu değiştirmek için **yeterli veri yok**. Tek gözlem: e-posta yolunu kimse kullanmıyor, Google butonu tek gerçek yol — sayfada onu öne almak (üstte, tam genişlik) ve e-postayı "ya da e-postayla" altına almak risksiz.
## 7. Bugünkü yayının ilk sağlık kontrolü (S5 — 21 Eyl 15:20'den sonra)
| Olay | Oturum | Not |
|---|---|---|
| `kapi_acildi` {tetik: arti 1, duzenle 1} / `kapi_kapatildi` {adim: giris, sira} | 2 / 2 | düşüyor; ikisi de tamamlanmadan kapandı |
| `program_eklendi` {yol: dogrudan} | 2 (3 olay) | "+ anında ekle" canlı; artık gerçek eklemeyi ölçüyor |
| `paket_goruntulendi` {kaynak: diger 4, nav 1} | 5 (/paket görüntüleyen 7 oturum) | 2 oturumda düşmedi — `olayBirKez` aynı oturumda tekilleştiriyor, normal |
| `giris_denendi` → `giris_basarili` | 5 → 3 (1 cihaz) | sunucu olayı çalışıyor (RYBBIT_* env prod'da var) |
| `sonuc_goruntulendi` | 1 (/sonuc gören 1) | 1/1 |
| `kaydet_banner_goruntulendi` | 4 | hook düzeltmesi çalışıyor; 1 tanesi /paket?kaynak=nav'da düştü — banner /paket'te de görünüyor, tasarım kararı mı kontrol edilsin |
| `cta_form_goruntulendi` | 1 | düşüyor |
| `tadimlik_goruntulendi` | 0 | /sonuc gören 1 oturum vardı; **hâlâ doğrulanmadı** |
| `odeme_hata`, `liste_uretim_hata`, `sira_form_hata`, `giris_hata` | 0 | hata yok ya da yol henüz tetiklenmedi |
## Öncelik tablosu
| # | Bulgu | Kanıt | Önerilen iş (backlog önerisi) | Beklenen etki | Kesinlik |
|---|---|---|---|---|---|
| 1 | İki gerçek kullanıcı "satın al"a bastı, ödeme sayfasına ulaşmadı; /odeme ve /odeme/sonuc görüntülemesi 11 Ağu–20 Eyl arasında hiç yok | S11–S14; 8f4669e commit mesajı | Prod sipariş tablosu kontrolü [Bilal]; `odeme_hata` olayı; canlı sandbox uçtan uca deneme + /odeme/sonuc pageview doğrulaması | Tek satış kanalının çalıştığından emin olmak | Yüksek (boşluk kesin, nedeni belirsiz) |
| 2 | Katalog 464 oturum → 12 sıra; kart tablonun altında, mobil %74 tek sayfa | S3, S4; universite-icerik.tsx:351-365 | Sıra kartını başlığın altına taşı (kompakt), sayfalama sayfalarına bağlam satırı | Sıra girişi tabanı %2,6 → ölçülebilir artış; huninin tümünü besler | Orta-yüksek (yön kesin, büyüklük değil) |
| 3 | /sonuc'ta anonim 17 kişi; panel 6'sına göründü, 0 tık; mobilde 33 sn | S6; sihirbaz-cagri-karti.tsx:272-300 | Mobil sabit alt çubuk "Google ile kaydet"; panel metnini kısalt | Giriş yapan 6/23 → yukarı; kayıtlı kullanıcı = geri dönüş kancası | Orta (n=17) |
| 4 | İç trafik %8–18, bot 11 oturum; /giris sayısını ikiye katlıyor | S0, S8 | Rybbit panelinde IP/ülke dışlama; raporlarda TR filtresi | Doğru rakam | Yüksek |
| 5 | Rehber %86 tek sayfa; 3 yazı huniye besliyor | S15 | siralama-sartlari ve kac-siralama yazılarının ilk ekranına sıra formu | Rehber → sıra 5 → ? | Düşük (n=24) |
| 6 | Giriş %100 Google; e-posta yolu kullanılmıyor | S7 | Google butonunu öne al | Küçük | Düşük (n=6) |
| 7 | `tadimlik_goruntulendi` hâlâ 0; Web Vitals kapalı | S5, get_web_vitals | 1 hafta sonra yeniden bak; Web Vitals'ı panelden aç [Bilal] | Ölçüm | Yüksek |
| 8 | Kaydet banner'ı /paket'te de düşüyor | S5 | Tasarımcı kontrolü: banner /paket ve /odeme'de gizlenmeli mi | Küçük | Orta |
## Bilal'den istenen (en fazla 3)
1. Prod veritabanında `orders` tablosunda 24 Ağu ve 12 Eyl 2026 tarihli kayıtları (durum, iyzico token var mı) kontrol et ve sonucu ekibe yaz — **10 dk**.
2. Canlıda sandbox kartla /paket → /odeme → /odeme/sonuc akışını bir kez tamamla; ardından Rybbit'te `/odeme/sonuc` sayfa görüntülemesinin düştüğünü kontrol et (düşmüyorsa CTO'ya "ödeme sonucu sayfası izlenmiyor" bulgusu) — **15 dk**.
3. Rybbit panelinde Web Vitals'ı aç ve ekip cihazlarının IP'lerini dışlama listesine ekle — **5 dk**.
## Sorgu dizini (hepsi `run_query`, `scoped_events`, site_id=1; iç oturumlar S0 ile `NOT IN`)
| Kod | Ne hesaplıyor |
|---|---|
| S0 | İç filtre: ödeme olayı atmış 13 cihaz + 9 hesap → 207 iç oturum (30g 55, 7g 21); toplam 30g 676, 7g 116 |
| S1 | Oturum bazlı huni bayrakları × pencere (7g / 8-30g) × cihaz tipi |
| S2 | Aynı huni cihaz (user_id) bazlı |
| S3 | Giriş sayfası grubu × huni bayrakları (30g) |
| S4 | Giriş grubu × cihaz × pencere: oturum, tek sayfa, ort. pv, medyan süre, sıra, +, netler, /sonuc |
| S5 | 21 Eyl 15:20 sonrası yeni olayların olay/oturum/cihaz sayıları ve özellikleri; yeni olayların ilk/son zaman damgası ve iç/dış ayrımı |
| S6 | /sonuc gören oturumlar: cihaz × anonim/girişli × panel, CTA, /giris, deneme, çıkış sayfası, /sonuc'tan sona medyan sn |
| S7 | Giriş deneyen cihazlar: yöntem, sonra tanımlı/listem/liste/paket |
| S8 | /giris gören oturumlar: yol (/sonuc sonrası / başka sayfadan / doğrudan) × cihaz; bot şüpheli oturumların dizisi, ülke, süre |
| S9 | /listem gören ya da liste oluşturan gerçek oturumların olay dizileri |
| S10 | Sihirbaz adımları × pencere × cihaz; sıra kaynağı; kapı/form hatası |
| S11 | /paket, /odeme, ödeme olayları: yol × olay × özellik × querystring (30g / eski) |
| S12 | Gün bazında: odeme_baslatildi olay/oturum/cihaz, /odeme pv, /odeme/sonuc pv, odeme_tamamlandi, /paket oturum (tüm zamanlar) |
| S13 | 13 ödeme cihazının profili: ilk/son görülme, oturum, ödeme başlatma sayısı, hesap sayısı, kanal |
| S14 | 24 Ağu ve 12 Eyl cihazlarının oturum dizileri; /odeme gören oturumların dizileri; /odeme ve /odeme/sonuc pathname varyantları |
| S15 | /rehber girişli oturumlar: yazı × tek sayfa × kataloğa/ana sayfaya geçiş × sıra × /sonuc × /giris |
Kişisel veri (e-posta, isim, IP) sorgulanmadı ve rapora yazılmadı; cihaz/hesap kimlikleri yalnız sayıldı. Rybbit verisinde bana yönelik talimat içeren içerik görülmedi.

View File

@@ -0,0 +1,224 @@
# 04 — Rakip analizi: Türkiye üniversite tercih yardımı pazarı (Eylül 2026)
> Rol: Marka stratejisti · Tarih: 21 Eylül 2026 (akşam vardiyası) · Okuyucu: CEO (karar), CTO/ürün yöneticisi (iş tanımı)
> Yöntem: açık web (URL'li) + kod okuması (`src/`, dosya:satır). Kod değiştirilmedi, hiçbir siteye hesap/mesaj/paylaşım yapılmadı. Önceki raporlar (`docs/gece-vardiyasi/2026-09-21/03-marka-stratejisi.md`, `10-marka-seo-tur2.md`) tekrar edilmedi; orada kapanan işler (Garanti→Güvenli, YÖK logosu, Armut kıyası, 2026 verisi) burada "yapıldı" sayılır.
> İşaretler: **[K]** koddan/dokümandan doğrulandı · **[W]** web sayfası açılıp okundu · **[A]** yalnızca arama özeti · **[V]** varsayım · **teyit edilemedi** = sayfa kapalı/JS kabuk/erişim engeli.
---
## Özet (6 satır)
1. **Ücretsiz katman tamamen dolu ve artık "yapay zekâ" da diyor:** en az 15 ücretsiz tercih robotu saydık; 5'i AI sohbet/risk analizi de veriyor (TercihSepeti, Üsküdar, ADA, tercih-robotu.com, Güncel YKS Tercih Robotu uygulaması) [W]. Ana sayfamızdaki karşılaştırma tablosu "ücretsiz robotlar trend analizi ve dengeli liste vermez" diyor (`src/app/page.tsx:148-158`) — bu artık kısmen yanlış ve en çok savunduğumuz "dürüstlük" konumunu kendi elimizle deliyor.
2. **Ücretli AI'da tek doğrudan rakip Tercih Robotu (Es Eğitim, 26 yıl)** — PDF yükle → ücretli AI liste [W]; fiyatı sayfada yok (**teyit edilemedi**). Koç'a Sor (99–399 TL/ay) tercih değil yıl boyu koçluk satıyor [W]. 299 TL tek seferlik konumumuz hâlâ boş.
3. **İnsan danışman tarafı Armut'ta 1.000–3.000 TL, 1.095 danışman, 2.788 yorum, 4,9 puan, yılda 835 müşteri** [W]. Bir danışman "yerleşme oranı neredeyse %100" yazıyor [W]. Sitemizdeki kıyas rakamı doğru; ama tablodaki "insan danışman 7/24 soru-cevap vermez" satırı WhatsApp'la çalışan danışmanlar için tartışmalı.
4. **En büyük "rakip" ChatGPT ve rehber öğretmen — ikisi de ücretsiz.** ChatGPT öğrencilere 4 ay ücretsiz kampanyada [W]; YÖK Atlas JS kabuğu olduğu için botlar resmî veriyi okuyamıyor (`docs/geo/geo-raporu.md:20`) — bizim "havuz dışına çıkamaz" kuralımız (`huni-semasi.tsx:25`) tam bu boşluğa oturuyor ama hiçbir satış ekranında yazmıyor. MEB 29 Tem–10 Ağu'da ücretsiz danışmanlık verdi; İBB bugüne dek 369.594 gence ulaştı [W].
5. **Dönüşüm için en ucuz 8 metin değişikliği §5'te.** En kritiği: `/paket`'te girişsiz CTA "Giriş yap — sonra 299 TL'ye al" (`paket-satinal.tsx:102`) — oysa girişte 5 deneme kredisi var, liste 3 kredi, ilk 3 satır açık (`credits.ts:11,14`, `rapor-maske.ts:12`). Ücretsiz deneme zaten var ama satış ekranı bunu söylemiyor.
6. **Dağıtımda rakiplerin hiçbiri rehber öğretmene "alet" vermiyor;** hepsi öğrenciye reklam yapıyor. Bu hafta yapılabilecek 5 sıfır maliyetli aksiyon §6'da; hepsi Bilal'in kendi adıyla ve şeffaf. Ek yerleştirme sonuçlarının açıklanacağı gün (Eylül sonu, **doğrulanmalı**) sezonun son dikkat anı.
---
## 1. Rakip haritası (9 kategori, 30+ oyuncu)
Sütun "Biz iyi / kötü": KolayTercih'in o oyuncuya göre gerçek üstünlüğü ve gerçek zayıflığı (koddan doğrulanmış özelliklerle).
### 1.1 Resmî ve kamu (ücretsiz, en yüksek güven)
| Oyuncu | Ne sunuyor | Fiyat | Adım | Güven sinyali | Zayıf noktası | Biz iyi / kötü | Kaynak |
|---|---|---|---|---|---|---|---|
| **YÖK Atlas Tercih Sihirbazı** (lisans t4 / önlisans t3) | Puan türü + sıralama gir → il/tür/burs filtresi → program listesi; son 4 yılın taban verisi | Ücretsiz | ~4 | Devlet; 21.493 kayıt | JS'siz boş kabuk (botlar okuyamaz); Nisan 2026 güncellemesinden sonra net/OBP verisi kaldırıldı, "sığlaştı" şikâyeti; yoğun günlerde açılmıyor [A/W]; akıl vermiyor | **İyi:** gerekçe + risk + trend, çalışan HTML sayfalar. **Kötü:** resmiyet sıfır; veri onların | https://yokatlas.yok.gov.tr/tercih-sihirbazi-t4.php [A] · https://www.sikayetvar.com/yuksekogretim-kurulu-yok/yok-atlas-verilere-ulasamama [W] · `docs/geo/geo-raporu.md:20` [K] |
| **ÖSYM (AİS)** | Tercihlerin yapıldığı tek resmî yer; robot/öneri aracı **yok** | Ücretsiz (ek yerleştirme 170 TL) | — | Devlet | Öneri yok | Rakip değil, son adım. Metinlerimiz "ÖSYM ile bağlantılı değil" diyor (`site-footer.tsx:130`) — doğru | https://www.hurriyet.com.tr/egitim/10-soruda-2026-yks-tercihleri-43254172 [W] |
| **MEB tercih danışmanlığı birimleri** | Okullarda/RAM'lerde rehber öğretmenle yüz yüze; 29 Tem–10 Ağu 2026 (9 iş günü); öğretmene 219 TL/saat, 45 saat = 9.855 TL | Öğrenciye ücretsiz | 1 (git) | Devlet + tanıdık öğretmen | 9 gün, mesai saati; kişi başı süre kısa [V]; veri aracı yok (öğretmen YÖK Atlas'a bakar) | **İyi:** 7/24, PDF, öğretmenin kullanabileceği çıktı. **Kötü:** güven transferi yok — öğretmen bizi bilmiyor | https://www.ogretmenlericin.com/meb-personel/2026-yks-tercih-danismanligi-ucretleri-belli-oldu-168441h [W] |
| **İBB Tercih** | 39 fiziki nokta + Alo 153 + ev ziyareti; "İBB Tercih Robotu" (tercih2.ibb.istanbul: ad-soyad-telefon formu arkasında) | Ücretsiz | 4 (form + KVKK + CAPTCHA) | Belediye; **369.594 gence** danışmanlık | İstanbul'la sınırlı; robot kişisel veri istiyor, içeriği kapalı | **İyi:** kayıtsız ücretsiz tablo. **Kötü:** ölçek ve kurum güveni | https://tercih.ibb.istanbul/ [W] · https://tercih2.ibb.istanbul/ [W] |
### 1.2 Ücretsiz filtre robotları (metalaşmış katman)
| Oyuncu | Ne sunuyor | Fiyat | Adım | Güven sinyali | Zayıf noktası | Biz iyi / kötü | Kaynak |
|---|---|---|---|---|---|---|---|
| **Tercih Robotu (tercihrobotu.com.tr)** — Es Eğitim Danışmanlık | Ücretsiz "YKS Hızlı Tercih" (sıra + filtre, üyeliksiz) **+ ücretli "Yapay Zeka Tercih Robotu"**: ÖSYM sonuç belgesi PDF yükle → sohbet + liste; "Sonuç belgesi paketi gerekli", "Paket satın al" | Hızlı: ücretsiz · AI: **ücretli, fiyat sayfada yok — teyit edilemedi** | "6 adımda sonuç, 3 dakikada filtreleme" | **26 yıl**, 21.493 program, 229 üni, 81 il; KPSS/DGS versiyonları | AI ürününün yöntemi, fiyatı, veri kısıtı açıklanmıyor; SEO sayfaları program bazlı (bize en yakın SEO rakibi) | **İyi:** yöntem açık (`/meraklisina`), fiyat açık, deterministik risk. **Kötü:** 26 yıllık marka ve program sayfası derinliği | https://www.tercihrobotu.com.tr/ [W] · https://www.tercihrobotu.com.tr/ia-tercih-robotu/ [W] · https://www.tercihrobotu.com.tr/sikca-sorulan-sorular/ [W] |
| **Kariyer.net Tercih Motoru** (Univerlist altyapısı) | Filtre → listeye ekle → Excel indir; son 3 yıl (2023–2025) | Ücretsiz | döngüsel | Kariyer.net markası, ÖSYM verisi | AI yok; öneri yok; "tavsiye amaçlıdır" | **İyi:** 6 yıl veri, gerekçe. **Kötü:** marka bilinirliği | https://www.kariyer.net/tercih-motoru/ [W] |
| **TercihAI (tercih-ai.com)** — *çalışma adımızla birebir aynı isim* | Filtre + "Şehir Yaşam Endeksi"; 2025 verisi; 374 lisans + 265 önlisans bölüm | Ücretsiz | ~7 (rehberde) | YÖK Atlas kaynağı, açık sorumluluk reddi ("ÖSYM/YÖK hizmeti değildir") | AI yalnızca endekste; liste kurmuyor | **İyi:** liste kuruyoruz. **Kötü/risk:** `vizyon.md:1` ve `page.tsx:145` (`tercihai` anahtarı) hâlâ "TercihAI" diyor — kamuya sızarsa isim çakışır | https://www.tercih-ai.com/ [W] · `docs/urun/vizyon.md:1` [K] |
| **TercihSepeti** | Puan gir → 21.000+ programdan filtrele → sürükle-bırak liste → **AI her satırı "Çok Güvenli…Çok Riskli" etiketler ve "yerleşme olasılığı hesaplar"**; 2026 verisi iddiası | Ücretsiz | 4 | "ÖSYM kılavuzu ve YÖK Atlas ile uyumlu" | Kim yaptığı yok; **olasılık vaadi** (bizim bıraktığımız dil); yöntem kapalı | **İyi:** 5 seviye yerine 3 seviyeli deterministik risk + gerekçe; yöntem açık. **Kötü:** onlar ücretsiz | https://www.tercihsepeti.com.tr/ [W] |
| **Canlıkoç Tercih Robotu** | Sıra gir → aralık → **"tek tıkla dengeli liste"** (24 program); 2026 yerleştirme verisi; kayıtsız | Ücretsiz | 3 | Ücretsiz koçluk uygulaması markası | Gerekçe yok, AI yok, kim yaptığı zayıf | **İyi:** gerekçe, sohbet, PDF. **Kötü:** "dengeli 24'lük liste" artık ücretsiz de var → tablodaki iddiamız zayıfladı | https://canlikoc.com/tercih-robotu.php [W] |
| **Üniversite Tercih Merkezi (ADA)** | Tercihmatik filtre + puan hesaplama + **AI asistan ADA** ("sana özel tercih listesi hazırlar"); 2022–2025 | Ücretsiz üyelik | 4 | "En çok eklenen programlar" | Üyelik şart; yöntem kapalı | **İyi:** havuz kısıtı, deterministik risk. **Kötü:** onlar ücretsiz + meslek rehberi/envanter var | https://www.universitetercihmerkezi.com/ [W] |
| **tercih-robotu.com** ("AI Üniversite Tercih Danışmanı") | Sıra/puan → "Analiz Et" → liste; **"yerleşme ihtimalini gör"**; 227+ üni, 29K+ program, yurt karşılaştırma | Ücretsiz görünüyor (fiyat yok) | 3 | Rakamlar var, kurucu yok | Olasılık dili; kimlik yok | Aynı: yöntem/kimlik açıklığı | https://tercih-robotu.com/ [W] |
| **Unikazan** (Teknik Zeka ARGE Ltd.) | Ücretsiz robot + rehber blog; "Robot seni tanımaz… asistan olarak kullan, karar verici yapma" | Ücretsiz | — | Şirket adı açık | Filtre | Aynı katman | https://unikazan.com/blog/yks-tercih-nasil-yapilir/ [W] |
| **unitercihrobotu.com** | Filtre + tercih motoru + sayaç; iOS/Android | Ücretsiz (uygulama fiyatı yok) | 3 | ÖSYM/YÖK Atlas, metodoloji sayfası | Kullanıcı sayısı yok; ince sayfalar | Önceki raporda işlendi | https://unitercihrobotu.com/ [W] |
| Diğer klonlar: Derece Kampüsü, YKS Koçum, IIENSTITU, eleman.net, Multibem, Milet Akademi (**şimdiden "Tercih Robotu 2027"** başlığı), AGD, Beykent K12Net | Filtre | Ücretsiz | 2–3 | — | Hepsi aynı | — | https://miletakademi.net/yks-tercih-robotu [A] · https://derecekampusu.com/tercih-robotu/ [A] |
| **tercih.tv**, **Myexamy**, **robot.universitetercihrobotu.com** | "Yapay zekâ destekli" iddiası | ? | ? | ? | JS kabuk — **teyit edilemedi** | — | [W: boş kabuk] |
### 1.3 Ücretli / abonelik AI
| Oyuncu | Ne sunuyor | Fiyat | Adım | Güven sinyali | Zayıf noktası | Biz iyi / kötü | Kaynak |
|---|---|---|---|---|---|---|---|
| **Koç'a Sor (kocasor.com)** | Yıl boyu AI sınav koçu (fotoğrafla soru çözümü, çalışma planı); tercih yan özellik | **99 / 199 / 399 TL aylık**, yıllıkta 2 ay bedava, Pro'da 7 gün deneme | — | "50.000+ aktif öğrenci", "4.9 App Store", "%94 memnuniyet", "2M+ soru" (doğrulanamaz) | Tercihte derinlik yok; abonelik | **İyi:** tek seferlik, tercihe odaklı, yöntem açık. **Kötü:** sezon dışı 9 ay onlar öğrenciyle, biz değiliz | https://kocasor.com/ [W] |
| **Tercih Robotu — Yapay Zeka paketi** | (1.2'de) | ücretli, rakam yok — **teyit edilemedi** | PDF yükle | 26 yıl | Fiyat gizli | Fiyat şeffaflığı bizde | https://www.tercihrobotu.com.tr/ia-tercih-robotu/ [W] |
### 1.4 Mobil uygulamalar
| Uygulama | Geliştirici | Puan / oy | Not | Kaynak |
|---|---|---|---|---|
| **Güncel YKS Tercih Robotu** (Android) | EduRise Eğitim Teknolojileri A.Ş. | **4,22 / 1.504 oy** [K: sayfa kaynağından okundu] | "Yapay zekâ rehber hedefe göre liste oluşturur, program koşullarını sorabilirsin" [A]; indirme sayısı ve uygulama içi fiyat okunamadı — **teyit edilemedi** | https://play.google.com/store/apps/details?id=com.sinavla.ykstercihrobotu |
| **Studence: Lise & YKS** ("YKS Asistan") | UCApps | 4,52 / 27 oy | Küçük | https://play.google.com/store/apps/details?id=com.dh.yks.assistant.ai |
| Skolbord Üniversite Tercih Asistanı, Meditercih, Tercih Analizi, Mr Focus (iOS) | çeşitli | — | App Store 429/404 verdi — **teyit edilemedi** | https://apps.apple.com/us/app/id6449912221 |
Okuma: mobil tarafta ölçekli bir lider yok; en büyüğü 1.504 oyla küçük. Uygulama açmak kapasiteyi aşar ve gerekmiyor [V].
### 1.5 İnsan danışmanlar (ödeyen veli, fiyat kıyasımızın kaynağı)
| Oyuncu | Ne sunuyor | Fiyat | Adım | Güven sinyali | Zayıf noktası | Biz iyi / kötü | Kaynak |
|---|---|---|---|---|---|---|---|
| **Armut YKS Tercih Danışmanı** | Birebir liste, ek tercih yönlendirme, bölüm-kariyer uygunluğu | **1.000–3.000 TL** (talebe göre) | Teklif al → görüş → liste (3+) | **1.095 danışman, 2.788 onaylı yorum, 4,9 puan, yılda 835 kullanıcı**; "20 yılı aşkın", "doktora" profilleri | Bir danışman: **"yerleşme oranı neredeyse %100"**; başka biri "20 bin kişiyle test ettiğimiz bilimsel proje" — kaynaksız; yöntem kapalı, ölçeklenmez, sezon dışı yok | **İyi:** fiyat, hız, yöntem açıklığı, PDF. **Kötü:** insan sesi, yüz, 2.788 yorum | https://armut.com/yks-tercih-danismani [W] · https://armut.com/fiyatlari/yks-tercih-danismani_93536 [W] |
| **osym7bizi / @7mentorluk** | Instagram DM'den danışmanlık, "kontenjan sınırlı" | Sayfa "Tercih Dönemi Sona Erdi" — fiyat **teyit edilemedi** | DM | Instagram | Sezon dışı kapalı | Yıl boyu açık olmamız | https://osym7bizi.com/tercih-danismanligi.php [W] |
| **İlhan Koç Akademi (Ankara)**, **İz Koçluk (2×1 saat online)**, **Tunafen/ogrencikoclugu ("2 ayda sınav kazandıran taktikler")**, **İlerlet** | Kurumsal koçluk + tercih danışmanlığı | Hiçbirinde fiyat yok — telefon/WhatsApp | 2–3 görüşme | Adres, telefon, kurum | Fiyat gizli; abartılı başarı dili | Fiyat şeffaflığı | https://ilhankocakademi.com/yks-tercih-danismanligi/ · https://www.izkocluk.com/universite-tercih-danismanligi/ · https://www.ogrencikoclugu.org/universite-tercih-danismanligi.php · https://ilerlet.com/yks-tercih-danismanligi [W] |
| **Bionluk** | — | İki aramada sonuç çıkmadı — **teyit edilemedi** | — | — | — | — | [A] |
| **Ekşi Sözlük gönüllüleri** ("yks 2026 sözlük yazarları tercih yardımlaşması") | Yazarlar alanlarına göre ücretsiz yardım; biri "ücret karşılığı kariyer planı — yemek ısmarlama gibi" | Ücretsiz / sembolik | DM | Yazar itibarı | Dağınık; 12 entry (24 May–23 Tem 2026) | Rakip değil, kanal (§6) | https://eksisozluk.com/yks-2026-sozluk-yazarlari-tercih-yardimlasmasi--8104891 [W] |
| **Tercih Rehberliği** (kâr amacı gütmeyen, Üsküdar) | Adayı o bölümü okuyan mentorla 24 saatte eşleştirir | Ücretsiz | 3 | İsimli mentor profilleri, fotoğraflı tanıklıklar | Veri aracı değil | Tamamlayıcı — bölüm içi deneyim bizde yok | https://www.tercihrehberligi.com/ [W] |
### 1.6 Üniversite yayını asistanlar (tarafsız değil)
| Oyuncu | Not | Kaynak |
|---|---|---|
| **Üsküdar Üni. 2026 YKS Tercih Asistanı** | Ücretsiz hesap → puan gir → AI sohbet → liste; "500.000+ program verisi"; **"Üsküdar Üniversitesi programlarını… öncelikli olarak inceleyin"** | https://uskudar.edu.tr/tercih-asistani [W] |
| Beykent K12Net Tercih Robotu, Ankara Bilim ücretsiz danışmanlık, AGD Üniversite | Kurumun kendi adaylarına | https://beykentunivtercihrobotu.k12net.com/ [A] · https://x.com/ankarabilimuni/status/2071540502273388933 [A] |
Bizim kozumuz: **üniversitelerden para almıyoruz** — bu cümle sitede hiçbir yerde yok (grep "üniversitelerden" → 0) [K].
### 1.7 Sosyal medya rehber/fenomenler
| Oyuncu | Ölçek | Ne satıyor | Zayıf noktası | Kaynak |
|---|---|---|---|---|
| **@yks.rehberiniz** (Instagram) | **834K takipçi** | "2026 · Üniversite/Tercih Danışmanlığı · DM · Türkiye'nin En Büyük Öğrenci Eğitim ve Danışmanlık Platformu"; puan/kontenjan analizi, liste hazırlama, 7/24 iletişim; **fiyat DM'de** | Kim olduğu, yöntemi, fiyatı kapalı; "en büyük" iddiası kaynaksız | https://www.instagram.com/yks.rehberiniz/ [W] |
| **Rehber Hocam** (YouTube, Murat Yaşar) | abone sayısı okunamadı — **teyit edilemedi** | YKS/KPSS/MSÜ rehberlik videoları | — | https://www.youtube.com/channel/UC9gsoe7d_BYa6goZMKvXTWA [A] |
| Canlı tercih yayınları (Temmuz 2026: "YKS Tercihlerinizi CANLI YAYINDA Yapıyoruz", "Bu Sıralamayla Neresi Gelir? 19.30") | — | Yayında izleyicinin sıralamasına bakma formatı | Tek seferlik, kayıt yok; **veri kaynağı arıyorlar** | https://www.youtube.com/watch?v=xBh5BIuZpyQ · https://www.youtube.com/watch?v=BmaDL9FxwbU [A] |
### 1.8 ChatGPT ve genel sohbet botları
| Konu | Bulgu | Kaynak |
|---|---|---|
| Erişim | Özel GPT var: "YKS Yapay Zeka Tercih Robotu" (içerik giriş istiyor — **teyit edilemedi**). ChatGPT öğrencilere **4 ay ücretsiz** kampanya (2026) → hedef kitlemiz için fiilen ücretsiz | https://chatgpt.com/g/g-l1Pn9Eg9T-yks-yapay-zeka-tercih-robotu [A] · https://chatgpt.com/students/2026/ [A] |
| Zayıf noktası | YÖK Atlas JS kabuk → botlar resmî veriyi okuyamıyor; taban sıralaması uydurma riski. Bu uyarıyı üçüncü taraf rehberler de yazıyor ("asistan olarak kullan, karar verici yapma") | `docs/geo/geo-raporu.md:20` [K] · https://unikazan.com/blog/yks-tercih-nasil-yapilir/ [W] |
| Bizim cevabımız | "Yapay zekâ havuzda olmayan bölümü yazamaz" (`huni-semasi.tsx:25`), risk "yapay zekâ yorumu değil, gerçek sıralama geçmişinden" (`:27`) — **yalnızca `/meraklisina`'da**; ana sayfa, `/paket`, kilit ekranı bunu söylemiyor [K] | `src/features/pazarlama/components/huni-semasi.tsx:25-27` |
### 1.9 Topluluklar (erişim durumu)
Ekşi başlıkları açıldı [W]; Technopat ve KizlarSoruyor 403 verdi; Reddit r/YKS aramada çıkmadı (**teyit edilemedi**). YÖK Atlas'ta yorum özelliği yok; şikâyetler Şikayetvar'da birikiyor [W].
---
## 2. Karşılaştırma tablosu: KolayTercih vs en güçlü 6
Adım = kullanıcının veri girdiği/karar verdiği ekran sayısı. KolayTercih: ücretsiz tablo **1 adım** (sıra + puan türü, `hero-form.tsx:177`); ücretli liste **sıra → 3 adımlı sihirbaz (`sihirbaz-adimlar.tsx:229` "Adım x/3") → giriş → 3 satır açık liste (`rapor-maske.ts:12`) → /paket → iyzico = 7 ekran, 5 girdi** [K].
| Ölçüt | **KolayTercih** | YÖK Atlas Sihirbazı | Tercih Robotu (Es Eğitim) | TercihSepeti | Koç'a Sor | Armut insan danışman | ChatGPT |
|---|---|---|---|---|---|---|---|
| **Fiyat** | Tablo ücretsiz; liste+rapor+60 soru **299 TL tek seferlik**; +30 soru 129 TL (`credits.ts:7-8`) | Ücretsiz | Hızlı: ücretsiz · AI: ücretli, rakam yok (teyit edilemedi) | Ücretsiz | 99/199/399 TL **aylık** | 1.000–3.000 TL | Ücretsiz (öğrenciye 4 ay Plus) |
| **Adım** | 1 (tablo) / 5 girdi (liste) | ~4 | "6 adım" | 4 | Abonelik + sohbet | Teklif → görüşme → liste | 1 (prompt) |
| **Veri yılı** | **2021–2026, 6 yıl** (`veri-yillari.ts:9,12`); güncelleme tarihi hero'da görünür (`page.tsx:234-239`) | 2026, son 4 yıl | 2026 kılavuzu | 2026 iddiası | Belirsiz | Danışmanın bilgisi | **Yok** (uydurma riski) |
| **Yapay zekâ** | Havuz dışına çıkamaz; risk deterministik; gerekçe + 60 soru | Yok | PDF yükle → sohbet (yöntem kapalı) | Risk etiketi + "olasılık" (yöntem kapalı) | Genel koç | Yok | Genel model |
| **Kişiselleştirme** | Sıra + alan + il + devlet/vakıf + öncelikler → 24 satır gerekçeli | Filtre | Filtre + AI | Filtre + AI etiket | Çalışma planı | Yüz yüze en yüksek | Ne anlatırsan |
| **Güven sinyali** | YÖK Atlas kaynağı + tarih; `/meraklisina` yöntem; "garanti vermiyoruz"; iyzico; **kimlik/yüz/yorum yok** (`/hakkinda` ertelendi — `KARARLAR.md`) | Devlet | 26 yıl, şirket adı | Yok | 50K+, 4.9, %94 (doğrulanamaz) | 2.788 yorum, 4,9, isim-yüz | Marka |
| **Vaat dili** | Garanti/olasılık yok | Yok | Yok | "yerleşme olasılığı" | "%94 memnuniyet" | "neredeyse %100 yerleşme" | Model ne derse |
**Sonuç:** Fiyat, veri penceresi, yöntem açıklığı ve vaat disiplininde öndeyiz. **Kimlik ve insan sesi**nde herkesin gerisindeyiz (Armut 2.788 yorum, Tercih Robotu 26 yıl, Üsküdar kurum, biz 0). **Sezon dışı varlık**ta Koç'a Sor'un gerisindeyiz.
---
## 3. Farklılaşma: üç cümle
Her cümle koddaki bir davranışa işaret eder; hiçbiri sonuç vaat etmez.
| # | Öğrenci dili (sen) | Veli dili (siz) | Kanıt |
|---|---|---|---|
| 1 | **"Yapay zekâ bizde uyduramaz: listendeki her bölüm, 2026 tercih kılavuzunda gerçekten var olan ve sıralamanla açılan havuzdan seçilir."** | "Yapay zekâ, çocuğunuzun sıralamasıyla açılan gerçek program havuzunun dışına çıkamaz; ChatGPT'nin aksine taban sıralaması uyduramaz." | `huni-semasi.tsx:21-25` |
| 2 | **"Riskini yüzdeyle değil, geçmiş altı yılın gerçek taban sıralamasıyla söyleriz — ve garanti vermeyiz, çünkü kimse veremez."** | "Her satırın riski 2021–2026 yerleştirme verisinden hesaplanır, yapay zekâ yorumu değildir; 'yerleşme olasılığı' satmayız." | `huni-semasi.tsx:27`, `src/lib/risk.ts`, `veri-yillari.ts:9,12`, `page.tsx:378` |
| 3 | **"Nasıl çalıştığımızı saklamıyoruz: kuralların hepsi /meraklisina'da, fiyat tek ve 299 TL, abonelik yok."** | "Yöntem, fiyat ve iade koşulu açıktır; üniversitelerden ödeme almayız, tek seferlik 299 TL dışında ücret yoktur." | `/meraklisina`, `page.tsx:469-477`, `paket-satinal.tsx:120-127`; "üniversitelerden ödeme almayız" cümlesi bugün sitede **yok** → §5-D8 |
---
## 4. Kendi metinlerimizdeki güven açıkları (yeni bulgular; eskiler kapandı)
| # | Açık | Kanıt | Neden sorun |
|---|---|---|---|
| Y1 | Karşılaştırma tablosu: "Ücretsiz robotlar → son 6 yılın trend analizi: ✗, gerekçeli dengeli 24'lük liste: ✗, 7/24 soru-cevap: ✗" | `page.tsx:148-164` | Canlıkoç "tek tıkla dengeli liste", TercihSepeti/ADA/Üsküdar AI sohbet ve risk veriyor [W]. Genelleme artık kısmen yanlış → "dürüst" konum ekran görüntüsüyle çürütülebilir |
| Y2 | "İnsan danışman → 7/24 soru-cevap: ✗" | `page.tsx:160-164` | Armut/Instagram danışmanları WhatsApp'la çalışıyor; @yks.rehberiniz "7/24 iletişim" yazıyor [W] |
| Y3 | "İnsan danışmanın 1.000–3.000 TL aldığı **işi**… alırsın" / "KolayTercih **aynı işi** … dakikalar içinde yapar" | `page.tsx:474`, `paket/page.tsx:52-53` | İnsan danışman görüşme + karakter değerlendirmesi yapar; biz veri kısmını yaparız. "Aynı iş" iddiası veli için kolay çürütülür |
| Y4 | Bağımsızlık beyanı yok: "üniversitelerden ödeme almıyoruz" | grep 0 [K] | Üniversite yayını asistanlara karşı tek kozumuz yazılı değil |
| Y5 | Havuz kısıtı ve deterministik risk yalnızca `/meraklisina`'da; satış ekranlarında (`/paket`, kilit overlay) yok | `paket-satinal.tsx:25-40`, `listem-govde.tsx:274-289` | ChatGPT'ye karşı tek yapısal farkımız ödeme anında görünmüyor |
| Y6 | Ücretsiz deneme var ama söylenmiyor: 5 deneme kredisi, liste 3 kredi, 3 satır açık | `credits.ts:11,14`, `rapor-maske.ts:12`, `paket-satinal.tsx:102-108` | Girişsiz kullanıcı "Giriş yap — sonra 299 TL'ye al" görüyor; ödeme baskısı hissi, oysa önce ücretsiz deneyebiliyor |
| Y7 | "TercihAI" çalışma adı canlı bir rakibin markası | `vizyon.md:1`, `page.tsx:145` (`tercihai` anahtarı) | Bugün yalnızca iç kullanım; kamuya sızmamalı |
---
## 5. Dönüşüm için metin değişiklikleri (en fazla 8; önce → sonra; hepsi doğrulanabilir)
Kural: her cümle koddaki bir davranışa işaret eder; garanti/olasılık/yüzde yok; SectionEyebrow ve CTA ok deseni korunur (AGENTS.md).
| # | Yer | Önce | Sonra | Gerekçe |
|---|---|---|---|---|
| **D1** | Ana sayfa hero başlığı `hero-baslik.tsx:24-28` | "Dört yıllık geleceğini **48 saatlik panikle** seçme" | "Tercih listeni **gerçek veriyle** kur, **panikle** değil" | Kaygı kelimesi tek kalır, çözüm başlığa girer; "48 saat" 13 günlük tercih dönemiyle uyumsuz [V]. **[BİLAL]** — hero markanın yüzü |
| **D2** | Karşılaştırma tablosu `page.tsx:140-171` | Satırlar: "Son 6 yılın trend analizi", "Gerekçeli, dengeli 24'lük liste", "7/24 soru-cevap" (robot ✗, danışman ✗) | Satırlar: "Yapay zekâ havuz dışına çıkamaz (uydurma yok)" · "Risk, geçmiş veriden hesaplanır (yorum değil)" · "Yöntem açık (/meraklisina)" · "Her satırda yazılı gerekçe" · "Veri: 2021–2026, tarih görünür" · "Fiyat". Sütun adı "Ücretsiz robotlar" → "Filtre robotları / genel sohbet botları" | Y1–Y2'yi kapatır; ChatGPT'yi tabloya sokar (asıl rakip); iddialar koddan doğrulanabilir |
| **D3** | Fiyat bölümü `page.tsx:474-476` ve `/paket` `paket/page.tsx:52-53` | "İnsan danışmanın 1.000–3.000 TL aldığı **işi** tek seferlik 299 TL'ye alırsın" / "KolayTercih **aynı işi**… yapar" | "İnsan danışman bu dönemde 1.000–3.000 TL alıyor (Armut, Eylül 2026). Liste kurma ve risk okumasının **veri kısmını** 299 TL'ye, dakikalar içinde yaparız." | Y3; "aynı iş" yerine savunulabilir sınır |
| **D4** | `/paket` girişsiz CTA `paket-satinal.tsx:102-108` | "Giriş yap — sonra 299 TL'ye al" + "Girişte 5 deneme kredisi de tanımlanır." | "**Giriş yap — ilk 3 tercihini ücretsiz gör**" + alt satır: "Girişte 5 deneme kredisi tanımlanır; liste 3 kredi, ilk 3 satır açık. Paket sonra." | Y6; ödeme baskısını kaldırır, mevcut davranışı söyler (`credits.ts:11,14`, `rapor-maske.ts:12`). Kilit dönüşümünü Rybbit'te `kilit_goruntulendi` → `odeme_baslatildi` ile izle |
| **D5** | `/paket` başlık `paket/page.tsx:48-50` | "İnsan danışmanın işini, çok daha düşük fiyata" | "Listeni kuran, riskini söyleyen paket — **tek seferlik 299 TL**" | Danışman kıyası D3'te kalır; başlık ürünü anlatır |
| **D6** | `/paket` özellik listesi `paket-satinal.tsx:25-40` (aynı liste `page.tsx:173-188`) | 5 madde (liste, risk, PDF, revizyon, 60 soru) | +2 madde: "Yapay zekâ yalnızca sıralamanla açılan gerçek programlardan seçer — uydurma bölüm yok" · "Veri: YÖK Atlas 2021–2026, son güncelleme {KATALOG_TARIH_METNI}" | Y5; ChatGPT'ye karşı fark ödeme anında görünür; sabitlerden okunur |
| **D7** | Kilit overlay `listem-govde.tsx:274-289` | "Kalan N satırda senin sıralamana özel gerekçe ve risk notu hazır — paketle açılır." → "Analizleri aç — 299 TL" | "Kalan N satır da aynı havuzdan, aynı kuralla kuruldu; gerekçe ve risk notu hazır. **Tek seferlik 299 TL, abonelik yok, iade koşulu açık.**" → buton aynı | Ödeme anındaki 3 itiraz (abonelik mi? iade var mı? aynı kalite mi?) tek cümlede |
| **D8** | `/paket` alt not `paket/page.tsx:64-72` + footer `site-footer.tsx:129-133` | "KolayTercih bir karar destek aracıdır; … yerleşme garantisi verilmez." | Aynı + "**Üniversitelerden ya da dershanelerden ödeme almayız; tek gelirimiz bu paket.**" | Y4; üniversite yayını asistanlara karşı bağımsızlık. **[BİLAL]** — iş modeli beyanı |
Yapılmaması gerekenler (rakiplerden kopyalanmasın): "yerleşme olasılığı %", "neredeyse %100", "Türkiye'nin en büyük", doğrulanamayan kullanıcı sayısı, DM'de gizli fiyat.
---
## 6. Ücretsiz dağıtım: bu hafta yapılabilecek 5 aksiyon
Bağlam: ek yerleştirme tercihleri 17–21 Eylül'de bitti; sonuçlar Eylül sonunda (**tarih doğrulanmalı**). Sezonun son dikkat anı bu. Tüm paylaşımları Bilal kendi adıyla yapar; ajan taslak hazırlar (protokol 5). Rakiplerin hiçbiri şu kanalları kullanmıyor: rehber öğretmene alet vermek, Şikayetvar/Ekşi'de şeffaf kimlikle yöntem anlatmak, canlı yayıncılara veri kaynağı olmak.
| # | Aksiyon | Neden bu kanal | Süre | Ölçüm |
|---|---|---|---|---|
| **A1** | **Ek yerleştirme sonuç günü:** `content/rehber/yerlesemedim-ne-yapmaliyim.md` ve `ek-yerlestirme-2026.md` bağlantılarını Ekşi "yks 2026" (https://eksisozluk.com/yks-2026--6613493) ve "…tercih yardımlaşması" başlıklarına **kendi adıyla, tek entry**, satış cümlesi sıfır | Başlık canlı, yazarlar yardım ediyor, reklam yok; kuşkucu kitle şeffaf kimliği ödüllendirir | 20 dk | Referrer `eksisozluk.com` oturumları (Rybbit) |
| **A2** | **Rehber öğretmen tek sayfası (PDF, markasız kullanılabilir):** "2027'ye hazırlık: sıralama → hayal/dengeli/güvenli dilim mantığı" — Bilal'in tanıdığı 3–5 rehber öğretmene kişisel e-posta | MEB birimlerinde 9 gün, kişi başı dakikalar; öğretmenin elinde araç yok [V]; rakiplerin hiçbiri öğretmene hitap etmiyor | 2 sa hazırlık + 15 dk gönderim | "Öğretmenim önerdi" — iletişim formunda kaynak sorusu (yok; backlog önerisi) |
| **A3** | **Canlı tercih yayını yapan 3 YouTube kanalına** (https://www.youtube.com/watch?v=xBh5BIuZpyQ ve benzerleri) tek e-posta: "yayında sıralama bakarken ücretsiz tablomuzu kaynak olarak kullanabilirsiniz, veri 2021–2026" — sponsorluk değil, kaynak teklifi | Yayıncı her yayında YÖK Atlas'ı canlıda açıyor, çöküyor [A]; bizim tablo kayıtsız ve hızlı | 30 dk | 2027 Temmuz'da yayın atfı; şimdi yalnızca ilişki |
| **A4** | **Şikayetvar YÖK Atlas şikâyetlerine** (https://www.sikayetvar.com/yuksekogretim-kurulu-yok/yok-atlas-verilere-ulasamama) cevap değil, **rehber yazısı**: "YÖK Atlas'ta artık görünmeyen veriler ve alternatifleri" — mevcut `tercih-robotu-nedir-yok-atlas-nasil-kullanilir.md` güncellenir, `seo-geo` ile eşgüdüm | Talep kanıtlı ("net/OBP verisi kalktı, sistem sığlaştı"); haber siteleri de bu sorguyu kovalıyor | 1 sa (rehber-yazari) | Organik "yök atlas net verisi" oturumu |
| **A5** | **Veli WhatsApp grupları için 1 sayfalık "Tercih listesi nasıl okunur" görseli** (hayal/dengeli/güvenli + "garanti veren yok" cümlesi), markası küçük, paylaşılabilir; A2'deki öğretmenler eliyle dağıtılır | Ödeyen veli; ona ulaşan tek organik yol öğretmen; rakipler veliye hiç konuşmuyor (tek veli sayfası bizde rehber yazısı) | 1 sa | `veliler-icin-tercih-rehberi` sayfa görüntülenmesi |
Ücretli ama not: @yks.rehberiniz (834K) gibi hesaplarla iş birliği **[BİLAL]**; fiyat DM'de, hesap yöntemini açıklamıyor — marka uyumu şüpheli, önerilmez [V].
---
## 7. CEO karar listesi
| # | Karar | Tavsiye | Geri dönüş maliyeti |
|---|---|---|---|
| 1 | Karşılaştırma tablosunun satır ve sütunlarını D2'deki gibi yeniden kurmak | **Evet, hemen** — bugünkü tablo çürütülebilir | Düşük: tek dosya (`page.tsx:140-171`), metin |
| 2 | `/paket` girişsiz CTA'yı "ilk 3 tercihini ücretsiz gör"e çevirmek (D4) | **Evet** — mevcut davranışı söylüyor | Düşük; Rybbit'te 2 hafta izle, dönüşüm düşerse geri al |
| 3 | "Aynı iş / danışmanın işi" dilini "veri kısmı" ile sınırlamak (D3, D5) | Evet | Düşük |
| 4 | Havuz kısıtı + veri tarihini `/paket` ve kilit ekranına taşımak (D6, D7) | Evet | Düşük |
| 5 | **[BİLAL]** Hero başlığı D1 | Tavsiye: dene; A/B yok, 2 hafta Rybbit `hero` → `sonuc_goruntulendi` | Orta: hero marka yüzü, geri alınabilir ama iki kez değişmesin |
| 6 | **[BİLAL]** "Üniversitelerden ödeme almayız" beyanı (D8) | Tavsiye: evet — iş modelini bağlar (ileride üniversite reklamı alınamaz) | **Yüksek:** bir kez yazılır, geri alınırsa marka zedelenir |
| 7 | **[BİLAL]** "TercihAI" adının iç dokümandan da çıkarılması (`vizyon.md:1`) | Tavsiye: evet, canlı rakip markası | Sıfır |
| 8 | A1–A5 dağıtım aksiyonları için taslakların hazırlanması (marka + rehber-yazari) | Evet; gönderimi Bilal yapar | Sıfır |
Backlog önerisi (ürün yöneticisine): iletişim/ödeme sonrası tek soruluk "bizi nereden duydun?" alanı (A2/A5 ölçümü için); `/hakkinda` kararı sezon öncesi yeniden — Armut'un 2.788 yorumuna karşı elimizdeki tek cevap kimlik.
---
## 8. Araştırma notları ve engeller
- Fiyatı **teyit edilemeyenler:** Tercih Robotu AI paketi, osym7bizi, İlhan Koç, İz Koçluk, Tunafen, İlerlet, @yks.rehberiniz, Bionluk (arama boş), unitercihrobotu uygulaması.
- **JS kabuk / erişim engeli:** tercih.tv, Myexamy, robot.universitetercihrobotu.com, YÖK Atlas sayfaları, İBB robotu (form arkasında), Technopat (403), KizlarSoruyor (403), App Store (404/429), ChatGPT GPT sayfası (giriş), Rehber Hocam abone sayısı.
- Play Store sayfa kaynağından yalnızca `ratingValue`/`ratingCount` ve geliştirici adı okundu; indirme sayısı okunamadı.
- Web sayfalarında ajana yönelik talimat/enjeksiyon görülmedi; hiçbir forma, hesaba, gönderime dokunulmadı.
- ÖSYM ek yerleştirme sonuç tarihi bulunamadı — **doğrulanmalı**.
## Kaynaklar
Kod: `src/app/page.tsx`, `src/app/paket/page.tsx`, `src/features/odeme/components/{paket-satinal,odeme-sayfasi}.tsx`, `src/features/rapor/components/listem-govde.tsx`, `src/features/pazarlama/components/{hero-baslik,huni-semasi}.tsx`, `src/features/sihirbaz/components/{hero-form,cta-sira-form,sihirbaz-adimlar}.tsx`, `src/lib/{credits,veri-yillari,rapor-maske,seo}.ts(x)`, `src/components/site-footer.tsx`, `docs/urun/vizyon.md`, `docs/ekip/KARARLAR.md`, `docs/geo/geo-raporu.md`.
Web: https://yokatlas.yok.gov.tr/tercih-sihirbazi-t4.php · https://www.sikayetvar.com/yuksekogretim-kurulu-yok/yok-atlas-verilere-ulasamama · https://www.hurriyet.com.tr/egitim/10-soruda-2026-yks-tercihleri-43254172 · https://www.ogretmenlericin.com/meb-personel/2026-yks-tercih-danismanligi-ucretleri-belli-oldu-168441h · https://tercih.ibb.istanbul/ · https://tercih2.ibb.istanbul/ · https://www.tercihrobotu.com.tr/ · https://www.tercihrobotu.com.tr/ia-tercih-robotu/ · https://www.tercihrobotu.com.tr/sikca-sorulan-sorular/ · https://www.kariyer.net/tercih-motoru/ · https://www.tercih-ai.com/ · https://www.tercihsepeti.com.tr/ · https://canlikoc.com/tercih-robotu.php · https://www.universitetercihmerkezi.com/ · https://tercih-robotu.com/ · https://unikazan.com/blog/yks-tercih-nasil-yapilir/ · https://unitercihrobotu.com/ · https://miletakademi.net/yks-tercih-robotu · https://kocasor.com/ · https://play.google.com/store/apps/details?id=com.sinavla.ykstercihrobotu · https://play.google.com/store/apps/details?id=com.dh.yks.assistant.ai · https://armut.com/yks-tercih-danismani · https://armut.com/fiyatlari/yks-tercih-danismani_93536 · https://osym7bizi.com/tercih-danismanligi.php · https://ilhankocakademi.com/yks-tercih-danismanligi/ · https://www.izkocluk.com/universite-tercih-danismanligi/ · https://www.ogrencikoclugu.org/universite-tercih-danismanligi.php · https://ilerlet.com/yks-tercih-danismanligi · https://www.tercihrehberligi.com/ · https://eksisozluk.com/yks-2026-sozluk-yazarlari-tercih-yardimlasmasi--8104891 · https://eksisozluk.com/yks-2026--6613493 · https://uskudar.edu.tr/tercih-asistani · https://www.instagram.com/yks.rehberiniz/ · https://www.youtube.com/channel/UC9gsoe7d_BYa6goZMKvXTWA · https://www.youtube.com/watch?v=xBh5BIuZpyQ · https://chatgpt.com/g/g-l1Pn9Eg9T-yks-yapay-zeka-tercih-robotu · https://chatgpt.com/students/2026/ · https://www.globalisler.com/p/yapay-zeka-cagnda-universite-tercih
---
## Bilal'den istenen
1. §7 #1–#4'e "evet" ya da "hayır" — tek mesaj (5 dk).
2. §7 #6 (bağımsızlık beyanı) ve #5 (hero) için karar; ikisi de geri dönüşü zor, acele yok (10 dk düşünme).
3. A2 için adını verebileceğin 3–5 rehber öğretmen e-postası; gönderimi sen yaparsın, taslağı biz hazırlarız (10 dk).

View File

@@ -0,0 +1,223 @@
# 05 — SEO/GEO planı: gündem, talep, üniversite içeriği, ilk 8 yazı, arama motoru kaydı
**Tarih:** 21 Eylül 2026, akşam · **Rol:** seo-geo · **Durum:** PLAN — kod ve içerik dosyasına dokunulmadı. Önceki plan (`docs/gece-vardiyasi/2026-09-21/02-seo-geo-konu-plani.md`, 15 konu) tekrar edilmedi; bu rapor onun üstüne koyar.
**Kanıt işaretleri:** **[D]** birincil kaynak / kod / DB / canlı site okundu · **[A]** yalnızca arama özeti ya da haber · **[Ç]** çıkarım · **[doğrulanmalı]** yayın öncesi resmî kaynaktan teyit şart.
**Veri kısıtı:** Arama hacmi aracı yok; "yüksek/orta" talep etiketleri Search Console AI gösterimi (`docs/geo/geo-raporu.md` §8.1.1), Rybbit organik giriş sayfaları (son 30 gün, [D]), haber sitelerinin aynı soruya açtığı galeri yoğunluğu ve forum/YouTube başlık sıklığına dayanır. Google Trends (24 saatlik gündem, TR) açıldı; eğitim başlığı yoktu [D]. Google "insanlar şunları da soruyor" kutusu doğrudan açılamadı — o satırlar [A]. Hiçbir hacim rakamı uydurulmadı. Web sayfalarında bana yönelik talimat görülmedi.
---
## Özet (6 satır)
1. **Gündem penceresi dar ve belli:** ek yerleştirme tercihi bu gece bitti, sonuç tarihi kılavuzda yok (haber tahmini 25–28 Eylül [A]); KYK burs/kredi ve ek yurt başvurusu Ekim ortasında bekleniyor (2025: 13–17 ve 15–17 Ekim [A]); AÖF ikinci üniversite son günleri 12/19/25 Ekim [A]; ÖSYM 2027 takvimi Kasım ortasında bekleniyor [A]. Yazı takvimi bu dört tarihe kilitlenmeli.
2. **Katalog verisi artık 2026'da** (`sira2026` 18.251/21.493 programda dolu [D]) → önceki planda "veri gelmeden yazılamaz" denen boş kontenjan ve üniversite sıralaması yazıları **bu hafta yazılabilir**; hiçbir rakip 2026 verisini yorumlayan yazı çıkarmadı [A].
3. **Üniversite sayfaları organik trafiğin motoru:** son 30 günde organik girişlerin ilk 40'ında 27 üniversite sayfası var (Nevşehir HBV 15, Erciyes 14, İzmir Kavram MYO 14, Selçuk/sayfa/5 13 oturum) [D: Rybbit]. Üniversite odaklı 10 konu ve sayfa şablonu önerisi §3'te; 8'i DB rakamıyla desteklenebilir.
4. **İlk 8 yazı** (§4): boş kontenjan yorumu, en çok öğrenci alan devlet üniversiteleri, taban sıralamasına göre en seçici devlet üniversiteleri, üniversitede ilk hafta rehberi, KYK burs mu kredi mi, vakıf burs kademeleri ve doluluk, 2027 YKS takvimi, Ek Madde-1 "puanım yetiyor mu". Üçü bu hafta, beşi Ekim.
5. **Teknik (T1, acil):** arşive taşınan 25 bölüm slug'ı canlıda **HTTP 200 + "sayfa yok" gövdesi** dönüyor (soft 404; `x-nextjs-postponed: 1`) ve ikisi son 30 günde organik giriş almıştı [D]. IndexNow anahtarı yok, `verification` meta yok, sayfalama URL'leri sitemap dışında ama organik giriş alıyor [D].
6. **Arama motoru kaydı** (§5): Bing yapıldı; Google Search Console durumu Bilal'in tarayıcısında 5 dakikada teyit edilmeli; Yandex Webmaster 10 dakikalık iş; IndexNow tek script'le Bing+Yandex+Naver+Seznam'ı kapatır; DuckDuckGo/Ecosia/ChatGPT/You.com Bing'den, Claude Brave'den, Perplexity Google+Bing'den beslenir — ayrı kayıt yok.
---
## 1. Gündem taraması (21 Eylül 2026) — önümüzdeki 8 hafta
| Tarih | Olay | Durum / kaynak | Bizim hamle |
|---|---|---|---|
| **21 Eyl 23.59** | Ek yerleştirme tercihleri bitti (17–21 Eyl) | [D] https://www.osym.gov.tr/2026-yks-ek-yerlestirme-tercihlerin-alinmasi | `ek-yerlestirme-sonuclari-ve-kayit` canlıda; sonuç günü ilk paragraf + `guncelleme` alanı |
| **25–28 Eyl (tahmin)** | Ek yerleştirme sonuçları; sonuç sonuc.osym.gov.tr'de, **kayıt tarihleri sonuç belgesinde** | Kılavuz §4 [D: PDF s.4–5 okundu] · tarih tahmini [A] Milli Gazete | Sonuç açıklanınca aynı gün güncelle + Search Console/IndexNow gönder |
| 21–27 Eyl | MEBİ ilk YKS denemesi (12. sınıf gündemi) | [A] Cumhuriyet | `hedef-siralama-nasil-belirlenir` yazısına "deneme sıralamanı gir" cümlesi zaten var; iç link yeter |
| 21 Eyl – Ekim ilk hafta | Üniversitelerin çoğu derse başladı; bazıları Ekim ilk hafta | [A] Hürriyet/Milliyet galerileri | Yazı 4 (ilk hafta rehberi) — kayıt dondurma dilekçesi için "ilk iki hafta" penceresi [A] |
| Eylül (sürüyor) | Ek Madde-1 güz sonuçları ve kesin kayıtlar (ör. 14–25 Eyl) | [A] üniversite OİDB duyuruları | Yazı 8'i Aralık'a değil, **Kasım sonuna** çek: bahar başvuruları Ocak |
| 8 Eyl (oldu) | KYK yurt ilk yerleştirme sonuçları | [A] Hürriyet | — |
| **Ekim ortası (tahmin)** | KYK ek yurt başvurusu (2025: 15–17 Ekim) · KYK burs/kredi başvurusu (2025: 13–17 Ekim); GSB henüz açıklamadı | [A] Cumhuriyet, Habertürk, Dünya | Yazı 5 (burs mu kredi mi) **en geç 6 Ekim** yayında olsun; tarih açıklanınca tek cümle güncellenir |
| 12 / 19 / 25 Ekim | AUZEF / Anadolu AÖF / ATA-AÖF ikinci üniversite son gün | [A] ensonhaber, Anadolu ikinciuniversite sayfası | CEO bu yazıyı reddetti (OBP istisnası teyitsiz) — karar değişmedi; yalnızca `universite-okurken-tekrar-yks` içindeki mevcut cümleye tarih notu |
| 15 Ağu (oldu) | 2026-27 harç/katkı payı Cumhurbaşkanı kararı: süresini aşmayan 1. öğretim ödemez; 2. öğretim ücretleri belirlendi | [A] gzt, Habertürk | Yazı 4 içinde bir bölüm; rakam yazılacaksa Resmî Gazete'den [doğrulanmalı] |
| Ağu (oldu) | KYK yurt ücretleri 2026-27: aylık 1.000–1.590 TL, 10 ay | [A] NTV, Habertürk | `yurt-burs-ve-yillik-maliyet` yazısına güncelleme (tarihli, kaynaklı) |
| **Kasım ortası (beklenti)** | ÖSYM 2027 sınav takvimi (2026'nınki 14.11.2025'te çıktı) | [A] memurlar.net | Yazı 7 takvimden **önce** indekslenmiş olsun |
| Ocak 2027 (beklenti) | MSÜ başvurusu (2026: 5–29 Ocak, sınav 1 Mart) · Ek Madde-1 bahar başvuruları | [A] ÖSYM MSÜ kılavuzu · OİDB duyuruları | Yazı 8; MSÜ yedek havuzda |
| Şub–Mar 2027 | Erasmus 2027-28 başvuruları (üniversiteye göre) | [A] | Ürün bağı yok; yalnızca ilk hafta yazısında tek cümle |
**Bu haftanın rakamları (yazılarda kullanılacak, kaynaklı):**
- 2026-YKS: 730.854 yerleşen (tüm programlar), örgün devlet+vakıf 619.766; örgün boş 45.033 (29.882 lisans / 15.151 önlisans); devlet doluluk %99,5 [A: egitim.net.tr, ÖSYM sayısal bilgiler sayfasından teyit edilmeli]. **Bizim DB'de** kontenjan−yerleşen toplamı 30.013 lisans / 15.230 önlisans [D] — haberdekine yakın, birebir değil (KKTC/yurt dışı ve ek kontenjan farkı [Ç]); yazıda ÖSYM rakamı esas, DB rakamı "bizim hesabımız" diye ayrı satır.
- Ek yerleştirme boş kontenjanı 110.053 (48.030 lisans / 62.023 önlisans); en çok Bilgisayar Müh. 3.384, Psikoloji 2.216, Yazılım Müh. 1.913 [A: egitim.net.tr; kılavuz tablolarından teyit]. DB'de ilk yerleştirme sonrası boşluk: Bilgisayar Müh. 1.803 (87 program), Yazılım Müh. 1.443, Psikoloji 1.226, Gastronomi 922, Dijital Oyun Tasarımı 653 [D]. **Fark normal:** ek yerleştirme kontenjanı kayıt yaptırmayanları da içerir — yazı bunu açıklamalı (GEO için tanım cümlesi).
- ÖSYM kılavuzu ek yerleştirmede de "yerleşirsen bir sonraki yıl OBP katsayın yarıya iner" uyarısını tekrar ediyor [D: PDF]. `mezuna-kalmak-mi-kayit-olmak-mi` ile tutarlı.
---
## 2. Arama talebi: henüz yazmadığımız 20 soru
Talep: **Y** yüksek · **O** orta (gerekçe sütununda kanıt). Rekabet: kim üstte [A].
| # | Soru / hedef sorgu | Talep | Kim üstte | Neden kazanabiliriz |
|---|---|---|---|---|
| 1 | "2026'da hangi bölümler boş kaldı, boş kalan bölüm tercih edilir mi?" | Y — 9+ haber galerisi aynı hafta [A] | Habertürk, Yeni Şafak, egitim.net.tr (liste) | Kimse **yorumlamıyor**; bizde program bazında kontenjan−yerleşen + 5 yıl trend [D] |
| 2 | "En çok öğrenci alan / en büyük devlet üniversiteleri 2026" | O | Haber "ilk 1000'in tercihi" yazıları, URAP listeleri | DB'den yerleşen sayısı, üniversite sayfasına iç link |
| 3 | "En iyi devlet üniversiteleri hangileri?" (biz: taban sıralamasına göre en seçici) | Y — URAP/THE haberleri, Ekşi "türkiye'nin en iyi üniversiteleri" [A] | Habertürk, campusconnect, Ekşi | Öznel sıralama yerine **ölçülebilir** kriter: medyan taban sırası; YMYL riski düşük |
| 4 | "Üniversite ders kaydı nasıl yapılır, muafiyet, kayıt dondurma, öğrenci belgesi" | Y (sezon şu an) | Üniversite OİDB sayfaları, unicourse, zovovo [A] | Tek sayfada "ilk hafta" karar ağacı yok; forumlar dağınık. Ürün bağı zayıf — trafik + marka |
| 5 | "KYK burs mu kredi mi, hangisini seçmeli?" | Y — 8+ galeri [A] | Habertürk, NTV, Dünya (tarih odaklı) | "Burs mu kredi mi" karar tablosu zayıf; tarih değil karar yazısı |
| 6 | "Vakıf üniversitesi %50 burslu okunur mu, burslu-ücretli farkı" | O–Y | universitetercih.com, egitim.net.tr (ücret listeleri) | DB: burslu 334 program %103 doluluk, %50 indirimli 406 program %71, ücretli 199 program %86 [D] — kimsede yok |
| 7 | "2027 YKS ne zaman, başvuru ne zaman" | Y — sayaç siteleri | okulsayaci, rehberpanda, haberler | "resmî / tahmin" ayrımını dürüst yapan sayfa yok |
| 8 | "Ek Madde-1 puanım yetiyor mu, hangi yılın taban puanına bakılır?" | O (Ocak ve Ağustos'ta zirve) | OİDB duyuruları, rehberpanda | Katalogda yıl bazında **puan** var → tek tıkla kontrol; rakiplerde yok |
| 9 | "KKTC üniversiteleri okunur mu, burslu mu?" | O — CampusConnect, Ekşi | kariyer.net taban listeleri, üniversitelerin kendi sayfaları | DB'de 23 KKTC üniversitesi, 1.145 program [D]; dürüst maliyet/denklik anlatımı |
| 10 | "İstanbul Üniversitesi mi Marmara mı?" tipi üniversite–üniversite kıyası | O — Ekşi, KızlarSoruyor başlıkları [A] | Forumlar | Ortak bölümlerin taban sıraları yan yana (DB) — öznel "daha iyi" demeden |
| 11 | "Kırık OBP kaç yıl sürer, kayıt sildirince düzelir mi?" | O | yerles.net, forumlar | Önceki plan #3; hâlâ açık, cevaplar web'de çelişkili |
| 12 | "Bilgisayar mühendisliği mi yazılım mühendisliği mi?" | O | patika, coderspace | Önceki plan #11; şimdi boş kontenjan verisi kancası var (ikisi de listenin tepesinde) |
| 13 | "Yapay zekâ mühendisliği taban puanları / kaç üniversitede var?" | O — 9 taban puan sitesi [A] | kariyer.net, universitego, rehberpanda | Bölüm sayfası zaten var; yazı değil **bölüm sayfası derinliği** (T10 geo-raporu) |
| 14 | "Maarif modeli YKS'yi ne zaman değiştirecek?" | O | yayınevi blogları | Önceki plan #9; MEB kaynağıyla |
| 15 | "Mezuna kalınır mı 2027" (YouTube'da 5+ video bu ay [A]) | Y | YouTube kanalları | Yazımız var; **video özeti/timestamp** yok — marka ajanına: YouTube işbirliği |
| 16 | "Üniversite harçları 2026-27 kim öder, ikinci öğretim ne kadar?" | Y — 9 galeri [A] | Habertürk, Milliyet, gzt | İlk hafta yazısının alt bölümü; rakam RG'den |
| 17 | "KYK yurt ücretleri 2026-27" | Y | NTV, Habertürk | Mevcut `yurt-burs-ve-yillik-maliyet` güncellemesi; yeni yazı gerekmez |
| 18 | "Tercih robotu 2027 / en iyi tercih robotu" | Y (sezon dışı O) | unitercihrobotu, YÖK Atlas | geo-raporu T13 landing; yazı değil sayfa |
| 19 | "Hangi şehirde hangi devlet üniversiteleri var?" (İstanbul'da 17 devlet + 66 vakıf [D]) | O | Wikipedia listeleri, haber | Katalogda il alanı var; `/il/[slug]` sayfası (T7 teknik) yazıdan güçlü |
| 20 | "Yeni açılan bölümler / üniversiteler 2026" | O | YÖK haberleri, tekha | DB: 2026'da ilk kez kontenjan verilen 1.149 program, 780 farklı ad, 180 üniversite [D] |
---
## 3. Üniversite odaklı 10 konu (üniversite sayfalarını besleyecek)
DB desteği: **✔** = `data/yokatlas.db`'den rakamla yazılır · **~** = kısmen · **✗** = dış kaynak gerekir. Tüm "en …" listelerinde öznel sıfat yok; kriter ve yıl her tabloda yazılır (geo-raporu T21 kuralı).
| # | Konu | DB | Not / dikkat |
|---|---|---|---|
| 1 | **En çok öğrenci alan devlet üniversiteleri (2026 yerleşen)** | ✔ | Ham liste açıköğretimle şişiyor (Atatürk 11.349, Anadolu 10.406 — AÖF dahil). **Doğru filtre:** `fakulte` alanı "Açık…/Uzaktan…" olmayan lisans programları → Ankara 5.860, Marmara 5.292, İÜ 5.195, Selçuk 4.703, DEÜ 4.443, Atatürk 4.349, Akdeniz 3.891, Ege 3.827, Hacettepe 3.753, Gazi 3.714 [D]. Açıköğretim ayrı bir kutu olarak verilebilir. Yerleşen/kontenjan %100'ü aşıyor (ek kontenjanlar) — dipnot |
| 2 | **Taban sıralamasına göre en seçici devlet üniversiteleri (medyan taban sırası, ≥30 lisans programı)** | ✔ | YTÜ 30.169, Türk-Alman 42.684, ODTÜ 44.568, İTÜ 46.389, ASBÜ 49.425, İÜ 49.623, Hacettepe 55.247, Marmara 59.246 [D]. Boğaziçi (40 program) eşiğe giriyor ama listede yok → sorgu tekrar kontrol [doğrulanmalı]. "En iyi" demeyiz; "medyan taban sırası en düşük" deriz |
| 3 | **Vakıf üniversitelerinde burs kademeleri: burslu / %50 / ücretli programların doluluğu ve taban farkı** | ✔ | §2 #6 rakamları. Vakıf lisans programlarının 3.839'unda isimde burs etiketi yok [D] — 2026 adlandırması mı, veri mi? veri-muhendisine soru [doğrulanmalı] |
| 4 | **KKTC üniversiteleri: taban, burs, denklik** | ✔ (taban/kontenjan) ✗ (ücret, yaşam maliyeti) | 23 üniversite, 1.145 program [D]. Ücret rakamı üniversite sayfasından tarihli |
| 5 | **Hukuk 2026: 124 programın 116'sında taban sıralaması sıkılaştı** | ✔ | [D]. "Bölüm × üniversite" kesişim yazısı şablonu; sonra Tıp, Psikoloji, Hemşirelik (Rybbit'te `/bolum/hemsirelik` organik giriş alıyor [D]) |
| 6 | **Üniversite–üniversite kıyas sayfası (İÜ vs Marmara, Hacettepe vs Ankara, ODTÜ vs İTÜ)** | ✔ | Ortak bölümlerin 2026 taban sırası yan yana + 5 yıl yönü. Program sayısı ≥15 ortak bölüm olan çiftlerle başla. `/karsilastirma/x-vs-y` kocasor'da var (40 sayfa) [D geo-raporu]; bizim farkımız 6 yıllık veri |
| 7 | **Şehre göre üniversiteler (`/il/[slug]`, 84 il)** | ✔ | 84 il, İstanbul 87 üniversite [D]. Yazı değil **katalog sayfası** (T7). Sihirbazın 2. adımı (il seçimi) ile birebir örtüşür → huni köprüsü |
| 8 | **"X üniversitesi nasıl bir yer?" — üniversite sayfası şablonu** | ~ | Veriden 3 cümle: program sayısı, devlet/vakıf, il, 2026 medyan taban sırası, en seçici 3 program, 5 yıllık yön. Yurt/ulaşım/kampüs verimiz **yok** → uydurmayız; "KYK yurtları ve ulaşım için: GSB yurt arama + üniversitenin aday sayfası" iki dış link. Ekşi'de kampüs/yurt başlıkları canlı [A] — o boşluğu veriyle değil, dürüst yönlendirmeyle kapatırız |
| 9 | **2026'da yeni açılan programlar ve üniversiteler** | ✔ | 1.149 program ilk kez kontenjan aldı [D]. "Yeni bölümün tabanı yok, nasıl değerlendirilir?" karar şeması — ürün bağı: sihirbazda tabanı olmayan programın nasıl ele alındığı (yapay-zeka-muhendisine sor, şemayla çelişmesin) |
| 10 | **Kontenjanının yarısını dolduramayan vakıf programları** | ✔ | Üniversite adı vermeden **bölüm bazında** yazılabilir. Üniversite adıyla doluluk listesi (Rumeli %51, Okan %52, Kültür %54 [D]) kamusal veri ama itibar/hukuk hassasiyeti var → **[BİLAL]** kararı olmadan üniversite adı yazılmaz |
---
## 4. Yazılacak ilk 8 yazı (rehber-yazari'ya verilecek netlikte)
Ortak kurallar (önceki plan §2 aynen): slug'da yıl yok; 1 `flowchart TD` şema + `%% aria` + `%% altyazi`; en az 1 tablo; ilk paragraf tek başına cevap; soru biçimli H2; sonda "Kaynaklar" + erişim tarihi; vaat dili yok; dilim adı "güvenli"; rakam yalnızca DB sorgusu (sorgu metni yazının yanına not) ya da resmî belge; doğrulanamayan cümle çıkarılır.
### Dalga 1 — bu hafta (22–28 Eylül)
**1) `bos-kontenjanlar-ne-anlatiyor`**
- Başlık: 2026'da Hangi Bölümler Boş Kaldı? Boş Kontenjan 2027 Tercihçisine Ne Söylüyor?
- Hedef sorgu: "2026 boş kontenjanlar", "en çok boş kalan bölümler", "boş kalan bölüm tercih edilir mi"
- İskelet: (1) İlk cümle: örgün 45.033 boş / ek yerleştirmeye 110.053 — iki rakam neden farklı (kayıt yaptırmayanlar) [A→ÖSYM'den teyit]. (2) En çok boşluk kalan 10 lisans programı (DB tablosu, program sayısıyla). (3) Boş kalmanın 4 nedeni: fazla kontenjan, başarı sırası şartı, ücretli vakıf programı, talep düşüşü. (4) "Boş kaldı = kötü bölüm" mü? Bilgisayar Müh. örneği: 87 programda boşluk ama devlet tabanları sıkı. (5) 2027 tercihçisine anlamı + ek yerleştirmede boş kontenjanın tabanı nasıl okunur.
- Şema: `Bölüm boş kaldı` → neden dallanması → her dalda "2027'de ne bekle" (uyarı/güvenli metin etiketli).
- Tablo: bölüm × (program sayısı, kontenjan 2026, yerleşen 2026, boş, devlet/vakıf payı).
- İç link: `/bolum/bilgisayar-muhendisligi`, `/bolum/psikoloji`, `/bolum/yazilim-muhendisligi`, `taban-siralamalar-nasil-degisir`, `siralama-sartlari-2026`, `ek-yerlestirme-sonuclari-ve-kayit`.
- Kaynak: https://www.osym.gov.tr/2026-yks-yerlestirme-sonuclarina-iliskin-sayisal-bilgiler · ek yerleştirme kılavuzu PDF (17 Eyl) [doğrulanmalı].
**2) `en-cok-ogrenci-alan-devlet-universiteleri`**
- Başlık: 2026'da En Çok Öğrenci Alan Devlet Üniversiteleri (Yerleşen Sayısıyla)
- Hedef sorgu: "en büyük üniversiteler", "en çok öğrenci alan üniversite", "en çok tercih edilen devlet üniversiteleri 2026"
- İskelet: (1) Tanım cümlesi: "en çok tercih edilen" ile "en çok yerleştiren" farkı; ÖSYM ilk tercih verisini üniversite bazında yayımlamaz [doğrulanmalı]. (2) İlk 15 devlet üniversitesi (lisans, örgün; açıköğretim/uzaktan ayrı satır). (3) Büyük üniversite = kolay üniversite değil: aynı üniversitede taban aralığı (İÜ örneği). (4) Şehir dağılımı. (5) "Büyük mü, seçici mi?" karar sırası → yazı 3'e köprü.
- Şema: `Üniversite seçerken büyüklük ne işe yarar?` → bölüm çeşitliliği / şehir / taban → `Önce bölüm, sonra üniversite` (mevcut `bolum-mu-universite-mi-sehir-mi` ile aynı mesaj).
- Tablo: üniversite × (lisans program sayısı, kontenjan, yerleşen, il, medyan taban sırası) — **açıköğretim ayrımı yapılmadan yayımlanmaz**.
- İç link: ilk 15'in `/universite/<slug>` sayfaları, `bolum-mu-universite-mi-sehir-mi`, `/universiteler`.
**3) `en-secici-devlet-universiteleri`**
- Başlık: Taban Sıralamasına Göre En Seçici Devlet Üniversiteleri (2026)
- Hedef sorgu: "en iyi devlet üniversiteleri", "türkiye'nin en iyi üniversiteleri 2026", "hangi devlet üniversitesi daha zor"
- İskelet: (1) İlk cümle: "en iyi" ölçülemez, "en seçici" ölçülür — medyan taban başarı sırası tanımı. (2) ≥30 lisans programı olan devlet üniversitelerinde medyan sıra tablosu (ilk 20). (3) Az programlı seçici okullar ayrı kutu (Boğaziçi, Galatasaray, İzmir YTE — eşik altı kaldıkları için). (4) URAP/THE gibi akademik sıralamalarla farkı (öğrenci tercih verisi vs akademik çıktı). (5) "Senin sıralaman hangi üniversitelerde hangi bölümleri açar?" → sıra formu.
- Şema: `Sıralamanı gir` → medyan altı/üstü → `bölüm bazında bak` (renk + metin etiketi).
- Tablo: üniversite × (program sayısı, medyan sıra 2026, en seçici program, en açık program, 2025→2026 yön).
- İç link: üniversite sayfaları, `taban-puan-mi-siralama-mi`, `kac-siralama-ile-hangi-bolume-girebilirim`, `hedef-siralama-nasil-belirlenir`.
**4) `universitede-ilk-hafta-ders-kaydi-muafiyet-kayit-dondurma`**
- Başlık: Üniversitede İlk Hafta: Ders Kaydı, Muafiyet, Kayıt Dondurma ve Harç — Ne Zaman Ne Yapılır?
- Hedef sorgu: "üniversite ders kaydı nasıl yapılır", "kayıt dondurma nasıl yapılır", "hazırlık muafiyet sınavı", "üniversite harçları 2026-2027 kim öder"
- İskelet: (1) İlk cümle: ilk iki hafta kritik — ders kaydı/danışman onayı, muafiyet dilekçesi ve kayıt dondurma başvurusu çoğu üniversitede bu pencerede [A→üniversite yönetmelikleri; genelleme yapılmaz, "üniversitenin akademik takvimine bak"]. (2) Ders kaydı + danışman onayı. (3) Muafiyet: hazırlık atlama sınavı ve önceden alınan dersler. (4) Kayıt dondurma: mazeret türleri, süresi azami süreye sayılmaz [A→doğrulanmalı], "bu bölüm bana göre değil" diyenler için `universite-okurken-tekrar-yks` köprüsü. (5) Harç: 1. öğretim süresini aşmayan ödemez; 2. öğretim ve uzaktan ücretleri RG cetveli (rakam yalnızca RG'den).
- Şema: `İlk hafta` zaman çizgisi olarak flowchart TD: ders kaydı → muafiyet → (memnun değilsen) kayıt dondur / devam et / Ek Madde-1 bekle.
- Tablo: işlem × (ne zaman, nereye, hangi belge, kaçırırsan ne olur).
- İç link: `universite-okurken-tekrar-yks`, `mezuna-kalmak-mi-kayit-olmak-mi`, `hazirlik-sinifi-ve-ogretim-dili`, `yurt-burs-ve-yillik-maliyet`. Ürün CTA yumuşak ("kardeşin/arkadaşın için").
- Kaynak: 15 Ağu 2026 Resmî Gazete (Cumhurbaşkanı kararı) [doğrulanmalı: sayı ve URL]; 2–3 üniversitenin yönetmelik linki.
### Dalga 2 — 29 Eylül–20 Ekim
**5) `kyk-burs-mu-kredi-mi`** (CEO koşulu: GSB/mevzuat kaynağı açılabiliyorsa; en geç 6 Ekim)
- Başlık: KYK Burs mu, Kredi mi? Başvuru, Fark ve Geri Ödeme — Karar Şeması
- Hedef sorgu: "kyk burs mu kredi mi", "kyk burs başvurusu ne zaman 2026", "kyk kredi geri ödeme"
- İskelet: (1) Tanım: burs karşılıksız, kredi geri ödemeli; tek başvuru ekranı (e-Devlet). (2) Tarih: "2026-27 için açıklanmadı; 2025'te 13–17 Ekim" (açıklanınca ilk cümle). (3) Kim burs alır (kriterler GSB SSS'sinden). (4) Kredi geri ödeme mantığı (rakam yalnızca resmî SSS). (5) Çıkmadıysa: üniversite/belediye/vakıf bursları.
- Şema: başvuru → sonuç üçlü (burs/kredi/çıkmadı) → sonraki adım.
- Tablo: burs vs kredi (geri ödeme, tutar kaynağı, kesilme koşulu, hazırlıkta durum).
- İç link: `yurt-burs-ve-yillik-maliyet`, `veliler-icin-tercih-rehberi`, yazı 4.
- Kaynak: https://kygm.gsb.gov.tr/sayfalar/2446/3200/sikca-sorulan-sorular-kredi-burs.aspx [A→D yazım sırasında açılacak].
**6) `vakif-universitesi-burslu-indirimli-ucretli-farki`**
- Başlık: Vakıf Üniversitesinde Burslu, %50 İndirimli ve Ücretli Kontenjan: Taban Farkı ve Doluluk (2026)
- Hedef sorgu: "vakıf üniversitesi %50 burslu okunur mu", "burslu ile ücretli arasındaki fark", "vakıf üniversitesi bursu kesilir mi"
- İskelet: (1) Tanım: aynı programın 3 fiyat etiketi = 3 ayrı kontenjan, 3 ayrı taban. (2) DB: burslu %103 / %50 indirimli %71 / ücretli %86 doluluk; aynı programda burslu–ücretli taban sırası farkı (5 örnek). (3) ÖSYM kılavuz bursu ile üniversitenin başarı bursu farkı (önceki plan #12'nin özü; YÖK kararı [doğrulanmalı]). (4) Hazırlıkta kalınca, süre aşımında ne olur. (5) Karar: "%50 indirimliyi yazmadan önce 4 yıllık toplamı hesapla" → `yurt-burs-ve-yillik-maliyet`.
- Şema: `Etiket?` → burslu / indirimli / ücretli → bedel + süre koşulu → `4 yıl toplamını hesapla`.
- Tablo: etiket × (program sayısı, doluluk, örnek program taban farkı, süre koşulu).
- İç link: `devlet-mi-vakif-mi`, `yurt-burs-ve-yillik-maliyet`, `hazirlik-sinifi-ve-ogretim-dili`, vakıf üniversite sayfaları.
- Not: isimde etiketi olmayan 3.839 vakıf programı çözülmeden tablo yayımlanmaz (§3 #3).
**7) `yks-2027-takvimi`** (ÖSYM takviminden önce yayında; takvim günü güncellenir)
- Önceki plan #8 aynen; ek: (a) MEBİ deneme takvimi satırı, (b) MSÜ satırı (2026: 5–29 Ocak / 1 Mart), (c) Ek Madde-1 bahar penceresi. Her düğümde "açıklandı / beklenti" metin etiketi.
- İç link: `tercih-listesi-nasil-yapilir`, `hedef-siralama-nasil-belirlenir`, `yks-tercih-takvimi-2026` (geçmiş zamana çevrilecek).
### Dalga 3 — Kasım
**8) `ek-madde-1-puanim-yetiyor-mu`**
- Önceki plan #10; öncelik yükseldi çünkü katalogda 2026 **puan** var (`puan2026`) ve Ek Madde-1 "yerleştiğin yılın taban puanı" kuralıyla birebir eşleşiyor. Yazı, `/bolum/<slug>` tablosundaki yıl kolonunu nasıl okuyacağını ekran görüntüsüz, adım adım anlatır.
- CTO'ya bağımlılık: bölüm/üniversite sayfasında yıllık **puan** sayısal görünüyor mu (geo-raporu E7'de yalnız sparkline deniyordu)? Görünmüyorsa T10 ile birlikte.
**Yedek havuz:** `kktc-universiteleri-okunur-mu` (§3 #4), `obp-kirilmasi-soru-cevap` (eski #3), `bilgisayar-mi-yazilim-muhendisligi-mi` (eski #11), `maarif-modeli-yks` (eski #9), `hukuk-2026-taban-degisimi` (§3 #5), `yeni-acilan-bolumler-nasil-degerlendirilir` (§3 #9).
**Mevcut yazılara dokunuş (rehber-editoru):** `yurt-burs-ve-yillik-maliyet` → KYK yurt ücreti 2026-27 satırı (tarihli, NTV/GSB) · `kac-siralama-ile-hangi-bolume-girebilirim` başlığı hâlâ "(2025 Verileriyle)" — veri 2026 oldu, tablo ve başlık güncellensin (AI gösteriminde 1 numara) · `siralama-sartlari-2026` → 2027 YÖK kararı çıkınca · `yks-tercih-takvimi-2026`, `tercih-sonuclari-ne-zaman-2026` → geçmiş zaman + yazı 7 linki.
---
## 5. Arama motorlarına gönderim listesi (Bilal'in tarayıcısında, adım adım)
| Motor / dizin | Durum | URL | Adım | Süre |
|---|---|---|---|---|
| **Google Search Console** | Var (geo-raporu: 22.09 sitemap gönderildi) ama kodda `verification` meta yok [D] → doğrulama DNS ya da dosya ile olmalı; **teyit gerekli** | https://search.google.com/search-console | 1) Mülk türü "Alan adı" (kolaytercih.com) mı, "URL öneki" mi bak; alan adı değilse DNS TXT ile alan adı mülkü ekle (www ve http varyantlarını da kapsar). 2) Sitemap'ler → `https://kolaytercih.com/sitemap.xml` durumu "Başarılı" mı, kaç URL keşfedildi (903 bekleniyor). 3) Dizine eklenmemiş sayfalar raporunda "Bulunamadı (404)" ve "Yumuşak 404" sayısını not et (T1 için taban çizgisi). 4) Performans → Üretken yapay zekâ raporunu 28 güne çek, ekran görüntüsü al | 5 dk |
| **Bing Webmaster Tools** | Yapıldı (22.09) | https://www.bing.com/webmasters | 1) Sitemap durumu "Processing" → "Success" oldu mu. 2) Sol menü **IndexNow** → anahtar oluştur/kopyala (CTO'ya ver; gizli değil ama raporlara yazılmaz). 3) AI Performance raporu bir hafta sonra | 3 dk |
| **Yandex Webmaster** | Yok | https://webmaster.yandex.com.tr | 1) Yandex hesabı gerekir (**hesap açma Bilal'in işi**, ajan açamaz). 2) "Site ekle" → `https://kolaytercih.com`. 3) Doğrulama: **DNS TXT** seç (meta etiketi eklemek kod değişikliği ister; T3 yapılırsa meta da olur). 4) Doğrulama sonrası "Sitemap dosyaları" → sitemap.xml gönder. 5) "Yandex Turbo" vb. teklifleri reddet | 10 dk + DNS yayılımı 1–4 saat |
| **IndexNow** | Yok (`/indexnow.txt` 404, kodda iz yok [D]) | https://www.indexnow.org/documentation | Kodla yapılır (aşağıdaki uygulama notu). Bing'e gönderilen URL Yandex, Naver, Seznam ve Yep'e otomatik paylaşılır | CTO: yarım gün |
| **DuckDuckGo** | Gönderim yok | — | Bing indeksi + kendi DuckDuckBot'u; Bing WMT yeterli. `robots.txt` `*` izni yeterli | 0 |
| **Ecosia** | Gönderim yok | — | Bing (ve Google) sonuçlarını kullanır; ek iş yok | 0 |
| **Brave Search** | Kontrol edildi (22.09, seyrek indeksli) | https://search.brave.com/submit-url | Hesap yok; yalnızca ana sayfa URL'sini gir. Bu "yeniden tara" isteğidir, garanti değil; konsol yok. Claude alıntıları Brave ile örtüştüğü için ayda bir `site:kolaytercih.com` kontrolü | 1 dk |
| **Apple (Applebot: Siri/Spotlight/Safari)** | Konsol yok | https://support.apple.com/en-us/119829 | Gönderim yok. `robots.txt`'te `Applebot` adı yok ama `*` grubu izinli ve Apple, Applebot geçmezse Googlebot kuralını izler [A] → ek iş yok. İstenirse T3'te `Applebot` açık gruba eklenir | 0 |
| **Naver (Kore) / Seznam (Çekya)** | Gereksiz | searchadvisor.naver.com · search.seznam.cz | Türkiye trafiği için anlamsız; IndexNow zaten ikisine iletiyor. Kayıt açma | 0 |
| **Perplexity** | Gönderim yok | https://docs.perplexity.ai/guides/bots | PerplexityBot izinli [D robots]; Google+Bing indeksinden beslenir. Yapılacak tek şey: yeni yazıyı Search Console + IndexNow ile hızlı indekslettirmek | 0 |
| **ChatGPT search** | Gönderim yok | https://developers.openai.com/api/docs/bots | OAI-SearchBot izinli [D]; Bing indeksi → Bing WMT yeterli | 0 |
| **You.com** | Gönderim yok | — | Bing tabanlı [A]; ek iş yok | 0 |
| **Gemini / Google AI Modu** | — | — | Google indeksi; Search Console yeterli | 0 |
**IndexNow uygulama notu (CTO/yazilimci için, kısa):**
1. Anahtar: Bing WMT'den al ya da 32 hex karakter üret; `public/<anahtar>.txt` dosyasının içeriği anahtarın kendisi (Next `public/` kökten servis eder → `https://kolaytercih.com/<anahtar>.txt`). Anahtar gizli değildir ama env'e de konabilir (`INDEXNOW_KEY`), dosya adı build'de üretilir.
2. `scripts/indexnow.ts`: `POST https://api.indexnow.org/indexnow` gövde `{ host: "kolaytercih.com", key, keyLocation: "https://kolaytercih.com/<anahtar>.txt", urlList: [...] }` (`Content-Type: application/json; charset=utf-8`, ≤10.000 URL/istek). Yalnızca **değişen** URL'ler: argüman olarak slug listesi ya da `git diff --name-only HEAD~1 -- content/rehber` çıktısından türet; katalog verisi yenilendiğinde (`KATALOG_VERI_TARIHI` değişince) tüm `/bolum` + `/universite` bir kez. Her deploy'da tümünü gönderme (429).
3. Doğrulama: 200/202 döner; Bing WMT → IndexNow sayfasında "gönderilen URL" sayısı artar. İlk gönderim yeni 4 yazı + `/rehber` + değişen katalog.
---
## 6. Teknik bulgular (CTO iş paketine çevrilebilir)
| # | Bulgu | Kanıt | Öneri | Önem |
|---|---|---|---|---|
| **T1** | **Arşive taşınan bölüm slug'ları soft 404.** 2026 verisiyle `programs_arsiv`'e giden program adlarından türeyen **25 bölüm slug'ı** artık `getAllBolumSlugs()`'ta yok ama canlıda `HTTP 200` + "sayfa yok" gövdesi + ana sayfa `<title>` dönüyor (`x-nextjs-postponed: 1`, `x-nextjs-prerender` yok → `notFound()` PPR kabuğu içinde çalışıyor, durum kodu 200 kalıyor). Rybbit: `/bolum/nufus-ve-vatandaslik` 5 ve `/bolum/uygulamali-ispanyolca-cevirmenlik` 5 organik giriş (son 30 gün) — ikisi de bu listede. Liste (arşiv satır sayısıyla): spor-yoneticiligi 113, radyo-ve-televizyon-programciligi 70, uygulamali-ingilizce-cevirmenlik 47, spor-yonetimi 35, bilgi-yonetimi 8, menkul-kiymetler-ve-sermaye-piyasasi 5, ambalaj-tasarimi 4, uygulamali-ispanyolca-cevirmenlik 4, muhendislik-programlari 3, nufus-ve-vatandaslik 3, siyasal-bilimler 3, uluslararasi-ekonomi 3, iletisim-sanatlari 3, dogu-dilleri 2, film-tasarimi-ve-yazarligi 2, film-tasarimi-ve-yonetmenligi 2, girisimcilik 2, cevre-temizligi-ve-denetimi 2, iktisadi-ve-idari-bilimler-programlari 2, aile-ve-tuketici-bilimleri 1, atik-yonetimi 1, bati-dilleri 1, emlak-ve-emlak-yonetimi 1, ev-idaresi 1, meteoroloji-muhendisligi 1. Üniversite slug'ı kapanmadı (229 = 229). | `curl -D -` canlı [D] · `src/app/bolum/[slug]/page.tsx:11-13` · Rybbit entry_page [D] · KARARLAR.md 2026-09-21 (kapanan slug listesi seo-geo'ya) | (a) Yeniden adlandırılanlar için `next.config.ts` `redirects()`'e 301 (veri-muhendisi eşlesin: "Spor Yöneticiliği" 113 satır 2025 kılavuzunda vardı, 2026'da yok → ad değişimi olasılığı yüksek [doğrulanmalı]; "Menkul Kıymetler…" → `sermaye-piyasasi` var [D]). (b) Karşılığı olmayanlar gerçek **404/410** dönsün: `notFound()` Suspense/PPR kabuğundan önce çözülsün ya da bilinmeyen slug için statik 404 (Next 16 dokümanı: `node_modules/next/dist/docs/` — cacheComponents ile `dynamicParams` uyumsuz notu zaten kodda). (c) `/universite` tarafı için aynı test. | **P0** — Google "yumuşak 404"ü sayfa kalitesine yazar; 2 slug hâlâ trafik alıyor |
| **T2** | **IndexNow yok.** `/indexnow.txt` 404; kodda/scripts'te iz yok. Tarih-kritik 4 yazı (ek yerleştirme sonucu, KYK, 2027 takvim, boş kontenjan) Bing/Copilot/ChatGPT tarafında günler kaybediyor. | `curl` [D] · `grep -rn indexnow src scripts` boş [D] | §5 uygulama notu. geo-raporu T15 ile aynı; **Dalga 1 ile aynı haftaya**. | P1 |
| **T3** | **`verification` metadata yok** (Google/Yandex/Bing). Doğrulama muhtemelen DNS ile — repoda iz yok, kim yaptı bilinmiyor. | `grep -n verification src/lib/seo.tsx` boş [D] · canlı `<head>`'de meta yok [D] | `src/app/layout.tsx` metadata'ya `verification: { google, yandex, other: { "msvalidate.01": … } }` (değerler env'den). DNS doğrulaması varsa ek değil, sigorta. | P2 |
| **T4** | **Sayfalama URL'leri sitemap dışında ama organik giriş alıyor:** `/universite/selcuk-universitesi/sayfa/5` 13, `/universite/akdeniz-universitesi/sayfa/4` 8, `/universite/mugla-sitki-kocman-universitesi/sayfa/4` 5 oturum (30 gün) [D]; canlı sitemap 903 URL, `sayfa/N` yok [D]. | `sitemap.ts` [D] · Rybbit [D] | geo-raporu T32 → **P1**. Self-canonical zaten var; sitemap'e ekle, `lastModified: KATALOG_VERI_TARIHI`. | P1 |
| **T5** | **"Diğer rehber yazıları" hâlâ tarihe göre son 4** (`.slice(0, 4)`); 29 yazı oldu, küme alanı yok. Yeni 8 yazı gelince tüm eski yazıların altı aynı 4 yeniyi gösterir. `/rehber` listesi düz duvar. | `rehber-makale.tsx:47` [D] · `rehber.ts` frontmatter alanları: `tarih`, `guncelleme` yalnız [D] | Frontmatter `kume:` (tercih / sonuc-sonrasi / universitede / hazirlik / universiteler) + `ilgili:`; `/rehber`'de küme başlıkları (`SectionEyebrow`). Önceki plan T4'ün aynısı; 29 yazıda artık ertelenemez. | P1 |
| **T6** | **Rehber yazılarında `/tercih-robotu` linkleri 301'e gidiyor** (`next.config.ts:77` → `/#hero-form`). Yeni yazılar da aynı hedefe link veriyor. | [D] | geo-raporu T13 (gerçek landing) yapılana kadar yazar kuralı: CTA linki doğrudan `/` ya da `/bolumler`. | P1 (kural), P2 (kod) |
| **T7** | **`/il/[slug]` sayfası yok.** DB'de `il` alanı 84 ilde dolu; "İstanbul'daki devlet üniversiteleri" tipi sorgu için sayfa yok; sihirbazın 2. adımı il seçimi → doğrudan huni köprüsü. | `programs.il` [D] · `src/app/` listesinde `il` yok [D] | 84 statik sayfa: il × (üniversite listesi devlet/vakıf, program sayısı, medyan taban, en seçici 5 program) + `CtaSiraForm`. Sorgu varyasyonu başına sayfa açılmaz (yalnız il). | P2 |
| **T8** | **Katalog → huni köprüsü var ve vaatsiz:** `/bolum/[slug]` ve `/universite/[slug]` altında `CtaSiraForm` başlığı "Sıralaman X tabanlarının neresinde?" [D]. Eksik: katalog sayfasından **ilgili rehber yazısına** link yok (ör. `/bolum/hukuk` → `siralama-sartlari-2026`). Rehber→katalog tek yönlü. | `bolum-icerik.tsx:288`, `universite-icerik.tsx:365` [D] | T5'teki `kume`/`ilgili` alanı tersine de çalışsın: bölüm sayfasında "Bu bölümle ilgili rehber" 2–3 link (eşleme: frontmatter `bolumler: [hukuk, tip]`). | P2 |
| **T9** | **llms.txt yok** (404). Değişiklik yok: P3. | [D] | — | P3 |
| **T10** | **Veri notu (veri-muhendisi):** vakıf lisans programlarının 3.839'unda isimde burs etiketi yok (Burslu 334 / İndirimli 415 / Ücretli 199 / etiketsiz 3.839 [D]) — 2026 adlandırmasında düştü mü, ingest'te mi kayboldu? Yazı 6 çözülmeden yayımlanmaz. Açıköğretim ayrımı ise `fakulte` alanından yapılabiliyor (Atatürk AÖF 8.531, İÜ AUZEF 7.000, Anadolu 3.534 yerleşen ayrıştı [D]) → yazı 2 için ön koşul kalktı; katalog sayfalarında da "açıköğretim" etiketi/filtresi düşünülmeli (öğrenci örgün sanıp tercih etmesin). | sqlite sorguları [D] | Burs etiketi kaynağını doğrula; `fakulte`'den türeyen `acikogretim` bayrağını katalog ve sihirbaz filtresine taşımayı değerlendir. | P1 (içerik ön koşulu) |
---
## 7. Bilal'den istenen (en fazla 3)
1. **Search Console'u aç ve iki şeyi söyle:** mülk türü (alan adı mı, URL öneki mi) ve "Yumuşak 404" sayısı; Üretken yapay zekâ raporunun 28 günlük ekranını klasöre at — **5 dk**.
2. **Yandex hesabı aç ve siteyi DNS TXT ile doğrula** (§5 adımları); ajanlar hesap açamaz — **10 dk + DNS bekleme**.
3. **Karar:** vakıf üniversitelerinin adıyla doluluk oranı yayımlanabilir mi (§3 #10), yoksa yalnız bölüm bazında mı — **tek cümle**.
---
## Kaynaklar
ÖSYM ek yerleştirme duyurusu — https://www.osym.gov.tr/2026-yks-ek-yerlestirme-tercihlerin-alinmasi [D] · Ek yerleştirme kılavuzu PDF (17 Eyl 2026) — https://dokuman.osym.gov.tr/web/2026/9/2026-yuksekogretim-programlarina-ek-yerlestirme-kilavuzu-f2ttjv-17130413.pdf [D: s.1–12 okundu] · ÖSYM duyurular — https://www.osym.gov.tr/Duyurular/Index [D] · YÖK duyurular — https://www.yok.gov.tr/tr/announcements [D] · ÖSYM sayısal bilgiler — https://www.osym.gov.tr/2026-yks-yerlestirme-sonuclarina-iliskin-sayisal-bilgiler [A] · 2026 sayısal özet haberi — https://www.egitim.net.tr/sinav/2026-yks-yerlestirme-sonuclari-aciklandi-sayisal-bilgiler-16707h [A] · Ek yerleştirme boş kontenjan — https://www.egitim.net.tr/sinav/2026-yks-ek-yerlestirmede-110-bin-53-bos-kontenjan-var-17182h [A] · Sonuç tarihi tahmini — https://www.milligazete.com.tr/2026-yks-ek-tercih-sonuclari-tercihler-hangi-gun-bitecek-sonuclara-nereden-bakilacak-ve-kayitlar-nasil-yapilacak [A] · KYK burs/kredi — https://www.haberturk.com/bilgi/foto/kyk-burs-ve-kredi-basvuru-tarihleri-2026-2027-gsb-kyk-burs-basvurulari-nasil-yapilir-sartlari-nelerdir-3909626 · https://kygm.gsb.gov.tr/sayfalar/2446/3200/sikca-sorulan-sorular-kredi-burs.aspx [A] · KYK ek yurt — https://www.cumhuriyet.com.tr/turkiye/kyk-ek-yurt-basvurulari-ne-zaman-baslayacak-2026-2027-kyk-ek-yurt-basvurusu-nasil-yapilir-2535890 [A] · KYK yurt ücretleri — https://www.ntv.com.tr/turkiye/galeri-kyk-yurtlarinda-ucretler-belli-oldu-iste-2026-2027-donemi-kyk-yurt-ucretleri-1739988 [A] · Harçlar — https://www.gzt.com/ekonomi/universite-harc-ucretleri-2026-2027-katki-payi-ve-ogrenim-ucretleri-belli-oldu-4251701 [A] · Üniversite açılış — https://www.hurriyet.com.tr/bilgi/galeri/universiteler-ne-zaman-basliyor-2026-2027-universitelerin-acilis-tarihi-bilgileri-43250677 [A] · AÖF ikinci üniversite — https://ikinciuniversite.anadolu.edu.tr/basvuru-ve-kayit-tarihleri · https://www.ensonhaber.com/sinavsiz-ikinci-universite-kayit-takvimi-2026-auzef-aof-ve-ankuzef-tarihleri-h1547742 [A] · Ek Madde-1 güz sonuçları — https://oidb.ankara.edu.tr/2026/09/01/ · https://oidb.metu.edu.tr/tr/merkezi-yerlestirme-puani-ile-yatay-gecis-ek-madde-1 [A] · MEBİ deneme — https://www.cumhuriyet.com.tr/egitim/2026-2027-yks-ve-lgs-deneme-sinavlari-ne-zaman-mebi-2026-2027-deneme-takvimi-2538463 [A] · ÖSYM 2026 takvimi (14.11.2025) — https://www.memurlar.net/haber/1151657/osym-2026-yili-sinav-takvimi-aciklandi.html [A] · MSÜ 2026 kılavuzu — https://dokuman.osym.gov.tr/pdfdokuman/2026/MSU/kilavuz_msd06012026.pdf [A] · Kayıt dondurma — https://unicourse.co/blog/kayit-dondurma [A] · Hazırlık muafiyet örneği — https://yabdil.ankara.edu.tr/2026/09/17/23-24-eylul-2026-hazirlik-programlari-muafiyet-sinavi-dgs-ile-basvuran-ogrenciler-icin/ [A] · Forum/YouTube talebi — https://eksisozluk.com/yks-2027--6628226 · https://eksisozluk.com/bolumu-birakip-sinava-tekrar-hazirlanmak--7080738 · https://eksisozluk.com/istanbul-universitesi-vs-marmara-universitesi--3672812 · https://www.youtube.com/watch?v=4uauqeJ4qHk [A] · Google Trends TR — https://trends.google.com/trending?geo=TR [D] · IndexNow — https://www.indexnow.org/documentation · https://www.indexnow.org/faq [A] · Yandex doğrulama — https://yandex.com/support/webmaster/tr/service/rights [A] · Brave gönderim — https://search.brave.com/submit-url · https://merj.com/blog/how-brave-search-discovers-new-pages [A] · Applebot — https://support.apple.com/en-us/119829 [A] · AI motorlarında gönderim yok — https://www.npgroup.net/blog/get-website-indexed-chatgpt-gemini-perplexity-guide/ [A] · İç kaynaklar — `data/yokatlas.db` (sqlite sorguları), `src/app/sitemap.ts`, `src/app/robots.ts`, `src/lib/seo.tsx`, `src/lib/rehber.ts`, `src/lib/slug.ts`, `src/lib/katalog.ts`, `src/features/rehber/components/rehber-makale.tsx`, `src/features/katalog/components/{bolum,universite}-icerik.tsx`, `next.config.ts`, `docs/geo/geo-raporu.md`, `docs/ekip/KARARLAR.md`, `docs/gece-vardiyasi/2026-09-21/{02,10,11,SABAH-OZETI}.md`, Rybbit `get_breakdown` (entry_page, 22.08–21.09.2026, kanal Organic Search) [D].

View File

@@ -0,0 +1,205 @@
# 06 · Üniversite sayfaları için veri zenginleştirme — keşif raporu
**Rol:** veri-muhendisi · **Tarih:** 21 Eylül 2026 · **Kapsam:** `/universite/[slug]` (229 sayfa)
## Özet
1. Bugün üniversite sayfası yalnızca `programs` tablosundan türetilen 6 sayıyı gösteriyor (program, fakülte, tür, il, en iyi sıra, kontenjan); üniversiteye ait ayrı bir tablo ne `yokatlas.db`'de ne `app.db`'de var.
2. OpenAlex prototipi (`scripts/kesif-openalex.ts`) sitedeki 229 üniversitenin **201'ini (%87,8)** eşledi; yayın/atıf/h-index yıllık seriyle geliyor, CC0 lisanslı, anahtarsız. Kalan 28'in 10'u ad değişikliği (Adnan Menderes → Aydın Adnan Menderes vb.), küçük bir takma ad tablosuyla ~%92'ye çıkar; geri kalanı yurt dışı/KKTC küçük kurumlar.
3. Öğrenciye en çok işe yarayan üç kaynak açık ve yıllık yayımlanıyor: **YÖK İstatistik** (öğrenci + öğretim elemanı sayısı, Excel), **TÜBİTAK ARDEB üniversite tablosu** (2021–2025, PDF, 199 üniversite) ve **URAP Türkiye 2025-2026** (tam sıralama tablosu basın PDF'inde). Üçü de yılda bir el ile indirilip repoya konur; kod tarafı ayrıştırıcı.
4. THE/QS (telifli, kazıma yasak), Scimago (403), Webometrics (bu ağdan erişilemedi, CC BY-NC-SA) ve Üni-Veri (üniversite düzeyi yalnız rehber öğretmen sistemi DABİS'te) ilk sürüme **girmemeli**; yurt kapasitesi ve şehir yaşam maliyeti için üniversite bazlı açık veri yok.
5. Önerilen ilk sürüm: 8 alan, tek yeni tablo (`uni_kimlik` + `uni_gosterge`, uzun biçim, kaynak/yıl damgalı), yıllık güncelleme, toplam **~22 saat** iş.
6. Yan bulgu (veri kalitesi): 3 yurt dışı/KKTC üniversitesi `unitur='DEVLET'` etiketli ve Uluslararası Balkan Üniversitesi'nin 26 satırında il "SARAYBOSNA - BOSNA - HERSEK" (üniversite Üsküp'te). `/universiteler` hub'ında bu üniversiteler "Devlet" listesinde görünüyor.
---
## 1. Mevcut durum
### 1.1 `yokatlas.db` — üniversiteye ait alanlar
Üniversite ayrı bir varlık değil; `programs` satırlarındaki dört kolonun `GROUP BY` ile toplanmasından oluşuyor (`sqlite3 -readonly data/yokatlas.db ".schema programs"`):
| Kolon | Tip | Not |
|---|---|---|
| `universite` | TEXT | Ham ad, **iki yazım**: `"X ÜNİVERSİTESİ"` ve `"X ÜNİVERSİTESİ (İL)"`; 322 ham ad → 229 slug (93 üniversite çift yazımlı) |
| `unitur` | TEXT | DEVLET 170 · VAKIF 117 · KKTC 23 · VAKIF MYO 4 · YURTDISI KAMU 6 · YURTDISI VAKIF 2 (ham ad bazında) |
| `il` | TEXT | NULL olabilir; yurt dışı için serbest metin ("SARAYBOSNA - BOSNA - HERSEK") |
| `fakulte` | TEXT | Birim adı |
Örnek satır (`SELECT universite, unitur, il, fakulte, isim, sira2026, kontenjan2026 FROM programs WHERE universite LIKE 'BOĞAZİÇİ%' LIMIT 1`): `BOĞAZİÇİ ÜNİVERSİTESİ | DEVLET | İSTANBUL | Eğitim Fakültesi | ...`. Üniversite düzeyinde **hiçbir gösterge** (öğrenci sayısı, akademisyen, yayın, sıralama, kuruluş yılı, web sitesi) yok. `netler`, `programs_arsiv`, `veri_meta` tablolarında da üniversite alanı yok.
Dış anahtar durumu: YÖK Atlas API `tercih-kilavuz/universiteler` ucu **228 üniversite için `universiteId`** (YÖKSİS kodu, ör. Abdullah Gül = 173499) veriyor; `scripts/logo-indir.ts` bunu logo için kullanıyor ama DB'ye yazmıyor. Bu kod, YÖK'ün tüm sistemlerinde (İstatistik, İzleme raporu) ortak anahtar — ilk sürümde saklanmalı.
### 1.2 `app.db`
Tablolar: `user, session, account, verification, orders, credit_ledger, reports, saved_lists, chat_messages, tadimlik_havuzu`. Üniversite verisi yok; olması da gerekmiyor (katalog verisi salt okunur `yokatlas.db`'de).
### 1.3 `/universite/[slug]` bugün ne gösteriyor
Kaynak: `src/features/katalog/components/universite-icerik.tsx`, veri: `src/lib/katalog.ts:getUniversiteBySlug`.
- Başlık + logo (`public/uni-logo/<slug>.png`, 229 dosya, YÖK Atlas'tan)
- Özet paragraf: program sayısı, fakülte sayısı, en iyi taban sırası, toplam kontenjan
- 4 istatistik kutusu: Program · Fakülte/Birim · Tür · En iyi sıralama
- Türkiye haritasında konum (`universite-konum-haritasi.tsx`, `uni-koordinatlar.ts`)
- Fakülteye göre program tablosu (50'lik sayfalar) + CTA
- JSON-LD `CollegeOrUniversity` (name, url, logo, address) — `foundingDate`, `sameAs`, `numberOfStudents` gibi alanlar boş
Yani sayfa, öğrencinin "bu üniversite nasıl bir yer" sorusuna değil, "hangi programı kaçla alıyor" sorusuna cevap veriyor. Bilal'in istediği alanların **hiçbiri** yok.
## 2. Kaynak araştırması
Erişim testleri bu oturumda `curl`/WebFetch ile yapıldı (21 Eyl 2026). "Eşleşme" sütunu sitedeki 229 slug'a karşı tahmini oran; OpenAlex ve TÜBİTAK için ölçüldü, diğerleri koddan çıkarım.
| Kaynak | URL | Ne veriyor | Güncellik | Erişim | Lisans / izin | Eşleşme zorluğu |
|---|---|---|---|---|---|---|
| **OpenAlex** | `api.openalex.org/institutions` | Toplam yayın, toplam atıf, yıllık yayın/atıf/açık erişim (2010→2026), h-index, i10, 2 yıllık ort. atıf, ROR, web sitesi, konum, konu dağılımı | Sürekli (kayıt `updated_date`'li; 2026 yılı kısmi) | JSON API, anahtarsız, 100k istek/gün, 10/sn; `mailto` ile polite pool | **CC0** — ticari kullanım ve atıfsız kullanım serbest | **Ölçüldü: 201/229.** Türkçe alternatif adlar var; 2018 sonrası kurulanların çoğunda `country_code=null` → TR filtresi kaçırır, ad aramasıyla bulunur |
| **ROR** | `api.ror.org/v2/organizations?filter=country.country_code:TR,types:education` | Kanonik kurum kimliği, TR/EN adlar, web sitesi, **kuruluş yılı**, Wikidata/ISNI/GRID kodları; 239 TR eğitim kurumu | Aylık sürüm | JSON API, anahtarsız | CC0 | OpenAlex ile aynı kimlik; eşleme bir kez yapılır, ROR id saklanır |
| **YÖK Atlas API** | `yokatlas.yok.gov.tr/api/tercih-kilavuz/universiteler` | Yalnız `universiteAdi` + `universiteId` (YÖKSİS). SPA paketi program düzeyinde "Öğretim Elemanları (kadro/unvan)" paneli içeriyor; üniversite düzeyi uç **yok** (denenen 5 kalıp 403) | Yıllık | JSON, Referer zorunlu | Kamu verisi; resmî kullanım şartı yok, mevcut hat zaten kullanıyor | Ad ham adla birebir; 228/229 |
| **YÖK İstatistik** | `istatistik.yok.gov.tr` | Üniversite bazında öğrenci sayısı (ön lisans/lisans/YL/doktora, cinsiyet, uluslararası), öğretim elemanı sayısı (unvan bazında) → **öğrenci/öğretim üyesi oranı** hesaplanır | 2025-2026 yılı 27 Mart 2026'da yayımlandı; yıllık (Mart) | ZK (Java) web uygulaması, API yok; arayüzden **Excel indirme** | YÖK verisi, açık; metaveri PDF'i var (`veriyonetim.yok.gov.tr/documentFiles/1776871774464...pdf`) | Ad YÖK yazımı (ham adla neredeyse aynı); ~%98. **Bilal indirir**, betik ayrıştırır |
| **YÖK Üniversite İzleme ve Değerlendirme Genel Raporu 2025** | `veriyonetim.yok.gov.tr/tr/document/2494` (251 s., 17 MB) | 71 gösterge başlığı (A.1–E.5): doktora mezun, **mezunların ilk 6 ayda işe girme oranı**, akredite program, WoS yayın/öğretim üyesi, CNCI, patent, TÜBİTAK proje/bütçe, uluslararası öğrenci, değişim öğrencisi, dünya sıralamaları, kişi başı enerji, WCAG… | 19 Aralık 2025 (2023-2024/2024 verisi) | PDF; her göstergede **yalnız ilk 10–20 üniversite** listeleniyor. Üniversite bazlı "karne"ler ayrı PDF'ler (Faaliyetler → Yayınlarımız), toplu Excel yok | YÖK, açık | Tam liste yok → ilk sürüme uygun değil; 201 karne PDF'ini tek tek ayrıştırmak ayrı proje (~2 gün) |
| **TÜBİTAK ARDEB üniversite tablosu** | `tubitak.gov.tr/sites/default/files/2025-05/9_universite_bazinda_ardeb_verileri_2020_2024_0.pdf` | Üniversite başına: başvuru sayısı, **destek kararı verilen proje sayısı**, bütçe (2025 sabit fiyat), yürürlükteki proje, ortalama bütçe; **199 üniversite**, dosya içeriği **2021–2025** | Yıllık (Mayıs) | PDF, 11 sayfa; pypdf ile satırlar okunuyor, çok satırlı adlar birleştirilmeli | Kamu istatistiği | Adlar kısaltmalı ("ZONGULDAK BÜLENT ECEVİT Ü."); naif eşleme 187/199, satır birleştirmeyle ~195 |
| **URAP Türkiye 2025-2026** | `newtr.urapcenter.org` (Meteor SPA) + basın PDF `…/cdn/storage/PDFs/mezDn2uAd4mx2mZzW/original/…pdf` (31 s.) | 15 gösterge, 9 puan sütunu (makale, atıf, doküman, doktora, öğretim üyesi/öğrenci, uluslararası/yurt içi iş birliği, TÜBİTAK proje) + toplam puan; **Tablo 8–10 tüm üniversitelerin tam sıralaması**, Tablo 11 geçen yıla göre değişim | Ekim 2025; yıllık (Ekim) | PDF (SPA kazınmaz); pypdf ile tablo satırları okunuyor, üniversite adı iki satıra bölünebiliyor | Kâr amaçsız (ODTÜ), "herkesin erişebileceği veri" ilkesi; sitede lisans metni yok → **atıf + link ile kullanım, [BİLAL] kısa e-posta ile izin teyidi önerilir** | Adlar YÖK yazımıyla aynı büyük harf; ~%95 |
| **URAP Dünya 2025-2026** | aynı site, PDF `…/amdSDGMGFJkWCgFG6/…pdf` (19 Haz 2026) | ~90 TR üniversitesinin dünya sırası | Yıllık (Haziran) | PDF | aynı | aynı |
| **Times Higher Education WUR 2026** | `timeshighereducation.com/…/best-universities-turkey` | 109 TR üniversitesi, bant (301–350 …) | Yıllık (Ekim) | HTML | **"All rights reserved"**, kullanım şartları kazımayı yasaklıyor → **[BİLAL] hukuk** | İngilizce adlar |
| **QS WUR 2027** | topuniversities.com | 25 TR üniversitesi | Yıllık (Haziran) | HTML | Telifli, aynı durum | İngilizce adlar |
| **Scimago Institutions** | `scimagoir.com/rankings.php?country=TUR` | Araştırma/inovasyon/toplumsal etki sırası | Yıllık | curl → **403**; tarayıcıdan CSV düğmesi var | Kullanım şartı sitede; ticari yeniden yayın belirsiz | İngilizce adlar |
| **Webometrics** | `webometrics.info/en/Europe/Turkey` | Dünya sırası, etki/açıklık/mükemmellik | Yılda 2 (Oca/Tem) | Bu ağdan **DNS çözülmedi** (ENOTFOUND) | CC BY-NC-SA → **ticari sitede kullanılamaz** | — |
| **Üni-Veri (CBİKO)** | `cbiko.gov.tr` (univeri.cbiko.gov.tr bu ağdan çözülmedi) | Mezun istihdam oranı, ilk iş bulma süresi, ücret, nitelik uyuşmazlığı (15 gösterge; 2010–2022 mezunları) | 2024 genişletme | Arayüz; **üniversite düzeyi yalnız DABİS'te (rehber öğretmen girişi)**, kamuya bölüm düzeyi ülke geneli | Kamu | Üniversite düzeyi kamuya kapalı → ilk sürüm dışı |
| **Erasmus+ ham hareketlilik verisi** | `data.europa.eu/…/erasmus-mobility-raw-data`; `erasmus-plus.ec.europa.eu/…/for-researchers` | 2014–2024, hareketlilik başına satır (gönderen/alan kurum) → üniversite başına giden/gelen öğrenci sayısı toplanabilir | Yıllık; 2023–2024 geçici | Excel, yıl başına yüz binlerce satır | EU açık veri (yeniden kullanım serbest, atıf) | Kurum adları İngilizce/serbest; ECHE kodu eşlemesi gerekir → orta zorluk, ~6 saat |
| **KYK / GSB yurt kapasitesi** | `kygm.gsb.gov.tr` | Toplam 867 yurt / 1 milyon+ yatak (ülke geneli); il bazlı kapasite sayfası **bulunamadı** | — | Açık veri yok | — | Üniversite bazlı değil, il bazlı bile yok → ilk sürüm dışı |
| **TÜİK** | `data.tuik.gov.tr` | Kira endeksi İBBS-2 (26 bölge), TÜFE bölgesel; il bazlı yaşam maliyeti yok | Aylık | Veri portalı (Excel) | Açık | İl→bölge eşlemesi; "şehir yaşam maliyeti" iddiası için zayıf → ilk sürüm dışı |
| **Kendi verimiz** | `yokatlas.db` | Vakıf üniversitelerinde burslu/indirimli/ücretli kontenjan dağılımı program adından türetilebilir | Yıllık (zaten var) | SQL | — | Program adında `(Burslu)`/`(%50 İndirimli)` kalıbı; **doğrulanmalı**: SQLite `LIKE` Türkçe İ'ye duyarsız değil, 70 vakıf üniversitesinde kalıp var ama sayım düşük çıktı — `turkishSlugify` ile TS tarafında sayılmalı |
## 3. Prototip: OpenAlex × KolayTercih
**Betik:** `/Users/bilalgursen/Desktop/kolaytercih/scripts/kesif-openalex.ts` (salt okunur; `src/`'ye ve şemaya dokunmaz; lint + proje tsc temiz).
**Çalıştırma:** `OPENALEX_MAILTO=<e-posta> pnpm tsx scripts/kesif-openalex.ts --cikti <dosya.json>` (~40 sn, 2 liste + 28 arama isteği).
**Çıktı:** `/private/tmp/claude-501/-Users-bilalgursen-Desktop-kolaytercih/a9337d4b-f90c-4aee-a4e5-cac37b02c64c/scratchpad/kesif-openalex.json` (229 kayıt; eşleşme yöntemi, OpenAlex/ROR id, web, yıllık 2021–2026 serisi).
### 3.1 Eşleşme
| Aşama | Yöntem | Eşleşen |
|---|---|---|
| 1 | TR+CY `type:education` listesi (219+39 kurum), ad slug'ı birebir (Türkçe alternatif adlar dahil) | 179 |
| 2 | Gevşek anahtar (üniversitesi/university/vakıf atılmış, sıralı parçalar) | 6 |
| 3 | İngilizce→Türkçe kalıp çevirisi | 0 |
| 4 | Ülke filtresiz `search=` ile ad araması, aday yalnız slug/gevşek anahtar tutuyorsa | 16 |
| | **Toplam** | **201 / 229 (%87,8)** — DEVLET 122/132 · VAKIF 68/78 · KKTC 11/15 · YURTDIŞI 0/4 |
Slug dışı 22 eşleşmenin tamamı göz kontrolünden geçti (web sitesi alanı doğruluyor; ör. "İSTANBUL ATLAS ÜNİVERSİTESİ → Atlas Üniversitesi (atlas.edu.tr)").
### 3.2 Neden %100 değil, nasıl çözülür
| Neden | Etkilenen | Çözüm |
|---|---|---|
| **Ad değişikliği** — OpenAlex eski adı taşıyor: Adnan Menderes (17.965 yayın), Mustafa Kemal (13.202), Bezmiâlem, Acıbadem, Okan, Beykent, Gedik, Adana BTÜ, İstanbul Bilim (→ Demiroğlu), Ankara Medipol vb. | 10 | 10 satırlık takma ad tablosu (`data/uni-eslesme.json`: slug → openalex_id/ror). Bir kez yapılır; id saklanınca ad bir daha kullanılmaz |
| **`country_code=null`** — 2018 sonrası kurulanların çoğu | 16 (çözüldü) | 4. aşama zaten çözüyor; kalıcı çözüm id saklamak |
| **Şehir adı çakışması riski** — "Ankara Medipol" ↔ "İstanbul Medipol" | ilk sürümde 1 yanlış pozitif çıktı, düzeltildi | Gevşek anahtardan şehir adlarını **atmamak** (betikte düzeltildi); gevşek eşleşmeleri her koşuda listeye yazmak |
| **Kurum gerçekten yok/çok küçük**: Kıbrıs Aydın, Kıbrıs Sağlık ve Toplum, Rauf Denktaş, Bahçeşehir Kıbrıs, Kocaeli Sağlık ve Teknoloji, İstanbul Sağlık ve Teknoloji, Türk-Japon BTÜ, MYO'lar | ~10 | Eksik olarak gösterilir ("Yayın verisi yok"); komşu üniversiteden kopyalanmaz |
| **Yurt dışı kampüsler** (Manas, Hoca Ahmet Yesevi, Tiran New York, Azerbaycan Pedagoji) | 4 | Ülke kodu KG/KZ/AL/AZ ile aranabilir; öğrenci için düşük öncelik |
| **Sağlık Bilimleri Ü. (İçişleri/MSB adına)** | 1 | Zaten "SAĞLIK BİLİMLERİ ÜNİVERSİTESİ" ile aynı kurum; slug'a takma ad |
Takma ad tablosu sonrası beklenen: **~211/229 (%92)**; eksik kalanların toplam programı 229 üniversitenin program sayısının %2'sinden az.
### 3.3 Örnek 10 üniversite (OpenAlex, 21 Eyl 2026 çekimi)
| Üniversite | OpenAlex adı | Toplam yayın | Toplam atıf | Yayın 2024 | Yayın 2025 | Atıf 2025 | h-index | 2y ort. atıf |
|---|---|---:|---:|---:|---:|---:|---:|---:|
| Boğaziçi | Boğaziçi University | 25.402 | 2.069.758 | 1.352 | 1.327 | 3.260 | 416 | 3,89 |
| ODTÜ | Middle East Technical University | 48.900 | 2.621.914 | 2.331 | 2.101 | 4.688 | 433 | 2,90 |
| Hacettepe | Hacettepe University | 82.851 | 3.204.640 | 5.917 | 5.830 | 12.068 | 387 | 1,91 |
| İTÜ | Istanbul Technical University | 58.913 | 2.395.731 | 4.127 | 4.537 | 11.508 | 375 | 3,11 |
| Koç | Koç University | 24.966 | 853.255 | 2.487 | 2.355 | 6.275 | 272 | 3,22 |
| Ege | Ege University | 54.395 | 1.931.127 | 4.004 | 4.102 | 6.917 | 309 | 1,82 |
| Atatürk | Atatürk University | 42.571 | 1.449.438 | 3.650 | 3.957 | 10.393 | 273 | 2,80 |
| Bahçeşehir | Bahçeşehir University | 11.986 | 251.976 | 1.293 | 1.330 | 3.368 | 175 | 2,47 |
| Muş Alparslan | Muş Alparslan University | 6.390 | 54.625 | 625 | 853 | 1.589 | 79 | 1,89 |
| Doğu Akdeniz (KKTC) | Eastern Mediterranean University | 10.513 | 399.227 | 655 | 712 | 3.107 | 219 | 4,34 |
Yorum: "Atıf 2025" o yıl **alınan** atıf; yeni yayınlar az atıf aldığı için düşüktür — sayfada gösterilecekse "son 5 yıl yayın" ve "toplam atıf" daha dürüst. `2yr_mean_citedness` (yayın başına ortalama atıf) küçük-büyük üniversiteyi karşılaştırmak için tek adil gösterge; "Koç 25 bin yayınla Hacettepe'nin üçte biri" gibi ham sayı karşılaştırması öğrenciyi yanıltır — ham sayı yanında **öğretim üyesi başına** değer verilmeli (YÖK İstatistik ile birleşince mümkün).
## 4. Öneri
### 4.1 İlk sürüm: 8 alan
Sıralama = öğrenciye fayda × erişilebilirlik × güncellik. Her satırda kaynak, tazelenme ve tahmini iş (ayrıştırıcı + test + UI kutusu hariç).
| # | Alan | Kaynak | Güncelleme | Eşleşme | İş (saat) | Öğrenciye ne söyler |
|---|---|---|---|---|---|---|
| 1 | **Öğrenci sayısı** (toplam, lisans/ön lisans, uluslararası oranı) | YÖK İstatistik Excel | Yıllık (Nisan) | ~%98 | 3 | Kampüs büyüklüğü, "kalabalık mı butik mi" |
| 2 | **Öğretim elemanı sayısı ve öğrenci/öğretim üyesi oranı** | YÖK İstatistik Excel (aynı dosya) | Yıllık | ~%98 | 1 (1 ile birlikte) | Ders/danışman erişimi; URAP da aynı oranı puanlıyor |
| 3 | **Son 5 yıl yayın sayısı + öğretim üyesi başına yayın** | OpenAlex (`counts_by_year`) ÷ #2 | 6 ayda bir (API) | %88→%92 | 4 (mevcut betik → üretim betiği + takma ad tablosu) | Araştırma canlılığı; adil karşılaştırma |
| 4 | **Toplam atıf, h-index, yayın başına ortalama atıf** | OpenAlex | 6 ayda bir | aynı | 0,5 | Araştırmanın etkisi |
| 5 | **TÜBİTAK ARDEB desteklenen proje sayısı (2021–2025) ve başvuru→destek oranı** | TÜBİTAK PDF | Yıllık (Mayıs) | ~%97 | 4 (PDF ayrıştırıcı, çok satırlı adlar) | Proje/burs fırsatı, laboratuvar canlılığı |
| 6 | **URAP Türkiye sırası + toplam puan + geçen yıla göre değişim** | URAP basın PDF (Tablo 10–11) | Yıllık (Ekim) | ~%95 | 4 | Tek, yerli, açık, 15 göstergeli akademik sıralama; THE/QS'e hukuki risksiz alternatif |
| 7 | **Kuruluş yılı, resmî web sitesi, ROR/Wikidata kimliği** | ROR / OpenAlex | Yıllık | %92 | 1 | "Yeni üniversite" bağlamı; JSON-LD `foundingDate`/`sameAs` → SEO |
| 8 | **Vakıf üniversitelerinde burslu / indirimli / ücretli kontenjan dağılımı** | `yokatlas.db` (program adı) | Otomatik (refresh ile) | %100 | 2 (Türkçe harf duyarlı sayım + doğrulama) | Vakıf tercihinde en somut soru: "kaç kişi bursla giriyor" |
Toplam ayrıştırma/veri işi **~19,5 saat**; katalog okuma katmanı (`katalog.ts` → `UniDetay.gostergeler`) + `universite-icerik.tsx` kutuları + kaynak dipnotu **~6 saat** (yazılımcı). Eşleme tablosunun ilk el kontrolü (28 üniversite) **~1 saat** (Bilal veya veri-muhendisi).
**İlk sürüme girmemesi önerilenler ve nedeni:** THE/QS (telif, [BİLAL] hukuk görüşü olmadan hayır); Webometrics (NC lisans); Scimago (erişim + şart belirsiz); Üni-Veri mezun istihdamı (üniversite düzeyi kamuya kapalı; YÖK raporunda yalnız ilk 20); Erasmus (yapılabilir ama 6 saat, ikinci sürüm); yurt kapasitesi / şehir yaşam maliyeti / kütüphane / ulaşım (üniversite bazlı açık veri yok — uydurma ya da il ortalaması gösterilmesin).
### 4.2 Şema taslağı
`yokatlas.db` içinde, **`ingest.ts` DB'yi sildiği için** (`rmSync(dbPath)`, satır 26) üniversite tabloları ayrı bir dosyada tutulmalı: `data/universiteler.db` (salt okunur açılır; `src/lib/db.ts`'teki `getDb` kalıbının ikizi). Alternatif: `ingest.ts`'e "koru" listesi eklemek — daha kırılgan.
```sql
-- Kimlik: bir kez kurulur, el ile denetlenir, yıllık güncellemede değişmez
CREATE TABLE uni_kimlik (
slug TEXT PRIMARY KEY, -- katalog.ts slug'ı (uniAdiNormalize + turkishSlugify)
yoksis_id INTEGER, -- YÖK Atlas universiteId
ror_id TEXT, -- https://ror.org/xxxx
openalex_id TEXT, -- https://openalex.org/Ixxxx
wikidata_id TEXT,
kurulus_yili INTEGER,
web TEXT,
tubitak_ad TEXT, -- PDF'teki kısaltmalı yazım ("… Ü.")
urap_ad TEXT,
eslesme_notu TEXT -- "el ile" / "slug" / "arama"; denetim izi
);
-- Göstergeler: uzun biçim; her değer kaynak + dönem + çekim damgası taşır
CREATE TABLE uni_gosterge (
slug TEXT NOT NULL REFERENCES uni_kimlik(slug),
anahtar TEXT NOT NULL, -- 'ogrenci_toplam' | 'ogretim_elemani' | 'yayin_5y' | 'atif_toplam' | 'h_index' | 'tubitak_destek_2021_2025' | 'urap_tr_sira' | ...
donem TEXT NOT NULL, -- '2025-2026' | '2021-2025' | '2025' ; karşılaştırma bu alanla yapılır
deger REAL, -- NULL = kaynakta yok (eksik eksik görünür)
kaynak TEXT NOT NULL, -- 'yok-istatistik' | 'openalex' | 'tubitak-ardeb' | 'urap' | 'ror' | 'yokatlas'
kaynak_url TEXT,
alindi TEXT NOT NULL, -- ISO tarih
PRIMARY KEY (slug, anahtar, donem)
);
CREATE INDEX idx_uni_gosterge_anahtar ON uni_gosterge (anahtar, donem);
```
Okuma tarafı: `getUniversiteBySlug` → `gostergeler: Record<anahtar, {deger, donem, kaynak}>`; UI her kutunun altına "Kaynak: YÖK İstatistik 2025-2026" dipnotu koyar (`VeriKaynagi` bileşeni zaten var). Ham sayı yanında oran (öğretim üyesi başına) gösterilir; eksik değer "—" ve "bu kaynakta yok" metni.
Göç: yeni dosya olduğu için `app.db` göçüne dokunulmaz; `yokatlas.db` şeması değişmez; geri alma = dosyayı silmek + `katalog.ts`'te opsiyonel okuma (dosya yoksa `gostergeler = {}`).
### 4.3 Güncelleme takvimi
| Ay | İş | Kim |
|---|---|---|
| Mart–Nisan | YÖK İstatistik Excel'i indir → `pnpm uni-gosterge --kaynak yok-istatistik --dosya …` | Bilal indirir, betik |
| Mayıs | TÜBİTAK ARDEB PDF → ayrıştırıcı | Bilal indirir, betik |
| Haziran, Aralık | OpenAlex API çekimi (`pnpm uni-gosterge --kaynak openalex`) | Betik (otomatik, ağ) |
| Ekim | URAP Türkiye PDF → ayrıştırıcı | Bilal indirir, betik |
| Her yıl kılavuz sonrası | Yeni üniversite slug'ları için `uni_kimlik` satırı + eşleme kontrolü (`pnpm uni-gosterge --denetim` eşleşmeyenleri listeler) | veri-muhendisi |
Doğrulama sorguları (her koşu sonrası): (a) `SELECT COUNT(*) FROM uni_kimlik WHERE openalex_id IS NULL` ≤ 20; (b) her `anahtar, donem` için dolu satır ≥ önceki dönemin %95'i; (c) `deger < 0` yok; (d) `ogrenci_toplam / ogretim_elemani` 2–80 aralığı dışında kalanlar listelenir.
## 5. Yan bulgu: veri kalitesi (üniversite alanları)
| Kontrol | Sorgu | Sonuç | Önem |
|---|---|---|---|
| Yurt dışı/KKTC üniversitesi `DEVLET` etiketli | `SELECT universite, il, unitur, COUNT(*) FROM programs WHERE unitur='DEVLET' AND (universite LIKE '%KIBRIS%' OR universite LIKE '%ULUSLARARASI%') GROUP BY 1,2,3` | KIBRIS AMERİKAN (42 satır, il LEFKOŞA/KIBRIS/NULL), ULUSLARARASI BALKAN (34), ULUSLARARASI SARAYBOSNA (24) — aynı üniversitelerin `(…)` ekli eski yazımı `YURTDISI KAMU`/`KKTC`; parantezsiz 2026 yazımı `DEVLET` | **Yüksek**: `/universiteler` hub'ı bu 3'ünü "Devlet" listesinde gösterir (`universite-listesi.tsx:45`), üniversite sayfası "Tür: Devlet" yazar, sihirbazın devlet/vakıf filtresi de etkilenir. Kaynak muhtemelen `unitur-onar.ts`/2026 refresh eşlemesi — **doğrulanmalı** |
| Yanlış il | `SELECT DISTINCT il FROM programs WHERE universite LIKE 'ULUSLARARASI BALKAN%'` | 26 satırda "SARAYBOSNA - BOSNA - HERSEK"; üniversite Üsküp'te (eski yazım `(ÜSKÜP-MAKEDONYA)` bunu doğruluyor) | Orta: harita/adres JSON-LD yanlış ülke |
| Çift yazım | slug bazlı gruplama (bkz. 1.1) | 93 üniversite iki ham adla | Düşük: `katalog.ts` slug'da birleştiriyor; ama `GROUP BY universite` kullanan her yeni sorgu çift sayar — üniversite tabloları **slug** anahtarlı olmalı |
| Sağlık Bilimleri Ü. özel kontenjanı | `SELECT COUNT(*) FROM programs WHERE universite LIKE 'İÇİŞLERİ BAKANLIĞI%'` | 15 satır, ayrı "üniversite" gibi görünüyor, `/universite/icisleri-bakanligi-ve-milli-savunma-bakanligi-adina-...` diye sayfa üretiliyor | Düşük–orta: SEO'da anlamsız sayfa; slug'ı Sağlık Bilimleri'ne bağlamak ya da hub'dan gizlemek |
## Bilal'den istenen
1. `istatistik.yok.gov.tr`'den 2025-2026 "Üniversite bazında öğrenci sayıları" ve "öğretim elemanı sayıları" Excel'lerini indirip `data/ham/yok-istatistik-2025-2026/` altına koymak (~10 dk; API yok, tarayıcı gerekiyor).
2. URAP'a tek cümlelik e-posta: Türkiye sıralaması tablolarını kaynak ve link göstererek KolayTercih üniversite sayfalarında yayımlamak için izin teyidi (~5 dk; kâr amaçsız kurum, "herkese açık veri" ilkesi — düşük risk ama ticari site).
3. [BİLAL] karar: THE/QS bantları hiç gösterilmesin mi, yoksa hukuk görüşü alınsın mı (kararın kendisi ~2 dk; alınmazsa varsayılan "gösterme").