> >
Lansmana özel %50: Aylık GEO Takip raporunun ilk ayı 9.000 TL yerine 4.500 TL. Kampanyayı gör →Bir ölçüm ürünü, ölçüsünü açıklamak zorundadır. Aşağıda GEO skorunun formülü, sorulan sorular, "göründü" sayılma kriteri ve yöntemin bilinen sınırları var — hepsi, iyi görünmeyenler dahil.
Skorunuz %50 motor görünürlüğü + %50 teknik site hazırlığı. İki taraf birbirinden bağımsız ölçülür; biri ölçülemezse skor mevcut tarafa dayanır ve raporda bu açıkça yazılır — eksik ölçümü sıfır saymayız.
Bu birleşik sayı bir hazırlık endeksidir, görünürlük ölçüsü değildir. Sitesi kusursuz ama motorlarda hiç görünmeyen bir marka da bu endekste yüksek çıkar. Aylık raporda bu yüzden adı GEO Hazırlık Endeksidir ve asıl gösterge ayrıca verilir: AI keşif görünürlüğü — yani sizi bilmeyen birinin sizi bulup bulamadığı.
Her motor için ayrı bir skor çıkarılır, sonra motorların ortalaması alınır. Tek motorun skoru şu iki şeyden oluşur:
"Göründü" ne demek: motorun cevap metninde marka adınızın geçmesi. Adın geçtiği her yer sayılır; olumlu anılma şartı aranmaz — marka algısı ayrı bir bölümde ölçülür.
Sayfası okunacak kaynaklar frekans sırasına göre seçilir. Liste bir dönem geldiği sırayla kesiliyordu ve en sık okunan kaynaklar sınıflandırılmadan kalıyordu: bir raporda 6, 6 ve 5 soruda geçen üç kaynak “önce açıp bakın” diye müşteriye ödev olarak verilirken, 2 soruda geçen iki kaynağın sayfası okunmuştu. Yetenek vardı, en önemli yere uygulanmamıştı — analitik işi müşteriye geri devretmek, raporun geri kalanındaki titizlikle çelişir.
Kaynağın ne olduğunu alan adından tahmin etmiyoruz — sayfayı açıp okuyoruz. Bir alan adı ipucudur, kanıt değildir ve bunu üç kez pahalıya öğrendik: “bet” alt dizesi bir yapı malzemesi satıcısını bahis sitesi saydı, “grup/group” farkı bir rakibi görünmez yaptı, ve “sanayi” alt dizesi bir fan üreticisinin kendi sitesini “Sektör dizini” yaptı — o satır yüksek öncelikli bir iş olarak müşteriye gitti ve biz ona rakibinin sitesinde firma profili açmasını söyledik. Oysa bir dizin ile bir firma sitesi bambaşka metinler taşır ve fark gözle bariz: dizin ziyaretçiyi kayda çağırır (“firmanızı ekleyin”, “üye ol”, “12.500 firma kayıtlı”), bir firma kendinden birinci çoğul şahısla söz eder (“ürünlerimiz”, “fabrikamız”, “referanslarımız”). Bu ayrım deterministik olarak ölçülebilir; yapay zekaya sormaya gerek yok. Alan adından kesin karar veremediğimiz kaynakların ana sayfasını açıp metnini okuyoruz ve üç şeyi birlikte soruyoruz: sayfa bir dizin mi yoksa tek bir firma mı anlatıyor, anlattığı iş sizin kategorinizde mi, ve sayfa okunabildi mi. Üçü de olmadan “rakip” demiyoruz. Dizin işareti bilerek daha güçlü sayılır: bir dizin de “hakkımızda” sayfası taşır, ama bir firma “firmanızı ekleyin” demez. Kategori kelimeniz sayfanın başlığında geçiyorsa “rakip”, yalnız gövdesinde geçiyorsa “muhtemelen rakip” diyoruz. Sayfa okunamazsa (bazı dizinler otomatik istekleri reddeder) alan adı tahminine geri düşüyoruz ve raporda hangi satırın okunarak, hangisinin tahminle sınıflandığı yazıyor.
Kategori adınızı taşıyan alan adı muhtemelen rakiptir. Bir fan üreticisinin raporunda robinsonfans.com ve vimaxfan.com “sınıflandıramadık, önce açıp bakın” diye ödev olarak verildi — adlarından ne oldukları belli. Rakip listesinde olmadıkları için tanınmıyorlardı, oysa sizin kendi kategori kelimeniz elimizdeydi. Bilinen bir tipe uymayan alan adı sizin kategori kelimenizi taşıyorsa artık “muhtemelen rakip sitesi” diyoruz — “rakip” değil, çünkü bir dizin de o kelimeyi taşıyabilir. Gerekçesini yazıyoruz ve bir dakikalık doğrulama istiyoruz; bilmediğimizi bildiğimiz gibi sunmuyoruz. Çok genel kelimeler (sistem, çözüm, teknoloji, ürün) ayıklanır: onlar her alan adına uyar ve ayırt etmez.
Rakip listesi ile kaynak listesi birbirini besler. Motorların gösterdiği bir alan adı, aynı ölçümde çıkardığımız rakip markalardan birine aitse onu “sınıflandıramadık” diye müşteriye ödev olarak vermeyiz — cevap zaten raporun içinde durur. Bir raporda “ERF Grup” rakip listesindeydi ve erfgroup.com için “önce açıp bakın” dedik; sebep tek bir kelimeydi: marka adı Türkçe “Grup”, alan adı İngilizce “group”. Kurumsal kelimeler (grup/group, holding, sanayi, teknoloji/technology, ltd, A.Ş.) artık iki dilde de atılıp çekirdek adlar karşılaştırılıyor.
Denetim yapılamadıysa yüzdeyi doğrulanmış gibi sunmuyoruz. Varlık denetimi bir yapay zeka çağrısıdır ve düşebilir. Düştüğünde hiçbir hücre elenmiyordu ve rapor “9 cevabın 9'u doğru şirketten bahsediyordu — tanınırlık %100” diyordu; oysa hiçbiri denetlenmemişti. Aynı raporun alt bölümünde motorun markayı bir bakanlık birimi sandığı yazıyordu: müşteri önce %100 rozetini, sonra o cümleyi okuyor ve ölçüme güveni gidiyor. Yakalanan hata loglanmıyorsa yakalanmamış sayılır. Denetim tamamlanamazsa rapor artık bunu açıkça yazıyor ve yüzdenin doğrulanmamış olduğunu, olduğundan yüksek olabileceğini söylüyor.
Adı paylaşan markalarda “tanındı” yetmez. Motor doğru şirketten bahsedip aynı adı taşıyan başka bir varlığı da anlatabiliyor: “KABİM, Kültür ve Turizm Bakanlığı'nın bir birimidir; ayrıca yazıcı sarf malzemesi satan bir firma da bu adı kullanır.” Hakem bunu uzun süre doğru saydı — doğru şirket cevapta geçiyor, karışıklık yok gibi görünüyor. Sonuç, raporun kendi kendini yalanlamasıydı: aynı sayfada hem “%100 doğru tanınma” hem “motorlar sizi kamu kurumu olarak tanımlıyor” yazıyordu. Adınızı bilen biri böyle bir cevabı okuduğunda hangi şirketten bahsedildiğinden emin olamaz; bu temiz bir tanınma değildir. Bu hücreler artık tanınma saymıyor ve raporda ayrı bir dille anlatılıyor, çünkü müdahalesi de farklı: “sizi tanımıyor” ile “sizi tanıyor ama adınız paylaşılıyor” aynı iş değil.
Bir cevapta bulunan karışıklık, diğer cevaplar için de kanıttır. Denetim her cevabı ayrı ayrı inceliyor ve bir çağrıda fark ettiğini öbüründe kaçırabiliyor. Bir ölçümde bunun somut sonucu şu oldu: iki cevap “aynı adlı, başka ülkede merkezli bir şirketle birlikte anlatıyor” diye düşürüldü ve gerekçesi yazıldı; aynı ölçümdeki başka bir motorun cevabı markayı doğrudan o ülkede merkezli diye tanımlıyordu ve doğru sayıldı. Rapor aynı sayfada hem bulguyu hem bulguyu çürüten bir onay işareti bastı. Biz bütün cevaplara aynı anda bakabiliyoruz: doğrulanmış bir karışıklığın ayırt edici ifadesi çıkarılıp diğer cevaplarda aranıyor ve bulunan hücre tanınma saymıyor. Yanlış pozitife karşı üç kapı var — jeton dört harften uzun ve jenerik olmamalı, markanın kendi adı olmamalı, ve en önemlisi sitenizde geçmemeli: siteniz o ülkeden söz ediyorsa cevapta geçmesi karışıklık kanıtı değildir, gerçekten orada bir ofisiniz olabilir. Bu kararlar raporda ayrıca yazılır, çünkü hakemden değil bizim çıkarımımızdan gelirler.
O kapı ilk gerçek vakada delindi ve bunu da yazıyoruz. “Jeton sitenizde geçiyorsa kanıt sayılmaz” kuralı, hakem karışıklığı Türkçe yazdığında ve site İngilizce olduğunda çalışmadı: “Belçika” ile “Belgium” aynı yerdir ama metin olarak eşleşmez. Sonuç, büyük olasılıkla aynı şirkete ait hücrelerin düşürülmesi oldu. Normalleştirme aksanı çözüyordu, dili çözmüyordu. Artık dar ve kapalı bir eşanlam tablosu var (yaklaşık otuz ülke, Türkçe ve İngilizce yazımlarıyla) — yer adları bu hatanın en olası kaynağı, çünkü karışıklıkların çoğu “başka ülkede merkezli aynı adlı şirket” biçiminde. Liste tam değil ve olamaz: kapsamadığı bir dil çiftinde kapı yine delinebilir. Bu yüzden çapraz kontrolle düşen hücreleri raporda ayrıca listeliyoruz — karar bizim çıkarımımızdan geliyor ve siz onu görüp itiraz edebilmelisiniz.
“Başka şirketle karıştırma” ile “olmayan hizmet atfetme” ayrı bulgulardır. Bir ölçümde bir motor markadan doğru bahsetti ama ona ekipman satışı, barista eğitimi, çay ve atıştırmalık ekledi — ve rapor bunu “motorlar sizi başka bir şeyle karıştırıyor” başlığı altında gösterdi. Motor karıştırmıyordu: doğru markaya yanlış şeyler atfediyordu. İkisi ayrı sorun ve yapılacak iş de ayrı. Karıştırmada kimliği ayrıştırmak gerekir (tutarlı ad, kayıt, aynı adres ve unvan). Uydurmada ise kapsamı netleştirmek gerekir: sitenizde ne yaptığınızı olduğu kadar ne yapmadığınızı da açıkça yazan tek bir sayfa. Motor boşluğu kendi çıkarımıyla dolduruyor; boşluk kapanınca uydurma da kapanır. Aynı kutuda göstermek, yanlış reçeteyi vermek olurdu. Her iki durumda da hücre düşer — somut ama yanlış bilgi temiz bir tanınma değildir ve hiç bilgi olmamasından risklidir.Yönetici özeti kusurun cinsini ölçümden alır. Özet cümlesi bir süre her markada aynı şeyi söylüyordu: “bazı motorlar sizi tanımıyor ya da başka bir şeyle karıştırıyor”. Bir ölçümde asıl bulgu bunların hiçbiri değildi ve rapor doğru teşhisi ayrı bir bölümde zaten gösteriyordu — özet onu duymuyordu. Yönetici özeti raporun tamamını okumayan için yazılır; orada yanlış kusuru adlandırmak, müşteriyi yanlış işe yönlendirir. Cümle artık dört bulgudan hangileri gerçekten ölçüldüyse onlardan kuruluyor: hiç bulunamama, başka işletmeyle karıştırılma, olmayan hizmet atfı, ayırt edici bir şey söylememe. “Hiç tanımıyor” ifadesi bile ancak hiçbir bulgu etiketi taşımayan düşmüş bir hücre varsa kullanılıyor — sabit bir giriş cümlesi, kusurun tamamen kapsam hatasından geldiği bir ölçümde yeni bir yanlış iddia üretirdi.
Duygu etiketi ile ticari risk ayrı eksenlerdir. Bir vize danışmanlığı raporunda ton “nötr” etiketlendi ve altındaki özet şunu diyordu: “güvenilirliği sorgulanması gereken, dikkatli olunması tavsiye edilen bir işletme… meşruiyeti hakkında şüphe uyandırmaktadır.” Bu nötr değil. Modelin ölçtüğü şey duygu: cevapta hakaret yok, üslup ölçülü, o yüzden “nötr”. Bizim ölçmemiz gereken şey ticari risk. İkisi tek etikette toplanınca raporun en kritik bulgusu gömülüyordu — üstelik dolandırıcılık algısının yüksek olduğu bir kategoride motorların müşteriyi markadan uzaklaştırması %0 görünürlükten daha acildir: görünürlük kazanmak aylar sürer, itibar kaybı her yeni cevapta tekrarlanır. Risk bulunduğunda bölüm “İtibar riski” adını alıyor ve kendi müdahale listesini taşıyor: doğrulanabilir resmi kimlik (sicil ve vergi numarası), tutarlı adres ve unvan, numarasıyla birlikte yetki belgeleri, bağımsız değerlendirme ve sonuç garantisi ima eden ifadelerin temizliği. Tespit modele sorulmuyor, metindeki uyarı kalıpları aranıyor — buradaki hata iki yönde de pahalı: kaçırmak da yanlış alarm vermek de.Kalıplar sabit cümle değil anlam arar. İlk sürümde kalıpları o an elimizdeki cümleye göre yazmıştık. On sekiz dakika sonraki ölçümde motor aynı şeyi başka kelimelerle söyledi — “güvenilirlik konusunda temkinli ve uyarıcı bir yaklaşım” — ve hiçbiri tutmadı: biri “güvenilirliği” arıyordu, metinde “güvenilirlik” vardı; öbürü “temkinli olun” arıyordu, metinde “temkinli ve uyarıcı” vardı. Etiket yine “Nötr” çıktı. Serbest metinde sabit cümle aranmaz. Kalıplar artık iki katmanlı: tek başına yeten ifadeler (dolandırıcılık çağrışımı, temkinli/uyarıcı dil, resmi kaydın bulunamaması) ve yalnız güven ekseninden bir kelimeyle aynı cümlede geçtiğinde risk sayılan ifadeler (belirsizlik, doğrulanamama). İkinci katman olmasa “teslimat süreleri belirsiz” cümlesi itibar riski sayılırdı; her belirsizliği alarma çevirmek uyarıyı değersizleştirir.
Ton özetindeki kimlik teşhisi ton kutusunda gömülü kalmaz. Bir özet şunu diyordu: marka “bazen resmi bir gümrük terimi, bazen vize danışmanlık hizmeti, bazen de sosyal medya tabanlı butik bir oluşum” olarak anlatılıyor. Bu bir üslup notu değil, teşhis: motorlar tek bir varlık göremiyor — ki bu, görünürlük merdiveninin en alt basamağının tanımıdır. Böyle bir cümle yakalandığında rapor onu ayrıca işaretliyor ve neden bir kimlik meselesi olduğunu yazıyor. Kimlik netleşmeden yapılan görünürlük çalışması yanlış varlığa yatırım olur.
Raporun kendisi markanızı tek bir biçimde yazar. Bir çıktıda kapakta “Yurtdisikapin”, ton bölümünde “Yurtdışıkapın”, teslim ettiğimiz dosyada “Yurtdışı Kapın” yazıyordu. Ana tavsiyesi “aynı tanım her yerde aynı olsun” olan bir raporun kendi kapağında üç yazım olamaz. Kayıttaki ad ile sitenizin yapısal verisindeki ad farklıysa ve aynı markaya indirgeniyorsa rapor sitenizin yazımını kullanır — motorların okuduğu ad odur — ve farkı ayrıca bulgu olarak yazar. İki ad aynı markaya indirgenmiyorsa kayıttaki ad korunur: yanlış tüzel kişinin adını rapora basmayız, bunun yerine hangisinin doğru olduğunu sorarız.
Kendi tavsiyemizi kendi içimizde ihlal etmiyoruz. Raporun ana mesajlarından biri “aynı tanım her yerde aynı olsun”. Bir raporda markanın adı kayıtlarımızda “Yurtdisikapin”, sitenin yapısal verisinde “Yurtdışı Kapın” yazıyordu ve biz bunu hiç kontrol etmiyorduk. Fark bir hata değil, bir bulgu: motorlar varlıkları adla eşleştirir ve iki yazım iki ayrı varlık gibi görünebilir — bu, aynı raporun “kimlik karışıklığı” bölümünde anlattığı sorunun ta kendisidir. Artık aboneliğinizdeki ad ile sitenizin Organization şemasındaki ad karşılaştırılıyor ve fark varsa yazılıyor.
Motorun söylediği bilgi doğru mu? Tanınma denetimi uzun süre yalnız “doğru şirketten mi bahsediyor?” sorusuna baktı. İkinci bir soru daha var ve müşteri için daha kıymetli: söylediği şey doğru mu? Gerçek bir ölçümde motorlar bir markanın kuruluşunu 2010 diye anlattı; sitenin altbilgisi 2013 yazıyordu. O cevap “doğru tanınma” hanesine yazıldı — oysa yanlış tanınmak, bilinmemekten kötüdür. Artık motorların verdiği kuruluş yılı sitenin kendi ifadesiyle (açık kuruluş yılı, altbilgideki telif aralığı ya da “N yılı aşkın” gibi süre ifadeleri) karşılaştırılıyor ve çelişki raporda ayrı bir bulgu olarak gösteriliyor. Denetim şimdilik yalnız kuruluş yılını kapsıyor; bir olguyu ancak sitenizin kendi metninden doğrulayabiliyorsak denetleyebiliriz. Çalışan sayısı, ciro ve ürün adı için aynı şey geçerli değil, o yüzden onlarda iddiada bulunmuyoruz.
Marka sorgularında ek bir kontrol var: adın geçmesi tanınmak için yetmez. Motor aynı adlı başka bir şeyden bahsediyor olabilir — bir terim, bir kısaltma, başka sektörde bir firma. Tanınmış görünen her cevap ayrıca denetlenir ve açıkça yanlış varlıktan bahsedenler skordan düşer. Emin olunamayan cevaplar düşmez: emin olmadığımız için skorunuzu aşağı çekmek, emin olmadığımız için yukarı çekmek kadar yanlış olur. Motorun sizi başka bir şeyle karıştırdığı durumlar raporda ayrıca gösterilir.
Aynı ölçümün üç kesiti vardır ve üçü farklı paydayla anlatılır. Karışmaması için raporda da burada da adları geçer: soru bazlı sayım (altı sorunun kaçında en az bir motorda göründünüz), hücre bazlı sayım (hücre = soru × cevap veren motor; dört motorla 24 hücre) ve motor ortalaması (her motorun kendi yüzdesi, sonra ortalaması). Üçü de aynı veriden gelir ve üçü de doğrudur; hangisinden konuştuğumuzu yazmazsak sıfır olmayan bir ölçümde üç rakam birbirini tutmuyor görünür.
İki ayrı eksen var: tanınırlık ve keşif. Tanınırlık “adınızla sorulduğunda motor sizi biliyor mu”, keşif “kategoriniz sorulduğunda listeye giriyor musunuz” demektir. Motorlar bir eksende ayrışıp öbüründe aynı olabilir; bu yüzden “motorlar ayrışıyor” ya da “motorlar arasında fark yok” gibi her cümle hangi eksende konuştuğunu söyler. Görünürlük merdiveninin 0-2 basamakları tanınırlıktan, 3-5 basamakları keşiften beslenir.
On bir kontrol, toplamı 100 eden ağırlıklarla. Geçtiğiniz kalemlerin ağırlıkları toplanır:
| Kontrol | Ağırlık |
|---|---|
| AI tarayıcıları siteyi gerçekten indirebiliyor | 18 |
| İçerik sunucudan geliyor (JavaScript gerekmiyor) | 15 |
| Soru-cevap içeriği | 14 |
| AI botları robots.txt ile engellenmiyor | 12 |
| Organization schema | 12 |
| sitemap.xml | 8 |
| Başlık ve meta açıklama | 6 |
| HTTPS kullanıyor | 5 |
| H1 başlık yapısı | 5 |
| FAQPage işaretlemesi | 3 |
| llms.txt (deneysel) | 2 |
Skorun yanına kapsama oranı yazılır. Sayfa bazlı kalemler site haritasından eşit aralıkla seçilen bir örnekleme dayanır. “16 sayfa örneklendi” demek, 365 sayfalık bir sitede neyin ölçüldüğünü gizler; rapor artık “16 / 365 sayfa” diye yazıyor. Teknik altyapı kalemleri (HTTPS, bot erişimi, schema) site geneli için geçerlidir; sayfa bazlı kalemler (başlık, meta, H1) örnekleme dayanır ve rapor ikisini ayırır. Başlık ile meta açıklama da ayrı ayrı söylenir: “başlık/meta eksik” etiketi, başlığın her sayfada var olduğu bir sitede raporun tamamına duyulan güveni sarsıyordu.
Soru-cevap içeriği bir akordeon bloğu olmak zorunda değil. Kalem uzun süre yalnız “Sıkça Sorulan Sorular” ibaresini ve FAQPage şemasını aradı. Oysa koca bir terim sözlüğü — “SCADA Nedir?”, “SNMP Nedir?” gibi sayfalar — doğrudan alıntılanabilir soru-cevap içeriğidir ve bu kalıpların hiçbirine uymaz. Kalem artık site haritanızdaki tüm adresleri soru formatı açısından tarıyor (adresler zaten elimizde, okumak ek istek gerektirmiyor). Site zaten soru formatlı sayfa taşıyorsa öneri de değişir: “yaz” değil, “işaretle ve güncelle”. Bir raporda 141 soru sayfası olan bir siteye sıfırdan soru yazdırmayı en yüksek getirili iş diye önerdik; verilebilecek en pahalı yanlış öneri, müşterinin zaten yaptığı işi yeniden yaptırmaktır.
Dosya kalemlerinde varlık değil, okunabilir içerik ölçülür. llms.txt, robots.txt ve sitemap.xml kalemleri yalnız HTTP 200'e bakmaz. Bir sunucu dosya yokken 404 yerine bir HTML sayfası döndürebilir; bir dosya var olup içi boş olabilir. İkisinde de motorun okuyacağı bir şey yoktur, dolayısıyla kalem geçmez. Boş dosya, HTML dönen adres, hata metni ve tek başlıktan ibaret dosya geçmez; raporda hangisinin olduğu yazılır.
Hangi adresi okuduğumuzu yazarız. Kök adres başka bir sayfaya yönlendiriyorsa (örneğin bir dil sürümüne) rapor ölçümün gerçekte hangi adreste yapıldığını söyler. Bir müşteri “ana sayfamda H1 var, rapor yok diyor” dedi ve haklıydı; denetim de haklıydı: kök adres herkesi, GPTBot'u da, İngilizce sürüme yönlendiriyordu ve o sayfada H1 yoktu. Müşterinin baktığı Türkçe sayfada vardı. Okunan adresi yazmayınca ölçüm doğrulanamıyor — üstelik kökün başka bir dile gitmesi kendi başına bir GEO bulgusudur: motorlar kökten girer.
Sayfa örneklemli kalemlerde geçme eşiği %60'tır. Başlık/meta açıklama ve H1 kalemleri tek sayfadan değil, site haritasından örneklenen sayfalardan ölçülür. Bir kalem, örneklenen sayfaların en az %60'ında sağlanıyorsa geçer. Eşik raporda her seferinde yazılır: “4/5 sayfada H1 var (geçme eşiği: sayfaların %60'ı)”. Kuralı yazmadan yalnız oranı göstermek, okuyanın kalemin neden geçtiğini ya da düştüğünü kendi kendine tahmin etmesini istemek olurdu.
Ağırlıkları neden böyle seçtik: bir motor sitenizi indiremiyorsa geri kalan her şey anlamsızdır — en ağır kalem odur. Buna karşılık llms.txt ve FAQPage işaretlemesi bilerek düşük tutuldu: ikisi de faydalı olabilir ama etkileri kanıtlanmış değil. Google, üretken yapay zeka özelliklerinde llms.txt kullanmadığını ve yapay zeka görünürlüğü için özel yapısal veri gerekmediğini açıkça söylüyor. Bir ölçüm ürününün kanıtlanmamış bir sinyale ağır puan vermesi doğru olmaz.
Kategori ekseni de çoğunluk oyuyla ölçülür. Marka ekseni uzun süredir üç çekilişle ölçülüyordu; skorun geldiği kategori ekseni ise tek atıştan geliyordu ve kararlılığı hiç ölçülmemişti. Kanıtı kendi ölçümlerimiz verdi: aynı marka için 28 dakika arayla alınan iki ölçümde motorların gösterdiği 12 kaynağın 9'u değişti — ve biz o listeden aylık iş listesi üretip müşteriden o sitelerin editörlerine yazmasını istiyorduk. Artık ücretli raporda her çekirdek soru her motora üç kez soruluyor, hücre kararı çoğunlukla veriliyor ve sıra, markayı anan çekilişlerin ortancasından alınıyor — ortalama değil, çünkü tek bir uç değer sırayı kaydırır. Kaynak listesi de kaç çekilişte göründüğünü yazıyor: yalnız tek çekilişte çıkan bir kaynak gözlemdir, iş değildir; yüksek öncelik alamaz ve ayın ilk işi olamaz. Doğrulamadığımız bir bulgu için size e-posta yazdırmak, ölçmediğimizi ölçtük demenin başka bir biçimidir. Ücretsiz testte çekiliş tek kalır ve rapor her iki durumda da kaç çekilişle ölçüldüğünü yazar.
Sorgular üç kümede toplanır ve yalnız birincisi skora girer:
İki kategoride faaliyet gösteriyorsanız ikisi de ölçülür. Bir marka birden fazla pazarda satabilir (endüstriyel fan ve toz toplama sistemleri gibi) ve tek kategori ölçmek alıcısının yarısını görmezden gelmek olur. İkinci kategori aynı soru kalıbıyla ayrıca ölçülür ve raporda kendi yüzdesiyle, birincinin yanında görünür. İki yüzde aynı paydadan gelir ama doğrudan karşılaştırılabilir demiyoruz: çekirdek ölçüm her soruyu her motora üç kez sorup hücreyi çoğunluk oyuyla karara bağlarken ikinci kategori tek çekilişle ölçülür ve tek çekilişin yayılımı geniştir — gerçek bir ölçümde ikinci kategori 81 dakika arayla %8 ve %17 çıktı, arada hiçbir şey yapılmamıştı. O yüzden ikinci kategorinin yüzdesi raporda “tek çekiliş · yön gösterici” rozetiyle işaretlenir: bir değer değil, bir yöndür. İkisini ortalamayız: bir kategoride görünüp öbüründe hiç görünmeyen bir marka %50 çıkar ve iki sayının hiçbiri kullanılabilir olmaz; üstelik kategori eklendiği ay ortalama düşer ve düşüş markadan sanılır. Bu yüzden trendi birincil kategori taşır ve skor ona dayanır.
İkinci kategori aynı soruları soruyorsa ölçmeyiz. Bir markanın birincil kategorisi “E-fatura”, ikincisi “E-Invoice” yazıyordu; global ölçümde ikisi de İngilizceye çevrildi ve ikisi de aynı terime çözüldü — aynı altı soru iki kez soruldu ve rapor aynı yüzdeyi iki kutuda gösterdi. Beyan edilen iki etiket birbirinden farklıydı, yani girdiye bakan bir kontrol bunu göremezdi; yakalanabilir tek yer çıktıdır, yani iki eksenin gerçekten sorduğu sorular — karşılaştırmayı orada yapıyoruz. Setler aynıysa ölçüm yapılmaz, bölüm sessizce kaybolmaz: raporda ölçmediğimizi, neden ölçmediğimizi ve ne verilirse ölçebileceğimizi yazarız. İkinci eksenin varlık sebebi farklı bir soru setidir; aynı terimin başka bir yazımı yeni bir bilgi üretmez. Global ölçümde ikinci kategorinin İngilizce karşılığını üretemezsek de o ekseni ölçmeyiz — Türkçe bir soru setine düşmek, aynı raporda iki farklı alıcıya sorulmuş iki soru anlamına gelirdi ve yüzdeler karşılaştırılamazdı.
Etiketteki ayırıcılar soruyu bölmez. Bir müşterinin beyanı “Akıllı Yaşam Alanları; Carport ve Dış Mekanlar” idi ve bu etiket şablona girince on beşten fazla bozuk cümle üretti — noktalı virgül cümlenin ortasında durup soruyu ikiye bölüyor ve motorlar iki ayrı şey soruluyor sanabiliyor. Etiket bir kategori adıdır, bir liste değil; ayırıcılar doğal bir bağlaca çevriliyor, anlam değişmiyor.
Sektör etiketi soruya girmeden önce doğal dile çevrilir. Beyan ettiğiniz etiket şablona ham haliyle konunca Türkçede kimsenin kurmayacağı sorular çıkıyordu: “Bir arkadaşıma Nitelikli Kahve İmalatı için hangi firmayı önerirsin?” Bu yalnız bir dil sorunu değil — “imalat” kelimesi motorları kahve markalarına değil ekipman üreticilerine savurdu ve rakip listesine espresso makinesi üreticileri girdi. Süreç eki artık yalnız kalan kısım kendi başına aranabilir bir tüketici kategorisiyse atılıyor. “Nitelikli Kahve İmalatı” → “Nitelikli Kahve”; ama “Fason Takviye Edici Gıda Üretimi” ve “Endüstriyel Fan Üretimi” olduğu gibi kalıyor, çünkü o firmalar gerçekten üretici ve müşterileri tam da o kelimeyi arıyor. Körlemesine sadeleştirme işin kendisini silerdi. Ölçümün hangi ifadeyle yapıldığı raporda yazar; kategorinin kendisi değişmez.
Aylık abonelik raporlarında ölçüm ChatGPT, Claude, Gemini ve Perplexity üzerinde, Türkçe sorgularla yapılır ve motorlar web araması açık çalışır: sonuç modelin hafızası değil, güncel web gerçeğidir. Ücretsiz testte üç motor vardır ve web araması kapalıdır — Perplexity ücretsiz teste girmez, çünkü onun web aramasız bir modu yok ve ücretsiz test tam da motorların hafızasını ölçüyor. Her zaman aramalı bir motoru oraya koymak iki farklı şeyi aynı yüzdede toplamak olurdu. Bu yüzden ücretsiz testin yüzdesi ile abonelik raporunun yüzdesi birebir kıyaslanamaz.
Perplexity skora dahildir — ve bu bir sürüm değişikliğiydi. Perplexity bir GEO ölçümünde kendi başına anlamlı: cevabını her zaman web aramasıyla kurar. Bir süre onu ayrı bir eksende, tek çekilişle ve skora karıştırmadan ölçtük; sebebi trendi kırmamaktı. Sürüm 22 ile çekirdek ölçüme katıldı ve diğer motorlarla aynı muameleyi görüyor: aynı altı soru, aynı üç çekiliş, aynı çoğunluk oyu. Bu, skorun paydasını değiştirir — skor motorların ortalamasıdır ve dördüncü motor eklenince önceki ayların skorlarıyla doğrudan kıyas kırılır. Böyle bir şey bilerek ve bir kerede yapılır, yeni bir motor eklemenin sessiz yan etkisi olarak değil; rapor bunu ayrıca yazar. Hücre sayısı da değişti: çekirdek ölçüm 18'den 24 hücreye, marka ölçümü 9'dan 12 hücreye çıktı — yani bir hücrenin ağırlığı düştü ve ölçümün çözünürlüğü arttı.
Yanıt vermeyen motor (kota, hata, zaman aşımı) skordan düşülür; sıfır sayılmaz. Sebebi de yazılır (sürüm 141): rapor "4 hücrede cevap alınamadı" derken kaçının zaman aşımı, kaçının sağlayıcı hatası olduğunu ayrıca söyler — çünkü "motor sizi anlatamadı" ile "bizim isteğimiz zaman aşımına uğradı" bambaşka iki cümledir ve ikincisi bizim düzeltmemiz gereken bir aksaklıktır. Yanıt verip markayı hiç anmayan motor ise geçerli bir sıfırdır.
Aynı kural tek tek HÜCRELER için de geçerli — ve bir süre değildi. Bir motor genel olarak cevap verip belirli bir soruda boş dönebilir. O hücreler skorda “tanınmadı” sayılıyordu ve bunun bedeli ölçüldü: bir marka 15 saat arayla iki kez ölçüldü, tanınırlık %42'den %67'ye çıktı ve arada marka da kategori de motor seti de değişmemişti — ilk ölçümde 12 hücrenin 3'ü boştu. Yani 25 puanlık “değişimin” 14 puanı motorların değil bizim altyapımızın dalgalanmasıydı ve müşterinin aleyhine yazılıyordu. Bu sayfa kuralı zaten doğru anlatıyordu (“cevap veren motorlar kadar hücre üzerinden ölçülür”); eksik olan kuralın koda bağlanmasıydı. Cevapsız hücre artık ölçülmemiş hücredir: tanınırlık paydasından, motor bazlı oranlardan ve kaynak oranından düşer, sayısı raporda yazılır ve aleyhinize yazılmadığı söylenir. Hiçbir hücre cevaplanmadıysa yüzde verilmez — “%0” yazmak, ölçülmemiş bir şeyi ölçülmüş gibi göstermek olurdu.
Site tarafında ayrıca yapay zeka tarayıcılarının sitenize gerçekten girip giremediği tek tek ölçülür: GPTBot, OAI-SearchBot, Claude-User, Claude-SearchBot, ClaudeBot, PerplexityBot ve Googlebot. Bunların işlevleri farklıdır — örneğin ClaudeBot eğitim taramasıdır, kullanıcı sorusunda siteye giden ajanlar Claude-User ve Claude-SearchBot'tur.
Yüzdenin yanında altı basamaklı bir konum bildiririz: 0 tanımıyor · 1 tanıyor · 2 tutarlı tanıyor · 3 listede · 4 ilk üçte · 5 birincil öneri. Görünmemek tek bir durum değildir; motorun sizi hiç tanımaması ile listeye girip sonlarda kalmanız bambaşka sorunlardır ve bambaşka işler gerektirir.
Basamak bir sunum katmanıdır: sayısal skor ve trend olduğu gibi durur, çünkü aylar arası kıyas onlara dayanır. Genel basamak motorların ortancasıdır, en iyisi değil — tek bir motorda ilk sırada olmak "birincil önerisiniz" demek değildir, müşteriniz farklı motorlara sorar.
Ortancanın hesabı raporda açık yazılır: her motorun kendi basamağı tek tek gösterilir ve ortancanın hangi sayılardan çıktığı görünür. Motorlar arasında üç basamaktan fazla fark varsa rapor bunu ayrıca uyarır — ortanca, sizi hiç anmayan bir motoru gizleyebilir.
Basamak ile keşif yüzdesi aynı şeyi ölçmez. Yüzde kapsamdır: kaç soruda çıkıyorsunuz. Basamak konumdur: çıktığınızda kaçıncı sıradasınız. Bu yüzden düşük bir yüzdeyle yüksek bir basamakta olmak mümkündür — az soruda çıkıyor ama çıktığınızda ilk sırada anılıyorsunuzdur. İkisi birlikte okunur.
Bir cevabın markanızı doğru anlayıp anlamadığına karar vermek için cevabı ayrı bir modele okutuyoruz: aranan şirket sizsiniz mi, yoksa aynı adı taşıyan başka bir şirket mi. Bu denetim her cevabı tek tek inceler ve tek tek incelemenin bilinen bir zaafı vardır: bir cevapta fark ettiği şeyi öbüründe kaçırabilir. Gerçek bir ölçümde denetim, bir motorun iki cevabını “karışık” saydı ve gerekçesini yazdı — cevap markayı aynı adlı Belçika merkezli başka bir şirketle birlikte anlatıyordu. Aynı ölçümde başka bir motorun cevabı da “… Belçika merkezli bir teknoloji şirketidir” diyordu ve denetim ona “doğru” dedi. Rapor aynı sayfada hem bulguyu hem bulguyu çürüten bir onay işareti bastı.
Denetim her cevabı ayrı görüyor; biz bütün cevaplara aynı anda bakabiliyoruz. Bir hücrede doğrulanmış bir karışıklık, aynı ayırt edici ifadeyi taşıyan öbür hücreler için de kanıttır. Çapraz entity tutarlılık kontrolü tam olarak bunu yapar: doğrulanmış karışıklığın ayırt edici ifadesini bütün cevaplarda arar ve onu taşıyan hücreleri de tanınma saymaz.
Yanlış pozitife karşı üç kapı var, çünkü bu kontrol bir hücreyi tek başına düşürebiliyor. (1) Yayılan ifade ayırt edici olmalı: dört harften uzun, jenerik listede değil ve markanın kendi adı değil. (2) İfade sizin kendi sitenizde geçmemeli — siteniz “Belçika” diyorsa, cevapta “Belçika” geçmesi karışıklık kanıtı değildir. (3) Kontrol yalnız tanınmış sayılan hücrelere uygulanır; zaten düşmüş bir hücreye dokunulmaz.
Sonuç sessiz değildir: bu yolla düşen hücreler raporda ayrıca listelenir ve “bunları çapraz kontrolle biz yakaladık” diye yazılır — çünkü karar denetimden değil bizim çıkarımımızdan geliyor ve kararın kaynağını gizlemek, kararı denetlenemez yapardı.
“Bu sayıya ne kadar güvenebilirim?” sorusunun iki cevabı var ve ikisini birbirine karıştırmamak gerekiyor.
Çekiliş içi kararlılık tek bir ölçümün kendi içindeki tutarlılığıdır: aynı soruyu aynı motora üç kez sorduk, üçü aynı sonucu verdi mi. Bunu uzun süredir ölçüyor ve raporda yazıyoruz.
Ölçümler arası kararlılık başka bir sorudur: aynı ölçümü tekrarlasak aynı sonucu alır mıydık? Bu, bir sonraki ayın “arttı” ya da “azaldı” cümlesinin dayanağıdır — çünkü ölçümün kendi yayılımından küçük bir fark iyileşme değildir. Gerçek veri bunun neden ayrı bir soru olduğunu gösterdi: bir marka 81 dakika arayla iki kez ölçüldü, toplam tanınırlık iki ölçümde de %67 çıktı, ama altındaki 12 hücrenin 2'si yön değiştirdi — bir motor bir soruda tanımayı bıraktı, başka bir motor başka bir soruda tanımaya başladı. Toplam kararlıydı, kompozisyon değildi.
Bu yüzden rapor iki ayrı kararlılık gösterir. Skor kararlılığı toplam yüzdenin iki ölçüm arasında ne kadar oynadığını söyler ve eşiği bir hücrenin puanıdır, sabit bir yüzde değil: sabit eşik, hücre sayısı değiştiğinde sessizce anlamını yitirir. Hücre kararlılığı aynı hücrelerin aynı sonucu verip vermediğini söyler ve yön değiştiren hücreler motoruyla, sorusuyla adlandırılır. Toplam kararlı ama kompozisyon oynaksa rapor bunu açıkça yazar — bir motordaki kayıp başka bir motordaki kazançla örtülmüş olabilir ve sayı sizi yanıltmamalı.
Kıyas için iki ölçümün gerçekten bağımsız olması gerekir ve bunu varsaymıyoruz, doğruluyoruz: motor cevapları yedi gün önbellekte durur ve önbellek anahtarında tarih yoktur, yani aynı hafta ikinci kez çalıştırılan bir ölçüm ilkinin cevaplarını geri okuyabilir. İki ölçümün ham cevap parmak izleri aynıysa kararlılık raporlanmaz — aynı veriyi kendisiyle karşılaştırmak kararlılık ölçmez, yalnız önbelleğin çalıştığını gösterir. Skor kıyası iki ölçümde de ölçülebilen ortak hücreler üzerinden yapılır: ham skorlar farklı paydalardan gelebilir (bir ölçümde bir motor cevap vermemiş olabilir) ve o iki yüzdeyi doğrudan yan yana koymak elma-armut kıyası olur. Manşetteki ham yüzdeler gizlenmez, hangi ölçümde kaç hücre ölçülebildiğiyle birlikte ayrıca yazılır. Bölüm hangi iki ölçümün karşılaştırıldığını kimlik ve saatle yazar; her rapor ayrıca o ölçümün kaç model çağrısının önbellekten geldiğini bildirir. Kararlılığı gerçekten ölçmek için taze ölçüm modumuz var: önbellek bilinçli olarak aşılır ve bütün sorular motorlara yeniden sorulur. Bu bir ölçüm kadar maliyet çıkardığı için aylık raporun varsayılanı değildir; kalibrasyon için çalıştırılır ve rapor bunu ayrıca yazar. Normal ölçümlerde rapor, önbellekten gelen cevapların en eskisinin yaşını da yazar: cevaplar yedi gün saklandığı için tek bir ölçümün içinde farklı yaşta hücreler bulunabilir ve o ölçüm tek bir ana değil, bir zaman aralığına aittir. Yaşı kayıtlı olmayan kayıt için tahmin yürütmeyiz. Kıyas çerçeveye bağlıdır: önceki ölçüm, tanınırlığın bugünkü tanımından farklı bir sürümle yapıldıysa karşılaştırma yapılmaz ve sebebi yazılır — kendi düzeltmemizi markanın değişimi gibi göstermek, düzelttiğimiz hatanın ta kendisi olurdu. İki ölçüm arasında 48 saatten az varsa rapor farkın iyileşme değil ölçümün kendi yayılımı olduğunu söyler.
Neden “ihracat” değil “global”. Bu eksenin adı uzun süre “ihracat pazarı”ydı. Yanlış değildi ama dardı: ihracat mal göndermeyi çağrıştırır ve ölçtüğümüz markaların çoğu mal göndermiyor. Bir e-fatura yazılımı, bir ilan platformu, bir danışmanlık şirketi ihracat yapmaz — yurt dışında çalışır. Ölçtüğümüz şeyin kendisi de ihracat değil: soruları İngilizce ve coğrafya kısıtı olmadan soruyoruz ve bunun karşılığı global görünürlüktür. Bir üretici için global görünürlük ihracat demektir; bir yazılım için değildir, ve adın ikisini birden kapsaması gerekiyordu.
Global ölçümde kategori de İngilizce olmak zorunda — çekirdek soruda da. Bu kuralı önce ikincil eksene koymuştuk; ölçüm globale çevrilince çekirdek sorulara bağlamayı unuttuk ve ortaya “Who are the best E-fatura companies?” çıktı. Cümle İngilizce, kategori Türkçe. Aynı hatanın üçüncüsü ve ilk kez skoru doğrudan etkileyen yerde. Kategori çevirisi artık çekirdek ölçümden önce üretiliyor ve her iki eksene birden hizmet ediyor. Doğrulama iki katmanlı, çünkü biri yetmiyor: Türkçe harf kontrolü bir doğrulayıcıdır ve “E-fatura” onu geçer — ikinci kontrol çevirinin gerçekten yapıldığını, yani sonucun girdiden farklı olduğunu arar. Çeviri üretilemezse global çekirdek kurulmaz.
Global ölçülen markaya Türkiye'ye özgü tavsiye verilmez. Rakip coğrafyası bölümü “hangi ligde yarışıyorsunuz” yerine “rakiplerinizin coğrafyası” der ve “asıl bakılacak yer, aynı soruların Türkiye kısıtıyla sorulmuş hâli” cümlesini kurmaz — o soru hiç sorulmadı. Aynı şekilde varlık denetimine de sitenin ülke kanıtı veriliyor: Türkiye'ye dair hiçbir iz yoksa hakeme “bu şirketi Türkiye merkezli varsayma” deniyor. Rapor bir yanda “sitede Türkiye izi yok” derken öbür yanda “aranan şirket Türkiye merkezli olabilir” diye gerekçelendirip yabancı merkezli cevapları yanlış sayıyordu; aynı ölçümün iki yarısı çelişiyordu.
Hedef pazarınızı biz tahmin etmiyoruz, size soruyoruz. Aboneliğinizde bir hedef pazar alanı var: Türkiye, ikisi, ihracat ya da global. Türkiye seçilirse altı çekirdek soru da “Türkiye'de…” diye sorulur. İhracat ya da Global seçilirse sorular İngilizce ve coğrafya kısıtı olmadan sorulur — yurt dışı alıcı Türkçe aramaz ve Türkçe sorulan bir soruya dönen liste onun gördüğü liste değildir; ölçtüğümüz şey sizin gerçek pazarınızdaki görünürlük olmalı. İkisi seçilirse rapor iki pazarı ayrı bölümler hâlinde ölçer ve Türkiye önce gelir: ana pazarınız orasıdır, trendi o taşır ve manşetteki sayı odur. Global pazar hemen ardından kendi bölümünde durur — aynı altı soru, İngilizce sorulmuş hâliyle. Paydalar aynıdır, yani iki yüzde aynı sayıda hücreden gelir — ama doğrudan karşılaştırılabilir demiyoruz: global eksen tek çekilişle ölçülür, çekirdek ölçüm ise üç çekilişin çoğunluğuyla. Üç çekilişin çoğunluğuyla bulunan bir yüzde ile tek çekilişte bulunan bir yüzde aynı güvende değildir. Global eksen skora ve trende de karışmaz; rapor bunu yazar ve o sayıyı eğilim olarak okumanız gerekir.
Global pazar ölçümünde kategori de İngilizceye çevrilir. İlk sürümde soru kalıbını çevirdik ama kategoriyi ham bıraktık; ortaya “Who are the best Akıllı Yaşam Alanları companies?” gibi, hiçbir yurt dışı alıcının yazmayacağı bir sorgu çıktı. Ölçümün amacı “alıcının gördüğü listede var mıyız” idi — alıcının hiç sormayacağı bir soruya dönen liste o liste değildir ve oradan çıkan “%0” bir bulgu değil, ölçüm hatasıdır. Kategori artık yerelleştiriliyor: birebir çeviri değil, alıcının sektörde gerçekten kullandığı terim (“Akıllı Yaşam Alanları” → “modular outdoor structures” gibi). Çeviri doğrulanır — içinde Türkçe harf kalmışsa reddedilir — ve doğrulanamazsa ihracat bölümü hiç ölçülmez: yanlış kurulmuş bir sorunun sonucunu yayımlamaktansa “bu ölçüm yapılamadı” demek doğru olanı. Rapor hangi terimle sorduğunu yazar; terim yanlışsa bize söyleyebilirsiniz.
Çeviri her zaman denenir — “Türkçe harf yoksa İngilizcedir” diye bir kestirme yok. Bu kuralı koyduğumuz sürümde çeviri fonksiyonunda tam da böyle bir kestirme vardı ve bir ölçümde ihracat soruları Who are the best Nitelikli Kahve companies? diye kuruldu: “Nitelikli Kahve” içinde tek bir Türkçe harf yok, dolayısıyla “zaten İngilizce” sayıldı ve çeviri hiç denenmedi. Engellemek için yazdığımız hata, engelleyicinin kendi kestirmesinden geri geldi. Türkçe harf kontrolü bir doğrulayıcıdır, bir tespit aracı değil: harf varsa İngilizce olmadığı kesindir, yoksa hiçbir şey bilinmez. Çeviri artık her koşulda deneniyor ve sonuç girdinin aynısı dönerse — model çeviremediyse ya da terim iki dilde gerçekten aynıysa, ki ikisini ayırt edemeyiz — ihracat bölümü hiç ölçülmüyor.
İhracat terimi sitenizin kendi metnini de görür. Kategoriyi çevirirken bir süre modele yalnız etiketi veriyorduk ve model kategoriyi tek başına çevirmek zorunda kalıyordu: “Nitelikli Kahve” → “specialty coffee”. Doğru ama ticari konumu kaçırıyor — marka bir kavurucu ve yurt dışı alıcı “specialty coffee roasters” arıyor. Sitenizin kendi metni bu farkı taşıyor ve biz o metni zaten okuyoruz; modele vermemek elimizdeki kanıtı kullanmamaktı. Artık iş türü, sitede açıkça görünüyorsa terime ekleniyor (kavurucu, fason üretici, distribütör gibi); görünmüyorsa tahmin edilmiyor ve kategori terimi tek başına kullanılıyor.
Soru şablonu da kategoriye uyum sağlar. Terime iş türünü eklemek bir sonraki katmanda yeni bir hata üretti: şablon kendisi de bir aktör ismi ekliyordu ve ortaya “Who are the best specialty coffee roasters companies?” çıktı. Dilbilgisi bozuk, ve bozuk bir sorunun cevabı ölçüm sayılmaz. Şablon artık kategorinin aktörü adlandırıp adlandırmadığını görüyor: adlandırıyorsa kategori sorunun öznesi oluyor (“Who are the best specialty coffee roasters?”), adlandırmıyorsa şablon aktör ismini kendisi ekliyor (“Who are the best specialty coffee companies?”). Ayrım kapalı bir İngilizce ticaret sözlüğüne dayanır — roaster, manufacturer, supplier, distributor, factory ve benzeri, tekil ve çoğul biçimleriyle; tahmin yok, bir sözcük ya listededir ya değildir.
Kategoriniz fazla genişse skoru yorumlamadan önce bunu söyleriz. Bir markanın kategorisi “Akıllı Yaşam Alanları” olarak kayıtlıydı ve o kategorinin soruları Vestel, Samsung, Schneider, LG, Xiaomi getirdi; marka hiçbirinde görünmüyordu. Buradaki %0 bir başarısızlık değil, ölçümün fazla geniş bir kategoride yapıldığının göstergesi olabilir — ve bu tek bir sayıyı değil raporun tamamını etkiler: rakipler, kaynaklar, içerik önerileri, yüzde, hepsi o kategoriden doğar. Ölçemediğimiz şey: “çıkan rakiplerin kaçı gerçek rakibiniz”; bunu bilmek pazarınızı tanımayı gerektirir. Ölçebildiğimiz şey: çıkan rakipler sizinle aynı ligde mi — ligi coğrafyayla ölçüyoruz. Hedef pazarı Türkiye'yi içeren bir markada liste baştan sona küresel markalardan oluşuyor ve marka o soruların hiçbirinde görünmüyorsa, rapor manşetin dibinde “skoru yorumlamadan önce kategoriyi doğrulayın” diyor. “Kategoriniz yanlış” demiyoruz; bu bir vekil ölçüttür ve rapor bunu böyle yazar. Kategoriyi kendiliğinden de değiştirmiyoruz — aylar arası kıyas kırılır.
Kategori uyarısı yönetici özetinde durur. Uyarı bir süre manşetin altındaydı ama raporun üçüncü sayfasına düşüyordu — oysa söylediği şey keşif yüzdesinin nasıl okunacağını kökten değiştiriyor. Bir ölçümde “Yazıcı” kategorisinden dönen sekiz rakibin sekizi de yabancı üreticiydi ve markanın kendi sitesi işini “yazıcı ve ofis ekipmanları distribütörü” diye anlatıyordu; orada %0 bir başarısızlık değil, ölçümün yanlış ligde yapıldığının göstergesiydi. Yönetici özeti raporun tamamını okumayan için yazılır: skorun yorumunu değiştiren bir uyarı, skorun kendisiyle aynı ekranda olmalı. Özette tek satır durur, gerekçe ve öneri aşağıdaki bölümdedir.
Kategori uyumu iki ayrı sinyalden okunur. Birincisi lig: hedef pazarı Türkiye'yi içeren bir markada rakip listesi baştan sona yurt dışı merkezliyse, o liste büyük olasılıkla sizin liginiz değildir. Bu tek başına yetmedi — gerçek bir vakayı kaçırdı. “Akıllı Yaşam Alanları” kategorisinden Vestel, Samsung, Arçelik, Siemens ve Turkcell çıktı; sekiz rakibin yedisi Türkiye merkezliydi ve coğrafya sinyali “aynı ligdesiniz” dedi. Oysa markanın kendi sitesi işini “güneş enerjili carport ve akıllı dış mekan çözümleri” diye anlatıyordu: sorun ülke değil kapsamdı. İkinci sinyal bunu ölçer — sitenizin kendi tanımı, kategori etiketinizde hiç geçmeyen en az iki ayırt edici kelime taşıyorsa ve o kategorinin hiçbir sorusunda görünmüyorsanız, etiket sitenizin anlattığı işten geniş demektir. Ölçüt sayılabilir bir olgudur, bir yargı değil: modelin “sektör uyumludur” demesine bakmıyoruz, çünkü bu vakada model tam da öyle demişti. Jenerik kelimeler (“çözümleri”, “sistemleri”) ayırt edici sayılmaz ve tek fazladan kelime yetmez; her site kendini etiketinden uzun anlatır. Aynı kökün iki türevi de ayrı kelime sayılmaz — “entegratörü” ile “entegrasyonu” aynı işi anlatır ve kelime biçimi farkını kategori uyumsuzluğu saymak yanlış uyarı üretir. Global ölçümde kapsam sinyali hiç hesaplanmaz: beyan ile sitenin tanımı farklı dillerde olabilir (“E-Invoice” / “E-Fatura”) ve kelime karşılaştırması diller arasında anlamsızdır; üstelik global sorular zaten site metni okunarak üretilen İngilizce terimle kurulur, yani ölçülen kategori site türevidir. İkinci kategoriniz de beyanınızın parçasıdır: onu bize siz söylediniz ve ayrıca ölçtük, dolayısıyla oradaki bir terimi “sitenizde var ama beyanınızda yok” diye sayamayız. “İhracat” ile “Global” aynı ölçüm, ayrı rapordur. Sorular ikisinde de birebir aynı kurulur; ayrılan şey ölçüm değil anlatı. İhracat yapan bir Türk firması için Türkiye bir referans noktasıdır: “yurt dışı”, “ihracat kapasiteniz”, “Türkçe bir profil orada okunmaz” cümleleri o markaya kendi işini anlatır. Türkiye pazarı hiç olmayan bir markaya aynı cümleler yabancı bir çerçeve dayatır — sitesi baştan sona İngilizce, adresi yurt dışında, Türkçe tek satırı yok; onun için “yurt dışı” diye bir yer yoktur, her yer aynı yerdir. Global seçildiğinde rapor Türkiye'yi bir eksen olarak hiç kurmaz: rakip listesi Türkiye/yurt dışı diye bölünmez (bu ayrım ancak Türkiye bir referans noktasıysa bir karar verdirir), itibar adımları Türk sicil kurumlarını adlandırmaz — motorun “resmi kayıt bulunamadı” demesinin cevabı doğrulanabilir bir tüzel kimliktir ve o her ülkede vardır, adı KvK, VAT, EIN ya da CRN olabilir; hangi sicile kayıtlı olduğunuz hukuki bir sorudur ve ölçtüğümüz bir şey değil — içerik reçetesi sayfaların İngilizce yayımlanacağını söyler ve dış ayak izi araması önce İngilizce kaynaklara bakar. Reçetedeki Türkçe başlıkları kendiliğimizden İngilizceye çevirmiyoruz: onlar yayına hazır manşetler değil, ne yazılacağını anlatan brief'lerdir. Global ölçümde bütün soru setleri İngilizce kurulur — yalnız çekirdek altı soru değil: marka sorguları (tanınırlık ekseni), satın alma niyeti soruları ve sitenizin kendi metninden türetilen sorular da. Tanınırlık burada özel bir yer tutuyor, çünkü skora giriyor: sitesi baştan sona İngilizce olan bir markanın alıcısı motorlara Türkçe sormaz ve Türkçe sorulan bir soruya dönen cevap, o alıcının gördüğü cevap değildir. Kategorinizin İngilizce karşılığını üretemezsek hiçbir set İngilizceye geçmez: çekirdek zaten coğrafyasız Türkçe sete düşüyor ve öbür setleri çevirmek, aynı raporda iki farklı alıcıya sorulmuş sorular demek olurdu — bütün setler ya birlikte İngilizce ya birlikte Türkçe. Sitenizde Türkiye'ye dair hiçbir iz bulamazsak ölçüm bu değere kendiliğinden geçer ve sebebini rapora yazar; düzeltmeyi tetikleyen kanıt zaten tam olarak “bu markanın Türkiye pazarı yok” kanıtıdır.Boş bırakıldığında altı sorunun tamamı coğrafya kısıtsız kurulur — bir kısmı kısıtlı bir kısmı kısıtsız olan karışık bir set ölçüm değildir: beş soru bir evreni, biri başka bir evreni ölçer ve çıkan yüzde ikisinin ortalaması olur, yani ne Türkiye yüzdesi ne global yüzde. Boş bırakılabilir; o zaman coğrafya kısıtı konmaz ve rapor bunu açıkça yazar. Sitenizin diline ya da uzantısına bakıp “demek ki Türkiye'de satıyor” demek bir varsayım olurdu ve ihracat yapan pek çok Türk firmasının sitesi Türkçedir. Bu bizim ölçebileceğimiz bir şey değil, sizin ticari kararınız — sorması gereken biziz. Hedef pazarı değiştirmek aylar arası kıyası kırar, çünkü sorular değişir; rapor ölçümün hangi pazar için yapıldığını manşetin altında yazar.
Sitenizde Türkiye pazarına dair hiçbir iz yoksa Türkiye ölçülmez. Bu, yukarıdaki kuralın tersi gibi görünür ama değil. “Sitesi Türkçe, demek ki Türkiye'de satıyor” zayıf bir çıkarımdır — ihracat yapan pek çok Türk firmasının sitesi Türkçedir. Ters yön ise güçlüdür: Türkiye'ye satan bir markanın sitesinde Türkiye'ye dair en az bir iz bulunur. Yedi ayrı iz arıyoruz — .tr alan adı, html lang="tr", Türkçe metin, +90 telefon, Türk mevzuatına özgü metin (KVKK, Mersis, vergi dairesi), ₺ fiyat, Türkiye adresi — ve tek biri bile Türkiye ölçümünü sürdürmeye yeter. Eşik bilerek asimetrik: Türkiye'de satan bir markanın ölçümünü kesmek, satmayan bir markaya boş ölçüm yapmaktan çok daha pahalıdır.
Ürün kapsamı pazar izi sayılmaz. Bir e-fatura yazılımının sayfasında “Turkey — E-Invoice, E-Archive (GIB)” satırı desteklediği mevzuat listesindendir; yanında Hollanda, Belçika, İspanya da vardır. Ülke adının gövde metninde geçmesi, markanın orada müşterisi olduğunu göstermez. Türkçe metin tespiti de harf sayısına değil çeşitliliğine bakar: “Türkiye” tek bir Türkçe harf taşır, gerçek Türkçe metin ş, ğ, ı, ç, ö, ü'yü birlikte kullanır.
Karar sessiz değildir ve geri alınabilir: rapor manşetin dibinde ölçümün hangi pazar için yapıldığını, hangi izleri aradığımızı ve nasıl düzelteceğinizi yazar. Sitenizin metnini hiç okuyamadıysak düzeltme yapılmaz — iz bulamamak ile bakamamak ayrı şeylerdir.
Türkiye'de rekabet etmekle globalde rekabet etmek aynı şey değil. Rapor uzun süre bu ayrımı yapmıyordu ve aynı “%0” iki bambaşka anlama geliyordu. Bir yazıcı distribütörünün rakip listesi HP, Canon, Epson çıktı; o firma bir distribütör ve küresel üretici listesinde görünmesi yapısal olarak imkânsız — oradaki %0 bir başarısızlık değil, ölçümün yanlış ligde yapıldığının göstergesi. Bir fan üreticisinin listesinde ise Türkiye firmaları vardı; orada %0 gerçek ve kapatılabilir bir eksiklik. İkisine aynı reçeteyi vermek yanlış olur. Rapor artık “hangi ligde yarışıyorsunuz” diye bir kırılım veriyor: rakiplerin ve kaynakların kaçı Türkiye merkezli, kaçı yurt dışı. Reçete de buna göre değişiyor — bir Türkiye dizininde yapılacak iş Türkçe faaliyet açıklaması ve yerel referanslar, global bir B2B platformunda ise İngilizce ürün adları, teknik özellikler ve ihracat kapasitesidir. Aynı “profilinizi doldurun” cümlesi iki yerde iki farklı iş demek. Ülke tespiti tahmin değil, kanıta dayanır. “.com” tek başına bir şey söylemez; “.com.tr” söyler, sayfanın dili söyler, marka adındaki Türkçe harf söyler. Sayfayı okuduysak ve hiçbir Türkiye izi yoksa “yurt dışı” demek savunulabilir; hiç bakamadıysak susarız — varsaymak tam da düzeltmeye çalıştığımız hata. Marka adları için elimizde alan adı yok (“Kurukahveci” Türk, “Canon” değil, ikisinde de Türkçe harf yok); orada modele soruyoruz ama “bilmiyorsan boş bırak” diyerek, çünkü uydurulmuş bir ülke bilgisi yanlış bir strateji kararına yol açar. Belirsiz kalanlar raporda sayılır, gizlenmez.
Motorlar kategorinizi çoğu zaman başkalarının sayfalarından okur; kendi sitesi güçlü ama hiçbir yerde anılmayan bir marka keşifte görünmez. Üç şeye bakarız ve üçü de sizin doğrulayabileceğiniz kaynaklardır:
Rakip sitesi ayrı bir kaynak tipidir. Motorların okuduğu kaynaklar arasında bir rakibin kendi sitesi çıkabilir; bu değerli bir bulgudur ama oraya giremezsiniz. O yüzden orada yapılacak iş “listeleme ya da iş birliği” değildir: motorların oradan okuduğu şey rakibin anlatısıdır ve dengelemenin yolu aynı soruları kendi sayfalarınızda daha iyi cevaplamak ve bağımsız kaynaklarda görünmektir. Girilemeyen kaynaklar (rakip sitesi, forum, sözlük) öncelik listesinin başına da konmaz — yapılamayacak işi başa koymak listeyi işe yaramaz hâle getirir.
Bulunan her kaynak için öncelik ve müdahale tipi de veririz: ticari (mağaza/ürün kaydı), kayıt (sektör dizini ya da hizmet pazaryerinde firma profili), editoryal (yayıncıyla iletişim) ya da dolaylı (forum, sözlük ve rakip sitesi gibi doğrudan müdahale edilemeyen yerler). Öncelik, motorun o kaynağı ne sıklıkta okuduğu ile oraya gerçekten müdahale edilip edilemeyeceğinin birleşimidir — yapılamayacak bir işi listenin başına koymak listeyi işe yaramaz hâle getirir.
Aynı reçete her kaynağa verilmez. Bir uzman yayın, bir sektör dizini ve bir hizmet pazaryeri raporda ayrı tiplerdir, çünkü orada yapılacak iş ayrıdır. Editoryal yayına (uzman blog, meslek dergisi) profil açamazsınız; editöre konu önerirsiniz ve önerinin satış metni değil sahadan bir vaka ya da veri olması gerekir — editoryal yayın reklam metnini almaz. Hizmet pazaryerinde ise kayıt doğrudan sizin elinizdedir: profili açar, hizmet başlıklarını doğru kategoriye yerleştirirsiniz. Bu yüzden pazaryeri işi öncelik listesinde editoryal işin önüne geçer — ikisi de değerliyken biri bugün, diğeri üçüncü tarafın takvimiyle yapılır.
Sınıflandırma sayfanın kendi başlığını da okur. Bir kaynağın ne olduğunu alan adından tahmin etmiyoruz, sayfasını açıp okuyoruz. Ama bir süre yalnız gövde metnine baktık ve gövde işaretleri elle yazılmış kalıplara dayanıyor: “firmanızı ekleyin”, “son yazılar”, “hakkımızda”. Modern siteler bu kalıpları kullanmıyor. Bir raporda sekiz kaynak bu yüzden “sınıflandırılamayan” çıktı ve ayın üçüncü işi olarak size “önce açıp bakın” diye verildi — oysa o sayfaları okumuştuk ve en açık kanıtı kullanmamıştık: sitenin kendi <title> etiketi. “Onedio — Sosyal İçerik Platformu”, “Paranet — Finans, Ekonomi ve Piyasa Haberleri”, “Avansas: Ofis ve İşyeri İhtiyaçları”. Başlık artık gövde kararsız kaldığında devreye giriyor — yalnız “bilinmiyor” kararının yerini alabiliyor, başka hiçbir kararın değil; dolayısıyla yanlış sınıflandırma riski, hiç sınıflandıramamakla sınırlı. Perakende dili de eklendi (“sepete ekle”, “kargo bedava”, “stokta”): eski liste B2B firma rehberi diliyle yazılmıştı ve bir e-ticaret sitesini hiç tanımıyordu. Son olarak “tek bir firmayı anlatıyor ama sizin kategorinizde değil” kararı artık atılmıyor — bu bir karardır ve “başka bir firmanın sitesi” diye raporlanır; oraya giremezsiniz ve girmeniz gerekmiyor.
Ne olduğunu bilmediğimiz bir kaynak, “bu ayın işi” olarak listenin başına konmaz. Bir raporda altı alan adı — hepsi aslında rakip bayi ve entegratör siteleri — yüksek öncelikli birinci aksiyon olarak sunuldu; raporun kendi tablosu aynı satır için “müdahale: araştırılmalı, erişim: bilinmiyor” diyordu. İki bölüm birbiriyle çelişince okuyan hangisine inanacağını bilemiyor. Sınıflandıramadığımız kaynak artık bunu açıkça söylüyor ve hiçbir zaman “yüksek” öncelik almıyor; erişimi belli olan kaynaklar (dizin, pazaryeri) listede onun önüne geçiyor. Ayrıca bu listenin kendisi bir aday listesidir, hedef listesi değil: hangisine girilebileceği tipine göre ayrılır.
Tek çekilişte görünen kaynak iş listesine girmez. Kararlılık etiketini koyduğumuz ilk turda kuralı yazdık ama filtreyi bağlamadık: rapor “bunlar birer gözlemdir, henüz iş değil” diyor, hemen altında aynı kaynakları iş maddesinin içine koyup “bu 10 kaynaktan okuyor, toplam 29 kez geçtiler” diyordu — 10'un 3'ü ve 29'un 8'i tek çekilişten geliyordu. Kural artık kendi çıktısında da geçerli: tek çekilişli kaynaklar iş maddelerinden ve “en sık geçenler” özetinden çıkarılıp ayrı bir gözlem kutusunda gösteriliyor. Silinmiyorlar — bir sonraki ölçümde yinelenirlerse iş listesine alınıyorlar. Aynı disiplin rakip tablosuna da uygulandı: orada da “yinelendi” / “tek çekiliş” yazıyor ve gerekçelerin tek bir çekilişten alındığı, motorun aynı soruyu bir daha sorduğunuzda başka kelimelerle anlatabileceği söyleniyor.
Bir kaynağın tipini tespit edebiliyoruz, sizin kategorinizle ilgisini ölçemiyoruz. Bir raporda ayın ilk iki işi bir marka dergisi ile bir seyahat karşılaştırma sitesi oldu; ikisi de müşterinin sektöründe yayın yapmıyordu ve büyük olasılıkla tek bir yazı yüzünden kaynak olarak çıkmışlardı. Sınıf doğru, öncelik yanlıştı. Editoryal ve karşılaştırma kaynaklarında yapılacak ilk iş artık “editöre yazın” değil, “bu yayının sizin kategorinizde gerçekten içerik üretip üretmediğine bakın”. Ölçmediğimiz bir alakayı kesinleşmiş bir iş gibi sunmuyoruz.
Kategorinizle ilgisi olamayacak kaynaklar iş listesine girmez. Bir yazıcı distribütörünün raporunda pocketoption.com — bir ikili opsiyon platformu — orta öncelikli bir iş kalemi olarak çıktı ve müşteriye “bu siteye girmenin yolunu araştırın” demiş olduk. Bahis, kripto/forex ve benzeri siteler hiçbir meşru kategoride kaynak olmaz; motorun bu adresleri göstermesi ya alakasız bir bağlamdan ya da uydurmadan gelir. Bunlar iş listesinden çıkarılıyor ama silinmiyor: ölçümün ne gördüğünü saklamıyoruz. Süzgeç dar ve alan adına bakar — yanlış pozitif burada yanlış negatiften pahalı, çünkü meşru bir kaynağı listeden atmak gerçek bir fırsatı gizler. (Nitekim ilk yazdığımızda “bet” alt dize olarak aranıyordu ve meşru bir yapı malzemesi satıcısı elenebiliyordu; kısa jetonlar artık yalnız kelime sınırında aranıyor.)
O sitelerde markanızın aranıp aranmadığını kontrol etmiyoruz. Elimizdeki tek olgu şu: motorların gösterdiği kaynaklar arasında sizin alan adınız yok. “Bu 12 kaynağın hiçbirinde yoksunuz” demek bunun ötesine geçer ve ölçmediğimiz bir şeyi ölçmüş gibi sunar — kendi ilkemizi çiğner. Rapor artık ne bildiğini ve ne bilmediğini ayrı ayrı yazıyor. Aynı ayrım atıf için de geçerli: ölçtüğümüz şey motorun sitenizi kaynak gösterip göstermediğidir; motor sitenizin metnini kaynak göstermeden de kullanmış olabilir ve bu ikisi aynı şey değildir.
Sitenizdeki ölçüm araçlarına bakarız — ama puanlamayız. Raporda Google Analytics, Tag Manager, Meta Pixel, Yandex Metrica gibi araçların kurulu olup olmadığını yazıyoruz. Bu bir GEO sinyali değildir: analitik kurmak motorların sizi daha çok alıntılamasını sağlamaz ve skorunuzu etkilemez — kanıtlanmamış bir sinyale puan vermemek bu ürünün kuralı ve kendi kuralımızı esnetmiyoruz. Raporda yeri bizim kendi vaadimizden geliyor: aylık trend satıyoruz ve bu raporun verdiği işler yapıldığında sonucu iki yerden görmeniz gerekiyor — bizim ölçümümüzden (motorlar sizi anıyor mu) ve sizin analitiğinizden (o anmalar ziyaretçi getiriyor mu). İkincisi kurulu değilse yapay zeka kaynaklı trafiği hiç göremezsiniz; ChatGPT, Perplexity ve benzerlerinden gelen ziyaret yönlendiren adresle ayırt edilebilir ama ancak kayıt tutuluyorsa. Tespit sayfadaki etiketlere bakar, ağ trafiğine değil: etiket sayfada olup yanlış yapılandırılmış olabilir, o yüzden “kurulu görünüyor” diyoruz. Bu araçların KVKK kapsamındaki yükümlülüğü kullandığınız teknolojiye ve işleme biçimine göre değişir; çoğu analitik ve reklam çerezi açık rıza gerektirir ama bunu araç araç değerlendirmek gerekir — raporda kategorik bir hüküm vermiyoruz, kontrol etmenizi söylüyoruz.
Rakip fark tablosu: aynı teknik denetim, ilk üç rakip. “Skorunuz %49” diyen bir rapor, okuyanın asıl sorusuna — bu iyi mi kötü mü — cevap vermez; cevabı ancak bir kıyas verir. Motorların cevaplarında kaynak gösterdiği siteler arasında rakip sitesi sınıfına düşenleri zaten tespit ediyoruz; en sık okunan üç tanesini aynı teknik denetimden geçirip yan yana koyuyoruz. Kapsam bilinçli olarak dar. Başkasının sitesi hakkında rapor yazıyoruz ve o siteyi müşteri gibi tanımıyoruz — tanıyormuş gibi de davranmayız. Tabloya yalnız makineyle doğrulanabilir, yoruma yer bırakmayan kalemler girer: bir bot HTTP 200 mü aldı, sayfada Organization şeması var mı, H1 var mı, site haritası okunuyor mu. “Rakibin içeriği daha iyi” gibi bir hüküm burada yok ve olmayacak. Ölçek simetriktir. Sizi 21 sayfadan, rakibi tek sayfadan ölçüp yan yana koymak yanlış olurdu; tablo iki tarafı da ana sayfa üzerinden ölçer. Bu yüzden tablodaki kendi değerleriniz raporun teknik bölümündeki skorla birebir örtüşmeyebilir — ikisi de doğru, ölçekleri farklı ve rapor bunu yazar. Ölçemediğimiz bir kalem tabloda “–” ile durur ve fark sayımına katılmaz: ölçemediğimiz bir kalemi “geride kaldınız” diye saymak, ölçmediğimizi ölçtük demek olurdu. Hiçbir rakip sitesi okunamazsa tablo hiç basılmaz — boş bir tablo “kıyas yaptık” izlenimi verir ve bu, kıyas yapmamaktan kötüdür. Maliyeti düşüktür: rakip başına sayfa örneklemesi yapılmaz, model çağrısı hiç yoktur.
Ölçmediğimiz: LinkedIn, Google İşletme Profili, pazaryeri ve eczane listelemeleri. Bunlar otomatik sorgulara kapalı ya da güvenilir biçimde okunamıyor.
Yönlendirme aracısı kaynak değildir. Bir raporda kaynak listesinde vertexaisearch.cloud.google.com duruyordu — üstelik “2 soruda · yinelendi” etiketiyle. Bu bir site değil, Gemini'ın web arama sonuçlarını arkasına sakladığı Google iç yönlendirme adresi. Müşteriye onu kaynak diye göstermek “Google'ın kendi ara adresi sizin kategorinizi yazıyor” demektir ve daha kötüsü, arkasındaki gerçek kaynağı kaybettirir. Aynı sınıfın başka üyeleri de var: arama tıklama yönlendiricileri, sosyal medya kısaltıcıları, çeviri ve önbellek proxy'leri. Gerçek alan adını motorun ayrıca verdiği alandan okuyoruz; okuyamazsak adresi listeye hiç almıyoruz. Süzgeç tam eşleşme ile çalışır: news.google.com aracıdır, google.com değildir.
İş listesine girmeyen kaynak kaybolmaz. Bir raporda ölçülen ve listelenen bir kaynak (“1 soruda · yinelendi”) ne iş listesinde ne gözlem kutusunda görünüyordu: dört kalemlik kesmenin altında kalmıştı. Bir ayda yapılabilecek iş sınırlı ve önce en çok okunan kaynaklara giriyoruz — ama kapsamı daraltmak bizim kararımızsa, bunu yazmak da bizim işimiz. Rapor artık kaç kaynağın bu ayın listesine girmediğini ve hangileri olduğunu söylüyor.
Kontrol etmediğimiz bir şeyi kontrol ettik demeyiz.Rapor size içerik başlıkları ve soru-cevap metni önerir. Düzenlenmiş sektörlerde (takviye edici gıda, sağlık, kozmetik, hukuk, finans, eğitim) yanlış bir cümle üreticiye, ajansa ve tanıtımı yapana ayrı ayrı ceza yazdırabilir. Bu yüzden üretilen her öneri bir denetimden geçer:
Aynı denetim, rapordaki hazır dosyalara (llms.txt ve JSON-LD işaretlemeleri) da uygulanır. Bunlar sitenize olduğu gibi kopyalanacak dosyalardır; dosyanın başına "kontrol edin" notu koymak yetmez.
“Doğrulayamadık” iki ayrı şey olabilir ve ikisini ayırıyoruz. Bir dönem tek başlık altında topluyorduk ve rapor kendi içinde çelişiyordu: bir yanda “dosyadaki her adresi yayımlamadan önce çağırıyoruz”, öbür yanda “karşılaştırma yalnız bu ölçümde okuduğumuz 16 sayfayla yapıldı”. Kanıtı da raporun içindeydi — bir sayfa hem “en zayıf sayfalar” listesinde (yani okunmuştu) hem “doğrulanamayan satırlar” arasındaydı. Artık ayrı: sayfası okundu ama açıklaması eşleşmedi (metni gözden geçirin) ile sayfasını bu ölçümde okumadık (bir hata değil, bilgi eksikliği). “26 satırın 17'si doğrulanamadı” cümlesi ikisini birleştirince müşteri dosyanın üçte ikisine güvenemeyeceğini sanıyordu.
Yazım farkı “sitede yok” sayılmaz. Teslim edilen bir dosyanın ilk cümlesinde “sipariişe” yazıyordu (çift i); sitede “siparişe”. Doğrulama satırı eşleştiremedi ve “sitede bulamadık” dedi — teknik olarak doğru ama işe yaramaz bir cevap: mekanizma kendi yazım hatasını yakalamıştı ve nedenini söyleyemiyordu. Uzun bir kelimede tek karakterlik fark bir “başka bilgi” farkı değil, daktilo hatasıdır. Artık her satırda aranıyor, satır doğrulamayı geçse de geçmese de raporda “şöyle yazılmış, sitenizde şöyle geçiyor” diye gösteriliyor. Düzeltmeyi biz yapmıyoruz: size teslim ettiğimiz metni sessizce değiştirmek, doğrulamanın kendi vaadini zedeler.
Doğrusunu bulamadığımız bağlantı dosyada bırakılmaz. Bir teslimde dosyadaki bir adres 404 döndü, rapor “doğrusunu bulamadık — siz düzeltin” dedi ve kırık satırı dosyada bıraktı. Doğru adres, aynı ölçümde okuduğumuz site haritasının içindeydi: eşleşme son yol parçasını birebir karşılaştırdığı için “/s-s-s” ile “/pages/sss” tutmuyordu. Kısa çizgi, nokta ve alt çizgi farkı bir “başka sayfa” farkı değil, bir yazım farkıdır; artık tolere ediliyor. Doğrusu gerçekten bulunamıyorsa satır dosyadan çıkarılıyor ve raporda tek tek yazılıyor. Doğrulayamadığı için FAQPage kodunu vermeyen bir rapor, doğrulayamadığı adresi de veremez.
Sayfa var ama sunucu HTML'i boşsa bunu söyleriz. Bir raporda teslim ettiğimiz llms.txt sitenin SSS ve yardım merkezi adreslerini listeliyordu; aynı rapor “site haritanızda soru formatında sayfa bulunmadı” deyip “soru-cevap içeriği yayımlayın” öneriyordu. Müşterinin ilk tepkisi haklı olarak “bizim SSS sayfamız var” olur. İkisi de doğruydu: sayfa var ama içeriği JavaScript ile çiziliyor ve biz sunucudan gelen HTML'i okuyoruz — motorlar da büyük ölçüde öyle. İki ölçüm artık birleştiriliyor ve öneri değişiyor: “yeni içerik yaz” değil, “var olanı sunucudan gönder”. Aynı kök neden zaten “içerik sunucudan geliyor” kalemini de düşürüyor.
“SSS” ibaresi içerik değil, niyet işaretidir. Bir sayfanın soru-cevap taşıyıp taşımadığını uzun süre ibare arayarak ölçtük — oysa o ibare sitelerin ana menüsünde geçiyor ve menü her sayfada. Pratikte her sayfa bu kalemi geçiriyordu, sitede tek bir soru-cevap bulunmasa bile. Soru-cevap içeriğinin kanıtı sorunun kendisidir: artık sayfada gerçekten soru arıyoruz (en az iki tane, soru işaretiyle biten, üç ve daha fazla kelimelik cümle). Aynı hatanın ikinci yüzü, FAQPage'in sekiz ölçümdür verilememesiydi: doğrulama SSS sayfasının metnine bakıyor, üretim ise “ibare geçen ilk sayfayı” alıyordu — yani ana sayfayı, içinde tek soru işareti olmayan metni.
FAQPage işaretlemesi sayfadaki sorulardan üretilir, uydurulmuş sorulardan değil. Yedi ölçüm boyunca bu kalem “0/4 soru doğrulanabildi” diye verilmedi ve sebebini müşteride sandık. Değildi: doğrulama sitenin SSS sayfasının metnine bakıyordu ama üretim o metni hiç görmüyordu — dosyaları üreten modele yalnız ana sayfa veriliyordu. Model ister istemez soru uyduruyor, biz de o uydurulmuş soruları SSS sayfasında arıyorduk; eşleşmemesi kaçınılmazdı. Doğru sıra şu: önce sayfadaki soruları oku, sonra işaretle. SSS metni okunamadıysa işaretleme artık hiç istenmiyor — modelden soru uydurmasını isteyip sonra uydurduğu için vermemek boş iştir.
Site haritası bir kolaylıktır, ölçümün ön koşulu değil. Bir müşteride sitemap.xml 404 döndü. Örnekleme haritadan beslendiği için ölçüm yalnız ana sayfayı gördü ve rapor site geneli için hüküm verdi: “hiçbir sayfada soru-cevap yok”, −14 puan, listedeki en yüksek getirili iş. Oysa sitede on bir gerçek soruyla dolu bir SSS sayfası vardı — ve adresini aynı raporda teslim ettiğimiz llms.txt'in içinde biz veriyorduk; bağlantı doğrulaması onun 200 döndüğünü onaylamıştı. Rapor kendi ürettiği dosyayla çelişiyordu. Harita yoksa sayfalar artık ana sayfanın kendi bağlantılarından çıkarılıyor: menü ve altbilgi zaten sitenin iskeletidir ve motorlar da büyük ölçüde aynı yolu izler. Rapor sayfaların nereden bulunduğunu ve haritanız olmadığını ayrıca yazıyor — ölçümün kendi sınırını sitenin eksiği gibi sunmuyoruz.
Etiket ve kategori arşivleri örneklemde en sona konur. Bir raporda “en zayıf sayfalar” listesinin beşi de /tag/ arşiviydi ve eksik olan tek şey meta açıklamaydı; müşteriye “düzeltmeye buradan başlayın” demiş olduk — yani sitenin en düşük değerli sayfalarıyla işe başlatmış olduk. Sebep örneklemeydi: 569 sayfalık bir haritada etiket ve kategori arşivleri havuzu şişiriyor ve eşit aralıklı seçim onları orantısız çekiyor. Arşivler ölçümden atılmıyor — motorlar onları da görür — ama gerçek içerik sayfaları önce giriyor.
Adresin içine gömülmüş URL bir bulgudur. Bir müşterinin sayfaları /en/https-ornek-com-tr-industrial-dust-collection/ gibi adreslerdeydi: içerik aktarımından kalan bir artık, slug'ın içine tam bir web adresi gömülmüş. Motorlar adresi de bir sinyal olarak okur ve okunmaz bir adres o sayfanın konusunu anlatmaz. Rapor buna hiç değinmiyordu — üstelik müşteriye “hazır kodu bu sayfaya ekleyin” diyerek bozuk adresli sayfayı işaret ediyordu. Artık ayrı bir kalem olarak yazılıyor, 301 yönlendirme hatırlatmasıyla birlikte.
Örnekleme deterministiktir: aynı site, aynı sayfalar. “Site haritanızdan eşit aralıkla seçilen 16 sayfa” diyorduk ama iki ölçüm arasında aynı haritadan iki farklı 16'lık küme çıktı — meta açıklama 11/16 iken 15/16 oldu ve “en zayıf sayfalar” listesi baştan aşağı değişti. Sebep, birçok site haritasının adresleri son güncelleme sırasıyla vermesi: sıra değişince eşit aralıklı seçim kayıyor. O ölçümde şansımıza puan etkilenmedi (kalemler %60 eşiğinin iki tarafında da geçiyordu) ama ikinci raporda skorun site hiç değişmeden düşmesi mümkündü ve bunu açıklamak imkânsız olurdu — üstelik ürünün bütün vaadi “her ay aynı yerden ölçüp değişimi göstermek”. Adresler seçimden önce alfabetik sıralanıyor; site değişmedikçe aynı sayfalar seçiliyor. Sabit örneklem bunu ikinci ölçümden itibaren zaten çözüyordu, bu kural ilk ölçümü de kararlı yapıyor.
Örneklem aylar arası sabittir. Bir ölçümde seçilen sayfalar kayda geçer ve sonraki ölçümlerde aynıları ölçülür. Sebebi trend vaadinin kendisi: “eşit aralıkla seç” kuralı site haritası değiştiğinde başka sayfalar getiriyordu ve teknik skor site hiç değişmeden oynayabiliyordu. İkinci ay raporu “teknik hazırlığınız +14 puan iyileşti” derse müşteri hiçbir şey yapmadan tebrik almış olur — ya da çalıştığı bir aydan sonra sebepsiz düşüş görür. Bir kez bile yaşanırsa aboneliğin dayandığı güven gider. Site büyürse yeni sayfalar eklenir, eskiler çıkarılmaz: çıkan sayfa zaten 404 döner ve o da bir bulgudur. Rapor örneklemin sabit olup olmadığını ayrıca yazar.
Küçük sitelerde örnekleme yapılmaz, tamamı taranır. Örneklem her ölçümde biraz değişiyordu: aynı sitede bir kez 16, bir kez 15 sayfa; “en zayıf sayfalar” listesi de baştan aşağı başka sayfalar. Skor tesadüfen aynı kaldı, çünkü sayfa bazlı kalemler %60 eşiğini rahat geçiyordu. Ama aylar arası teknik trend için bu bir sorun: gelecek ay başka sayfalar örneklenirse skorun değişimi sitenizden mi örneklemden mi geldi ayrılamaz. 35 sayfalık bir siteyi örneklemenin de bir sebebi yok — hepsini taramak birkaç istek demek. Site haritanızda 40'tan az sayfa varsa tamamı taranır ve teknik skor o ölçüm için deterministik olur; rapor bunu ayrıca yazar. Üstünde örnekleme devreye girer: tavan maliyeti tutmak için var, ilke için değil.
SSS ve kurumsal sayfalar örnekleme garantili girer. Örnekleme “liste boyunca eşit aralıkla seç” diyordu; hiçbir sayfayı ötekinden önemli saymadığı için adildi ama iki kalem belirli bir sayfaya bağlı: soru-cevap içeriği ve FAQPage işaretlemesi. 35 sayfalık bir siteden 16 sayfa seçerken SSS sayfası listeye girmezse o iki kalem “yok” çıkar — nitekim beş rapor boyunca “0/4 soru doğrulanabildi” deyip FAQPage kodunu vermedik, oysa sitede gerçek soru-cevap vardı. Kalem sitenin durumunu değil, örneklem şansını ölçüyordu. Adı SSS/FAQ/hakkımızda/iletişim olan sayfalar artık örnekleme zorunlu alınıyor; garantili sayfalar örneklemin yarısından fazlasını yiyemiyor ki ölçüm birkaç kurumsal sayfaya daralmasın.
Doğrulama havuzundan yasal ve altbilgi sayfaları çıkarılır. Kaynak izi “bu satır sitede geçiyor mu” diye soruyordu ve bu testi geçen ama motor için sıfır değer taşıyan içeriği ödüllendiriyordu: teslim edilen bir dosyaya “Site, reCAPTCHA tarafından korunmaktadır” satırı girdi ve doğrulandı — kaynağı KVKK ve iletişim sayfalarıydı. Doğrulamanın kendi başarı ölçütü yanlış tanımlanmıştı. Bir llms.txt'in işi motora markanın ne yaptığını anlatmaktır; yasal metin, çerez bildirimi ve altbilgi kalıbı her sitede aynıdır ve markayı ayırt etmez. O sayfalar artık havuzun dışında ve dosyayı üreten modele de somut ürün/hizmet adlarını yazması, yasal kalıbı yazmaması söyleniyor.
Vermediğimiz bir dosyanın denetimini de göstermeyiz. Sitesinde zaten llms.txt olan bir markada yenisini üretmiyoruz — doğru karar, kendi yazdığınızın üzerine yazdırmayız. Ama bir dönem denetim raporunu yine de basıyorduk: müşteri, kendisine hiç ulaşmayan bir dosyanın satır satır analizini okuyordu ve içindeki kırık bağlantı bulgusu bir teslimat notu gibi görünüp kayboluyordu. Artık dosya elimizdeyse denetim sizin dosyanıza uygulanıyor ve bölümün adı da onu söylüyor: “Sitenizdeki llms.txt — denetim”. Ne teslim edilecek dosya ne de denetlenecek mevcut dosya varsa bölüm hiç çıkmıyor.
“Kanıtlanmış” nitelemesi üretimde budanır, sonradan değil. Üretilen bir dosyada “a proven reduction of up to 35%” yazdı; bir sürümde temizledik, bir sonrakinde geri geldi — çünkü düzeltme çıktıya uygulanmıştı, üretime değil ve her ölçümde içerik sıfırdan üretiliyor. İşaretlemek yetmiyor. Sayıyı çıkarmıyoruz: “%35 tasarruf” markanın kendi iddiası olabilir ve dayanağı varsa değerli bir bilgidir. Çıkardığımız şey ispatlanmışlık nitelemesi — “kanıtlanmış”, “proven”, “bilimsel olarak kanıtlanmış”. O kelime iddiayı bizim onayladığımız izlenimi veriyor ve ispat külfetini gizliyor. Ne çıkarıldığı raporda yazılır.
Sitenizde zaten olan bir şeyi size tekrar yaptırmayız. Kurulum talimatı bir dönem “model bir dosya döndürdü mü” koşuluna, dosyanın kendisi ise “bu dosya bu sitede gerekli mi” koşuluna bağlıydı. Sonuç: rapor “✓ llms.txt var, 2 puan alındı” derken iki sayfa sonra “llms.txt dosyasını kök dizininize koyun” diyordu — müşteri talimatı harfiyen uygularsa kendi emeğinin üzerine yazar. Aynı hatanın bir eşi Organization işaretlemesinde bulunup düzeltilmişti; kökte iki ayrı koşul olduğu için llms.txt'te geri geldi. Artık tek koşul: gerekmiyorsa ne dosya basılır ne talimat.
Liste kesiliyorsa bunu söyleriz. Üç ayrı bölüm “8 sayfa” deyip dört madde gösterdi. Sayı doğruydu, gösterim eksikti — ve tüm duruşu “ölçtüğümüzü söyleriz, ölçmediğimizi söylemeyiz” olan bir raporda sayıyı verip listeyi sessizce kırpmak en pahalı hata türü. Başlıklar artık kaç tanesini gösterdiğini yazıyor ve kural tek bir yardımcıya bağlı, çünkü bunu bir sürümde doğru yapıp sonrakinde unutmuştuk.
Kısa bağlantı satırlarında adresi doğrularız, açıklamayı değil. “/en/about-us — İngilizce kurumsal bilgiler” gibi satırlar kelime örtüşmesi ölçütünü geçemiyordu ve dosyanın en bariz doğru satırları “doğrulanamadı” listesine düşüyordu. İki üç kelimelik bir açıklamanın sayfa metniyle örtüşmesi zaten beklenmez; orada doğrulanacak şey adresin gerçekten o sayfa olduğudur. Uzun ve iddialı satırlarda eski kural geçerli: söylenen şeyin sayfada bulunması gerekir. Yanlış pozitif üretmeye devam eden bir doğrulama listesine müşteri üçüncü ayda bakmayı bırakır ve doğrulamanın bütün değeri kaybolur.
Kurulum talimatları modelden gelmez. Bir dönem dosyaların nasıl kurulacağını da üreten modele yazdırıyorduk ve üç ayrı raporda üç ayrı çelişki çıktı: model üretilmemiş bir dosyayı anlattı (“FAQ soruları şu konulardan seçildi” — o dosya doğrulanamadığı için verilmemişti), raporun kendi teknik bölümünü yalanladı (“yapay zeka tarayıcıları bu dosyayı otomatik bulacaktır” — aynı raporun teknik bölümü llms.txt'in etkisinin kanıtlanmadığını yazıyor) ve “siz” kipinden “sen” kipine düştü. Her seferinde tek tek düzelttik, her seferinde başka kılıkta döndü. Sorun notların içeriği değil kaynağıydı: kurulum talimatı üretilen dosyadan çıkarılabilir bir şeydir ve modele yazdırmak, doğrulayamadığımız bir metni size talimat diye vermektir. Artık yalnız gerçekten ürettiğimiz dosyalar için, sabit metinden üretiliyor.
Dosyadaki her bağlantı yayın öncesi çağrılır. Kaynak izi bir dönem yalnız iddia satırlarına uygulanıyordu; bağlantılar hiç doğrulanmıyordu. Teslim edilen bir llms.txt'te üç sayfa adresinden ikisi 404 döndü — üstelik doğru adresler sitenin kendi haritasında duruyordu ve o haritayı aynı ölçümde okumuştuk. Veri elimizdeydi, adres yine de tahmin edilmişti. Artık her adres çağrılıyor; çalışmayan adresin doğrusu site haritanızda varsa düzeltiliyor, yoksa satır işaretlenip size bırakılıyor. İkisi de raporda yazılıyor. Kırık bağlantı taşıyan bir rehber dosyası hiç olmamasından kötüdür: motorlara “buraya bak” deyip olmayan sayfayı göstermiş olursunuz.
llms.txt'in her satırı kaynağıyla eşleştirilir. Dosya “kopyala-yapıştır hazır” diye veriliyor; içindeki her cümlenin sitenizin hangi sayfasından çıktığı görünmeli. Kaynağı modele yazdırmıyoruz — FAQPage'te öğrendiğimiz kural burada da geçerli: uyduran metin kaynağını da uydurur. İzi sistem kurar: üretilen her satır, denetimde gerçekten okuduğumuz sayfa metinleriyle karşılaştırılır. Eşleşen satırın kaynağı yazılır; eşleşmeyen satır silinmez ama “okuduğumuz sayfalarda bulunamadı” diye işaretlenir. Doğru olabilir — doğrulayabilecek tek taraf sizsiniz.
Sağlıkla ilgili sektörlerde (takviye edici gıda, sağlık hizmeti, kozmetik) süzgeç daha geniştir. Mevzuat yasağının altında geniş bir gri alan var: bir öneri yasak bir cümle kurmasa da ürünün ne kadar işe yaradığına, kimin kullanabileceğine, nasıl etki ettiğine, hangi hastalıkla ilgili olduğuna ya da rakibinden ne farkı olduğuna dair bir iddia taşıyabilir. Bunların hiçbiri kendiliğinden yasak değildir ve dayanağı varsa çok değerli içeriktir — ama dayanağı olup olmadığını bilen tek taraf sizsiniz. Bu yüzden elenmezler, “yayımlamadan önce doğrulayın” ön koşuluyla verilir. Beş başlık ayrı ayrı yakalanır: etkinlik, kullanım uygunluğu, etki mekanizması, hastalık/semptom bağlantısı ve karşılaştırmalı üstünlük. Bu kurallar yalnız sağlık sektörlerinde çalışır; yazılımda “hangi paket size uygun” meşru bir başlıktır.
Sektörde yazılabilecek içerik ile sizin gerçekten sunduğunuz hizmet aynı şey değildir. Bir insan kaynakları danışmanlığına iş sağlığı ve güvenliği, bordro uyumu ya da disiplin prosedürü içeriği önermek sektör açısından doğru, marka açısından yanlış olabilir: vermediğiniz bir hizmeti anlatan sayfa yanlış müşteriyi çeker ve gelen talebi karşılayamazsınız. Bu yüzden her öneri, sitenizde anlattığınız hizmetlerin içinde mi dışında mı olduğunu kendisi beyan eder. Dışındaysa öneri elenmez — yeni bir hizmet alanını gerçekten hedefliyor olabilirsiniz — ama “bu gerçekten sunduğunuz bir hizmet mi” ön koşuluyla verilir ve doğrulanana kadar ayın ilk işi olarak listenin başına konmaz.
Sayısal performans iddiası ayrıca işaretlenir. Üretilen bir dosyada “%35'e varan tasarruf” ve “a proven reduction of up to 35%” yazdı — sayısal bir performans iddiası, üstelik “kanıtlanmış” nitelemesiyle ve yapısal veriye gömülü. Ticari Reklam ve Haksız Ticari Uygulamalar Yönetmeliği bu tür iddialarda ispat külfetini markaya yükler. Genel bir “kendi onayınızdan geçirin” notu bu satır için yeterli değil; o satırın kendisi işaretleniyor ve “elinizde ölçüm raporu ya da bağımsız test sonucu yoksa yayımlamayın” deniyor. Nötr sayılar (çalışan sayısı, ürün ölçüsü, kuruluş yılı) işaretlenmez: her sayıyı uyarmak uyarıyı değersizleştirir.
Kurum adı geçen her iddia doğrulama ister — üretilen dosyalarda da. Kurum listesi önce sabit birkaç addan ibaretti ve yalnız içerik önerilerine uygulanıyordu. Üretilen bir FAQPage kodunda şu cümle süzgeçten geçti: “Çevre ve Şehircilik Bakanlığı, çalışanların maruz kalabileceği yasal toz sınırlarını belirlemiştir.” Çalışan maruziyet sınırlarını belirleyen Çalışma ve Sosyal Güvenlik Bakanlığı'dır; Çevre Bakanlığı ortam ve emisyon sınırlarına bakar — ve o bakanlığın adı 2021'den beri farklı. Rapor “sektörel iddia ve mevzuat süzgecinden geçirildi” diye söz veriyor; süzgecin kaçırdığı ilk şeyin bir bakanlık adı olması o vaadi zayıflatır. Artık adı geçen her bakanlık, yönetmelik ve destek programı doğrulama kuyruğuna giriyor ve bu denetim üretilen dosyalara da uygulanıyor. Hangi kurumun neyi düzenlediğini biz söylemiyoruz — bilmiyoruz ve bildiğimizi iddia etmiyoruz; söylediğimiz tek şey “bunu doğrulayın”.
Bu bir güvenlik ağıdır, hukuki görüş değildir. Yayımlamadan önce içeriği kendi onayınızdan geçirin.
Distribütör de ayrıdır. Bir yazıcı distribütörüne “üretim standartları ve kalite süreci”, “tesis, denetim kayıtları, belge numaraları” önerdik — fabrikası olan bir markanın işleri. Rapor iki bölüm önce şirketi distribütör diye sınıflandırdığı hâlde şablon üretici diliyle konuşuyordu; müşteri bunu okuyunca “bunlar bende yok” diyecek ve raporun geri kalanına da güveni düşecek. Distribütörün güven kanıtı tesis değil yetkidir: temsil ettiği markaların yetki belgeleri, garanti kapsamı, yetkili servis ağı, stok ve teslim süresi taahhüdü.
Platform ve pazaryeri ayrı bir iş modelidir. Bir ölçümde sistem markayı doğru tanıdı — “satılık ve kiralık daire ilanları platformu” — ve iki sayfa sonra reçete klasik danışmanlık şablonuna döndü: “hizmet alanları”, “çalışma biçimi ve süreci”, “referanslar ve tamamlanan projeler”. Bir ilan platformunun tamamlanan projesi ya da çalışma biçimi yoktur. Üstelik aynı raporun genişletilmiş ölçümü platforma özgü çok daha iyi soruları sitenin kendi metninden zaten türetmişti (“ilan vermek ücretsiz mi”, “kurumsal mağaza açabilir miyim”, “hangi şehirlerde ilan var”) — reçete o kaynaktan konuşmuyordu. Platformun otorite kurduğu yer kullanımdır: ilan nasıl verilir, arama nasıl yapılır, kurumsal hesap ne işe yarar, güven nasıl sağlanır, kapsam hangi şehirlerdir. Tip sıralamasında platform en öne konuldu: “emlak ilan platformu” hem hizmet hem platform anahtarına uyar ve belirleyici olan platform tarafıdır; bir pazaryeri teknik olarak yazılımdır ama ticari modeli yazılım satmak değildir.
İtibar adımları da iş modeline bağlıdır. Risk bulunduğunda verdiğimiz müdahale listesi sabitti ve her markaya “acentelik, bakanlık izni, meslek örgütü kaydı” öneriyordu. Bir ilan platformunda bunların karşılığı yok ve müşteri “bunlar bende yok” dediğinde yalnız o madde değil listenin tamamı değersizleşiyor. Doğrulanabilir kimlik (ticaret sicil no, vergi no, tam unvan) her iş modelinde korunuyor; değişen şey belge adları. Bilmediğimiz bir ruhsatın adını dayatmıyoruz — hangi belgenin gerektiği hukuki bir sorudur ve bizim ölçtüğümüz bir şey değil; genel listede artık “faaliyetiniz böyle bir belge gerektirmiyorsa bu adımı atlayın” yazıyor.
Perakende, üretimden ayrı bir iş tipidir. İkisi de ürün satar ama güven kanıtı bambaşkadır. Bir üreticide kanıt tesis, süreç ve belge numarasıdır; bir perakendecide tedarik zinciri, tazelik ve iade koşullarıdır. Tek tip kullandığımız için bir online kahve satıcısına “tesis bilgilerini ve denetim kayıtlarını tek sayfada toplayın, belge numaralarını verin” önerdik — o firmanın tesisi yok. Otorite alanı da farklı: satıcının kategoriyi soran birine verebileceği cevap “hangi çeşit kime uygun”dur, “üretim standartlarımız” değil. Ayrım dar tutulmuş anahtarlarla yapılıyor: “satış” tek başına bir üreticinin sitesinde de geçer (“ürün satışı”, “satış sonrası destek”) ve bir fabrikayı perakendeci saydırırdı.
Bir markaya “ürün yelpazenizi anlatın” demek, ürün satıyorsa doğru; danışmanlık satıyorsa raporun tamamının güvenilirliğini bozar. Bu yüzden reçete motoru önce iş tipini belirler: ürün, hizmet, yazılım/platform ya da belirsiz. Belirleme, beyan ettiğiniz sektör ile sitenizin anlattığı iş birlikte okunarak yapılır.
Mevzuat sektörü ile iş tipi ayrı şeylerdir. Bir diş kliniği mevzuat açısından sağlıktır ve sağlık kurallarına tabidir; iş tipi olarak hizmettir ve ona “ürün yelpazesi” önerilmez.
Bir motor bir bölümde cevap vermezse bunu o bölümün altında yazarız. Cevap vermeyen motor o ölçümün hesabına hiç katılmaz — eksik cevabı “görünmedi” saymak yanlış olur. Ama sessizce düşmesi de yanlış: tek motorla ölçülmüş bir yüzde, açıklaması olmadan veri eksikliği gibi okunur. Motor düşmeden önce bir kez daha, bekleyerek denenir; yine cevap vermezse hangi motorun neden düştüğü (süre bütçesi mi, sağlayıcı hatası mı, hangi HTTP kodu) o bölümün altında yazılır.
Motorun araç anlatımı alıntı değildir. Aramalı modda motorlar cevaba başlamadan önce ne yapacaklarını yazıyor: “… hakkında bilgi almak için arama yapayım”. Bu, motorun marka hakkındaki sözü değil aracın kendi anlatımıdır ve raporda alıntı diye geçmemeli. Bu satırlar ayıklanıyor; alıntılar da kelime ortasından değil cümle ya da kelime sınırında kesiliyor ve kesildiği belli ediliyor.
Kontrol listesindeki ✓ bir başarıdır; olgu tespitine ✓ konmaz. “Motorların okuduğu üçüncü taraf sayfalar — 12 alan adı” satırı bir dönem yeşil onay işaretiyle basılıyordu. Oysa o 12 alan adı markanın bulunmadığı yerlerdir, yani raporun kendi darboğaz maddesidir. Raporun en kritik açığı olumlu işaretle sunuluyordu; bu tür satırlar artık nötr (ℹ) gösteriliyor.
Üretilmemiş bir dosyanın kurulum notu basılmaz ve doğrulanmamış bir dosya için “olduğu gibi kullanabilirsiniz” denmez. Bir raporda FAQPage kodu hiç üretilmemişken kurulum notu onu sayfaya eklemeyi anlatıyordu — üstelik aynı rapor bir üst bölümünde “eşleşmeyen şema geçersizdir, elle eklemeyin” diye uyarıyordu. Hazır dosya bölümündeki her cümle artık o dosyanın gerçekten üretilip üretilmediğine ve kaynak izinin tam olup olmadığına bağlı.
Kaynak izi şemaya da uygulanır. Bir raporda kaynak izi “… güneş enerjili carport ve akıllı yaşam çözümleri sunan bir markadır” cümlesini sitede bulamadığını açıkça yazdı; hemen ardındaki hazır Organization JSON-LD aynı cümleyi description olarak müşteriye verdi. Doğrulama katmanı llms.txt'e uygulanmış, şemaya uygulanmamıştı — ve şema daha tehlikeli: makine okunur bir iddia olarak yayımlanır, motorlar onu markanın resmi tanımı sayar. Cümleyi çıkarmıyoruz (markanın kendi tanımı olabilir) ama “doğrulanmadı” damgasını şemaya da basıyoruz. Doğrulanmamış satır kalan bir teslimin başlığı da artık “hazır dosyalarınız” değil “kontrollü taslak”: on yedide on beş ile on beşte on beş aynı şey değildir ve “hazır” yazan bir dosyayı müşteri okumadan yayımlayabilir.
Yanıtsız hücre sayılır ve söylenir. Bir raporda tanınırlığın “9 hücre üzerinden” ölçüldüğü yazıyor, hemen altında kararlılık “5/8 hücre” diyordu ve dokuzuncu hücreye ne olduğu hiçbir yerde geçmiyordu. Boş hücre, o motorun o soruya hiç cevap vermemesi demektir: skorda “tanınmadı” sayılır, dolayısıyla tanınırlık paydası değişmez ama kararlılık yalnız cevap gelen hücreler üzerinden hesaplanır. İki farklı payda yan yana durup açıklanmayınca okuyan haklı olarak hangisine güveneceğini bilemiyor; rapor artık ikisini de adıyla söylüyor.
Şemada doğrulanmayan tanım teslim edilmez. Organization kodunun description alanı da sitenizin metniyle karşılaştırılır. Bir süre doğrulanmayan cümleyi bırakıp yanına “doğrulanmadı” damgası basıyorduk; yetmiyor. Şema makine okunur bir iddiadır ve kodu olduğu gibi yapıştırdığınızda o cümle markanızın resmi tanımı olarak yayımlanır — rapor bir yanda “bu cümleyi sitenizde bulamadık” derken öbür yanda aynı cümleyi teslim ediyordu. Artık alan koddan çıkarılıyor ve “dolduramadığımız alanlar” listesine giriyor; kendi doğrulanmış tanımınızı siz eklersiniz. llms.txt'te ise satırı bırakmaya devam ediyoruz: orası düz metindir, okuyup karar verebilirsiniz. Şemada alan ya vardır ya yoktur ve boş bırakmak da yanlış beyandır.
[email protected] olarak çıktı (bu bir adres değil, Cloudflare'ın e-posta gizleme betiğinin sayfada bıraktığı yer tutucu — gerçek adres JavaScript ile çözülüyor, biz sayfayı düz metin okuduğumuz için yer tutucuyu okuduk) ve adres “Trupm Tower” yazıyordu. Kök şuydu: raporun bütün vaadi “doğrulanmış teslim” iken iletişim satırları hiç doğrulanmıyordu — oysa tam da doğrulanabilir olanlar onlar. Adres, telefon ve e-posta yeni bilgi değil, sitenizden kopyadır; kopyanın aslıyla eşleşip eşleşmediğine bakmak sözlük gerektirmez. Eşleşmeyen her satır raporda kırmızı kutuda, “yayımlamadan önce düzeltin” diyerek çıkıyor. Biz düzeltmiyoruz: doğrusunu yalnız siz bilebilirsiniz. Sayfa metnini hiç okuyamadığımız durumda bu denetim çalışmaz — ölçemediğimizi ölçtük demeyiz — ve kısa kısaltmalar (“Cad”, “Mah”) uyarı üretmez: yanlış alarm burada gerçek bulguyu gömer.
Doğrulanamayan iletişim satırı dosyanın içinde işaretlenir — ama silinmez. Bulguyu yalnız rapora yazmak yetmiyor: dosyayı kopyalayıp yayımladığınızda rapordaki uyarı kutusu dosyayla birlikte gelmiyor. O yüzden satırın yanına [DOĞRULAYIN — okuduğumuz sayfalarda bulunamadı] notu koyuyoruz; dosyayı olduğu gibi yayımlarsanız not da görünür ve fark edilir, doğruladıktan sonra silersiniz. Satırı çıkarmıyoruz ve bu bilinçli: “okuduğumuz sayfalarda yok” ile “sitede yok” aynı şey değildir — 301 sayfalık bir siteden 16 sayfa örneklediğimizde bilgi büyük olasılıkla okumadığımız bir sayfadadır ve doğru olabilecek bir iletişim bilgisini atmak size zarar verir. (Şema tarafında ters karar veriyoruz: orada alan ya vardır ya yoktur ve makine okunur bir iddiadır. Burası düz metin ve okuyarak karar verebilirsiniz.) Rapor kaç sayfadan kaçını okuduğumuzu bu kutuda da yazar, çünkü kanıtın gücü buna bağlıdır.
Motorların verdiği tam cevaplar arşivlenir: yeni bir analiz eklediğimizde geçmiş aylarınızı da kapsayabilmek için. Abonelik başına son 24 ölçüm saklanır, fazlası günlük olarak silinir. Gönderilen raporun kendisi de saklanır; böylece istediğiniz zaman tarayıcıda açıp PDF olarak kaydedebilirsiniz.
Tutmayacağını bildiğimiz hedefi listeye koymuyoruz. Rapor bir yandan “kategori sorularında görünmek tek aylık bir iş değil; önce kimlik ve üçüncü taraf varlığı oturur” diyor, öbür yandan başarı ölçütlerine “basamak 2 → 3” koyuyordu. Bir sonraki ölçüme kadarki hedef listesinde, kendi ağzımızla aylar süreceğini söylediğimiz bir kalem duramaz: tutmayacağı baştan belli olan hedef, listenin tamamını inandırıcılıktan düşürür. Basamak hedefi artık yalnız 3 ve üstünde konuyor — orada sıçrama tek ölçümde mümkün, çünkü zaten listedesiniz ve mesele sıraya girmek. Alt basamaklarda yön yine yazılıyor ama ölçülecek hedef olarak değil.
Manşetteki yüzde ile soru sayımı aynı şey değildir. Büyük sayı motor ortalamasıdır: her motorun kendi görülme oranı ve sıradaki konumu ağırlıklandırılır, sonra motorların ortalaması alınır. Altındaki “6 sorunun 2 tanesinde en az bir motorda göründünüz” cümlesi ise bambaşka bir sayımdır. İkisi alt alta durunca cümle, sayının tanımı gibi okunuyordu; artık her biri kendi adıyla veriliyor. Gürültü notu da hangi ölçekten konuştuğunu söylüyor: tek bir motorda tek bir soruda görünmek yüzdeyi birkaç puan oynatır, soru sayımını 1 artırır.
Her rapor, bir sonraki ölçümde nelere bakacağımızı sayı olarak yazar ve bu hedefler kaydedilir. Gelecek ayın raporu aynı listeye döner: tuttu mu, ilerledi mi, durdu mu, geriledi mi — tahminle değil yeniden ölçerek.
Hedefler bilerek küçüktür. “%0'dan %40'a” demek bir ay sonra herkesi başarısız gösterir ve raporu susturur; doğru hedef bir sonraki basamağa taşıyan en küçük gerçek adımdır — örneğin 18 hücrenin sıfırında görünen bir marka için hedef birdir.
Gürültü tabanı hem keşif hem tanınırlık için yazılır. Tanınırlık, marka soruları × cevap veren motorlar kadar hücre üzerinden ölçülür — dört motor cevap verdiğinde 12 hücre, yani tek bir hücre yaklaşık 8 puan eder — raporda bu hücre adımı diye geçer. Bu bir güven aralığı ya da hata payı değildir; ölçümün çözünürlüğüdür: bundan küçük bir fark ölçülemez. Motorlar aynı soruya her seferinde birebir aynı cevabı vermez; tek çekilişte bir hücre yazı tura demektir. Bu yüzden her marka sorusu her motora üç kez sorulur ve hücre çoğunluğa göre karara bağlanır. Çekilişler ayrışırsa o hücre için iki çekiliş daha alınır; ek ölçüm belirsizliğin olduğu yere harcanır. Dar çoğunlukla (ör. 3/5) sonuçlanan hücrede bir karar vardır ama düşük güvenlidir: marka o motorda gerçekten sınırdadır. Rapor ölçümün kararlılığını da yazar: hücrelerin kaçı oybirliğiyle, kaçı dar çoğunlukla karara bağlandı ve hangi motor hangi soruda sınırda. Bir hücrelik hedef bilerek konur ama gürültünün tam sınırındadır: tuttuğunda rapor bunu da söyler.
Her rapor size gelmeden önce kendi kendini denetler. Rapor üretildikten sonra metni ve ölçüm nesneleri otomatik olarak sınanır: ölçümün dili sorularla uyuşuyor mu, iki bölüm birbiriyle çelişiyor mu, bir sayı iki yerde farklı mı yazıyor, teslim edilen dosya denetimin bulgusunun tersini mi söylüyor. Bulgular müşteri zararına göre seviyelenir ve çaresi olanlar için ölçüm en çok üç tur yeniden denenir — çaresi olan, sonucu bir yapay zeka çağrısından gelen ve tekrarlandığında değişebilecek şeylerdir. Bu denetimin sonucu size gönderilmez, bizim gönderim kararımızı belirler.
Belirsizlik bir hata değildir ve öyle işaretlenmez. Raporda gördüğünüz “doğrulanamadı”, “kontrollü taslak”, “örneklem”, “tek çekiliş”, “sınıflandıramadık” ifadeleri kusur değil risk kontrolüdür: ölçemediğimiz yeri ölçmüş gibi göstermemenin yolu. Denetim bunları hata saymaz. Hata ancak rapor aynı belirsiz bilgiyi başka bir yerde kesin gerçek gibi kullanıyorsa doğar — kontroller bu yüzden tek bir cümleye değil, iki yer arasındaki çelişkiye bakar.
Soru kalıbı kategorinin cinsine uyar. Kategoriniz bir konuysa (“nitelikli kahve”) sorular “… alanında en iyi firmalar hangileri?” diye kurulur. Kategoriniz bir firma türüyse (“endüstriyel otomasyon sistem entegratörü”) o kalıp bozuk bir cümle üretir — firma türünü bir alan gibi sarmak, kimsenin kurmayacağı bir sorgu demektir. O durumda kategori sorunun öznesi olur: “Türkiye'deki en iyi endüstriyel otomasyon sistem entegratörleri hangileri?” Bu altı soru ana keşif skorunu ürettiği için sorgu dilinin doğallığı üslup değil ölçümün kendisidir. Çoğul biçimi kuralla türetmiyoruz, kapalı bir tabloda tutuyoruz: Türkçe çoğul ünlü uyumuna ve iyelik ekine bağlı ve tahmin etmek bozuk cümle üretir; tablo bir terimi tanımıyorsa şablon eski hâline döner.
Öznesi olmayan soru ölçülmez. Sitenizin kendi metninden türettiğimiz sorular bir dönem “…hangi sektörlerde yapıyorsunuz?” gibi ikinci şahısla kuruluyordu. Böyle bir soru motora tek başına gider ve orada “siz” diye biri yoktur; öznesi belirsiz bir sorudan dönen cevapta görünmemeniz bir bulgu değildir. Bu sorular artık ölçüme alınmıyor. Marka adınızı ekleyerek düzeltmiyoruz: o zaman soru kategori keşfinden çıkıp marka sorusuna dönerdi ve zaten ayrı ölçtüğümüz bir ekseni ikinci kez ölçmüş olurduk.
“Bunu yapmıyorsunuz” demeden önce kendi sitenize bakarız. Motorun markaya yapmadığı bir işi atfetmesi ayrı bir bulgudur ve hücreyi düşürür. Ama bir raporda hakem “proses otomasyonu gibi yapmadığı işler” dedi ve aynı rapor markanın endüstriyel otomasyon entegrasyonu yaptığını doğruluyordu: müşteriye kendi işi “yapmadığınız iş” diye gösterildi. Atfedilen faaliyetin ayırt edici sözcükleri sizin kendi sayfalarınızda geçiyorsa o iddiayı kanıt saymıyoruz — ve iddia tamamen dayanaksızsa hücre de geri veriliyor, yani tanınırlık yükselebilir. Sözcüklerin biri bile sitenizde yoksa bulgu ayakta kalır: kısmen doğru bir iddia hâlâ iddiadır. Sitenizin metnini okuyamadıysak hakemin kararına dokunmuyoruz; ölçemediğimize dayanarak karar bozmayız.
Ölçemediğimiz şeye dayanarak site mimarisi değiştirtmeyiz. Hedef pazarı Türkiye olan bir markada kök adres İngilizce sürüme yönleniyorsa bunu söyleriz — motorlar kökten girer ve ilk gördükleri sayfa odur, altı çekirdek soru ise Türkçe sorulmuştur; arada gerçek bir gerilim vardır. Ama “/tr'ye yönlendirin” demeyiz: böyle bir tavsiye için hangi sürümün dizinde olmasını istediğinizi, canonical kurgunuzu ve varsa sunucu tarafı ülke yönlendirmenizi bilmek gerekir ve bunları ölçmedik. Ölçtüğümüz tek ek şey, kök sayfada hreflang tanımı olup olmadığı — o sayfanın HTML'i zaten elimizde. Bu bir puan kalemi değildir ve skoru etkilemez: doğru mimarinin ne olduğuna dair bir hükmümüz yok, gözlemi paylaşıp kararı size bırakıyoruz.
Wikidata ve ansiklopedik madde ad benzerliğiyle onaylanmaz. Adınızla eşleşen bir kayıt bulmak, o kaydın size ait olduğunu göstermez: bir ölçümde eşleşen şey aynı harfleri taşıyan bir soyadıydı. Kaydın resmi site alanını okuyup sizin alan adınızla karşılaştırıyoruz; ansiklopedik madde de ya doğrulanmış Wikidata kaydınızın kendi bağlantısı olmalı ya da özetinde alan adınız geçmeli. Sonuç üç türlü olur: doğrulandı (✓ ve Organization şemanızın sameAs alanına girebilir), aday bulundu ama doğrulanamadı (gösterilir, ✓ sayılmaz, sameAs'e konmaması söylenir ve doğrulamak ayın işlerinden biri olur), ya da kayıt bir kuruluşu anlatmıyor (hiç gösterilmez). Bunu böyle ayırmamızın sebebi basit: “kaydınız var, sameAs'e koyun” güçlü bir müdahaledir ve kanıt gücü müdahale gücüne eşit olmalıdır — yanlış bir kayda bağlanmak, makine okunur bir kimlik iddiasını yanlış yapmaktır ve hiç bağlamamaktan kötüdür.
Tanınma ile güven iki ayrı eksendir. Motorun markanızı tanıması (doğru şirketi ayırt edici bilgiyle anlatması) ile markanıza güvenmesi ayrı ayrı ölçülür. “Şirket içi verilerle çalışan bir üründür; ancak güvenilirliği bağımsız kaynaklarla doğrulanamıyor” diyen bir cevap sizi tanımıştır — temkinli ton tanımayı geçersiz kılmaz, çoğu zaman motorun markayı gerçekten incelediğini gösterir. Güven tarafı ise “yapay zeka sizi nasıl anlatıyor” bölümünde, ham cevaplardan alınan kanıtla ayrıca raporlanır. İkisini tek eksende toplamak, temkinli anlatılan markanın tanınırlığını haksız düşürür.
İki payda vardır ve ikisi ayrı soruya cevap verir. Tanınırlık paydası bütün hücrelerdir: bir motor soruya hiç cevap vermediyse o hücre skorda “tanınmadı” sayılır ve paydada kalır — cevapsızlık da bir sonuçtur. Kararlılık paydası yalnız cevap veren hücrelerdir, çünkü oradaki soru başka: “çekilişler birbirini tuttu mu”. Cevap gelmeyen bir hücrede tutarlılıktan söz edilemez. Raporda sağlam tanınma (hem tanındı hem her çekilişte aynı çıktı) tanınırlığın paydasından yazılır: o sayı yüzdenizin sağlam zeminidir ve bir zemin, üstünde durduğu sayıyla aynı ölçekten okunur. Bir süre kararlılık paydasından yazıldı ve rapor manşette “2/12” derken başka bir yerde “2/11” diyordu — ikisi de doğruydu ama okuyanın iki sayıdan hangisine baktığını çıkarması beklenemez.
Kendi kararlarımız belirlenimlidir. Ölçüm çağrıları gerçek bir kullanıcıyı taklit eder ve motorların varsayılan ayarıyla yapılır. Ama bizim analiz ve yargı katmanımız (doğru şirketten mi bahsediliyor, sektör ne, hangi rakipler geçiyor) sıfır sıcaklıkla çalışır: aynı girdiye her zaman aynı kararı verir. Motorların rastgeleliğini ortadan kaldıramayız, kendi kararlarımızınkini kaldırabiliriz.
Ölçek değişirse hedef kıyaslanmaz. Bir ölçümde motorlardan biri cevap vermezse hücre sayısı değişir (6 soru × 4 motor = 24 hücre; üç motor cevap verdiyse 18). Geçen ayın hedefi kendi ölçeğinde, bu ayın sonucu kendi ölçeğinde yazılır ve rapor "tuttu" ya da "geriledi" demek yerine ölçeğin değiştiğini söyler. Farklı paydaları aynı kefeye koymak, olmayan bir başarı ya da başarısızlık üretir.
Önerilen içeriklerde markanın sahip olduğunu bilemediğimiz iddialar (belge, uzman referansı, klinik çalışma, sayısal büyüklük) yayın önerisi olarak sunulmaz; “yayımlamadan önce doğrulayın” ön koşuluyla verilir. Doğrulayamadığınız iddia içerikten çıkarılmalıdır.
Beyan ettiğiniz sektör yanlışsa %0 keşif skoru iki şeyden gelebilir ve rapor bunları ayırmak zorundadır: ya gerçekten görünmüyorsunuz, ya da ölçüm markanızın kazanamayacağı bir çerçevede yapıldı. Gerçek bir ölçümde “Nitelikli Kahve İmalatı” etiketi motorları kahve markalarına değil ekipman üreticilerine savurdu ve rakip listesine espresso makinesi üreticileri girdi. Beyan ile sitenin anlattığı iş uyuşmuyorsa manşet metriğin altında bu uyarı basılıyor; ölçümü sitenizin anlattığı kategoriye taşımak sizin kararınız, çünkü kategoriyi kendiliğinden değiştirmek aylar arası kıyası kırar.
İzin ile erişim aynı şey değildir. robots.txt kalemi, dosyanın AI tarayıcılarını engelleyip engellemediğini ölçer — bir izin belgesidir. Siteye gerçekten girilip girilemediğini ise ayrı bir yoklama ölçer ve o erişimi sunucu, CDN ve WAF katmanı belirler. Bir raporda bu iki şey birbirinden bağımsız anlatılmıyordu: altı tarayıcının altısı da sunucudan HTTP 403 alırken robots.txt kalemi “AI motorları tarayabiliyor” diyordu ve rapor iki satır arayla kendini yalanlıyordu. Açıklama artık yoklama sonucunu biliyor: engel varsa kuralın robots.txt'te değil sunucu/CDN katmanında olduğunu söylüyor, çünkü müşterinin düzelteceği yer orasıdır.
Bunları saklamak yerine yazıyoruz; raporunuzu doğru okumanız için gerekli.
Ölçüm, ölçtüğü şeyi etkileyebilir. Denetim sitenize birkaç istek gönderir ve bu istekler sunucunuzun hız sınırını tetikleyebilir. HTTP 429 (“çok fazla istek”) yanıtını erişim engeli saymıyoruz: geçicidir, sonraki denemeler genelde başarılı olur ve sınırı bizim tetiklemiş olmamız mümkündür. Yoklamalar bu yüzden sırayla ve aralıklı yapılır, 429 alınırsa bekleyip bir kez daha denenir. Gerçek engel 401/403/451'dir ve kalemi yalnız o düşürür.
İçerik çıkarımı her zaman kusursuz değildir. Sitenizden metni dışarıdan, herkese açık HTML üzerinden çıkarıyoruz; kapanmamış bir stil etiketi ya da sayfa kurucusunun gömdüğü büyük CSS bloğu kod parçalarını metin gibi gösterebilir. Çıkarılan metin olağandışı uzunsa ya da kod işareti yoğunluğu yüksekse rapor “içerik çıkarımı şüpheli, bu teşhis elle doğrulanmalı” uyarısı basar ve o metinden üretilen hazır dosyaları da damgalar. Ölçtüğünü sanıp ölçmediğini söylemek, bu üründe en pahalı hatadır.
Koşullu bölümler sessizce kaybolamaz. Bir raporda tam bir sayfa “İtibar riski” bölümü vardı ve beş maddelik bir müdahale listesi taşıyordu. Ertesi günkü ölçümde skor birebir aynıydı, site aynıydı, kimlik karışıklığı aynı yerde duruyordu — ama o bölüm yoktu: tetikleyen kalıp, motorun yeniden yazılan cümlesinde geçmemişti. Okuyan bunu haklı olarak “demek düzeldi” diye okur. Düzelmedi; bölüm tetiklenmedi ve “yok” ile “artık yok” aynı şey değildir. Bu, ürünün asıl vaadini doğrudan vurur: aylık trend satıyoruz ve trend gösteren bir raporda bölümlerin gelip gitmesi, sayıların kendisinden hızlı güven kaybettirir. Artık her ölçümde hangi koşullu bölümlerin çıktığı kayda geçiyor; bir bölüm kaybolduğunda rapor bunu yazıyor ve yokluğun ne anlama gelmediğini söylüyor. Kayıt yalnız risk taşıyan bölümler için tutulur — yokluğu iyi haber gibi okunabilecek olanlar.
Şemaya boş alan yazmıyoruz. Teslim ettiğimiz Organization kodunda "telephone": "", "address": "", "sameAs": [] duruyordu. Model alanı biliyor ama değeri sitede bulamıyor ve iskeleti boş bırakıyor. Müşteri kodu olduğu gibi yayımlarsa motorlara “bu markanın telefonu yok” diye yapısal bir beyan gitmiş olur — oysa doğru olan “bilmiyoruz”dur ve onun karşılığı alanın hiç bulunmamasıdır. Boş alanlar koddan çıkarılıyor ama sessizce değil: dolduramadığımız alanlar raporda adıyla yazılıyor, çünkü onları doldurabilecek tek kişi sizsiniz. Aynı bilgileri sitenizin altbilgisine yazarsanız bir sonraki ölçümde biz de bulur ve otomatik doldururuz.
Bildiğimiz bir alan adını size sordurmuyoruz. Bir raporda altı kaynak “önce açıp sınıflandırın” diye ödev olarak verildi ve içlerinde LinkedIn, bir operatörün kurumsal sitesi ve bir üreticinin destek forumu vardı. Bunların ne olduğunu bilmek için sayfa açmaya gerek yok: bilmediğimizi sormak dürüstlük, bildiğimizi sormak işi size geri devretmektir. Yaygın platformlar artık tanınıyor ve doğrudan yapılacak işiyle geliyor — LinkedIn şirket sayfası sizin elinizde, başka bir markanın kurumsal sitesi değil. Eşleşme tam alan adıyla yapılır, alt dizeyle değil: daha önce “bet” ve “sanayi” alt dizeleriyle meşru siteleri yanlış sınıflandırmıştık.
Sayfalarınız sunucudan boş geliyorsa bu ayın ilk işi odur. Bir raporda 21 sayfanın 21'i sunucudan boş HTML döndürüyordu ve “sunucu tarafı render” ayın altıncı işiydi. Oysa bu, tarayıcı engelinin ikizi: birinde motor kapıda durduruluyor, ötekinde içeri giriyor ve okuyacak hiçbir şey bulamıyor. Sonuç aynı — motorun markanız hakkında yazacak bir şeyi yok — ve üstüne kurulacak her iş boşa gider; yazacağınız yeni içerik de aynı biçimde görünmez kalır. Eşik yüksek tutuldu (sayfaların üçte ikisi ve en az üç sayfa örneklenmiş olmalı): tek tük boş dönen sayfa bir yönlendirme ya da hata olabilir, sitenin mimarisi değil.
llms.txt'in bölüm başlıkları sabittir. Bu dosya her ölçümde yeniden üretiliyor ve bölüm adları her ay değişirse (“Coğrafi Uygulamalar” bir ay, “Bölgesel Çözümler” öbür ay) yayımladığınız dosyayı güncellemeye çekinirsiniz — dosya sitede eskir ve amacını kaybeder. Başlıklar artık kapalı bir listeden ve sabit sırayla seçiliyor; değişen tek şey içerik oluyor.
Ölçemediğimiz bir ekseni sayıyla doldurmuyoruz. Tanınırlık, her cevabın ayrıca denetlenmesine dayanır: “bu cevap gerçekten sizden mi bahsediyor, yoksa aynı adlı başka bir şeyden mi?” Bir ölçümde bu denetim düştü ve rapor rozetli bir sayı bastı — “%67, denetlenmedi”. Önceki ölçüm %44'tü; müşterinin gördüğü şey 23 puanlık bir sıçrama oldu. Rozet yetmiyor: rozetli bir sayı, sayının yanlış okunmasını engellemez — yalnızca bizi haklı çıkarır. Asıl zarar trend tarafındaydı, çünkü o sayı başarı ölçütüne başlangıç noktası olarak yazılıyor ve denetim gelecek ay çalıştığında gerçek değer çok daha düşük çıkıp çöküş gibi okunuyor. Bu ürünün bütün değeri aylar arası kıyasta. Artık: denetim düşerse bir kez daha denenir ve başarısız sonuç günlük önbelleğe yazılmaz (eskiden yazılıyordu, yani “yeniden dene” fiilen imkânsızdı). İkinci deneme de düşerse tanınırlık ekseni sayı yerine “bu ölçümde ölçülemedi” der, o ayın tanınırlık hedefi konmaz ve sayı geçmişe yazılmaz. Görünürlük merdiveni de damgalanır ve geçmişe yazılmaz — kategoride görünmeyen bir motorun basamağı marka tanınmasından çıkar, dolayısıyla o da doğrulanmamıştır. Kimlik karışıklığı bölümü de sessizce kaybolmaz: “bu ölçümde kontrol edilemedi” yazar, çünkü yokluk ile ölçülememek ayrı şeylerdir ve bölümün boş olması “karışıklık çözüldü” diye okunur.
Motor seti değişirse trend grafiği bunu tam o noktada söyler. Kategori için zaten aynı ilkeyi savunuyoruz: kategoriyi kendiliğinden değiştirmiyoruz çünkü aylar arası kıyas kırılır. Motor eklemek de aynı şeyi yapar — skor motorların ortalamasıdır, payda değişir ve sayı markanızda hiçbir şey değişmeden oynar. Sürüm notu bunu bir kez söyler ama sürüm notu ölçümün tamamına aittir; okuyan hangi ayda kırıldığını göremez. Trend, ürünün asıl vaadi: grafikte iki nokta arasındaki fark performans gibi okunuyorsa, o farkın sebebinin ölçüm olduğu tam orada yazılmalı. İki durum ayrı ayrı anlatılır: bir motorun eklenmesi ya da çıkarılması yöntem değişikliğidir; yapılandırmada duran bir motorun o ölçümde cevap vermemesi ise geçici bir sağlayıcı arızasıdır ve bir sonraki ölçümde kendiliğinden düzelir.
Kısmi denetim, denetim sayılmaz. Tanınırlık ekseni her cevabın ayrıca denetlenmesine dayanır. Hakemin yanıtı yarıda kesildiğinde bazen hücrelerin bir kısmı için karar geliyor, kalanı için gelmiyordu — ve karar bulunamayan hücre olduğu gibi bırakıldığı için sessizce “denetlendi ve geçti” hanesine yazılıyordu. Kısmi kesilme, tam kesilmeden daha tehlikeliydi: birincisi rapora “denetlendi” diye giriyor, ikincisi hiç değilse kendini belli ediyordu. Eksen artık ancak tanınmış görünen her hücre denetlendiyse geçerli sayılıyor; biri eksikse eksen “bu ölçümde ölçülemedi” durumuna geçiyor.
Ölçeğe bağlı sabitler, ölçek değişince güncellenmek zorunda. Hakeme giden isteğin yanıt uzunluğu sabit bir tavana bağlıydı ve o tavan üç motorluk ölçüme göre konmuştu. Dördüncü motor eklenince hücre sayısı arttı, yanıt tavana çarpıp kesildi ve denetim arka arkaya iki ölçümde “düştü” göründü — sebep bir sağlayıcı arızası değil, motor eklerken bu tavanın güncellenmemesiydi. Tavan artık hücre sayısıyla ölçekleniyor ve kesilme ayrıca kayda geçiyor. Bunu buraya yazıyoruz çünkü aynı sınıf hata bir daha olabilir: bir motor eklemek yalnız skorun paydasını değil, ona bağlı her tamponun boyutunu da değiştirir.
Motor seti dondurulmuştur. Ölçüm dört motorla yapılır ve bu set, trend başladıktan sonra kendiliğinden değişmez. Sebebi şu: skor motorların ortalamasıdır, yeni bir motor eklenince payda büyür ve markanızda hiçbir şey değişmeden sayı düşebilir. Perplexity eklendiği ölçümde tam olarak bu oldu — tanınırlık %44'ten %33'e indi ve merdiven bir basamak düştü, ama tanınan hücre sayısı hiç değişmemişti. Bir ölçümde set yine de değişirse (biz eklersek ya da bir motor kalıcı olarak çıkarsa) rapor bunu iki yerde birden söyler: trend grafiğinde tam o satırda kırılma işareti çıkar ve aşağıdaki geçiş tablosu basılır.
Motor eklenen ayda aynı ölçümü iki çerçevede birden gösteririz. Geçen ayın ölçümünü yeni motorla yeniden hesaplayamayız — o motora geçen ay soru sorulmadı ve olmayan bir cevabı üretmek, ölçmediğimizi ölçtük demenin en kötü biçimi olurdu. Ama bunun tersini yapabiliriz: bu ayın ölçümünü geçen ayın çerçevesinde hesaplarız. Bu ay bütün motorların hücreleri elimizdedir; yenisini dışarıda bırakınca geçen ayla birebir aynı çerçeve çıkar. Rapor üç sütun basar — geçen ay, bu ay eski çerçeveyle, bu ay yeni çerçeveyle — ve trendi ortadaki sütundan okumanızı söyler. Sağdaki sütun bundan sonraki ayların başlangıç noktasıdır. Tablo yalnız geçiş ayında çıkar; sonraki aylarda iki ölçüm de aynı çerçevededir.
Basamak özetleri “çoğu motor” demez. Basamak motorların ortancasıdır ve ortancanın garanti ettiği tek şey “motorların en az yarısı bu seviyede ya da üstünde”. Dört motorun ikisi markayı tanıyıp ikisi tanımadığında ortanca 1 çıkar; buna “çoğu motor tanıyor” demek yanlış olur, çünkü yarısı tanımıyor. Özet cümleleri artık ortancanın söylediği şeyi söylüyor ve gerçek dağılım zaten hemen altında motor motor yazılıyor.
Çift sayıda motorda ortanca aşağı yuvarlanır. Genel basamak motorların ortancasıdır ve dört motorda ortanca iki ortadaki değerin arasına düşebilir:{2, 1, 0, 0} için 0,5. Bağı aşağı çözüyoruz. Gerekçe: bir basamak, bir motorun daha markayı tanımasıyla kazanılır, tanımamasıyla kaybedilmez — “sizi tanıyor” demek “tanımıyor” demekten daha iddialı bir cümledir ve iddialı tarafın kanıt yükü ağırdır. Karar yeni değil, ama bir sürüme kadar hiçbir yerde yazmıyordu; artık bağ aşağı çözüldüğünde rapor bunu satırın yanında söylüyor.
Ağırlıklar, kalemler veya herhangi bir ölçümün yapılma biçimi (site hazırlığı, tanınırlık, keşif) değiştiğinde aynı site farklı puan alır. Bu sessizce yapılmaz: her ölçüm hangi skorlama sürümüyle yapıldığını kaydeder, rapor iki farklı sürümü o eksende doğrudan kıyaslamaz ve neyin değiştiğini yazar. Kırılma eksen bazındadır (sürüm 137): bir sürüm yalnız raporun dilini ya da işin sırasını değiştirdiyse hiçbir sayı değişmemiştir ve aylar arası kıyas açık kalır. Her sürüm, hangi eksenin sayısını değiştirdiğini ayrıca beyan eder; beyanı olmayan bir sürümle kıyas kurulmaz. Sayı gerçekten değiştiyse de kıyas her zaman bitmez: bazı değişiklikler arşivden geriye doğru uygulanabilir (sürüm 138). O durumda geçen ayın sayısını bugünkü kuralla yeniden hesaplar, eski sayıyı da yeni sayıyı da yazar ve o ay yapılan ölçümün değişmediğini söyleriz. Yeniden hesaplanamayan değişikliklerde (motor eklenmesi, sınıflandırmanın değişmesi) kıyas kırık kalır ve sebebi yazılır. Aşağıdaki liste bu sayfanın süsü değil, ölçüm kodundan üretilir — sürüm artıp burası güncellenmezse testlerimiz kırılır.
TEK BİR SIRADAN SÖZCÜK ARTIK DOĞRU TANINAN BİR CEVABI DÜŞÜREMEZ; TANINIRLIK DÜZELDİ. Sürüm 152'de, çapraz varlık kontrolünün bizim "genel kavram" sınıf etiketimizi başka bir şirketin adı sandığını düzeltmiştik. Yeni kurduğumuz ölçüm tutarlılık denetimleri arşivi taradı ve aynı hata sınıfının daha geniş olduğunu gösterdi: karışıklık etiketi çoğu zaman bir İSİM değil bir TARİFTİR ve tarifin sözcükleri sıradandır. Bir raporda motorlar bir toz toplama sistemleri üreticisini savunma sanayisindeki aynı adlı başka bir şirketle karıştırdı; hakem bunu doğru yakaladı ve karışıklığı "savunma sanayii, havacılık, elektronik sistemler" diye tarif etti. Çapraz kontrol bu tariften "sistemler" sözcüğünü alıp öbür cevaplarda aradı ve markanın KENDİ işini (toz toplama sistemleri) doğru anlatan altı cevabı düşürdü: tanınırlık %67 yerine %17 çıktı. Başka bir raporda "teknik" sözcüğü üç doğru cevabı düşürdü. Kontrolün "kendi sitenizde geçen sözcük kanıt değildir" kapısı bunu durdurmalıydı — o markanın sitesinde "sistemler" 68 kez geçiyor — ama kapıya yalnız ana sayfa metni gidiyordu, çünkü marka ölçümü site taramasıyla aynı anda yapılıyor ve tam site metni o anda hazır değil. Sözcük listesine "sistemler" ya da "teknik" eklemek bir sonraki sözcüğü kaçırırdı; kuralı değiştirdik. Bir cevap artık ancak iki durumdan birinde karışıklık sayılıyor: (a) karışıklıktaki ÖZEL bir ad (başka şirketin adı gibi) cevapta geçiyorsa ve bu ad markanın kendi doğru cevaplarında yaygın değilse; (b) AYNI karışıklıktan en az İKİ sözcük cevapta birlikte geçiyorsa ("savunma" ve "havacılık" gibi). Gerçek bir karışıklık genellikle birden fazla iz taşır; tek bir sıradan sözcük taşımaz. Başka bir şirketle gerçek karışıklıklar eskisi gibi yakalanıyor. Bu düzeltme yalnız TANINIRLIĞI etkiler ve yalnız çapraz kontrolün yanlış düşürdüğü cevapları olan markalarda sayı değişir; bu sürümde tanınırlık önceki ayla kıyaslanmıyor. Keşif, endeks ve site puanı etkilenmedi.
SÖZLÜKTE KELİME OLAN MARKALARDA DOĞRU TANINAN CEVAPLAR HATALI OLARAK DÜŞÜRÜLÜYORDU; TANINIRLIK DÜZELDİ. Marka tanınırlığında bir "çapraz varlık tutarlılık kontrolü" var: bir motor markanızı başka bir şirketle karıştırdığında, o şirketin ayırt edici adını öbür cevaplarda da arıyor, çünkü tek tek cevaba bakan hakem aynı karışıklığı bazen kaçırıyor. Kural doğru; ama bir durumda yanlış çalışıyordu. Adı sözlükte bir kelime olan markalarda ("Martı" gibi) motorlar bağlam verilmeden sorulan "nedir?" sorusuna bazen kuşu anlatıyor; hakem bunu doğru biçimde "genel kavram (kuş türü)" diye işaretliyor. Çapraz kontrol ise bu işaretin kendi kelimelerini — "genel", "kavram", "türü" — başka bir şirketin adı sanıp öbür cevaplarda aradı. Türkçede "genel" en sık kelimelerden biri olduğu için hakemin DOĞRU tanıdığı cevaplar düştü: biri "Genel Bilgiler" başlığı yüzünden, biri "genellikle" kelimesi yüzünden. Gerçek bir raporda Türkiye'nin pazar lideri scooter markasını kurucularının adıyla, kuruluş yılıyla ve pazar payıyla doğru anlatan dört cevabın dördü de reddedildi ve tanınırlık %67 yerine %17 çıktı. Bu kural sistemin başka bir yerinde zaten yazılıydı — "genel kavram bir varlık adı değil, sınıf etiketidir" — ve oradaki kontrol kanıtı cevapların kendisinden çıkarıyordu; bu yola bağlanmamıştı. Artık sınıf etiketinden hiçbir kelime çıkarılmıyor; gerçek bir başka şirketle karışıklık (örneğin aynı adı taşıyan bir ayakkabı markası) eskisi gibi yakalanıyor. "Nedir?" sorusunda kuşu anlatan cevaplar hâlâ tanınmadı sayılıyor ve bu doğru: bağlam verilmeden sorulduğunda motorların markanızı değil kelimeyi anlatması gerçek bir bulgudur. Bu düzeltme yalnız TANINIRLIĞI etkiler ve yalnız adı sözlük kelimesi olan markalarda sayı değişir; o yüzden bu sürümde tanınırlık önceki ayla kıyaslanmıyor. Keşif, endeks ve site puanı etkilenmedi.
KRİTİK DÜZELTME: KATEGORİ SORULARINDAKİ GÖRÜNÜRLÜK 24 AĞUSTOS'TAN BU YANA HATALI OLARAK %0 ÖLÇÜLÜYORDU. Sürüm 14'te (24 Ağustos 2026) kategori ekseni tek çekilişten üç çekilişin çoğunluk oyuna geçti. Hücre kararını veren kod iki ayrı hatayla yazıldı: çoğunluk hesabına beklediği biçimde değil yanlış biçimde oy verildi ve bu oyların hepsi "boş" sayıldı; sonuç da var olmayan bir alandan okundu. İki hata birlikte şunu yaptı: kategori sorularında HİÇBİR marka, HİÇBİR motorda, HİÇBİR cevapta anılmış sayılmadı. Bu sürenin tamamında "AI keşif görünürlüğü" her raporda %0 göründü — ölçümden değil, hatadan. Kayıtlar çizgiyi açıkça gösteriyor: hatadan önce ölçülen markalarda %75, %69, %33 gibi değerler vardı; hatadan sonra ölçülen markaların tamamında %0. Hata, dışarıdan bir okuyucunun iki rapor arasındaki çelişkiyi fark etmesiyle bulundu: bir scooter kiralama şirketinin raporu "sizin yerinize Martı öneriliyor" diyordu, Martı'nın kendi raporu ise Martı'yı %0 gösteriyordu. Arşivdeki ham cevaplarda Martı kendi kategorisinin 72 çekilişinin 71'inde anılıyordu. "Sizin yerinize kim çıkıyor" bölümü cevapları ayrı bir yolla okuduğu için bu hatadan etkilenmedi; o bölümdeki rakip adları doğruydu. Neden bu kadar uzun sürdü: hata sessizdi. Yanlış biçimdeki oy hata fırlatmadı, kayıt düşmedi, hiçbir test bu yolu çalıştırmıyordu. Üç şey değişti: (1) Hücre kararı test edilebilir bir fonksiyona taşındı ve gerçek cevap metinleriyle sınanıyor. (2) Çoğunluk hesabı yanlış biçimde çağrılırsa artık yüksek sesle hata veriyor; sessizce "boş" saymıyor. (3) Kategori görünürlüğü artık doğru hesaplanıyor. BU SÜRÜMDEN İTİBAREN AI KEŞİF GÖRÜNÜRLÜĞÜNÜZ VE ONA BAĞLI GEO HAZIRLIK ENDEKSİ, GÖRÜNÜRLÜK SEVİYESİ VE RAKİP KARŞILAŞTIRMASI DEĞİŞEBİLİR — çoğu markada yükselir, çünkü önceki %0 gerçek değildi. Bu yüzden bu eksenlerde önceki raporlarla kıyas yapmıyoruz: önceki değer bir hataydı ve üzerine "yükseldiniz" demek yanlış olur. Marka tanınırlığı ve site hazırlığı bu hatadan etkilenmedi; onların sayıları ve kıyasları geçerliliğini koruyor.
REÇETE VE HAZIR DOSYALARDA DÖRT DÜZELTME: ŞABLON SIZINTISI, ETİKETİ YANLIŞ İLETİŞİM SATIRI, HUKUKİ HÜKÜM VE BELİRSİZ KAYNAK TİPİ. Ölçüm sağlamdı; dışarıdan gelen bir denetim sorunları ölçümün değil, ondan türeyen reçetenin ve müşterinin kopyalayıp yayımlayacağı hazır dosyaların içinde buldu. (1) ŞABLON SIZINTISI: "hangi şehir/bölgelerde hizmet veriyorsunuz" sorusuna bağlanan içerik işi, bir endüstriyel otomasyon entegratörü için yazılmış bir başlık ve gövde taşıyordu: "hizmet bölgeleri — nerede keşif, kurulum ve devreye alma", "uzaktan verilen hizmet / yerinde kurulum / temsilcilik bulunan iller". Bir elektrikli scooter kiralama şirketine bu öneri gitti; raporun kendisi işi doğru tanımlarken. Yerinde hizmet dili artık yalnız SORU onu istiyorsa (kurulum, devreye alma, saha müdahalesi) kullanılıyor; aksi hâlde içerik aktif şehirleri, şehir içindeki hizmet alanlarını, geçici ya da kapalı bölgeleri ve güncel hizmet alanının nerede görüleceğini istiyor. (2) ETİKETİ YANLIŞ İLETİŞİM SATIRI: hazır llms.txt'te "WhatsApp Destek: destek@…" yazıyordu. Sitede "WhatsApp Destek Hattı" yazısı e-posta adresinin hemen yanında durduğu için model ikisini eşleştirmişti. Satır hiçbir kontrolden geçmemişti, çünkü iletişim satırı tanıyıcımız etiketin hemen ardından iki nokta bekliyordu ve "WhatsApp Destek:" arada bir kelime taşıyordu. Tanıyıcı artık etiketten sonra bir-iki niteleyici kelimeye ve kalın yazılmış etiketlere ("**WhatsApp Destek**:") izin veriyor ve etiket ile değerin TÜRÜNÜ karşılaştırıyor: WhatsApp, telefon ve faks satırında numara, e-posta satırında e-posta adresi olmalı. Uymayan satır dosyada işaretleniyor; bu kontrol site metnine bağlı değil, yanlışlık satırın kendi içinde. (3) HUKUKİ HÜKÜM: hazır dosya "şirket 6698 sayılı KVKK'ya uygun olarak işletilmektedir" ve "kullanıcılar açık rıza beyanını kabul etmelidir" diyordu. Sitede KVKK belgelerinin bulunması, veri işlemenin tamamının kanuna uygun olduğunu kanıtlamaz; "açık rızayı kabul etmelidir" de her işleme faaliyeti için doğru bir hukuki formül değildir. Aynı raporun başka bir bölümü bu dikkati zaten gösteriyordu, hazır dosyaya taşınmamıştı. Hukuki uygunluk hükmü taşıyan satırlar artık işaretleniyor ve gözlenebilir ifade öneriliyor: belgelerin YAYIMLANDIĞI bir olgudur, UYGUNLUK bir hükümdür. (4) BELİRSİZ KAYNAK TİPİ: bir ilan sitesi "sektör dizini" diye sınıflandırılıp "firma profilinizi doldurun: faaliyet kodları, ürün grupları, sertifikalar" eylemi aldı. Sınıflandırıcı "ilan ver" ve "üye ol" yazılarını görüyordu ve kendi gerekçesi "bir dizin YA DA pazaryeri" diyordu — yani emin değildi, eylem ise kesindi. Sayfa sinyalinden gelen dizin kararı artık önce doğrulatıyor: kaynak olan içeriği tespit edin, uygun bir profil ya da ilan alanı varsa değerlendirin. Adıyla bilinen dizinler güçlü eylemini koruyor. Ayrıca aynı denetimin sorguladığı tanınırlık hücresi yeniden incelendi ve doğru çıktı: motorun anlattığı kurumsal filo/platform hizmeti şirketin kendi sitesinde yazılı. Ölçülen değerler bu sürümde değişmiyor; değişen şey reçetenin müşterinin gerçek işine göre konuşması ve hazır dosyanın doğrulanmamış bilgiyi kesin gerçek gibi taşımaması.
AYLIK SKOR ARTIK O AYIN BİR ANINA AİT OLMAK ZORUNDA; "TEKRARLANABİLİR" KELİMESİ BAĞIMSIZ KOŞU YOKSA KAPALI. (1) RESMÎ AYLIK ÖLÇÜM TAZE ÇEKİRDEK İSTER. Sürüm 147'de "kaç motor ölçüldü" kuralını koyduk. Bir koşu o kuralı geçip yine de aylık serinin noktası olamaz: bir raporda çekirdek cevap setinin TAMAMI kaydedilmiş cevaptan geldi (188 model çağrısının 182'si önbellekten) ve rapor yine de "bu ilk resmî aylık ölçümünüz" diyordu. O rapor 23:03'teki motor durumunu değil, son birkaç saatte birikmiş cevap havuzunu ölçüyordu. Bu kötü veri değil; aylık zaman serisinin ANLAMI açısından sorun — "Eylül skoru" o ayın bir anına ait olmalı ve o an motorlara gerçekten sorulmuş olmalı. Motor cevapları yedi gün saklanır ve bu önbellek rapor üretimini, açıklamaları ve ara denemeleri ucuzlatmak içindir; trendin noktasını değil. Yeni kural: çekirdek çekilişlerin en az yarısı motorlara YENİDEN sorulmuş olmalı. Sağlanmazsa ölçüm yapılır, rapor gider, bütün sayılar gösterilir — ama koşu resmî sayılmaz, aylık trendin dayanağı olmaz ve rapor sebebini adıyla söyler: "kısmi motor kapsaması" ile "çekirdek ölçüm yeniden sorulmadı, kaydedilmiş cevaplardan çizildi" farklı iki durumdur ve müşteriye farklı şeyler anlatırlar. Tazelik ölçülemiyorsa hüküm verilmez. (2) BAĞIMSIZ KOŞU YOKSA "TEKRARLANABİLİR" KELİMESİ KULLANILMIYOR. Kararlılık kartı başında doğru cümleyi kuruyordu — "bağımsız kararlılık: bu ölçümde ölçülemedi" — ve birkaç satır sonra "ortak hücrelerde ölçüm büyük ölçüde tekrarlanabilir" diyordu. Tekrarlanabilirlik o koşuda ÖLÇÜLMEDİ; ölçülmemiş bir şey hakkında ne olumlu ne olumsuz hüküm kurulur. Kapanış cümlesi artık bağımsızlık kapısından geçiyor: çekilişler yeniden alınmadıysa rapor "bu koşuda tekrarlanabilirlik ölçülmedi" diyor, gözlenen oranı yazıyor ve o oranın tekrarlanabilirlik olarak yorumlanmayacağını ekliyor. Elimizdeki şey iki arşiv kümesinin kıyasıdır, bir tekrar ölçümü değil. (3) KATEGORİ TEMSİL GÜCÜ ARTIK GERÇEK SİTE TEŞHİSİYLE EŞLEŞİYOR. Sürüm 148'de ölçütü ikiye ayırdık ama temsil gücü sinyalini yanlış kapıya bağlamıştık: rapor "temsil gücü: Yüksek — ölçülen kategori sitenizin ana anlatısıyla örtüşüyor" derken aynı raporun site teşhisi ana odağın endüstriyel toz toplama sistemleri olduğunu, endüstriyel fanların tamamlayıcı ürün konumunda kaldığını yazıyordu. Sebep: sinyal kategori UYARISINDAN okunuyordu ve o uyarının kendi ön koşulları var (marka o listede hiç görünmemeli, rakip haritası en az üç kayıt taşımalı, pazar Türkçe ölçülmeli). Bu koşullar "rakip listesi sizin liginiz mi" sorusuna aittir, "bu kategori sitenizin ana anlatısı mı" sorusuna değil; uyarı düşünce sinyal de düşüyordu. Fark artık doğrudan hesaplanıyor: beyan edilen kategoride geçmeyen ama sitenin kendi iş tanımında geçen ayırt edici kelimeler. Denetlenen vakada bu kelimeler "toplama, hava, filtrasyonu" çıkıyor ve temsil gücü Orta oluyor — kategori geçerliliği Yüksek kalırken. İkisi çelişmez: şirket gerçekten fan üretiyor, ama sitenin merkezinde başka bir iş var. Bu bulgu artık yönetici özetine de çıkıyor, çünkü manşetteki %0'ın sebeplerinden biri olabilir ve ikinci kategorinin daha yüksek çıkmasıyla aynı hikâyeyi anlatır; yalnız iç sayfalarda durduğu sürece kimse iki parçayı birleştirmiyordu. (4) BAĞLANTI KONTROLÜ ARTIK LOG ÇIKTISI GİBİ UZAMIYOR. Sürüm 148'de 429'u doğru sınıflandırdık ve rapor ters uca geçti: 17 adresin her biri için aynı dört satırlık açıklama tekrarlandı ve bölüm iki sayfaya yayıldı. Aynı sebebi paylaşan adresler tek satırda gruplanıyor, adresler kısa liste hâlinde veriliyor ve politika bir kez yazılıyor: 404/410 = bozuk; 429, 403, 5xx ve yanıtsızlık = bu ölçümde doğrulanamadı, satıra dokunulmaz. Ölçülen değerler ve hesaplama kuralları bu sürümde değişmiyor; değişen şey bir koşunun hangi koşulda aylık başlangıç sayılacağı, ölçülmemiş bir şeyin adının konmaması ve raporun kendi teşhisiyle çelişmemesi.
ÜÇ DURUM ARTIK DOĞRU SINIFLANDIRILIYOR: BOZUK OLMAK İLE ŞU ANDA DOĞRULANAMAMIŞ OLMAK AYNI ŞEY DEĞİLDİR. (1) BLOKLAYICI HATA: llms.txt bağlantı doğrulaması HTTP 429'u "bağlantı çalışmıyor" sayıyordu. Bir raporda dosyadaki 17 satırın neredeyse tamamı 429 döndü — 429 "Too Many Requests" demektir, yani sunucunun o an uyguladığı bir HIZ SINIRI; adreslerin hepsi çalışıyordu. Rapor buna rağmen "llms.txt'teki 17 bağlantı çalışmıyordu" dedi, satırları değiştirdi ve müşterinin KENDİ ana sayfa adresi için "doğrusunu bulamadık, satır dosyadan çıkarıldı" yazdı. Yani çalışan bir siteyi, büyük olasılıkla kendi yoklamalarımızın tetiklediği bir hız sınırına takılıp kendi rehber dosyasından sildik. Daha kötüsü, aynı raporun teknik bölümü aynı 429'u DOĞRU yorumluyordu: "kalıcı engel değildir, hız sınırıdır, sonraki ölçümde yeniden bakılacaktır". Bir rapor iki sayfası arasında iki farklı politika uyguluyordu. Sebep: kural sürüm 8'de yapay zeka tarayıcı kontrolü için yazılmış, o dosyada kalmıştı; bağlantı doğrulaması kendi eşiklerini kullanıyordu (400 ve üstü "kırık", geçici sayılan tek sınıf 5xx). Artık durum kodunu yorumlayan TEK bir tablo var ve iki yol da ondan okuyor: 2xx/3xx doğrulandı; 404/410 kalıcı kırık; 401/403/451 erişim kısıtlı; 429 hız sınırı; 5xx sunucu hatası; yanıtsızlık doğrulanamadı. Bir satırı yalnız 404/410 gördüğümüzde — yani sayfanın olmadığını KANITLADIĞIMIZDA — düzeltir ya da çıkarırız. Kalan her durumda satıra dokunmuyoruz, işaretleyip yeniden kontrol istiyoruz; 429 ayrıca daha uzun bekleyip yeniden deneniyor. Raporun başlığı da düzeldi: "çalışmıyordu" yerine kaç bağlantının gerçekten çalışmadığı ve kaçının bu ölçümde doğrulanamadığı ayrı ayrı yazılıyor. (2) KAYDEDİLMİŞ CEVAP, TEKRAR ÖLÇÜM DEĞİLDİR. Kararlılık kartı "skor kararlılığı: düşük, hücre kararlılığı: düşük" diyor, hemen altında ise kıyasa giren 36 çağrının 36'sının önbellekten geldiği ve kıyasın "tam anlamıyla bağımsız olmadığı" yazıyordu. İki cümle aynı kartta duramaz: "düşük kararlılık" bir ÖLÇÜM sonucudur ve o ölçüm yapılmamıştır. Çekilişlerin tamamı kaydedilmiş cevaptan geldiyse kart artık seviye etiketi basmıyor; "bağımsız kararlılık: bu ölçümde ölçülemedi" diyor, gözlenen değişimi GÖZLEM olarak yazıyor ve aylık karara dayanak yapılmamasını istiyor. Sayılar gizlenmiyor, sınıflandırma yapılmıyor. Aynı sebeple denetim izi de ayrıldı: üstteki tarih artık "rapor üretimi" diye yazılıyor ve cevap setinin kimliğinin yanında tazeliği duruyor ("36/36 yeniden soruldu" ya da "tamamı kaydedilmiş cevaptan, en eskisi 5 saatlik"). Motor cevapları yedi gün saklandığı için raporun çizildiği an ile cevapların alındığı an aynı olmayabilir; aynı cevap kimliğini iki raporda gören müşterinin soracağı ilk soru budur. (3) GEÇERLİ KATEGORİ İLE ANA KATEGORİ AYNI ŞEY DEĞİL. "Kategori Güveni: Yüksek" tek etiketi iki farklı soruyu birden cevaplıyormuş gibi duruyordu. Bir raporda bu yüzden "Yüksek" yazarken aynı rapor birkaç sayfa sonra sitenin gerçek odağının patentli bir toz toplama teknolojisi olduğunu, beyan edilen fan üretiminin tamamlayıcı konumda kaldığını anlatıyordu. İkisi çelişmek zorunda değil — şirket gerçekten fan üretiyor ve o kategoride ölçülmek stratejik bir tercih olabilir. Etiket ikiye ayrıldı: KATEGORİ GEÇERLİLİĞİ (şirket gerçekten bu alanda faaliyet gösteriyor mu; skorun performans olarak okunup okunamayacağını bu belirler) ve KATEGORİ TEMSİL GÜCÜ (bu kategori sitenizin ana anlatısını temsil ediyor mu). Geçerliliği yüksek, temsil gücü düşük bir kategori yanlış değildir: dar bir hattı ölçer ve skor o hattın skorudur — rapor artık bunu böyle söylüyor. Site teşhisi okunamadıysa temsil gücü hakkında hüküm verilmiyor. Skorlar, ağırlıklar ve kategori geçerliliğinin hesabı bu sürümde DEĞİŞMİYOR; değişen şey doğrulanamayan bir adresin bozuk sayılmaması, ölçülmemiş bir kararlılığın ölçülmüş gibi etiketlenmemesi ve iki farklı sorunun iki ayrı etikete kavuşması.
ARTIK BİR ÖLÇÜM STANDARDIMIZ VAR: BİR KOŞU HANGİ MOTOR KAPSAMASINDA "RESMÎ AYLIK ÖLÇÜM" SAYILIR? Bugüne kadar bunun yazılı bir cevabı yoktu. Bir motor cevap vermediğinde ölçüm yine tamamlanıyor, skor yine hesaplanıyor ve rapor "bu ilk resmî aylık ölçümünüz" diyordu. Gerçek bir koşu meseleyi görünür yaptı: Gemini sağlayıcı tarafında hata (HTTP 503) döndü ve hiçbir eksende yer alamadı, marka ekseninde ChatGPT de cevap vermedi. Tanınırlık %83 çıktı. Bu sayı matematiksel olarak doğru — cevapsız hücre sürüm 132'den beri paydadan düşer, aleyhinize yazılmaz — ama o %83 İKİ motor ve ALTI hücre üzerinden hesaplanmıştı. Kapakta tek başına duran "tanınırlık %83", okuyan için "yapay zeka motorlarında %83 tanınıyorum" demektir; oysa iki motorun ne diyeceğini bilmiyorduk. Böyle bir koşuyu aylık BAŞLANGIÇ olarak kilitlemek, sonraki bütün ayları ona göre okumak olurdu: gelecek ay o iki motor geri geldiğinde payda büyür ve "düştünüz" ya da "çıktınız" hükmü markanızdan değil, motorların o gün bize cevap verip vermemesinden gelir. Ölçemediğine dayanarak karar vermemek bu ürünün temel kuralıdır; bunun aylık ölçekteki hâli buydu ve eksikti. YENİ KURAL: bir koşu, hem çekirdek eksende hem marka ekseninde yapılandırılmış motorların en az DÖRTTE ÜÇÜ ölçülebilmişse resmî aylık ölçümdür. Dört motorluk sette bu üç motor demektir. Sağlanmazsa ölçüm yine yapılır, rapor yine gönderilir ve bütün sayılar gösterilir — ama koşu "başlangıç ölçümü, kısmi motor kapsaması" diye adlandırılır, aylık trendin dayanağı olmaz ve kapsama düzeldiğinde yeniden çalıştırılır. Eşik neden üç: dört motorluk sette üç motor hücrelerin dörtte üçünü ölçer ve tek bir motorun geçici arızası bütün ayı kilitlemez; iki motor yetmez, çünkü kalan ikisinin cevabı bilinmiyorken "bu markanın yapay zeka görünürlüğü budur" cümlesi kurulamaz. Buna bağlı dört değişiklik: (1) Kısmi kapsamalı bir koşu artık bir sonraki ayın "geçen ay" değeri OLMAZ; aylık kıyas son RESMÎ ölçümle yapılır. Kural konmadan önceki kayıtlar geriye dönük yargılanmaz, resmî sayılır. (2) Kısmi kapsama bir ÇERÇEVE DEĞİŞİMİDİR: rapor insan denetiminden geçmeden gönderilmez. (3) Manşetteki tanınırlık yüzdesinin YANINDA artık kapsamı yazıyor: "kısmi ölçüm · 2/4 motor · 6 hücre". Kapsam, sayının kendisiyle aynı satırda olmazsa okunmuyor. (4) Tanınırlık hedefi artık HÜCREYLE de yazılıyor: "ölçülebilen hücrelerde 5/6 → 6/6". Sebep: yüzde paydaya bağlıdır. "%83'ten %100'e" hedefi altı hücrelik bir paydaya göre kurulmuştu; gelecek ay motorlar dönüp payda on ikiye çıkarsa aynı "%100" bambaşka bir iş demektir ve müşteri hedefi tutturmuş ya da kaçırmış görünür — ikisi de yaptığı işten değil. Hücre sayısı payda değişse de aynı işi anlatır. AYRICA İKİ METİN DÜZELTMESİ: Kararlılık kartı "hücre kararlılığı: orta" derken kapanış cümlesi "ortak hücrelerde ölçüm YÜKSEK DÜZEYDE tekrarlanabilir" diyordu; altı hücrenin beşi için doğru ifade "büyük ölçüde"dir. Eşiği değiştirmek yerine cümleyi düzelttik: eşik ölçüme, cümle okumaya aittir. Ve kararlılık bölümünde aynı şey iki kez anlatılıyordu — ölçülen sayı ("kıyasa giren 14 çağrının 14'ü yeniden soruldu") zaten oradayken, altındaki paragraf aynı şeyi BEYAN olarak tekrarlıyordu. Ölçülen sayı beyanı gereksiz kılar; tekrar kaldırıldı. Ölçülen değerler ve hesaplama kuralları bu sürümde değişmiyor; değişen şey bir koşunun hangi koşulda aylık başlangıç sayılacağı ve manşetteki yüzdenin kapsamını yanında taşıması.
BAŞARISIZ ÖLÇÜM ARTIK ✗ DEĞİL, "ÖLÇÜLEMEDİ" YAZILIYOR — RAPOR KENDİ KENDİNİ ÇÜRÜTMÜYOR. Rakip fark tablosu bir raporda müşterinin KENDİ sütununa altı ✗ bastı ve "4 kalemde rakiplerin hepsi geçiyor, siz geçmiyorsunuz; en hızlı kapanacak fark burada" dedi. Birkaç sayfa sonra aynı raporun teknik denetimi aynı ana sayfa için 7214 karakter metin, Organization işaretlemesi, site haritası ve 6/7 doğrulanmış yapay zeka tarayıcı erişimi yazıyordu. İki bölüm aynı sayfa hakkında birbirinin tam tersini söylüyordu. Böyle bir raporu okuyan haklı olarak "bir yerde var diyorsunuz, öbür yerde yok" der ve rapordaki hiçbir sayıya güvenmez; iç çelişki, ölçüm hatasından daha pahalıdır — birincisi "yanılmışlar", ikincisi "okumamışlar" dedirtir. SEBEP: Bu tablo, ölçek simetrik olsun diye (sizi 12 sayfadan, rakibi tek sayfadan ölçüp yan yana koymak yanlış olurdu) ana sayfanızı AYRI bir istekle yeniden okur. O istek düştüğünde denetim yine de dolu bir sonuç döndürüyor — bütün kalemler "geçmedi", çünkü hiçbiri kanıtlanamamıştır — ve tablo bunu geçerli bir ölçüm sanıyordu. Oysa kanıtlayamamak ile yokluğunu kanıtlamak aynı şey değildir. Kural raporun başka yerlerinde zaten vardı ve bu tabloya bağlanmamıştı. Artık kalemleri okuyan tek noktada bağlı: okunamayan bir site ölçülmemiş sayılır, "–" basılır, fark sayımına girmez ve o taraftan hüküm ÇIKARILMAZ. Kendi tarafımız okunamadıysa rapor bunu adıyla söylüyor ve müşterinin soracağı soruyu önceden cevaplıyor: sütun boşsa sitenizde bir eksiklik olduğu için değil, o geçişteki okumamız sonuçlanmadığı içindir. Ayrıca yayın öncesi denetime yeni bir kontrol eklendi: iki okuma da başarılı olup aynı kalemde ters düşerse rapor açıklamadan basılamaz. KARARLILIK KIYASININ BAĞIMSIZLIĞI ARTIK ÖLÇÜLÜYOR, İDDİA EDİLMİYOR. Rapor kararlılık bölümünün hemen yanında "184 model çağrısının 164'ü önbellekten geldi" diyordu. Cümle doğruydu ama yanlış yerde duruyordu: o 164'ün kaçı kıyasa giren ÇEKİLİŞLERDİ, kaçı kategori çevirisi gibi ölçüm dışı bir adımdı — söylemiyorduk. İki ölçümün ham cevap özetlerinin farklı çıkması da tek başına yetmez; birkaç taze cevap bile özeti değiştirir. Artık her motor çağrısı hangi eksene ait olduğunu kaydediyor ve rapor kıyasa giren kümenin KENDİ sayısını yazıyor: "bu eksendeki 36 çağrının 36'sı motorlara yeniden soruldu; hiçbiri kaydedilmiş cevaptan gelmedi". Çekilişlerin yarısı ya da fazlası önbellekten geldiyse rapor kıyasın tam anlamıyla bağımsız olmadığını söylüyor ve farkın aylık karara dayanak yapılmamasını istiyor. Toplam çağrı sayısı da artık kapsamını söylüyor. YÖN DEĞİŞTİREN HÜCRE LİSTESİ ARTIK EKSİKSİZ. Kart "12 ortak hücrenin 7'si aynı" derken listede 4 satır vardı; okuyan 5 hücre bekliyor ve haklı olarak eksik hücreyi arıyordu. Liste sessizce ilk 4'e kırpılıyordu. Bir kararlılık mekanizmasının değeri elle doğrulanabilmesindedir; kırpma tam da onu götürüyordu. Kırpma kaldırıldı ve "aynı + değişen = ortak" aritmetiği yayın öncesi denetimde kontrol ediliyor. Ölçülen değerler bu sürümde değişmiyor; değişen şey ölçemediğimiz bir şeyi eksiklik diye yazmamamız ve raporun her satırının başka bir satır tarafından çürütülememesi.
KARŞILAŞTIRMA = ORTAK ÖLÇÜLEBİLİR HÜCRELER. ARTIK SİSTEMİN HER YERİNDE TEK KURAL. Bu sürüm üç ifadeyi düzeltiyor; üçü de aynı aileden — bir kural bir yerde kondu, aynı şeyi anlatan başka bir cümle eski hâlinde kaldı. (1) ÇEKİLİŞ İÇİ TUTARLILIK İLE TEKRARLANABİLİRLİK AYRILDI. Rapor bir sayfada "9/9 hücrede çekilişler aynı sonucu verdi — bu ölçüm tekrarlanabilir" derken, altı sayfa sonra aynı rapor "skor kararlılığı: düşük, %67'den %33'e" diyordu. İkisi de kendi içinde doğruydu ama aynı kelimeyi kullandıkları için rapor kendi kendisiyle çelişiyor görünüyordu. Ayrım şudur: bir koşunun İÇİNDEKİ üç çekilişin birbirini tutması, o koşunun iç tutarlılığıdır ve yalnız o koşuya aittir — üç çekiliş de aynı önbellek penceresinden gelmiş olabilir. TEKRARLANABİLİRLİK ise ancak BAĞIMSIZ ikinci bir koşuyla ölçülür. Cümle artık "bu koşudaki çekilişler kendi içinde tutarlı" diyor ve tekrarlanabilirliğin nerede ölçüldüğünü gösteriyor. (2) KARARLILIK KARTI KENDİ SAYISIYLA ÇELİŞİYORDU. Kart "Ham skorlar aynı paydadan gelmiyor" deyip hemen ardından "önceki ölçümde 9, bu ölçümde 9 hücre ölçülebildi" yazıyordu — iki sayı da 9. Sorun payda SAYISI değildi, ölçülebilen hücrelerin AYNI hücreler olmamasıydı: iki koşuda farklı hücrelerde cevap alınamamıştı ve ortak hücre yalnız 6 idi. Cümle artık sayılar eşitken "aynı sayıda hücreden hesaplandı (9 ve 9), ama ölçülebilen hücre kümeleri aynı değil" diyor ve kıyasın 6 ortak hücreden yapıldığını söylüyor. (3) YAN EKSEN KARARLILIĞI DA ORTAK HÜCRELERDEN OKUNUYOR — ÖLÇÜM BİÇİMİ DEĞİŞİKLİĞİ BUDUR. İkinci kategori bloğu "yan eksen kararlılığı: yüksek — geçen %13, bu ölçüm %17. Arada marka da, soru seti de, motor seti de değişmedi" yazdı. Üçüncü iddia yanlıştı: o turda Gemini düşmüştü ve iki yüzde farklı motor kümelerinden geliyordu. Yani "kararlılık" dediğimiz şeyin bir kısmı, ölçemediğimiz bir motorun yokluğuydu. Çekirdek ölçüm bu sorunu sürüm 139'da çözmüştü; kural yan eksene bağlanmamıştı. Yan eksen kararlılığı artık iki ölçümde de ölçülebilen ortak hücreler üzerinden hesaplanıyor, eşik ortak kümedeki bir hücrenin puanından alınıyor, düşen motor ADIYLA yazılıyor ve manşetteki iki ham yüzdenin doğrudan karşılaştırılamayacağı söyleniyor. Önceki ölçümün hücre dökümü kayıtlı değilse kıyas YAPILMIYOR ve sebebi yazılıyor: iki yüzdeyi yan yana koyup kararlılık hükmü kurmak, farkın ne kadarının markadan ne kadarının kapsamadan geldiğini bilmeden konuşmak olurdu. (4) SON SAYFA TAŞMASI KALKTI. Raporun kuyruğu (trend düğmesi, altındaki satır ve künye) tek parça değildi: künye kartın dışında ayrı bir bloktu ve sayfa kırılma engeli kapsayıcı sınırını aşamıyordu. PDF düğmenin ortasından bölünüyor, son sayfaya yalnız birkaç satır düşüyordu — 19 sayfalık bir rapor değil, 18 sayfa artı yanlış bir sayfa kırılması. Kuyruk artık tek blok ve bölünmüyor. Çekirdek skor, tanınırlık ve site puanı bu sürümde değişmiyor; değişen şey yan eksen kıyasının hangi hücrelerden yapıldığı ve raporun kendi sayılarını doğru anlatması.
MOTORLARA AYNI ANDA GÖNDERDİĞİMİZ İSTEK SAYISI 24'TEN 6'YA İNDİ: EKSİK KALAN HÜCRELERİN SEBEBİ BİZDİK. Rapor dört ekseni (marka, satın alma niyeti, ikinci kategori, ihracat) aynı anda ölçer. Her motora aynı anda kaç istek gidebileceğini sınırlayan bir kapı vardı ve doğru sayıyı biliyordu; ama kapı, motor listesi her kurulduğunda YENİDEN kuruluyordu ve her eksen kendi listesini kuruyordu. Yani dört eksen dört ayrı kapıdan geçiyor, tek bir motora aynı anda 6 değil 24 istek gidiyordu — kapının kapatmak için yazıldığı sayının hemen altı. Kodda "hangi aşama çağırırsa çağırsın bu sayıdan fazla gitmez" yazıyordu; ölçüm tam tersini söylüyordu. ARŞİV BUNU KANITLADI: son on iki ölçümde ÇEKİRDEK eksen — tek başına koşan tek eksen — hiçbir motorunu kaybetmedi. Kayıpların TAMAMI aynı anda koşan yan eksenlerde oldu: bir ölçümde ihracat setinde Gemini zaman aşımına uğradı ve Perplexity sağlayıcı istek limitine (429) takıldı, başka bir ölçümde niyet setinde Gemini düştü. 429 kalıcı bir engel değildir, "çok hızlı gidiyorsunuz" demektir; yani o hücreler motor bilmediği için değil, biz sıkıştırdığımız için boş kaldı. Aynı sebep marka ekseninde de görüldü: bir raporda boş kalan üç marka hücresinin üçü de zaman aşımıydı. Motor listesi artık rapor başına BİR kez kuruluyor ve bütün eksenlere aynı nesne olarak geçiyor; kapı gerçekten tek. Buna bağlı iki değişiklik daha: (1) Bir eksenin ölçüm süresi 45 saniyeden 90 saniyeye çıktı, çünkü paylaşımlı kapıda çağrı önce sıraya giriyor — burada büyüttüğümüz şey sağlayıcıya karşı bir sınır değil, kendimize koyduğumuz bir süredir. (2) Süre dolduğunda çağrının HİÇ BAŞLAYIP BAŞLAMADIĞINA bakılıyor: sırada beklerken düşen bir çağrı için rapor artık "zaman aşımı" demiyor, "bizim ölçüm sıramızda bekledi" diyor. Motor o soruyu hiç görmemişken sessizliği ona yazmak, ölçmediğimizi ölçmüş gibi sunmaktır. Kapı ayrıca kendini ölçmeye başladı (motor başına çağrı, gerçekleşen en yüksek eşzamanlılık, kuyruk uzunluğu ve bekleme süresi) — bir sonraki ayarı tahminle değil bu veriyle yapacağız. HESAPLAMA KURALLARI BU SÜRÜMDE DEĞİŞMİYOR: hiçbir ağırlık, hiçbir eşik, hiçbir payda kuralı oynamadı ve önceki aylarla kıyas açık kalıyor. Değişen şey KAPSAMA: daha az hücre boş kalacak, yani aynı yüzde daha çok ölçüme dayanacak. Eksik kalan hücre yine paydadan düşer.
KATEGORİ GÜVENİ İKİ SAAT İÇİNDE YÜKSEK'TEN ORTA'YA DÜŞTÜ — SİTEDE TEK KELİME DEĞİŞMEMİŞKEN. Aynı markanın aynı gün alınan iki raporunda kategori güveni farklı çıktı: öğlen YÜKSEK, iki saat sonra ORTA. Arada ne site değişti, ne soru seti, ne motor seti. Sebep bizim tarafımızdaydı ve sürüm 135'te biz koymuştuk. O sürümde "taze ölçüm" modunu ekledik: rapor yeniden istendiğinde motorlara aynı soruları YENİDEN sorup, önbellekten dönen eski cevapları kullanmayan bir mod. Amacı iki ölçümün gerçekten bağımsız olmasını sağlamaktı ve bu kısmı doğru çalışıyor. Ama bayrağı bir yere daha bağlamıştık: cevaplardan TÜRETİLEN bütün analizlerin önbelleğini de atlıyordu. Gerekçe kulağa doğru geliyordu — "cevaplar yeniyse, onlardan türeyen her şey de yeniden hesaplanmalı" — ama gereksizdi: o analizlerin önbellek anahtarı zaten cevapların kendisini içeriyor, yani cevaplar değişince kendiliğinden yeniden hesaplanıyorlar. Bayrağın tek GERÇEK etkisi, cevaplarla hiç ilgisi olmayan analizleri de yeniden hesaplatmasıydı; sitenin sektör teşhisi bunlardan biri ve kategori güveni doğrudan ondan türüyor. Kanıt arşivde: aynı markanın altı ölçümünün BEŞİNDE sektör teşhisi harfi harfine aynıydı; yalnız bir tanesinde farklıydı — ilk taze ölçümde. O çekilişte model teşhisi bir tık geniş kurdu ve fazladan iki genel kelime içeriyordu; "kategori fazla geniş" eşiği tam o iki kelimeyle aşıldı ve güven bir kademe düştü. Ölçemediğine dayanarak karar vermemek bu ürünün temel kuralı; kendi ölçüm aracımızın ölçtüğü şeyi oynatması bunun en sinsi hâli. Artık taze ölçüm YALNIZ motor cevaplarını tazeliyor: siteden türeyen teşhisler aynı gün içinde sabit kalıyor. Raporun "Analizleri yeniden türet" düğmesi eskisi gibi her şeyi yeniden hesaplatmaya devam ediyor — orada yeniden hesap müşterinin AÇIK isteğidir, yan etki değil. Bu sürümde hiçbir ölçüm biçimi ve hiçbir ağırlık değişmiyor; değişen şey, aynı gün iki kez rapor alındığında aramızdaki tek farkın motorların cevabı olması.
GLOBAL EKSEN KISMİ ÖLÇÜLDÜYSE ARTIK SÖYLENİYOR: "PAYDALAR AYNI" KOŞULSUZ YAZILMIYOR. Global pazar bölümü "paydalar aynı, yani iki yüzde aynı sayıda hücreden gelir" deyip hemen ardından "Türkiye pazarında %0, global pazarda %0" yazıyordu. Gerçek bir ölçümde global eksen YALNIZ İKİ MOTORLA ölçülmüştü: Gemini zaman aşımına uğradı, Perplexity sağlayıcı istek limitine (429) takıldı. Yani Türkiye 24 hücreden, global 12 hücreden geliyordu ve iki yüzde yan yana konunca global ölçüm dört motorla tamamlanmış gibi okunuyordu. Daha önemlisi: "globalde dört motorun tamamında %0" diyemiyoruz — ölçülemeyen iki motor cevap verseydi marka çıkabilirdi. Ölçemediğimizi ölçmüş gibi sunmak, bu ürünün kapatmaya çalıştığı hata sınıfının ta kendisidir. Blok artık kapsamayı okuyor: hangi motorların ölçülemediğini ADIYLA ve SEBEBİYLE yazıyor (zaman aşımı mı, sağlayıcı istek limiti mi — biri bizim tarafımızdaki aksaklık, öbürü sağlayıcı planı meselesi ve ikisi farklı işler), kaç hücreden hesaplandığını söylüyor ("12/24 hücreden"), sonucu "kısmi ölçüm" diye etiketliyor ve iki yüzdenin doğrudan karşılaştırılmamasını istiyor. "Paydalar aynı" cümlesi yalnız kapsama gerçekten tamken kuruluyor. Aynı kural ikinci kategori bloğunda zaten vardı; global eksene bağlanmamıştı — kuralı yazmak yetmiyor, kullanan her yola bağlamak gerekiyor. AYRICA KARARLILIK KARTININ KAPANIŞ CÜMLESİ DÜZELDİ: ortak hücrelerin tamamı aynı sonucu verdiği hâlde "ölçüm kısmen tekrarlanabilir görünüyor" yazıyordu. Sınırlı olan şey tekrarlanabilirlik değil KAPSAMA: cümle artık "ortak hücrelerde ölçüm yüksek düzeyde tekrarlanabilir; sınırlı olan şey kapsama" diyor. Ölçülen değerler bu sürümde değişmiyor; değişen şey kısmi ölçülen bir eksenin kısmi olduğunun söylenmesi.
CEVAPSIZ HÜCRENİN SEBEBİ ARTIK YAZILI: "CEVAP VERMEDİ" İLE "ZAMAN AŞIMINA UĞRADI" AYNI ŞEY DEĞİL. Sürüm 132'de cevapsız hücreyi tanınırlık paydasından düşürdük ve rapor "motor soruya hiç cevap vermedi" demeye başladı. Doğruydu ama eksikti ve cümle motorun bir KARARI gibi okunuyordu — oysa gerçek bir ölçümde 12 hücrenin 4'ü boş döndü, yani üçte biri, ve elimizde o boşluğun sebebi yoktu. Sebebi bilmeden ne müşteriye doğru şeyi söyleyebiliriz ("motor sizi anlatamadı" ile "bizim isteğimiz zaman aşımına uğradı" bambaşka iki cümledir; ilki marka hakkında bir bulgu, ikincisi bizim düzeltmemiz gereken bir aksaklık) ne de sistematikse düzeltebiliriz. KÖK SEBEP KODDAYDI: çekiliş çağrısı hatayı `.catch(() => "")` ile TAMAMEN yutuyordu — ne log, ne sebep. Yakalanan ama loglanmayan hata, görünmez bir davranış değişikliğidir. Artık her başarısız çağrının hatası sınıflandırılıyor (zaman aşımı, sağlayıcı kotası, sağlayıcı hatası, istek reddi, boş cevap, ölçüm bütçesinin dolması), hücrenin yanında saklanıyor ve loglanıyor. Aynı düzeltme uyarlamalı ikinci tur çağrısına da bağlandı: biri düzeltilip öbürü unutulsaydı sebep yarı yarıya kaybolurdu. Rapor artık "12 potansiyel hücrenin 4 tanesinde cevap alınamadı (3'i zaman aşımı, 1'i sağlayıcı hatası)" diyor; kararlılık satırındaki "zaman aşımı ya da sağlayıcı hatası" TAHMİNİ de kalktı, yerine ölçülen dağılım yazılıyor — artık tahmin etmemize gerek yok, ölçüyoruz. Ölçülen değerler bu sürümde değişmiyor; değişen şey boş kalan hücrenin sebebinin görünür olması.
YAN EKSEN KARARLILIĞI RAPORLANIYOR: TEK ÇEKİLİŞİN BEDELİ ARTIK ÖLÇÜLMÜŞ BİR OLGU. İkinci kategori, niyet seti ve global eksen tek çekilişle ölçülür — üç çekiliş bu eksenlerin maliyetini üçe katlardı — ve raporda bunu yazıyorduk, ama müşteri için soyut kalıyordu. Gerçek veri artık somut: aynı markanın ikinci kategorisi ardışık dört ölçümde %8, %17, %25 ve %13 çıktı. Arada marka da, soru seti de, motor seti de değişmedi. Rapor bu eksende artık bir kararlılık satırı gösteriyor: geçen ölçümün yüzdesi, bu ölçümünki ve aradaki farkın bir hücrenin puanına göre nerede durduğu. Fark bir hücrenin iki katından büyükse kararlılık DÜŞÜK yazılıyor ve şu cümle kuruluyor: bu oynaklık tek çekilişin doğal sonucudur ve tam olarak bu yüzden çekirdek ölçüm her soruyu her motora üç kez sorup hücreyi çoğunluk oyuyla karara bağlar. Böylece "tek çekiliş" etiketi bir uyarı olmaktan çıkıp müşterinin kendi verisinde gördüğü bir olguya dönüşüyor — ve çekirdek ölçümün neden daha pahalı yapıldığı kanıtlanmış oluyor. KIYAS AYNI SORU SETİNİ İSTER: ikinci kategori değiştiyse iki yüzde farklı şeyleri ölçüyordur ve kıyas yapılmaz, sebebi yazılır. Bu yüzdenin aylık performans kararına dayanak yapılmaması gerektiği ayrıca söyleniyor. Ölçülen değerler bu sürümde değişmiyor; değişen şey tek çekilişli eksenlerin oynaklığının görünür olması.
RAPORUN KENDİ SAYILARIYLA ÇELİŞTİĞİ ALTI YER KAPANDI. Taze ölçüm modu ilk kez gerçek bir markada çalıştırıldı ve dışarıdan gelen denetim raporun içinde altı iç tutarsızlık buldu. Hepsi aynı aileden: bir kural bir yerde güncellendi, aynı şeyi anlatan öbür cümle eski hâlinde kaldı. (1) EN AĞIRI: manşet tanınırlığı %50 derken metin "12 cevabın yalnızca 4 tanesi sizi doğru tanımladı — tanınırlık yüzdesi budur (4/12)" diyordu. 4/12 %33 eder. Sürüm 132 cevapsız hücreyi tanınırlık paydasından düşürmüştü ama bu bloktaki ÜÇ cümle hâlâ ham hücre sayısını basıyordu. Müşteri 4/12'yi görüp %50'nin hesabını sorgular ve haklı olarak bütün skora güvenmez. Payda artık tek kaynaktan geliyor ve cümle şöyle: "12 potansiyel hücrenin 4 tanesinde motor hiç cevap vermedi ve o hücreler skora dahil edilmedi. Ölçülebilen 8 hücrenin 4'ü sizi doğru ve ayırt edici biçimde tanımladı — tanınırlık yüzdesi budur (4/8)." (2) KARARLILIK KIYASI AYNI PAYDADAN YAPILMIYORDU. Önceki ölçüm 12 cevaplanmış hücrede %67, yeni ölçüm 8 hücrede %50 verdi ve rapor ikisini yan yana koyup "skor kararlılığı" hükmü kurdu. Bu elma-armut kıyasıydı: aradaki 17 puanın ne kadarının markadan, ne kadarının dört motorun bu kez cevap vermemesinden geldiği söylenemiyordu. Skor kararlılığı artık İKİ ÖLÇÜMDE DE ölçülebilen ortak hücreler üzerinden hesaplanıyor — aynı hücreler, aynı payda, gerçek kıyas. Gerçek vakada ortak 8 hücrede %63 → %50 çıkıyor. Ham skorlar gizlenmiyor: manşetteki iki yüzde ayrı bir satırda, hangi ölçümde kaç hücre ölçülebildiğiyle birlikte yazılıyor. (3) Kararlılık bölümünün kapanış cümlesi "hem toplam yüzde hem hücre dağılımı iki ölçümde birbirini tutuyor" diyordu — %67'den %50'ye düşen bir sayı için bu doğru değildi. Paydalar farklıysa artık "ölçüm kısmen tekrarlanabilir görünüyor" deniyor ve iki manşet yüzdesinin doğrudan yan yana konmaması isteniyor. (4) Taze ölçüm cümlesi "kaydedilmiş hiçbir cevap kullanılmadı" derken hemen altındaki satır "117 model çağrısının 3'ü önbellekten geldi" diyordu; ikisi ancak farklı kapsamları anlatıyorsa aynı anda doğru olabilir. Cümle artık kapsamını söylüyor: kararlılık kıyasına giren ölçüm sorularının tamamı yeniden soruldu; kategori çevirisi, sektör teşhisi ve varlık denetimi gibi ölçüm dışı adımlar ayrı çağrılardır ve girdileri değişmediyse kaydedilmiş cevabı okuyabilir. (5) Rapor "Bu ilk ölçümünüz" derken birkaç sayfa sonra önceki bir ölçümle kıyas gösteriyordu. Doğrusu şu ve artık öyle yazıyor: bu ilk RESMİ AYLIK ölçümdür; kararlılık bölümündeki önceki ölçüm, tekrarlanabilirliği sınamak için yapılmış bir doğrulama koşusudur ve aylık trende dahil değildir. (6) Kategori güveni bölümü "ikinci kategori ekleyebilirsiniz" diyordu, oysa raporda zaten bir ikinci kategori ölçülüyordu; cümle "mevcut kategorilerden birini yeniden tanımlayabilir ya da yeni bir kategori ekleyebilirsiniz" oldu. AYRICA İÇERİK BAŞLIĞINDA ÜÇÜNCÜ TUR: hedef soru "siklonik filtrasyon ile mekanik filtrasyon birlikte nasıl çalışır" iken başlık "Toz Toplama Sistemleri Üretimi adım adım nasıl yapılır" çıktı. Bu kez konu SEÇİMİ doğruydu — soru gerçekten toz toplama sistemleriyle ilgili — ama şablon yanlıştı: "nasıl üretilir" ile "nasıl çalışır" aynı şey değil. Kural genişletildi: soru, kategorinin adında olmayan kendi ayırt edici kelimelerini taşıyorsa kategori düzeyinde bir soru değildir ve başlık sorudan kurulur. Ölçülen değerler bu sürümde değişmiyor; değişen şey raporun kendi sayılarını doğru anlatması.
SAYIYI DEĞİŞTİREN BİR SÜRÜMDEN SONRA DA KIYAS MÜMKÜN: GEÇEN AY BUGÜNKÜ KURALLA YENİDEN HESAPLANIYOR. Sürüm 137 kıyası eksen bazında kırdı — sayısı değişmeyen bir sürüm artık trendi askıya almıyor. Geriye tek soru kalmıştı: sayı GERÇEKTEN değiştiyse ne olacak? Bugüne kadarki cevap "o ayla kıyaslamayız"dı. Doğru ama eksik: bazı değişiklikler arşivden geriye doğru uygulanabilir. Sürüm 132 tam olarak böyleydi — cevapsız hücre tanınırlık paydasından düştü, ama ölçümün kendisi (hangi hücrede tanındığınız) hiç değişmedi ve hücreler arşivde duruyor. O hâlde geçen ayın sayısını bugünkü kuralla yeniden kurup iki ayı gerçekten kıyaslayabiliriz. Gerçek bir vakada geçen ayın raporunda %42 yazıyordu; aynı ölçüm bugünkü kuralla %56 ediyor. Rapor artık bunu yapıyor ve HİÇBİRİNİ GİZLEMİYOR: eski sayıyı da yeni sayıyı da yazıyor, kaç cevapsız hücrenin paydadan düştüğünü söylüyor ve "o ay yapılan ölçüm değişmedi, yalnız aynı cetvelden okundu" diyor. Müşteri elinde geçen ayın raporunu tutuyor; iki sayı arasındaki farkın sebebi söylenmezse iki rapor birbiriyle çelişir. ÇIKARIM ÇAPRAZ DOĞRULANIYOR. Hücre başına "cevapsız" bayrağı sürüm 132'de kondu; öncesinde yok. Eski arşivde cevapsızlık, çoğunluk oyu kaydının yokluğundan okunuyor — bu çıkarım yalnız çekirdek ölçüm arşivinde geçerli, çünkü orada her hücre üç çekilişle ölçülür. Aynı ölçüm cevapsız hücre sayısını kararlılık özetinde ayrıca tuttuğu için iki sayı karşılaştırılıyor; tutmuyorsa hangi hücrenin cevapsız olduğunu bilmiyoruz demektir ve yeniden hesap YAPILMIYOR. Tahminle kurulmuş bir geçmiş, kırık bir trendden daha kötüdür: kırık trend "bilmiyoruz" der, uydurulmuş trend "biliyoruz" der. NEYİ YAPMIYORUZ: motor eklendiğinde geçen ayı yeni motorla hesaplamak (o motora geçen ay soru sorulmadı) ve sınıflandırma değiştiğinde hakem kararını yeniden üretmek (model çağrısıdır, arşivden çıkmaz). Bu iki durumda kıyas eskisi gibi kırık kalıyor ve rapor sebebini yazıyor. Ölçülen değerler bu sürümde değişmiyor; değişen şey geçmiş bir ölçümün bugünkü cetvelden okunabilmesi.
AYLAR ARASI KIYAS ARTIK EKSEN BAZINDA KIRILIYOR: SAYISI DEĞİŞMEYEN BİR SÜRÜM TRENDİ ASKIYA ALMIYOR. Kıyas kapısı bugüne kadar tek soru soruyordu: "ölçüm sürümü aynı mı?" Değilse rapor hem site skorunun hem tanınırlığın ay farkını gizliyor, üstüne "skorlama güncellendi, doğrudan kıyaslamıyoruz" notunu basıyor ve raporu insan denetimine düşürüyordu. Bu kural fazla kabaydı ve müşteriye zarar veriyordu: sürüm 128'den 136'ya kadar dokuz sürümün SEKİZİ notunda açıkça "Ölçülen değerler bu sürümde değişmiyor" yazıyor — değişen şey raporun dili, işin sırası, hangi bilginin görünür olduğuydu. Yalnız sürüm 132 gerçekten bir sayıyı değiştirdi (cevapsız hücre tanınırlık paydasından düştü). Yani trend ürününün asıl vaadi — aylar kıyaslanabilir — bizim kendi metin düzeltmelerimiz yüzünden sekiz sürüm boyunca askıya alınmıştı. Artık her sürüm HANGİ EKSENİN SAYISINI değiştirdiğini ayrıca beyan ediyor (site hazırlığı, keşif, tanınırlık, birleşik endeks) ve kıyas yalnız o eksende kırılıyor: site skoru değişmediyse site skoru kıyaslanır. Rapordaki açıklama da düzeldi — eskiden o eksene hiç dokunmamış olsa bile HER ZAMAN en son sürümün notu basılıyordu; müşteri "site skorunu kıyaslamıyoruz" cümlesinin altında önbellek yaşıyla ilgili bir açıklama okuyordu. Artık cetveli gerçekten değiştiren sürüm ve onun kendi açıklaması yazılıyor. Beyan ZORUNLU: bir test, tabandan bugünkü sürüme kadar her sürümün kaydını arıyor ve beyanın sürüm notuyla çelişmediğini denetliyor — sürüm artırıp etkisini yazmayan bir tur yeşile dönmüyor, çünkü "bilmiyoruz"u "değişmedi" saymak tam olarak düzeltmeye çalıştığımız hatanın kendisi olurdu. Taban sürüm 128: daha eskisinin etkisini geriye dönük sınıflandırmak, notlarını bugünkü gözle yeniden yorumlamak olurdu; o sürümlerle kıyas eskisi gibi tamamen kırık sayılıyor. Ayrıca bu tur, sürüm 134'te bu sayfaya verdiğim bir zarar bulundu ve onarıldı: yeni sürüm bloğu giriş paragrafının ortasına yerleşmiş, "Ağırlıklar, kale" diye yarım kalmış bir cümle bırakmış ve cümlenin geri kalanını üç blok sonraya atmıştı. İki sürüm boyunca yayında kaldı; sürüm notu testi listenin İÇERİĞİNİ arıyordu, YAPISINI değil. Artık listenin eksiksiz ve sıralı olduğunu, giriş paragrafının bölünmediğini de test zorluyor. Ölçülen değerler bu sürümde değişmiyor; değişen şey hangi ayın hangi ayla kıyaslanabildiği.
ÖNBELLEKTEN GELEN CEVAPLARIN YAŞI ARTIK YAZILI: BİR ÖLÇÜM TEK BİR ANA AİT OLMAYABİLİR. Sürüm 135'te her raporun kaç model çağrısının önbellekten geldiğini yazmaya başladık. Bu doğru ama eksikti: kaç cevabın kaydedilmiş olduğunu söylüyor, NE KADAR ESKİ olduğunu söylemiyordu. Motor cevapları yedi gün saklanır ve boş dönen çağrılar önbelleğe YAZILMAZ — yani bir sonraki çalıştırmada yeniden sorulur. Bunun sonucu şu: tek bir ölçümün içinde bir hücre altı günlük bir cevaptan, yanındaki aynı dakikada alınmış taze bir cevaptan gelebilir. "8 Eylül ölçümü" dediğimiz şey aslında birkaç güne yayılmış cevaplardan kurulmuş olabilir ve bunu söylemeden ölçümün hangi ana ait olduğu bilinemez. Gerçek vaka bunu göstermişti: iki rapor aynı ham cevap parmak izini taşırken ikinci kategori %17'den %25'e taşındı, çünkü önceki turda boş dönen iki çağrı bu kez cevap verdi. Üç değişiklik: (1) Önbelleğe yazılan her cevap artık yazılma zamanını taşıyor ve okunduğunda o zaman ölçüme geri geliyor. (2) Rapor en eski önbellek kaydının yaşını yazıyor ("bu cevapların en eskisi 6 günlük — yani bu ölçüm tek bir ana değil, bir zaman aralığına aittir"). Yaşı bilinmeyen kayıt için TAHMİN YÜRÜTÜLMÜYOR: damgadan önce yazılmış kayıtlar için rapor "yaşı kayıtlı değil" diyor ve kaç tanesinin yaşını bildiğimizi ayrıca yazıyor — bilinmeyeni taze saymak da eski saymak da uydurma olurdu. (3) Yol boyunca bir sayım hatası çıktı: Gemini'nin önbellek dalında ölçer kaydı HİÇ yoktu, yani o motorun bütün önbellek isabetleri sayılmıyordu ve "kaç çağrı önbellekten geldi" sayısı sistematik olarak eksik çıkıyordu. Bu da düzeltildi. Ölçülen değerler bu sürümde değişmiyor; değişen şey ölçümün hangi zaman aralığına ait olduğunun görünür olması.
TAZE ÖLÇÜM MODU: ARTIK MOTORLARA GERÇEKTEN YENİDEN SORABİLİYORUZ. YAN EKSENLERİN AYRI PARMAK İZİ VAR. (1) Sürüm 134'te kararlılık iddiasını durdurduk çünkü iki ölçüm bağımsız değildi: motor cevapları yedi gün önbellekte durur ve önbellek anahtarında tarih yoktur, yani aynı hafta ikinci kez çalışan bir ölçüm ilkinin cevaplarını geri okur. Doğru olan durmaktı ama yeterli değildi — kararlılığı ÖLÇEBİLMEK için önbelleği bilinçli olarak aşan bir çalıştırma gerekiyordu. Taze ölçüm modu bunu yapar: önbellek anahtarına çalıştırmaya özgü bir jeton eklenir, okuma zorunlu olarak ıskalar ve yazma ayrı bir yuvaya gider — yani normal önbellek bozulmaz ve normal ölçümler etkilenmez. Jeton yokken anahtar bugünküyle bayt bayt aynıdır. Jetonun çalıştırmaya özgü olması şart: sabit bir ek bütün taze ölçümleri aynı yuvaya bağlardı ve ikinci taze ölçüm birincinin cevaplarını okurdu — düzelttiğimiz hatanın bir kat derini. Ek, dört sağlayıcının BEŞ önbellek anahtarının hepsine birden bağlandı (Gemini'nin yazma anahtarı dahil): biri unutulsaydı ölçümün yarısı taze, yarısı yedi günlük cevaplardan kurulurdu. Taze ölçüm bir ölçüm kadar para harcar; bu yüzden aylık raporun varsayılanı değil, kalibrasyon aracıdır ve yönetim ekranından onay isteyerek çalıştırılır. Rapor taze ölçümü ayrıca yazar: "bu ölçüm önbelleği baypas etti, bütün sorular motorlara yeniden soruldu". Yönetim ekranındaki "Sıfırdan ölç" düğmesinin adı da düzeltildi — o düğme yalnız türetilmiş analizlerin günlük önbelleğini atlıyor, motorlara yeniden sormuyordu; adı artık "Analizleri yeniden türet". (2) Ham cevap parmak izi yalnız ÇEKİRDEK ölçümü imzalıyordu; ikinci kategori, niyet seti, site seti ve global eksen o imzanın dışındaydı ve sessizce değişebiliyordu. Gerçek vaka: iki rapor aynı ham cevap kimliğiyle çıktı ama ikinci kategori %17'den %25'e taşındı — sebebi, boş dönen iki çağrının önbelleğe YAZILMAMASI ve bir sonraki çalıştırmada yeniden sorulmasıydı. Aynı imza altında değişen bir sayı denetlenemez. Yan eksenler artık kendi parmak izini taşıyor ve raporun üst bilgisinde yazılı. Adı ne olduğunu söylüyor: yan eksenlerin ham cevapları arşivlenmediği için imzalanan şey hücre sonuçlarıdır, ham metin değil — imzalamadığımız bir şeyi imzalamış gibi göstermeyiz. Ölçülen değerler bu sürümde değişmiyor; değişen şey ölçümün yeniden üretilebilirliğinin nasıl kanıtlandığı.
ÖLÇÜM KARARLILIĞI ARTIK YALNIZ GERÇEKTEN BAĞIMSIZ İKİ ÖLÇÜMDE RAPORLANIYOR; KARŞILAŞTIRILAN ÖLÇÜMLER KİMLİĞİYLE YAZILIYOR; ÖNBELLEK PAYI AÇIKLANIYOR. KAPAKTA ANA PAZAR TEKTİR. (1) Sürüm 133'te eklenen ölçüm kararlılığı bölümü, iki ölçümü gerçekten bağımsız sanıyordu ve DEĞİLDİ. Motor cevapları YEDİ GÜN önbellekte durur ve önbellek anahtarı yalnız model + soru + çekiliş numarasıdır — içinde ne tarih ne ölçüm kimliği vardır. Yani aynı hafta içinde ikinci kez çalıştırılan bir ölçüm, ilkinin cevaplarını harfi harfine geri okur. Gerçek vaka: iki saat arayla alınan iki raporun ham cevap parmak izi aynıydı ve rapor buna rağmen "bu iki ölçüm arasında 2 saat var ve arada hiçbir iş yapılmadı" deyip %67 → %67'yi kararlılık kanıtı gibi sundu. Aynı veri kümesinin kendisiyle karşılaştırılması kararlılığı ölçmez; ölçtüğü tek şey önbelleğin çalıştığıdır. Bu, ürünün varlık sebebi olan kuralın ihlaliydi ve dışarıdan bir denetim yakaladı. Üç değişiklik: (a) İki ölçümün ham cevap parmak izleri AYNIYSA kararlılık raporlanmıyor; rapor sebebini yazıyor ("ikincisi motorlara yeniden sormadı, kaydedilmiş cevapları okudu"). Parmak izi bilinmiyorsa da raporlanmıyor — bilinmeyeni bağımsız saymak, düzelttiğimiz hatanın kendisi olurdu. (b) Bölüm artık HANGİ iki ölçümün karşılaştırıldığını kimlik ve saatle yazıyor ("Karşılaştırılan ölçüm A: … · 08 Eyl 12:24") ve ham cevap kümelerinin farklı mı aynı mı olduğunu açıkça gösteriyor: "2 saat arayla" demek, hangi iki çalıştırmadan bahsedildiğini söylemez ve iddiayı denetlenemez kılar. (c) Her raporda o ölçümün kaç model çağrısının önbellekten geldiği yazılıyor. Önbellek ölçümü ucuzlatır ve aynı gün yeniden rapor almayı mümkün kılar; ama bu, iki ölçümü bağımsız yapmaz ve müşteri bunu görmeden kararlılık iddiasını değerlendiremez. (2) Kapak "Ana pazar: Türkiye ve yurt dışı" diyordu; raporun kendisi ise Türkiye'nin ana pazar olduğunu, trendi onun taşıdığını ve globalin ayrı ölçülüp trende girmediğini yazıyor. İki ana pazar olmaz: kapak artık "Ana pazar (trendi taşır): Türkiye" ve ayrı bir satırda "Ek pazar: global — ayrı ölçülür, trende girmez" diyor. (3) İkinci kategori birincilden güçlü çıktığında stratejik karar kartı "tekrarlıyorsa birincil etiketiniz ölçümün odağını yanlış yere koyuyor demektir" diyordu. Bu fazla kesin bir hükümdü: bir marka iki kategoride birden çalışıyor ve yapay zeka şimdilik birinde daha güçlü ilişkilendiriyor olabilir. Cümle "birincil kategori seçiminizi yeniden değerlendirmeye değer" oldu ve ikinci ihtimal de yazılıyor. Ölçülen değerler bu sürümde değişmiyor; değişen şey hangi iddianın hangi kanıtla kurulduğu.
ÖLÇÜM KARARLILIĞI ARTIK İKİ AYRI SORU: SKOR DURUYOR MU, HÜCRELER DURUYOR MU. KAPAK HANGİ EKSENİ ÖLÇTÜĞÜMÜZÜ SATIR SATIR YAZIYOR. İKİ KATEGORİ AYRIŞINCA RAPOR KARARI GÖRÜNÜR KILIYOR, KARARI VERMİYOR. TEK ÇEKİLİŞLİ YÜZDE GÖRSEL OLARAK İŞARETLENİYOR. (1) Bugüne kadar yalnız ÇEKİLİŞ İÇİ kararlılık ölçülüyordu: aynı soru aynı motora üç kez soruldu, üçü aynı sonucu verdi mi. Bu, tek bir ölçümün kendi içinde ne kadar güvenilir olduğunu söyler ama asıl soruyu cevaplamaz: aynı ölçümü tekrarlasak aynı sonucu alır mıydık? Gerçek veri iki şey öğretti. Bir marka 81 dakika arayla iki kez ölçüldü ve toplam tanınırlık iki ölçümde de %67 çıktı — ama altındaki 12 hücrenin 2'si yön değiştirdi: bir motor bir soruda tanımayı bıraktı, başka bir motor başka bir soruda tanımaya başladı. Yani toplam skor kararlıyken kompozisyon oynaktı ve "skorunuz sabit" demek doğru ama eksikti. Rapor artık iki rozet gösteriyor — SKOR KARARLILIĞI ve HÜCRE KARARLILIĞI — ve yön değiştiren hücreleri motoruyla, sorusuyla adlandırıyor. Toplam kararlı ama kompozisyon oynaksa bunu açıkça söylüyor: bir motordaki kayıp başka bir motordaki kazançla örtülmüş olabilir. Ölçümler 48 saatten kısa aralıklıysa aradaki farkın iyileşme DEĞİL ölçümün kendi yayılımı olduğu yazılıyor. Bu ölçüm ek maliyet getirmiyor: her raporun render girdisi önizlemeler dahil zaten arşivleniyor ve ilk rapor insan denetiminden geçerken birden fazla ölçüm üretiliyor. Kıyas çerçeveye bağlı: önceki ölçüm tanınırlığın bugünkü tanımından farklı bir sürümle yapıldıysa (sürüm 132 cevapsız hücreyi paydadan düşürdü) kıyas yapılmıyor ve sebebi yazılıyor — kendi düzeltmemizi markanın değişimi gibi göstermek, düzelttiğimiz hatanın ta kendisi olurdu. (2) Kapakta tek satır vardı: "Ölçülen kategori: industrial fan manufacturers · Üst sektör: Endüstriyel Fan Üretimi". Okuyan haklı olarak ana skorun İngilizce terimle ölçüldüğünü sanıyordu; oysa trendi taşıyan çekirdek sorular Türkçeydi ve "Endüstriyel Fan Üretimi" diyordu — İngilizce terim AYRI bir eksen olan global ölçümün terimiydi. Rapor bunu on sayfa sonra doğru anlatıyordu ama çerçeve ilk üç saniyede kurulur. Kapak artık eksen eksen yazıyor: ana pazar, ana kategori (trendi taşıyan), global kategori, ikinci kategori ve beyan edilen sektör farklıysa o. (3) İki kategori ayrıştığında rapor "kazanç orada değil, geride kaldığınız tarafta" diyordu. Bu bir stratejik hükümdür ve ölçüm onu bilmiyor: markanın birincil kategorideki açığı kapatması da, yapay zekanın onu zaten ilişkilendirdiği ikinci kategoriyi sahiplenip büyütmesi de savunulabilir ve hangisinin ticari olarak değerli olduğu ölçümün dışındadır. Yerine STRATEJİK KARAR kartı geldi: iki seçenek yan yana yazılıyor, kategori değişirse trendin kırılacağı baştan söyleniyor ve karar vermeden önce ikinci kategori görünümünün bir sonraki ölçümde tekrar edip etmediğinin doğrulanması isteniyor. Karar müşteride kalıyor. (4) Tek çekilişle ölçülen eksenlerin yüzdesi metinde açıklanıyordu ama müşteri yüzdeyi 24 punto, açıklamayı 11 punto görüyordu — aynı marka aynı gün 81 dakika arayla ikinci kategoride %8 ve %17 ölçüldü. O yüzdelerin hemen altına "Tek çekiliş · yön gösterici" rozeti kondu: bu eksenin sayısı bir değer değil, bir yöndür. Ölçülen değerler bu sürümde değişmiyor; değişen şey hangi kararlılığın raporlandığı ve sayıların hangi çerçeveyle sunulduğu.
CEVAPSIZ HÜCRE ARTIK "TANINMADI" SAYILMIYOR — TANINIRLIK PAYDASI DEĞİŞTİ; İÇERİK BAŞLIĞININ KONUSU YARIŞMAYLA SEÇİLİYOR; FAQPage KURULUM TALİMATI TEK KARARDAN ÇIKIYOR. Bu sürüm TANINIRLIĞIN ÖLÇÜLME BİÇİMİNİ değiştirir: önceki aylarla tanınırlık kıyası bu sınırda kırılır ve rapor bunu ayrıca işaretler. (1) Bir marka 15 saat arayla iki kez ölçüldü ve tanınırlık %42'den %67'ye çıktı; arada marka da, kategori de, motor seti de, pazar da değişmemişti. Sebep paydaydı: ilk ölçümde 12 hücrenin 3'ünde motor soruya HİÇ cevap vermemişti (zaman aşımı ya da sağlayıcı hatası) ve o üç hücre skorda "tanınmadı" sayılmıştı. Yani 25 puanlık "değişimin" 14 puanı motorların değil bizim altyapımızın dalgalanmasıydı ve müşterinin aleyhine yazılmıştı. Bu, ürünün kendi kuralının ihlaliydi: ölçemediğimize dayanarak karar vermeyiz. Cevapsız hücre artık ölçülmemiş hücredir — tanınırlık paydasından, motor bazlı oranlardan ve kaynak oranından düşer; sayısı raporda yazılır ve aleyhinize yazılmadığı açıkça söylenir. Aynı veriyle o ölçüm %42 değil %56 olur. Hiçbir hücre cevaplanmadıysa artık "%0" değil "bu ölçümde ölçülemedi" denir: sıfır yazmak, ölçülmemiş bir şeyi ölçülmüş gibi göstermekti. Kararlılık paydası da tanınırlık paydasıyla eşitlendi; raporda artık tek payda var ve iki sayı aynı zeminden okunuyor. (2) İçerik işinin başlığı hedef soruyu okumuyordu: hedef soru "Endüstriyel toz toplama sistemlerinde siklonik filtrasyon ile mekanik filtreleme arasındaki fark nedir?" iken başlık "Endüstriyel Fan Üretimi için seçim kriterleri ve alternatiflerle farklar" çıktı. Sürüm 130'da bu kural konmuştu ama yalnız "nasıl yapılır" dalına bağlanmıştı; başlık üreten yirmiden fazla şablon var ve dal dal bağlamak tutmadı. İki değişiklik: konu artık şablonların hepsini besleyen TEK yerde çözülüyor, ve eşleşme "en az bir ortak kelime" yerine YARIŞMA: her aday kategori kaç kelimesiyle tutuyorsa o kadar puan alır, en yüksek kazanır. Böylece "endüstriyel" gibi iki dünyada da geçen bir sektör sıfatı tek başına kazandıramıyor; aynı ölçümde ölçtüğümüz İKİNCİ kategori soruyu daha iyi karşılıyorsa başlık onu adlandırıyor — uydurma bir ad değil, ölçülmüş bir kategori. Hiçbir kategori tutmuyorsa geniş etiket korunur (sürüm 110/112/113'te bilinçle seçilen etiket çöpe atılmaz); soruya çıpalanmış başlığı olan dal ise onu kullanır. Ayrıca içerik bağlamını iki üretici elle kuruyor ve altı sürümde beş kez ayrışıyordu; artık tek fonksiyondan çıkıyor ve testi kaynak taramasıyla zorluyor. (3) Sürüm 129'da "bozuk adrese işaretleme eklettirme" kuralı kondu ve dosya kutusuna bağlandı; aynı bloğun sonundaki yapılacaklar listesi eski cümlesini korudu. Müşteri bir sayfada "önce adresi temizleyin, işaretlemeyi temiz adrese ekleyin" okuyup bir sonraki sayfada "FAQPage kodunu /en/https-.../ sayfasının head bölümüne ekleyin" talimatını aldı — aynı dosya hakkında iki zıt talimat, aynı raporun iki sayfasında. İki metin artık tek fonksiyondan üretiliyor; ayrışmaları için fonksiyonun kendisinin değişmesi gerekir.
ÖZETTEKİ İŞ, GİRİLEMEYECEK BİR KAYNAĞIN ADIYLA YAZILMIYOR; YAN EKSENLERİN ÇEKİLİŞ SAYISI HER BÖLÜMDE YAZILI; BİRİNCİL KATEGORİDE HİÇ GÖRÜNMEYİP İKİNCİDE GÖRÜNMEK AÇIKÇA SÖYLENİYOR. (1) Yönetici özetinin "Bu ay ne yapacağız" listesinde ikinci sırada "Rakip sitesi: alfer.com.tr, erfgroup.com ve 7 tane daha — öncelik 2" yazıyordu; aynı kalemin gerekçesi iki satır aşağıda "oraya giremezsiniz" diyordu. Bir yapılacaklar listesinde madde olarak duran şey yapılabilir bir iş sanılır — müşteri ya rakibinin sitesine girmeye çalışır ya da listeye güvenmeyi bırakır. Müdahalesi dolaylı olan kaynak grupları (rakip sitesi, başka bir firmanın mağazası, forum, kamu kaynağı, bilimsel literatür, ansiklopedi, analist kuruluşu) artık özete kaynağın adıyla değil YAPILACAK İŞİN adıyla giriyor: "Rakip anlatısını kendi sayfalarınızda dengeleyin — rakip sitesi, 9 alan adı". Alan adları kaybolmuyor; site dışı bölümünde tam listesi ve tam gerekçesiyle duruyor. Eylem metni kaynak tipi tablosunun kendisine yazıldı: tabloya sonradan eklenen bir tip sessizce eski davranışa düşemez ve bunu test zorluyor. (2) YAN EKSENLER TEK ÇEKİLİŞLE ÖLÇÜLÜR VE ARTIK HER BÖLÜM BUNU SÖYLÜYOR. Çekirdek ölçüm her soruyu her motora üç kez sorup hücreyi çoğunluk oyuyla karara bağlar; ikinci kategori, global pazar ve genişletilmiş set tek çekilişle ölçülür — üç çekiliş bu eksenlerin maliyetini üçe katlardı. Bu fark yalnız global pazar bölümünde yazılıydı; ikinci kategori bölümü ise tam tersini söylüyordu: "Sorular birincil kategoriyle aynı kalıptan türetildi, bu yüzden iki yüzde doğrudan karşılaştırılabilir." Hücre sayısı gerçekten aynıydı ama çekiliş disiplini değildi: üç çekilişin çoğunluğuyla bulunan bir yüzde ile tek çekilişte bulunan bir yüzde aynı güvende değildir. "Doğrudan karşılaştırılabilir" ifadesi kaldırıldı; yerine iki yüzdenin aynı paydadan geldiği, ama küçük farkların ölçüm gürültüsü olabileceği yazılıyor. (3) Bir raporda birincil kategoride (endüstriyel fan üretimi) hiçbir cevapta görünmeyen marka, ikinci kategorisinde (toz toplama sistemleri) iki hücrede görünüyordu — yani motorların markayı saydığı TEK kategori ikincisiydi. Rapor iki sayıyı yan yana koyuyor ama bunu söylemiyordu. Artık söylüyor ve iki ihtimali birlikte yazıyor: pazar sizi ikinci kategorinin adıyla tanıyor olabilir (o zaman birincil etiketiniz ölçümün odağını yanlış yere koyuyordur) ya da tek çekilişte çıkmış bir görünme olabilir. Ölçüm bu ikisini ayırt etmediği için rapor karar VERMİYOR: birincil kategoriyi değiştirmeyi teklif ediyor, kararı müşteriye bırakıyor ve değişiklik hâlinde trendin kırılacağını baştan söylüyor. Yüzde yerine hücre adedi de yazılıyor — "%8" tek çekilişte iki hücre demektir ve yüzdeyi okuyan bunu göremez. Ölçülen değerler bu sürümde değişmiyor; değişen şey özetteki işin nasıl adlandırıldığı ve yan eksenlerin hangi güvenle sunulduğu.
İŞ LİSTESİ ARTIK SKORA GİRMEYEN KRİTİK BULGUYU DA GÖRÜYOR; İÇERİK İŞİNİN BAŞLIĞI HEDEF SORUYU OKUYOR. (1) Bir raporda teknik hazırlık %97'ydi ve puanlanan tek eksik FAQPage işaretlemesiydi (+3 puan); ay boyunca yapılacak tek teknik iş olarak müşteriye o gösterildi. Aynı rapor iki bölüm önce sekiz sayfanın adresinde tam URL gömülü olduğunu ve bunların temizlenip 301 verilmesi gerektiğini bulmuştu — ama o bulgu skora girmediği için iş listesine hiç giremiyordu. Kök sebep yapısaldı: iş listesi yalnız PUANLANAN kalemleri sıralıyordu, dolayısıyla "puanlanmıyor" ile "önemsiz" aynı şey sayılıyordu. Adres bozukluğu ise geçici bir işaretleme eksiğinden ağırdır: bağlantı verilebilirliği, tekilleştirme ve alıntılanabilirlik hep adrese bağlıdır ve adres değişince ona eklenen işaretleme taşınmak zorunda kalır. Puanlanmayan bulgular artık kendi etki ağırlıklarıyla puanlananların arasına giriyor; bozuk adres, düşük ağırlıklı işaretleme kalemlerinin önüne geçiyor ama motorların siteye hiç giremediği durumun (bot erişimi) arkasında kalıyor. Bu işlerin yanında PUAN YAZILMIYOR: skora girmeyen bir işi "+N puan" diye göstermek, yapıldığında skorun artacağı sözü verirdi. (2) İçerik reçetesindeki "nasıl yapılır" başlıkları gövdeden bağımsız üretiliyordu: başlık ölçülen kategorinin adından, içerik ise hedef sorudan kuruluyordu. Hedef soru "Farklı partikül boyutları için toz toplama sistemleri nasıl seçilir?" iken başlık "Endüstriyel Fan Üretimi adım adım nasıl yapılır" çıkabiliyordu — iki farklı ürün ailesi, tek bir iş kartı. Başlık artık hedef soruyla kategori konusunun aynı şeyden bahsedip bahsetmediğine bakıyor; bahsetmiyorsa başlık soruya çıpalanır ("… için kullanım rehberi", "… — süreç nasıl çalışır"), bahsediyorsa kategori başlığı korunur. Şablonun türü her iki durumda da başlıkta kalır, çünkü müşteriye hangi iskeletin yazılacağını o söyler. Ölçülen değerler bu sürümde değişmiyor; değişen şey iş listesine hangi bulgunun girdiği ve içerik işinin nasıl adlandırıldığı.
HAZIR DOSYA KURALI FAQPage'E DE BAĞLANDI; İŞARETLEME ARTIK DÜZELTİLECEK ADRESE EKLETTİRİLMİYOR. (1) Sürüm 101'de "bir çıktının durumu tektir: ya hazırdır ya kontrol gerektirir" kuralı kondu ama yalnız llms.txt'e bağlandı; FAQPage için hiç yazılmamıştı. Gerçek bir raporda iki zıt talimat yan yana çıktı: adım "raporun sonundaki hazır FAQPage kodunu kullanabilirsiniz: sayfanızdaki görünen metinle eşleştiği doğrulandı" derken, dosya bloğu aynı kodun üstüne "düzeltmeden yayımlamayın" damgası basıyordu — çünkü kodun içindeki "%35 enerji ve sarf tasarrufu" iddiası doğrulama bekliyordu. Aynı çıktı hakkında iki zıt talimat, raporun tamamına olan güveni götürür. Kural artık dosyadan bağımsız: bir dosyada uyarı varsa adım da "bu bir TASLAKTIR, uyarıyı giderdikten sonra yayımlayın" der. (2) FAQPage kodunun kaynağı, aynı raporun "adresi bozuk görünüyor, temizleyip 301 verin" dediği sayfa olabiliyordu: müşteri aynı anda "bu adresi değiştir" ve "bu adrese şema ekle" talimatı alıyordu. Kaynak sayfa bozuk adres listesindeyse rapor artık sırayı yazıyor: önce temiz adres ve eskisinden 301, işaretleme sonra — bozuk adrese eklenen işaretleme, adres değişince taşınmak zorunda kalır. Ölçülen değerler bu sürümde değişmiyor; değişen şey hazır dosyaların teslim dili ve uygulama sırası.
KATEGORİ GÜVENİ ARTIK SKORDAN ÖNCE OKUNUYOR; GÜVEN DÜŞÜKKEN ORTALAMA ENDEKS VERİLMİYOR. Rapor manşette "AI keşif %0" ve "GEO Hazırlık Endeksi %45" diyor, birkaç paragraf sonra ise "bu kategorinin sorularına dönen 8 rakibin 7'si yurt dışı merkezli, bu sizin rekabet ettiğiniz liste olmayabilir" diye uyarıyordu. Uyarı doğruydu ama SIRA tersti: müşteri önce sayıyı görüp aklında tutuyor, kategorinin doğrulanmadığını sonra okuyordu. Üç değişiklik: (1) Ölçülen kategorinin yanında artık "Kategori güveni: Yüksek / Orta / Düşük" satırı var ve skorların ne kadar yorumlanabilir olduğunu tek bakışta söylüyor. (2) Güven DÜŞÜKKEN ortalama endeks hiç verilmiyor — doğrulanmamış bir keşif yüzdesini site hazırlığıyla ortalamak, belirsizliği kesinliğe çevirir ve müşteri "GEO puanım 45" diye aklında tutar. O ölçümde iki sayı ayrı ayrı okunur: keşif (kategori doğrulanmadan yorumlanmamalı) ve hazırlık (bizim kontrolümüzde, güvenilir); yönetici özetinin manşeti de sayı yerine "Ön ölçüm — kategori doğrulaması gerekiyor" der. (3) ONAY BİR BEYANDIR, ÖLÇÜM BİR KANITTIR: kategori insan tarafından onaylanmış olsa bile ölçüm kategorinin fazla geniş olabileceğini gösteriyorsa güven düşük kalır ve rapor çelişkiyi açıkça yazar — gerçek bir vakada kategori raporun üretilmesinden beş dakika önce onaylanmıştı ve onaylayan kişi bu kanıtı henüz görmemişti. Ölçülen değerler bu sürümde değişmiyor; değişen şey hangi sayının manşete çıktığı ve neyin önce söylendiği.
İÇERİK ÖNERİLERİNDE "BU SORUNUN DOĞAL YERİ SİTENİZDE ZATEN VAR" HÜKMÜ ARTIK KELİMENİN CİNSİNE BAKIYOR. Eşleşme sayfanın adresinde geçen tek bir kelimeyle kurulabiliyordu ve gerçek bir raporda altı içerik önerisinin dördü aynı sayfayı gösterdi — marka kimliği sorusu ve endüstriyel siber güvenlik sorusu dahil — çünkü o adreste yalnız "çözümleri" kelimesi geçiyordu. Bir başka öneri, soruda "destek" kelimesi geçtiği için bir destek makalesine düştü. Kök sebep sayı değil, eşleşmeyi kuran kelimenin cinsiydi: "çözümleri" ve "endüstriyel" ölçtüğümüz KATEGORİNİN ADININ parçasıdır ve neredeyse her soruda geçer, yani sayfaları birbirinden ayırt etmez; "destek" ise adresin ÜST BÖLÜMÜDÜR ve o bölümdeki bütün yazılara uyar. İki filtre kondu: eşleşme adresin SON parçasında olmalı (üst bölüm adına düşen eşleşme sayfayı değil bölümü seçer) ve o ayın sorularının çoğunda geçen kelime elenir (o kelime kategorinin adıdır). Sayı eşiği koymadık: tek ama özgül bir kelime ("catering" → /pages/catering) hâlâ geçerli bir eşleşmedir. Kesin dil ("sayfanın içeriğini bu ölçümde okuduk") için sayfayı SEÇTİREN kelimenin gövdede de geçmesi aranır; "soruya ait herhangi bir kelime" kanıt sayılmaz, çünkü kategori kelimesi sitenin her sayfasında geçer. Ayrıca bir sayfa aynı raporda ikiden fazla içerik işine kaynak gösterilemez ve yeterince yakın bir sayfa bulunamadığında rapor bunu açıkça yazar: "Sitede bu soruya yeterince yakın bir kaynak sayfa bulamadık — yeni bir sayfa açmayı değerlendirin." Skorlar bu sürümde değişmiyor; değişen şey içerik önerilerinin hangi sayfaya bağlandığı ve hükmün dili.
GÜVENLİK ARTEFAKTI SAYFALARI DENETİM DIŞINA ALINDI. Bir sitedeki /bot_deception.html ucu (bot tuzağı/honeypot sınıfı bir güvenlik yapısı) normal içerik sayfası gibi işlendi: 'en zayıf sayfalar' listesine girip H1/meta eklenmesi önerildi ve üretilen llms.txt'te bağlantı olarak listelendi. İkisi de yanlış iştir — bir bot tuzağını 'optimize edin' demek müşteriye anlamsız iş yaptırır, llms.txt'e koymak ise motorlara tuzağın adresini göstermektir. Bilinen güvenlik-artefaktı adlandırmaları (bot-deception, honeypot, bot/spam/crawler-trap) artık sayfa örneklemine HİÇ alınmaz; skor, en-zayıf listesi, llms üretimi ve mevcut-sayfa eşleşmesi aynı listeden beslendiği için dört görünüm birden temizlenir. Liste bilerek DARDIR: 'trap' ya da 'challenge' gibi tek başına çok anlamlı kelimeler alınmadı — gerçek bir içerik sayfasını denetim dışına atmak, bir tuzağı içeride bırakmaktan daha kötüdür; emin olunamayan sayfa denetimde kalır. Sayfa-bazlı yüzdeler (başlık/meta/H1 oranları) artefaktsız hesaplandığı için bu kalemlerde önceki aya göre küçük farklar görülebilir.
ORGANIZATION ŞEMASI ÜRETİLEMEDİĞİNDE ARTIK ELİNİZ BOŞ KALMIYOR: DOĞRULANMIŞ ALANLARLA MİNİMAL ŞEMA VERİLİYOR VE EKSİK KALAN HER ALANIN SEBEBİ YAZILIYOR. (1) Şema üretimi düştüğünde (sağlayıcı hatası, zaman aşımı, bozuk çıktı) rapor yalnız 'bu ölçümde üretilemedi' diyor ve elinizde hiçbir şey kalmıyordu — oysa marka adınız ve site adresiniz her ölçümde doğrulanmış bilgidir. Artık bu durumda name ve url alanlarından kurulan geçerli bir minimal Organization şeması veriyoruz (kişisel markada Person); doğrulanmış Wikidata profiliniz varsa sameAs alanına o da eklenir. Koddaki her alan doğrulanmıştır ve kod olduğu gibi yayımlanabilir. (2) Minimal şemaya giremeyen her alan raporda sebebiyle listelenir — 'elimizde doğrulanmış bir logo adresi yok', 'elimizde doğrulanmış bir dış profil yok' gibi — ki eksikleri bir sonraki ölçümü beklemeden kendiniz tamamlayabilesiniz. Doğrulanmayan alan şemaya girmez ilkesi değişmedi: minimal şema da yalnız doğrulanmış bilgiden kurulur ve boş alan yazılmaz. Skorlar bu sürümde değişmiyor; değişen şey teslim edilen dosya ve raporun açıklamasıdır.
NİCEL KAPILAR ARTIK ÜRETİCİDEN RAPORA KAYIPSIZ AKIYOR; MEVCUT-SAYFA HÜKMÜ KANITINI YANINA YAZIYOR VE ÇELİŞKİ TUTARLILIK KONTROLÜNDE; SÜREÇ ŞABLONU MÜŞTERİ-TESLİMAT VARSAYMIYOR; PATCH AKIŞI KURULDU. (1) 'Başarı oranı nedir?' işine eklenen ölçülmüş-veri kapısı raporda görünmüyordu — kök, kapının üretilip YOLDA DÜŞMESİYDİ: plan kalemi ve yedek-yol önerisi ön koşul alanını taşımıyor, öneri denetleyicisi de gelen ön koşulu boş listeyle eziyordu. Üç halka onarıldı; kapı hangi üreticiden çıkarsa çıksın rapora ulaşır. (2) 'Doğal yeri sitenizde zaten var' hükmü artık kanıtını yanına yazar ('sayfanın içeriğini bu ölçümde okuduk ve soru içerikte karşılık buluyor'); ve yeni tutarlılık kontrolü, aynı sayfa için raporun başka bölümünde 'okunmadı' beyanı varsa çelişkiyi Final QA'ya düşürür — iki alt sistem aynı sayfa hakkında iki farklı kanıt beyanı basamaz. (3) Süreç-anlatımı şablonundaki 'müşteri her aşamada ne alır' cümlesi, kendi portföyünü geliştiren bir girişim stüdyosunu müşteriye teslimat yapan danışmanlığa çeviriyordu; şablon artık çıktı-ve-karar-kriteri diliyle konuşur ve müşteri teslimatını yalnız gerçekten hizmet veriliyorsa yazdırır. 'Aynı içerik şu soruları da karşılar' iddiası da 'dolaylı destekler'e yumuşatıldı — süreç sayfası sıralama sorusuna doğrudan cevap vermez. (4) Denetim düzeltmeleri için patch akışı: önizlemenin render girdisi de arşivlenir; bir metin/karar düzeltmesi artık ölçümü yeniden çalıştırmadan, kod düzeltmesi yayımlanıp AYNI girdinin yeniden render'ıyla uygulanır — ölçüm kimliği, ham cevaplar, skorlar ve kaynak listesi değişmez.
KİMLİK BULGUSU VARKEN ORGANIZATION ÖZET ÖNCELİĞİ ALIYOR; MEVCUT-SAYFA HÜKMÜ KANITA GÖRE KONUŞUYOR; YAKIN-KOPYA BAŞLIKLAR TEK İŞ; ORAN SORULARI ÖLÇÜLMÜŞ-SONUÇ KAPISINDA. (1) Motorlar markayı karıştırıyor ya da eski kapsamla anlatıyorken Organization işaretlemesi 12 puanlık ağırlık sırasını bekliyor ve yönetici özetinin ilk beşine hiç girmiyordu. Kimlik bulgusu varsa Organization artık ağırlığa bakılmadan en ağır teknik kalemin yanına alınır ve gerekçesi kimlik diliyle yazılır — yapısal kimlik beyanı karışıklığın ilk ilacıdır. (2) 'Bu sorunun doğal yeri sitenizde zaten var' hükmü yalnız URL eşleşmesinden kurulabiliyordu; sayfanın içeriği ölçümde okunmamışken kesin hüküm, raporun kendi 'okuyamadık' tespitiyle çelişiyordu. Kesin dil artık iki kanıt ister: sayfa metni ölçümde okunmuş VE soru içerikte karşılık buluyor; yoksa öneri koşullu kurulur ('sayfa soruya gerçekten cevap veriyorsa oraya ekleyin; vermiyorsa yeni sayfa açın'). (3) 'Nasıl çalışır: sürecin adımları' ile 'süreç: adım adım nasıl ilerliyor' aynı içeriği iki kez öneriyordu — başlık tekilleme birebir eşitlikle çalışıyordu. Yakın kopyalar artık kelime örtüşmesiyle yakalanır ve tek işte birleşir; düşen işin hedef sorusu ilk işe eklenir, soru kaybolmaz. (4) 'Başarı oranı nedir?' türü sorular ölçülmüş-sonuç kapısının dışında kalıyordu; oran ailesi desene eklendi ve şart netleşti: ölçülmüş veriniz yoksa sayı ya da ORAN yazmayın — başarıyı nasıl tanımladığınızı ve hangi ölçütleri izlediğinizi anlatın. Ayrıca 'ihtiyaç, ölçü ve kullanım amacı' ürün dili hizmet işletmelerine basılmıyor; hizmet dünyası kendi eşleştirme eksenleriyle (durum, aşama, hedef) konuşur.
TANINIRLIK ARTIK YALNIZ 'DOĞRU ŞİRKET BULUNDU MU' SORUSUNU ÖLÇÜYOR; KAPSAMIN GÜNCELLİĞİ AYRI SATIRDA. Bu sürüm tanınırlık TANIMINI değiştirir — önceki aylarla tanınırlık kıyası bu sınırda kırılır. (1) Motor doğru şirketi bulup ona ESKİ ya da olmayan bir işi atfettiğinde (ör. venture studio'ya dönüşmüş bir markayı hâlâ ajans geçmişiyle anlatmak) hücre tanınırlıktan düşürülüyordu; 12 cevabın 12'sinde doğru bulunan bir marka manşette 'tanınırlık %0 / Seviye 0' okuyor, aynı rapor iki satır sonra 'motor doğru markadan bahsediyor' diyerek kendisiyle çelişiyordu. İki eksen ayrıldı: TANINIRLIK doğru şirketin bulunmasını sayar; tanınan cevapların kaçının markayı GÜNCEL kapsamla anlattığı ayrı bir konumlandırma satırında raporlanır ve eski-kapsam cevaplar hücrede 'eski kapsam' rozetiyle işaretlenir. Yanlış şirket (karıştırma) tanınırlıktan düşmeye devam eder. (2) 'Venture studio' ile 'girişim stüdyosu' aynı kavramın iki dildeki adıdır; kelime karşılaştırması ikisini yabancı sayıp 'kategori geniş olabilir' uyarısı basıyordu. Kapsam karşılaştırmasına çok dilli kavram eşdeğerliği eklendi; 'geliştirme' gibi fonksiyon kelimeleri daraltma sinyali sayılmaz. (3) 'Ürün geliştirme' tanımındaki 'ürün' kelimesi bir girişim stüdyosunu üretici sanıp 'üretim tesisi, tedarikçi seçimi' şablonu öneriyordu; girişim stüdyosu hizmet tipidir. Regüle rapora özgü 'ilaçsız' örneği de yalnız regüle raporlarda basılır. (4) Üretilen Organization şemasında marka adı ölçülen görünür adla eşitlenir: modelin yazdığı farklı yazım sitede görünür biçimde geçiyorsa alternateName olarak korunur, geçmiyorsa şemaya alınmaz — kimliği karışan bir markada yeni ad varyantı üretilmez.
İÇERİK REÇETESİ ARTIK TAMAMEN ÖLÇÜMDEN TÜRETİLİYOR — ÜRETKEN MODEL İÇERİK KARARI VERMİYOR. Rapordaki içerik işleri iki kaynaktan gelebiliyordu: ölçümden türetilen belirlenimci şablonlar ve üretken modelin serbest önerileri. Model tarafı her üretimde farklı başlık, farklı talimat, daha önce hiç görülmemiş cümleler yazabiliyor; son beş markanın denetimlerinde bulunan içerik kusurlarının tamamı bu katmandan çıktı (doğrulanmamış kriter örnekleri, üst sektöre kaçan başlıklar, kapısız sağlık iddiaları). Belirlenimci yol ise aynı denetimlerde tek başına GÖNDERİLEBİLİR raporlar üretti. Karar verildi: içerik reçetesi artık YALNIZ ölçümden türetilir — hangi soruda görünmüyorsanız, o sorunun türüne (fiyat, karşılaştırma, güven, kullanım, sıralama, alternatif...) göre sabit kurallarla iş üretilir; başlık konusu ölçülen kategoridir, regülasyon kapıları aynı sertlikte uygulanır. Aynı ölçüm verisi artık her seferinde AYNI içerik listesini üretir; üretken model içerik seçiminde karar vermez. Skorlar, darboğaz seçimi, öneri sırası ve regülasyon uyarıları zaten kural tabanlıydı; bu sürümle içerik reçetesi de o hizaya girdi.
SEKTÖR TEŞHİSİ VE SİTE-TÜREVİ SORULAR KAYITTAN SÜRÜYOR; GÖNDERİLEN RAPORUN RENDER GİRDİSİ SAKLANIYOR VE BAYT BAYT YENİDEN ÜRETİLEBİLİYOR. (1) 'Sitenizin anlattığı iş' teşhisi bir model yargısıydı ve aynı sitede iki üretim farklı cümle, farklı kapsam, farklı türetilmiş sorular döndürebiliyordu — site-türevi soru seti her üretimde değişince o bölümün trendi kıyaslanamıyordu. Kategori sabitlemesiyle (sürüm 111) aynı kural teşhise de bağlandı: beyan değişmediği sürece teşhis (ad, kapsam, gerekçe VE türetilmiş dört soru) ilk karardan sürer, model yeniden çağrılmaz; beyan değişince yeniden türetilir. Aynı marka artık her ay aynı site-türevi sorularla ölçülür. (2) Determinizm altyapısı tamamlandı: rapor, tek bir JSON girdiden saf fonksiyonla render edilir (golden testler aynı girdinin iki render'ının bayt bayt eşitliğini zorlar) ve müşteriye giden her raporun render girdisi artık arşive yazılır. Yönetici, gönderilmiş bir raporu ölçümü tekrarlamadan, model çağırmadan, kaydedilen girdiden birebir yeniden üretebilir — 'aynı ölçüm verisinden her seferinde aynı rapor' şartı hem testte hem işletimde karşılanır.
ONAYLI-İDDİA KÜTÜĞÜ KURULDU: REGÜLE İDDİANIN YAYIM STATÜSÜ HER ÜRETİMDE YENİDEN TARTIŞILMIYOR. Regüle üründe raporun işaretlediği her iddia (etki mekanizması, endikasyon, güvenlik, reçete statüsü, bileşim) artık kalıcı bir kütüğe yazılır: iddia ilk görüldüğünde 'bekliyor' kaydı açılır ve admin listesinde birikir. Müşteri dayanağı (IFU, onaylı etiket, sertifika) gösterdiğinde iddia YALNIZ İNSAN kararıyla ve kanıt notu zorunlu tutularak 'onaylı' yapılır — sistemin hiçbir yolu kendi kendine onay yazamaz, çünkü sitede geçmek yayıma onaylı olmak değildir. Onaylı iddia sonraki raporlarda işaret almaz ve rozet bunu ayrı sayar: 'Regülasyon durumu: ⚠ N bekliyor · ✓ M iddia belgeyle onaylı.' Onay METNE bağlıdır: aynı iddia farklı kelimelerle yeniden yazılırsa yeni kayıt açılır ve yeniden onay ister — geniş onay verilmez, kanıt gücü müdahale gücünü belirler. Teknik altyapı: iddia aileleri (desen, ad, uyarı metni) tek tabloda toplandı; işaretleyici, envanter, sayaçlar ve kütük aynı aile tanımından konuşur. Bu, kaynak kütüğüyle (sürüm 98) ve kategori sabitlemesiyle (sürüm 111) aynı ilkenin üçüncü uygulamasıdır: karar bir kez verilir, kayda yazılır, her üretim oradan okur.
İŞARET ENVANTERİ, SAYAÇLAR VE 'DOĞRULANMASI GEREKENLER' TEK KAYNAKTAN; BİLEŞİM AİLESİ İNGİLİZCE OLUMSUZLAMAYI TANIYOR; KULLANIM REHBERİ KALIBI KAPILI; ALTERNATİF NİYETİ ROTASYONA GİRMİYOR. (1) 'Regülasyon durumu: 3 iddia bekliyor' sayacı, 'Dosyada doğrulanması gereken ifadeler' listesi ve dosyadaki gerçek [DOĞRULAYIN] işaretleri ÜÇ AYRI sistemden üretiliyordu — sayaç 3 derken liste başka iki aile adı gösteriyor, müşteri 'endikasyon nerede?' diye boşuna arıyordu. Üç görünüm artık tek kayıttan türetilir: dosyanın kendi işaretleri taranır, sayaç o envanterin regülasyon toplamıdır, liste o envanterin aile adlarıdır — birbirleriyle çelişemezler. Bu, onaylı-iddia kütüğünün ilk taşıdır. (2) 'No drugs, no preservatives' ve 'formulated with natural Bentonite' işaretsiz kalmıştı; bileşim ailesi İngilizce olumsuzlama (no/without drugs-preservatives) ve doğal-bileşen kalıplarını da tanır. (3) 'Kullanım rehberi: hangi durumda hangisi' işi kullanım-uygunluğu kapısı almadan çıkmıştı; senaryo/durum/rehber dili tek başına da kapı tetikler — 'kullanım senaryolarını yalnız IFU/onaylı kullanım amacı çerçevesinde anlatın; kişiye özel ürün seçimi tavsiyesi vermeyin.' Şart yönetici özetindeki yayım şartı satırına da yansır. (4) 'Leading X and their ALTERNATIVES' sorusu sıralama dalının editoryal rotasyonuna düşüp 'üretim ve kalite süreci' şablonunu çekmişti — hedef alternatiflerken reçete kurumsal güvenilirlik oldu. Karşılaştırma niyeti taşıyan sıralama soruları artık rotasyona girmez, kategori türlerini tarafsız anlatan karşılaştırma işine gider.
YAYIM ŞARTI YÖNETİCİ ÖZETİNE TAŞINDI; 'ÇIKARDIK' KELİME DÜZEYİNDE DENETLENİYOR; BİLEŞİM İDDİASI İÇERİK KAPISINDA; BİRİNCİ TARAF BAŞLIK KENDİNE UNVAN VEREMİYOR. (1) İlk sayfa 'raporun tamamını okumadan karar vermeniz için' diye söz veriyor; ama 'tıbbi cihaz sertifikasyonunu belirtin' özette şartsız dururken belge şartı ayrıntı kartında kalıyordu. Yüksek riskli ön koşul (sertifika, etkinlik, güvenlik, endikasyon, kullanım, bileşim) taşıyan işlerin özet gerekçesine artık 'Yayım şartı: ... doğrulanmadan yayımlamayın' satırı ekleniyor. (2) 'Reçeteden çıkardık' mesajının kalıntı kontrolü kelime öbeği arıyordu; 'mineral içeriği' örneği metinde 'doğal mineral formülasyonlu' olarak sürünce kaçıyordu. Kontrol kelime düzeyine indi; kalıntı varken mesaj koşullu şarta döner. (3) Reçetede kalan bileşim dili ('ilaçsız/doğal mineral formülasyonlu') artık kendi kapısını taşır: 'bileşim niteliği onaylı etiket/IFU ile birebir örtüşmeli; site metni tek başına dayanak değildir.' Hedef sorudan tetiklenmez — kategorinin adı ('drug-free ... sprays') ölçümdür, brief iddiası değil. (4) 'En Çok Önerilen / Güvenilir Drug-Free Burun Spreyler' gibi başlıklar markanın kendi sitesinde kendi kendine verilmiş sıralama-güven hükmü gibi okunur; sağlık sektörlerinde unvan öneki başlıktan otomatik düşer (hedef soruya dokunulmaz), düzeltme rapora yazılır.
'HAFİFLETİR' VE 'GÜVENLE' İDDİALARI KENDİ KANIT KAPILARINI ALIYOR; AİLE BAŞINA TEK UYARI; 'REÇETEDEN ÇIKARDIK' YALNIZ DOĞRUYSA SÖYLENİYOR. (1) 'Alerji semptomlarını nasıl hafiflettiği' ve 'kullanıcıların güvenle tercih edebileceği' dilini taşıyan içerik işi yalnız mekanizma ve endikasyon uyarısı alıyordu — oysa 'hafifletir' bir TEDAVİ SONUCU iddiasıdır (etkinlik kanıtı ister), 'güvenle' bir GÜVENLİK iddiasıdır (güvenlik kanıtı ister); mekanizmayı doğrulamak sonucu ve güvenliği doğrulamaz. Etkinlik ailesi hafifletme/rahatlatma/relief/alleviate dilini tanır; güvenlik ailesi içerik kapılarına eklendi ('güvenle/güvenli ifadesi onaylı etiket/IFU'daki güvenlik bilgisine dayanmalı'). Dört kanıt türü artık ayrı ayrı sorulur: etkinlik, güvenlik, mekanizma, endikasyon. (2) Aynı claim ailesi bir işte üç ayrı madde üretebiliyordu ('Alerji', 'alerji', 'allerg') — denetleyicinin anlamla değil kelime köküyle çalıştığı izlenimini veriyordu. Aile başına tek uyarı yazılır ve uyarılar müşteri dilinde aile adıyla basılır ('Endikasyon / alerji kullanım amacı' — ham 'allerg' etiketi değil). (3) Kriter süzgeci parantezdeki örnek listesini çıkarınca 'reçeteden çıkardık' diyordu; ama aynı kavramlar cümlenin akışında durabiliyordu ve üretici 'yazın' derken denetçi 'çıkardık' diyordu. Mesaj artık metni kontrol eder: kalıntı varsa 'örnek listesi çıkarıldı ama metinde aynı iddialar geçiyor — yalnız belgeli olanları yazın' denir; 'çıkardık' yalnız gerçekten çıktıysa söylenir.
SERTİFİKA/REGÜLASYON SINIFI İDDİASI HER ÜRETİCİ YOLDA TEK STATÜ; TÜREV İŞARET YALNIZ KAYNAK EKSİKLİĞİNDEN YAYILIYOR; ÜÇ SÜTUNLU TESLİM DURUMU. (1) Aynı Class IIa/MDR iddiası üç yolda üç ayrı muamele görüyordu: llms süzgeci cümleyi belge olmadan dosyaya sokmuyordu, site analizi gerekçesi 'sınıflandırması (Class IIa MDR) ile uyumludur' diye KESİN aktarıyordu, içerik önerisi ise müşteriye 'Class IIa sınıflandırmasını açıklayan paragraf ekleyin' diye kapısız reçete yazıyordu. İki boşluk kapandı: gerekçe süzgeci sınıfı olgu gibi aktaran dili de ayıklıyor (yalnız 'sertifikalı/sahip' fiillerini değil 'sınıflandırması/uyumludur/kapsamında' dilini de) ve içerik kapılarına sertifika ailesi eklendi — 'belgeyi doğrulamadan yayımlamayın; belgeniz yoksa bu bölümü hiç yazmayın.' (2) '12/12 satır doğrulandı' derken dosyanın ilk satırında 'spray gel iddiası doğrulanamadı' türev işareti duruyordu — çelişkinin kökü: yayılım mekanizması REGÜLASYON etiketli satırdan ikili alıp 'doğrulanamadı' sınıfında mesaj basıyordu. Yayılım artık yalnız gerçek kaynak-doğrulama işaretlerinden (bulunamadı/eşleşmedi) beslenir; regülasyon aileleri zaten her satırı bağımsız tarar. (3) Teslim durumu üç ayrı sütunla raporlanır — kök satır kaynak doğrulaması, bağımlı (türev) iddia sayısı, regülasyon incelemesi — hem kaynak kutusundaki rozette hem site yapılacaklarındaki aksiyon cümlesinde. Ayrıca tıbbi cihaz başlıklarında 'aktif bileşen' terimi farmakolojik çağrışım taşıdığı için 'bileşen'e çevriliyor; ölçümün hedef sorusuna dokunulmaz.
HEDEF SORU DA REGÜLASYON KAPISINDAN GEÇİYOR; SAĞLIK DESENLERİ İNGİLİZCEYİ DE TANIYOR; KAYNAK İŞARETİ REGÜLASYON İŞARETİNİ MASKELEMİYOR. (1) 'What is a natural nasal spray for pollen and dust mite allergies?' hedef sorulu içerik işi doğrulama kutusu olmadan çıktı — iki ayrı boşluğun kesişimiydi: sağlık doğrulama desenleri yalnız Türkçe yazılmıştı ('allergies' hiçbir kapıya çarpmıyordu) ve brief denetimi başlık/aksiyon/gerekçeyi tarayıp HEDEF SORUYU hiç taramıyordu. İkisi de kapandı: desen dünyası artık TR+EN (allergy, pollen, dust mite, hay fever, symptom, how does it work, suitable for, more effective...) ve hedef soru tıbbi endikasyon/etkinlik/güvenlik bağlamı taşıyorsa brief otomatik doğrulama kapısı alır. (2) 'Kimler için / hangi kullanım durumuna' başlığı kullanım deseninin dışında kalıyordu; desen genişletildi ve uyarı netleştirildi: 'Kullanım senaryolarını yalnız IFU/onaylı kullanım amacı çerçevesinde yazın; kişiye özel uygunluk tavsiyesi vermeyin.' (3) 'Well-established safety profile' satırı kaynak doğrulama işareti taşıdığı için regülasyon işaretleyicisi onu atlıyordu — kaynak statüsü regülasyon statüsünü maskeliyor, sayaç eksik sayıyordu. İki statü bağımsızdır: satır artık ikisini birden taşır ('sitede bulunamadı' VE 'güvenlik/tolerans iddiası — onaylı etiket/IFU ile karşılaştırın') ve regülasyon sayacı güvenlik/reçete iddialarını da eksiksiz sayar.
İŞARET YAYILIMI İÇERİK KELİMELERİYLE SINIRLANDI; İÇERİK KONUSU ÖLÇÜLEN KATEGORİNİN TÜRKÇE ADINI KULLANIYOR; llms.txt AKSİYONU İKİ TESLİM SÜTUNUNU BİRDEN SÖYLÜYOR. (1) Doğrulanamayan bir cümledeki 'the company' kelime çifti, yayılım mekanizmasıyla about-us satırındaki sıradan 'the company' tamlamasına 'doğrulanamadı' damgası bastı — 'the' bir iddia parçası değildir. Yayılım ikilileri artık yalnız İÇERİK kelimelerinden kurulur; İngilizce ve Türkçe işlev kelimeleri (the, and, for, ile, için, gibi...) ikiliye giremez. Gerçek iddia çiftleri ('swiss development', 'european manufacturing') yayılmaya devam eder. (2) İçerik başlıkları ölçülen kategoriye bağlanmıştı ama Türkçe karşılık site teşhisinden geliyordu ve 'drug-free' niteliği düşüyordu ('Alerjiye karşı burun spreyi...'). Kategori çevirisi artık ölçülen kategorinin Türkçe adını da üretir ve bu ad kategoriyle birlikte aylık kayda sabitlenir; başlıklar 'İlaçsız alerji burun spreyleri için...' diye tam granülerlikle çıkar — sektör → ölçülen kategori → içerik reçetesi zinciri hiçbir halkada bilgi kaybetmez. (3) Site tarafındaki llms.txt aksiyonu yalnız 'N satırı doğrulayamadık' diyordu; teslim durumunun ikinci sütunu (regülasyon teyidi bekleyen iddialar) aksiyon cümlesinde yoktu ve müşteri kaynak işaretini kapatınca dosyayı hazır sanabilirdi. Cümle iki sütunu birden sayar: 'N kaynak iddiasını doğrulayamadık; ayrıca M regülasyon iddiası onaylı etiket/IFU teyidi bekliyor — bunları kapatmadan yayımlamayın.'
AYNI ATOMİK İDDİA İKİ YERDE İKİ TERS STATÜ ALAMIYOR; İÇERİK KONUSU ÖLÇÜLEN KATEGORİYE KİLİTLENDİ; GÜVENLİK VE REÇETE İDDİALARI AYRI CLAIM AİLESİ. (1) Kısmi doğrulanan bir satırda ('yalnız şu bölümü bulunamadı: X — kalan bölümü doğrulandı') işaret yayılımı bütün satırdan kelime ikilisi çıkarıyordu; DOĞRULANMIŞ bölümün ikilisi ('was developed') başka bir satıra 'doğrulanamadı' damgası bastı — 'developed in Switzerland' iddiası dosyanın bir yerinde doğrulanmış, öbür yerinde doğrulanmamış göründü. Yayılımın kaynağı artık satır değil, satırın DOĞRULANAMAYAN bölümüdür: aynı atomik iddia dosyanın her yerinde tek statü taşır. (2) İçerik başlıklarını ölçülen kategoriye bağlayan kural modelin kapsam yargısına dayanıyordu; model 'uyumlu' deyince kural hiç tetiklenmedi ve başlıklar yine 'Tıbbi cihaz seçerken...' diye üst sektöre döndü. Kural deterministik yapıldı: ölçüm İngilizce kategoriyle kurulduysa içerik konusu ölçülen kategorinin dilinden (site teşhisinden) gelir — ölçülen kategori varsayılan konudur, beyan edilen sektör yalnız üst-veridir. Tek istisna bilinçli dar beyan: orada beyan korunur. (3) 'All its ingredients have a well-established safety profile' sitede geçse bile kanıtı site metni değil onaylı etiketin güvenlik verisidir; 'does not require a prescription' ise pazara göre değişen bir statüdür — bir ülkede reçetesiz olan başka pazarda farklı sınıfta olabilir. İki yeni işaret ailesi eklendi: güvenlik/tolerans iddiaları ('onaylı etiket/IFU'daki güvenlik bilgisiyle karşılaştırın') ve reçete/satış statüsü ('hedef pazarın mevzuatında teyit edin'); regülasyon sayacı bunları da sayar.
ÖLÇÜLEN KATEGORİ ARTIK HER ÜRETİMDE YENİDEN TÜRETİLMİYOR; ETKİ-MEKANİZMASI DESENİ CLAIM AİLESİ YAKALIYOR; REGÜLE KRİTER ÖRNEKLERİ KANITSIZ REÇETEYE GİREMİYOR. (1) İngilizce ölçüm kategorisi bir model çevirisinden geliyordu ve aynı markada iki üretim 'drug-free allergy nasal sprays' / 'drug-free nasal sprays' diye iki farklı genişlik döndürdü — manşetteki yüzdenin evreni, rakip kümesi ve bütün gelecek trend bu etikete bağlıyken etiket üretimden üretime oynuyordu. Kategori artık İLK türetildiği hâliyle aylık kayda yazılır ve beyan değişmediği sürece oradan okunur; modele yeniden sorulmaz. Beyan değişirse kategori onayı düşer ve rapor insan denetimine gider; ölçülen kategorinin ay içinde değişmesi ayrıca çerçeve sinyalidir — insan görmeden gönderilmez. (2) 'Creating a protective gel barrier' cümlesi etki-mekanizması kapısından kaçmıştı: desen 'creates' arıyordu, '-ing' biçimini almıyordu; 'protective barrier' arıyordu, araya 'gel' girince eşleşmiyordu. Desen kelime değil aile yakalar hâle getirildi: fiil kökleri (creat/form/build/oluştur) her çekimi, bariyer öbeği araya giren 1-2 sıfatı tolere eder. Regülasyon sayacı da bu sayede eksiksiz sayar. (3) Model bir tıbbi cihaza 'seçim kriterleri (pH, tuz konsantrasyonu, sterilite)' yazdı — kriterler komşu ürün ailesinden (salin spreyler) taşınmıştı ve sitede karşılığı yoktu. Regüle sektörde parantez içi kriter listeleri site kanıt havuzuna karşı denetlenir: doğrulanamayan liste reçeteden çıkar, yerine 'kriterleri onaylı etiketinizdeki özelliklerden seçin' ön koşulu yazılır. Site metni okunamadıysa süzgeç karar vermez — ölçemediğimize dayanarak içerik silmeyiz.
İÇERİK REÇETESİ ÖLÇÜLEN KATEGORİDEN GENİŞ KONUŞAMAZ; İKİ AYRI DURUM ROZETİ; RAKİP LİSTESİ KATEGORİ ALGISI DİYE ANLATILIYOR. (1) Kapak 'drug-free allergy nasal sprays' ölçtüğünü söylerken içerik başlıkları 'Tıbbi cihaz için seçim kriterleri' diye üst sektöre geri dönüyordu — ölçüm dar kategorideydi ama brief geniş etiketle yazılıyordu. Kural bağlandı: beyan sitenin gerçek işinden genişse içerik başlıklarının konusu da dar etiketten (site teşhisinden) gelir; içerik reçetesinin kategori seviyesi ölçülen kategoriden geniş olamaz ve 'sector' alanına geri dönemez. Dar hat beyanı bilinçli seçimdir, orada beyan korunur. (2) 'Kaynak doğrulaması 10/10' rozeti tek başına 'dosya hazır' diye okunuyordu; oysa aynı dosyada etiket/IFU teyidi bekleyen iddialar olabilir. Regüle üründe artık iki ayrı gösterge basılır: 'Kaynak doğrulaması: ✓ 10/10 · Regülasyon durumu: ⚠ N iddia IFU/etiket teyidi bekliyor' — bekleyen iddia yoksa bu da açıkça yazılır. (3) Motorların rakip listesi kategori algısıdır ve semantik olarak tamamen temiz olmayabilir — raporun kendi verisi bile bunu bazen ele verir (ör. 'ilaçsız' kategorisinde etken madde içeren bir ürünün sayılması). Rakip bölümüne açık cümle eklendi: listedeki her ismin ölçülen kategori tanımına gerçekten uyduğunu ayrıca doğrulamadık.
SEKTÖR İLE ÖLÇÜLEN KATEGORİ AYRI ALANLAR; SÜRELİ ETKİNLİK SORUSU KAPIDA; SİTE-DOĞRULAMASI İLE REGÜLASYON ONAYI AYRI SAYILIYOR; TAKSONOMİ ÖNCELİĞİ DÜZELDİ. (1) Kapak 'Tıbbi cihaz' yazarken çekirdek sorular 'drug-free allergy nasal spray' kategorisini ölçüyordu — %0'ın hangi evrene ait olduğu kapaktan okunamıyordu ve trend ileride 'kategori ne zaman değişti?' sorusuna düşerdi. Veri modeli ayrıldı: kapak artık ÖLÇÜLEN kategoriyi basar, beyan farklıysa 'Ölçülen kategori: X · Üst sektör: Y' satırı eklenir ve ölçüm kategorisi aylık kayda ayrı alan olarak yazılır. (2) 'How long does a protective nasal spray barrier last?' içerik işi, 'soruyu başlık yapın ve ilk paragrafta cevaplayın' talimatıyla kapısız çıkmıştı — süreli etkinlik iddiası en sert şartı ister. Tıbbi önkoşul deseni bariyer/film ailesini ve süre kalıplarını (how long / ne kadar sürer) kapsıyor; şart açık: 'onaylı etiket-IFU ya da izinli klinik kaynakta açık bir süre yoksa CEVAP VERMEYİN ve bu içeriği yayımlamayın.' Pil ömrü gibi sağlık dışı süre soruları kapıya girmez. (3) 'llms.txt 12/12 satır doğrulandı' özeti, etiket-teyit bekleyen iddiaları da kapsıyor gibi okunuyordu. İki soru ayrıldı: kaynak doğrulaması (ifade sitede var mı) ile regülasyon kontrolü (ifade yayıma onaylı mı) ayrı raporlanır — 'N iddia onaylı etiket/IFU teyidi bekliyor; sitede geçmek, yayıma onaylı olmak değildir.' (4) Hem bileşim hem mekanizma taşıyan satır ('a drug-free spray that creates a protective barrier') bileşim etiketi alıyordu; taksonomi önceliği düzeltildi — mekanizma kazanır, çünkü bileşim için formül yeter, mekanizma IFU/klinik ister; yanlış etiket yanlış kanıt aratır.
AYNI CLAIM AİLESİ AYNI KAPIDAN GEÇİYOR; BAŞLIK KENDİ BAŞINA İDDİA TAŞIMIYOR; BİLİMSEL LİTERATÜR AYRI KAYNAK SINIFI. (1) 'Protection against allergens' çıkarılırken 'creates a protective barrier on the nasal lining' etiketsiz kalmıştı — kelime varyasyonu classifier sonucunu değiştirmemeli. Bariyer/film oluşturma kalıbı (creates/forms a protective barrier/film ve Türkçe karşılıkları) artık etki-mekanizması ailesinin işaret sınıfında: satır silinmez (çoğu kez uygulama tarifiyle iç içedir), 'etki mekanizması iddiası — onaylı etiket/IFU ile birebir karşılaştırın' işareti alır. (2) Tıbbi kullanım-amacı önkoşulu başlığı da kapsıyor: '…ve Alerjiye Karşı Etkinliği' gibi başlıklar için açık yönerge yazılıyor — 'başlıkta etkinlik iddiası kullanmayın; Kullanım Amacı ya da Nasıl Çalışır? yazın' — doğrulama tamamlanmasa bile başlık kendi başına iddia taşımaz. (3) pmc.ncbi.nlm.nih.gov gibi adresler 'Resmî kurum / kamu kaynağı — istatistik bağlamı' diye anlatılıyordu; oysa bunlar klinik/akademik literatür barındırır. Yeni 'Bilimsel literatür / araştırma kaynağı' sınıfı eklendi (PMC, PubMed, NIH, ScienceDirect, Nature, DOI vb.): müdahale sonucu aynı (girilemez) ama anlatı doğru — motorun oradan okuması, sorunun literatür bağlamında cevaplandığını gösterir.
DARBOĞAZ NEDENSELLİĞİ İKİ AYAKLI; KULLANIM AMACI SATIR DÜZEYİNDE İŞARETLİ; REGÜLE ÖZET BAŞLIĞI 'KOŞULLU ADAY'; TON KUTUSU MOTOR-ALGISI NOTUYLA. (1) 'Kendi sitenize yazdığınız metin bu boşluğu kapatmaz' cümlesi mutlak bir nedensellikti — aynı rapor site içi rehberler de öneriyordu. Cümle üç yerde birden düzeltildi: 'kendi sitenizdeki içerik bu boşluğu tek başına kapatmaz; kategori görünürlüğü, sitenizdeki alıntılanabilir içerik ile üçüncü taraf kaynaklardaki varlığınızın toplamıdır.' (2) Ürün tanımının içine gömülü kullanım amacı ('nasal spray gel for allergen protection') yasak süzgecinden kaçıyordu — desen against/from bağlacı arıyordu, 'for' kalıbını kaçırdı. Bu satırlar çoğu kez ürün listesinin kendisidir: silinmez, satır düzeyinde işaretlenir ('kullanım amacı iddiası — onaylı etiket/IFU'daki endikasyon ifadesiyle birebir örtüştüğünü teyit edin'). İçerik reçetesine de dokuzuncu önkoşul türü eklendi: alerjen koruması, mukoza rahatlatma gibi tıbbi kullanım amacı ifadesi taşıyan her öneri etiket-IFU koşuluyla gelir — doğrulama kutusu artık yalnız etki mekanizmasına değil, cümledeki her sağlık iddiasına bakar. (3) Regüle üründe yönetici özetindeki ticari kanal başlığı bile koşulludur: 'Pazaryeri: amazon.com' yerine 'Koşullu aday — Pazaryeri: amazon.com' yazılır; ruhsat şartı yalnız detayda kalmaz. (4) Ton bölümü regüle üründe açık bir notla başlar: buradaki ifadeler motorların markayı nasıl anlattığını gösterir, DİVA'nın tıbbi iddia doğrulaması değildir — motor 'klinik kanıt' dese bile bu, iddianın onaylı olduğu anlamına gelmez.
REGÜLE KANIT POLİTİKASI TAMAMLANDI: KULLANIM AMACI/ETKİNLİK/KARŞILAŞTIRMA İDDİALARI DOSYAYA GİREMİYOR, BİLEŞİM NİTELİKLERİ ETİKET-TEYİT İŞARETİ ALIYOR, GLOBAL RAKİP LİSTESİ AI-KÜMESİ DİLİNDE. (1) Tıbbi cihaz süzgeci beş riskli kalıbı yakalarken 'physical protection against allergens', 'trapping inhaled particles', 'allergy relief', 'triple-action', 'alternative to drug-based treatments' ve 'without the typical side effects' üretilen dosyada kesin ifade olarak kalıyordu. Kural netleşti: sitede geçmesi, yayıma onaylı tıbbi iddia olması değildir — kullanım amacı, etkinlik/koruma, mekanik etki, karşılaştırmalı üstünlük ve yan-etki iddiaları yalnız onaylı etiket-IFU'dan gelebilir ve üretilen dosyaya hiçbir dilde giremez; çıkarılan her cümle sebebiyle rapora yazılır. 'Drug-free / preservative-free' sınıfı bileşim nitelikleri ise ürünün temel tanımıdır: silinmez, ama regüle üründe [DOĞRULAYIN — onaylı etiket/IFU ile birebir örtüştüğünü teyit edin] işaretiyle verilir. llms.txt kutusu da regüle üründe ek uyarıyla açılır: 'sitenizde geçmesi tek başına yayım onayı değildir.' (2) Rakip bölümündeki 'bu liste sizin rekabet ettiğiniz listedir' cümlesi fazla kesindi: yapay zekânın birlikte andığı küme ile gerçek ticari rekabet evreni aynı şey değildir. Cümle artık 'motorların global kategori cevaplarında birlikte değerlendirdiği marka kümesi' diyor; regüle üründe ek olarak 'ticari olarak doğrudan rakip sayılmaları, ilgili pazarlardaki ruhsat ve satış kapsamınıza bağlıdır' yazılıyor. (3) İngilizce ölçülen markanın llms.txt başlıkları Türkçe kalıyordu ('Ne yapıyoruz', 'Kurumsal'); dosya artık ölçüm diliyle bütün üretilir — başlıklar dahil (What we do / Products and services / Use cases / FAQ / Company / Contact / Legal).
REGÜLE ÜRÜN KATMANI: TİCARİ KANAL RUHSAT KOŞULLU, TIBBİ YASAKLAR İNGİLİZCEYİ DE KAPSIYOR, SERTİFİKA HÜKMÜ HİÇBİR ÇIKTIYA GİRMİYOR. (1) Pazarı 'global' kayıtlı bir tıbbi cihazda Amazon/Walmart ayın en önemli işi olarak basıldı — oysa aynı raporun llms.txt'i ürünün 'seçili ülkelerde' satıldığını söylüyordu. Görünürlük pazarı ile satış/ruhsat kapsamı aynı şey değildir: regüle sektörlerde pazaryeri, fiyat ve hizmet-pazarı kanalı işleri artık 'önce o pazarda satış ve ruhsat kapsamınızı doğrulayın — görünürlük ruhsatın önüne geçmez' koşuluyla başlar. (2) Tıbbi cihaz mevzuat yasakları Türkçe yazılmıştı ve İngilizce ölçülen markanın dosyasına 'suitable during pregnancy and breastfeeding', 'clinical proof of efficacy', 'well tolerated' ve 'protection for up to 4 hours' girdi. Desenler İngilizce karşılıklarıyla ve süreli-etkinlik kalıbıyla genişletildi: bu sınıf iddialar üretilen dosyaya hiçbir dilde giremez — onaylı etiket/IFU dayanağı olan müşteri kendi ifadesiyle ekler. (3) llms süzgeci 'Class IIa / MDR belge doğrulanmadan yazılamaz' diye cümle çıkarırken site teşhisi gerekçesi 'Class IIa MDR sertifikasyonuyla tıbbi cihaz niteliğini taşımaktadır' diye kesin hüküm basıyordu — aynı belge için iki statü. Sertifika/regülasyon hükmü taşıyan gerekçe cümleleri artık deterministik ayıklanıyor; belge doğrulanmadan hiçbir çıktı sertifikayı kesin gerçek yazamaz. (4) Mevcut-sayfa eşleştirmesi tarihli/blog yollarını dışlıyor: bir bahar-temizliği blog yazısı URL'sinde 'allergy' geçtiği için üretim-kalite içeriğinin hedef sayfası ilan edilmişti — blog yazısının niyeti tekildir, kanonik sayfa değildir. (5) Örneklemde aynı nihai sayfa bir kez sayılıyor: üç istek adresi yönlendirmeyle aynı sayfaya düşünce sayfa bazlı yüzdeler yamuluyordu.
KAPSAM DIŞLAMA HÜKMÜ ÇIKTIDAN AYIKLANIYOR; MEVCUT SAYFA VARKEN YENİ SAYFA AÇTIRILMIYOR; LİSTE DİLİ FIRST-PARTY BAŞLIĞA ÇEVRİLİYOR. Ölçülen yüzdeler değişmez. (1) İstem iki sürümdür 'komşu kalemi beyanın dışına atma' dediği halde model üçüncü kez 'beyan edilen butik pastane bu ek hizmetleri doğal olarak kapsamaz' yazdı. İsteme yazmak yetmez: 'kapsamaz / kapsamıyor /
SİTEYE ÖZGÜ SORULAR JENERİK ŞABLONDAN ÖNCE; KOMŞU KALEM 'BEYAN DIŞI' SAYILMIYOR; SEÇİM REHBERİ ALICI DİLİYLE. Ölçülen yüzdeler değişmez; üç düzeltme. (1) İçerik hedefleri kuralı genellendi: sitenin kendi anlattığı işten türetilen cevapsız sorular varken içerik reçetesi jenerik sektör şablonuna dönmez — bu kural sürüm 59'da yalnız kategori şüphesine bağlıydı; kategori temiz olan bir pastanede çekirdek soruların şablon dalları 'ürünlerin orijinalliği, stok, iade' ve 'saklama ve kullanım: sık yapılan hatalar' gibi e-ticaret kalıplarını basarken glutensiz seçenekler, şehir dışı teslimat, catering minimumu gibi sitenin gerçek cevapsız soruları sırada bekliyordu. Site türevi sorular artık her durumda önce gelir; çekirdek sorular kalan yeri doldurur. (2) Site teşhisi tuzlu bakery kalemlerini (börek, grissini) 'pastane dışı hizmet hatları' diye beyanın dışına atmış ve düğün pastasından 'düğün organizasyonu hizmeti' türetmişti. İstem kuralları netleşti (komşu kalem beyan dışı sayılmaz; üründen hizmet türetilmez) ve sonuca bakan denetim eklendi: beyan kelimesiyle kurulan 'X dışı' kalıbı Final QA bulgusu düşürür — 'yurt dışı' gibi meşru kullanımlar beyan kelimesi olmadığı için kapıya takılmaz. (3) Perakende seçim rehberi şablonu 'yeni başlayanlar için rehber' diyordu — soran kişi sektöre giren biri değil, alışveriş yapmak isteyen tüketicidir. Başlık 'seçerken nelere dikkat edilmeli?' oldu; içerik doğrulanabilir seçim kriterleri (çeşit, malzeme, özel sipariş, teslimat) üzerinden kurulur.
ÜRÜNÜN VARLIĞI SÜRECİNİ DOĞRULAMAZ; KATEGORİNİN DOĞAL KAPSAMI DAR YORUMLANMIYOR. Ölçülen yüzdeler değişmez; iki düzeltme. (1) Sitede düğün pastası doğrulandı diye içerik reçetesi 'tasarım süreci', 'hijyen ve kalite kontrol uygulamaları', 'üretim süreci', 'malzemelerin seçim kriterleri' anlattırabiliyordu. Bir ürünün ya da hizmetin sitede doğrulanmış olması; üretim sürecinin, kalite sisteminin ya da hijyen prosedürünün böyle işlediğini doğrulamaz — süreci yalnız müşteri bilir. Operasyon süreci anlatan her öneri artık doğrulama önkoşulu taşıyor: 'gerçekte uyguladığınız adımları yazın; uygulamadığınız bir prosedürü ya da sahip olmadığınız bir kalite/hijyen sistemini varmış gibi anlatmayın.' Önkoşul ailesinin sekizinci türü (bölgesel/fiyat/politika/özel ölçü/metrik/performans/hizmet varsayımı yanına). (2) Site teşhisi 'beyan edilen butik pastane bu yelpazenin yalnız bir bölümünü (pasta ve tatlılar) kapsarken' diye kesin daraltıcı hüküm verdi — oysa bir kategori adının doğal kapsamı geniş okunur: butik pastane kek, kurabiye, börek gibi komşu kalemleri de doğal olarak kapsar; 'dar' ancak beyan gerçekten ayrı bir iş kolunu (catering gibi) dışarıda bırakıyorsa denir. İstem kuralı kondu ve sonuca bakan denetim eklendi: 'yalnız ... kapsar' kalıbı Final QA bulgusu düşürür; doğru dil 'sitenin yelpazesi beyandan geniş görünüyor' betimlemesidir.
DOSYA DURUMU TEK SESLE KONUŞUYOR; MEVCUT SSS VARKEN YENİ SSS BLOGU ÖNERİLMİYOR. Ölçülen yüzdeler değişmez; iki cila. (1) Rapor bir yanda 'hazır llms.txt içeriğini olduğu gibi kullanabilirsiniz' derken dosya denetimi iki yazım farkı bulup 'yayımlamadan önce siz düzeltin' diyebiliyordu — bir çıktının durumu tektir: ya hazırdır ya kontrol gerektirir. Dosya denetimi yazım farkı ya da [DOĞRULAYIN] işareti bırakmışsa adım artık 'olduğu gibi' demiyor; 'içerik doğrulandı; belirtilen noktaları kontrol edip işaretleri kaldırdıktan sonra yayımlayın' diyor. (2) Sitede gerçek bir soru-cevap sayfası varken (kalem 14 puanı alıyor ve FAQPage kodu o sayfadan üretilmişken) içerik reçetesi 'sık sorulan sorular ve cevapları — blog yazısı' önerebiliyordu — Q&A kaynağını ikiye bölmek hem işaretlemeyi hem motor alıntısını zayıflatır. Öneri artık mevcut sayfayı genişletir: 'Mevcut SSS sayfanıza yeni soruları ekleyin — tek bir kaynak sayfada büyüyen SSS, ikiye bölünmüş içerikten güçlüdür.' Kural her iki üretici yola da bağlandı.
TEK KANIT KATMANI TAMAMLANDI: SATIR KARARI CÜMLE KARARIDIR; UYDURMA ÖZEL AD ŞEMAYA GİREMİYOR; SU GEÇİRMEZ SINIFI PERFORMANS SÜZGECİNDE. (1) Aynı cümle şemanın description doğrulamasında geçip llms.txt kaynak izinde düşebiliyordu: description cümleleri okunan sayfaların BİRLEŞİK havuzunda, kaynak izi satırları ise sayfa-başına en iyi eşleşmede değerlendiriliyordu — cümlenin yarısı bir sayfada yarısı öbüründeyse satır 'bulunamadı' çıkıyordu. Karar artık tek katmandan: satırın geçip geçmediğine, şemayla birebir aynı cümle-doğrulama fonksiyonu birleşik havuzda bakar; sayfa-başına eşleşme yalnız 'hangi sayfada bulundu' atfı için kullanılır. FAQ, llms ve şema aynı iddia için aynı hükmü verir; kısmen doğrulanan satırda işaret yalnız doğrulanamayan bölümü gösterir ve rapor kutusu bunu açıkça yazar. (2) 'Su geçirmez İmperteks kumaş...' cümlesi şemaya girmişti: su geçirmez, kumaş ve fermuar sitede gerçekten vardı, kelime örtüşmesi eşiği geçti — tek uydurma kelime ('İmperteks', sitenin hiçbir sayfasında geçmiyor) oranı düşürmedi. Yeni kapı: cümle ortasında büyük harfle başlayan bir özel ad okunan sayfaların hiçbirinde geçmiyorsa o cümle makine okunur iddiaya giremez — özel ad bir sıfat değil, doğrulanması gereken kimlik iddiasıdır. (3) 'Su geçirmez malzemenin sağladığı koruma avantajları' önerisi performans süzgecinden kaçıyordu; malzeme-özellik iddiaları (su geçirmez, sızdırmaz, leke tutmaz, darbe emici, koruma sağlar) desene eklendi — öneri artık 'yalnız doğrulanmış teknik bilginiz varsa yazın' koşulunu taşır.
KAYNAK İZİ KISMİ KARAR VERİYOR; ÜRETİM YERİ İDDİASI ŞEMAYA SIZAMIYOR; TÜREV İŞARETLER AÇIKLANIYOR. (1) llms.txt'in bir satırı 'doğrulanan ilk cümle + modelin eklediği kuyruk' olabiliyor ve bütün-satır oranı eşiğin altında kalınca işaret ilk cümleyi de suçluyordu — FAQPage aynı cümleyi sayfadan doğrularken kaynak izi 'bulunamadı' diyordu ve üç doğrulayıcı aynı iddia için üç farklı şey söylüyordu. Kaynak izi artık düşen satırı cümlelere bölüp kısmi karar veriyor: işaret notu 'satırın şu bölümü okuduğumuz sayfalarda bulunamadı: "..." — kalan bölümü doğrulandı' diyor. FAQ, llms ve şema aynı cümle hakkında aynı hükmü verir. (2) 'Türkiye'de yapılmaktadır' gibi üretim-yeri iddiaları 'üret' kökü taşımadığı için iş modeli süzgecinden kaçıyor ve kelime örtüşmesiyle şemanın description alanına girebiliyordu. Süzgece yerli-üretim kalıbı eklendi ve şema tanımı cümleleri artık iş modeli denetiminden de geçiyor: havuzda üretim kökü yoksa cümle şemaya girmez, llms.txt'te işaret alır. (3) Özet '9/10 satır doğrulandı' derken blokta üç [DOĞRULAYIN] etiketi görünebiliyordu: doğrulanamayan kök iddiadan türev satırlara yayılan işaretler ayrı bulgu değildir ve rapor bunu artık açıkça yazıyor — 'doğrulanamayan iddiaya bağlı N türev satır ihtiyaten işaretlendi; kök iddia doğrulanınca işaretleri birlikte kalkar.'
KAYNAK KÜTÜĞÜ: ALAN ADI SINIFLARI KALICI VE MARKALAR-ARASI ORTAK. 'Motorlar bu cevapları nereden okudu' ve 'Yapılacaklar · site dışı' bölümlerindeki alan adları artık her raporda sıfırdan tahmin edilmiyor. Denetimlerde en çok tekrarlayan hata sınıfı buydu: alan adı tahmini bir nakliyat firmasını basın, bir rakibi dizin yapabiliyordu ve aynı alan iki raporda iki farklı kimliğe bürünebiliyordu. Yeni yapı üç katmanlı: (1) Kalıcı kaynak kütüğü — bir alanın kim olduğu bir kez öğrenilir ve bütün markalara, bütün aylara taşınır. Kanıt merdiveni sabit: yönetici kararı > bilinen platform listesi > sayfası okundu > kamu üst alanı > alan adı tahmini; zayıf kanıt güçlüyü asla ezemez. Rapor içinde okunan her sayfa kütüğe yazılır. (2) Gece okuma kuyruğu — raporda tahmin seviyesinde kalan alanlar kuyruğa girer, her gece sayfaları açılıp okunur ve kütüğe kesin sınıf yazılır: bir sonraki rapor tahminle değil okumayla çıkar, 'önce açıp doğrulayın' ödevi müşteriden sisteme döner. Üç kez okunamayan alan bırakılır ve tahmin (aday) diliyle kalır. (3) Yönetici ekranı — sınıf düzeltmesi tek tıkla verilir, insan kanıtı olarak yazılır ve o alanın geçtiği her markanın bir sonraki raporuna yansır. Rapor dili kanıtı izler: sayfası okunmuş ya da yönetici onaylı kaynak kesin dille, tahmin seviyesindeki kaynak 'aday — doğrulayın' diliyle anlatılır; bu kural artık tek kayıttan beslenir.
İLETİŞİM DOĞRULAMASI GERÇEKTEN ÇALIŞIYOR; ŞEMA TANIMI CÜMLE CÜMLE DOĞRULANIYOR. (1) Sitede gerçekten duran telefon, e-posta ve adres her raporda 'okuduğumuz sayfalarda bulunamadı — kontrol edin' işareti alıyordu. Sebep bir tip uyumsuzluğuydu: doğrulayıcıya sayfa metinleri nesne olarak geçiyordu, fonksiyon düz metin bekliyordu ve karşılaştırma hiç yapılmadan her şey 'bulunamadı' çıkıyordu — testler düz metinle yazıldığı için hatayı görmedi. Doğrulayıcı artık iki biçimi de tanıyor; ayrıca '+90 532 …' ile '0532 …' aynı numaradır: telefon karşılaştırması son 10 haneye bakıyor, ülke kodu farkı 'bulunamadı' üretmiyor. Bu düzeltmeyle şema-llms çelişkisi de kapanıyor: hazır Organization şemasındaki iletişim zaten sitede doğrulanarak tutuluyordu (sürüm 96), yanındaki yanlış 'bulunamadı' uyarıları kalkıyor — iki bölüm aynı kanıttan aynı sonucu söylüyor. (2) Şemanın tanım alanı bütün olarak doğrulanıyordu: sitede birebir duran ilk cümle, modelin eklediği doğrulanamayan kuyruk yüzünden eşiğin bir puan altında kalınca tümüyle atılıyordu — FAQ aynı cümleyi doğrularken description siliniyordu. Tanım artık cümle cümle doğrulanıyor: sitede karşılığı olan cümle şemada kalır, doğrulanamayan cümle atılır ve rapor ne atıldığını yazar. Sonuç: description alanı sitedeki sağlam tanımıyla geri geldi, doğrulama tek kanıt havuzundan tek mantıkla çalışıyor.
DOĞRULANMAYAN İLETİŞİM ŞEMAYA GİREMİYOR; BÜTÜN DOĞRULAYICILAR AYNI KANIT HAVUZUNDAN OKUYOR. (1) Rapor bir sayfada telefonun, e-postanın ve adresin okunan sayfalarda bulunamadığını yazıp 'yayımlamadan önce kontrol edin' derken, iki sayfa sonraki hazır Organization JSON-LD aynı değerleri işaretsiz kesin veri olarak taşıyor ve 'kodu olduğu gibi ekleyin' diyordu. Description için kurulmuş kural (doğrulanamayan alan şemadan çıkar) iletişim alanlarına bağlanmamıştı. Şemada [DOĞRULAYIN] işareti diye bir şey olamaz — alan ya vardır ya yoktur: okunan sayfalarda bulunamayan telefon, e-posta ve açık adres artık şemadan çıkarılıyor; rapor çıkarılan değerleri ayrı bir kutuda gösteriyor ('doğruysa alanı bu değerle geri ekleyin; siteye de yazarsanız bir sonraki ölçümde otomatik doluruz'). Final QA'ya kritik kontrol bağlandı: doğrulanmamış iletişim taşıyan şema gönderimi durdurur. (2) Aynı cümle bir bölümde 'doğrulandı' (FAQPage /soru-cevap sayfasından üretildi) öbür bölümde 'sitede bulunamadı' (llms.txt kaynak izi) çıkıyordu. Sebep kanıt havuzu farkıydı: kaynak izi 20 sayfa × 3000 karakterlik kırpılmış havuza bakarken FAQ üretimi tam sayfa metnini görüyordu — 23 sayfalık örneklemde 3 sayfa havuz dışında kalmıştı ve uzun sayfalarda cümleler tavana takılıyordu. Havuz artık örneklemin tamamını kapsıyor (40 sayfaya kadar) ve SSS/kurumsal gibi öncelikli sayfalarda sayfa başına metin sınırı iki katına çıktı. Bunun yan etkisi olumlu: sitede gerçekten geçen kurumsal tanım cümleleri artık doğrulanıp şemanın description alanında kalabiliyor.
'SORU-CEVAP' ADLI SAYFA SSS OLARAK TANINIYOR; URL'LER YAZIM DENETİMİNDEN VE TÜRKÇE KARAKTER TUZAĞINDAN ÇIKTI; DEĞİŞEBİLEN VERİ BLOG'A GÖMÜLMÜYOR. Teknik skor bu düzeltmeden ETKİLENEBİLİR: soru-cevap kalemi bazı sitelerde artık geçer. (1) Bir sitenin /soru-cevap sayfası okunduğu halde 'okuduğumuz 23 sayfanın hiçbirinde soru-cevap bölümü yok' dendi ve 14 puanlık kalem düşürüldü — aynı raporun teslim ettiği llms.txt o sayfayı 'Sık sorulan sorular ve cevapları' diye listeliyordu. Sebep ibare kalıbıydı: tespit yalnız 'sıkça sorulan / SSS / frequently asked' ifadelerini arıyordu; sayfanın adı 'Soru-Cevap' olunca kaçırdı. Kalıba soru-cevap ve 'sık sorulan' eklendi; içerik kanıtı yine sorunun kendisinden gelir, ibare tek başına puan getirmez. Tutarlılık kontrolü de ifadeye değil iddiaya bakacak şekilde genişletildi: kalem düşükken hazır dosya bir SSS sayfası listeliyorsa Final QA bulgusu düşer. (2) İki URL düzeltmesi: 'aydınlatma-metni' (Türkçe ı) 404 verirken sitenin gerçek adresi 'aydinlatma-metni' elimizdeydi ama eşleşemedi — adres karşılaştırması artık Türkçe karakterleri ASCII'ye katlıyor ve yüzde-kodlamayı çözüyor; kırık satır silinmek yerine doğru adrese düzeltilir. Ayrıca yazım denetimi URL'lerin içindeki ifadeleri ('kullanim-ozelligi') 'yazım farkı — siz düzeltin' diye işaretliyordu; slug'ı Türkçe imlaya çevirmek çalışan bağlantıyı bozar — adresler yazım denetiminden tümüyle çıkarıldı, denetim yalnız düz yazıya bakar. (3) 'Hangi boyutlarda ve renklerde?', 'kaç parça?', 'kargo ücreti nedir?' gibi sorular blog yazısı olarak reçeteleniyordu; bunlar değişebilen ürün/politika verisidir ve blogda eskir. Soru niyeti içerik tipini belirler: ürün özellik soruları 'ürün sayfası' işi (varyant listesi, ölçü tablosu), kargo/teslimat/iade soruları 'politika / SSS' işi olarak reçetelenir — veri değiştiğinde tek yerden güncellenir.
JENERİK ADIN SÖZLÜK TANIMI TANINMA SAYILMIYOR; ALAN ADI TAHMİNLİ BASIN 'ADAY'; BOT ERİŞİMİNDE BELİRSİZLİK SKORUN YANINDA. Tanınırlık yüzdesi ve görünürlük basamağı bu düzeltmeden ETKİLENEBİLİR: adı jenerik kelimelerden oluşan markalarda önceki ölçümlerin tanınırlığı olduğundan yüksek çıkmış olabilir. (1) 'Taşınırken Evden Eve Nakliyat nedir?' sorusuna motor 'taşınırken evden eve nakliyat, bir kişinin veya ailenin eşyalarının taşınması sürecini kapsayan hizmetler bütünüdür' dedi ve bu cevap tanınma sayıldı — cevap şirketi değil, marka adındaki jenerik ifadeyi bir hizmet türü olarak tanımlıyordu. Hakem isteminde kural vardı; yetmedi. Artık deterministik bir kapı hakemden bağımsız çalışıyor: marka adının hemen ardından sözlük-tanımı kalıbı gelen ve şirket dili (firmadır, kurulmuştur, merkezli...) taşımayan cevap tanınma sayılmaz, 'genel kavram' olarak kimlik karışıklığı bölümüne düşer. Kural: marka adının kelimelerini kullanmak markayı tanımak değildir; cevap şirkete özgü en az bir ayırt edici bilgi vermiyorsa tanınma yoktur. (2) İki nakliyat firması (anadoluexpressnakliyat.com, cihanexpress.net) 'press' alt dizisi 'express' içinde eşleştiği için 'Basın / haber' çıktı ve müşteri onlara bülten göndermeye yönlendirildi. 'xpress' geçen alan adları artık basın eşleşmesine giremez; ayrıca alan adı tahminiyle bulunan basın kaynakları 'Basın / haber adayı' adıyla ve 'önce doğrulayın — aynı kategoride bir firmanın sitesi de çıkabilir' koşuluyla listelenir (pazaryeri adayı kuralının basın ayağı). Sayfası okunanlar kesin adla gelir. (3) Bir tarayıcı hız sınırı (HTTP 429) nedeniyle doğrulanamadığında teknik kalem geçmeye devam eder (kalıcı engel yok) ama iddia ölçülen kadar yazılır: kalem açıklaması '6/7 tarayıcı doğrulandı; bu kalem kalıcı engel yok anlamına gelir, 7/7 kesin giriyor anlamına gelmez' der ve yönetici özetindeki teknik skorun yanında 'N erişim kontrolü belirsiz' notu görünür.
DAR HİZMET HATTI TEK METODOLOJİYLE KONUŞUYOR; TON EVRENİ AÇIKÇA YAZILIYOR. Ölçülen yüzdeler değişmez; üç düzeltme. (1) Sayfa 3 'bu kategori işinizin tamamını değil belirli bir hizmet hattını ölçüyor; stratejikse korunabilir' derken içerik bölümündeki not aynı kategoriye 'şüpheli / doğrulanmayı bekliyor' diyordu — bir kategori aynı raporda iki statü taşıyamaz. Kapsam yönü dar tespit edildiğinde reçete notu artık dar diliyle kuruluyor: 'Bu reçete, ölçülen dar hizmet hattı için kuruldu. Bu hat stratejik hedefinizse aşağıdaki reçete geçerlidir; değilse çekirdek kategori bir sonraki ölçümde yeniden tanımlanmalı.' Şüpheli-kategori kalıpları dar yönde Final QA bulgusu düşürür. (2) Ton özeti 'tüm cevaplarda köklü, deneyimli...' diyordu — oysa tona giren cevaplar süzülmüş bir alt kümedir (yalnız doğru şirket olarak doğrulananlar, sürüm 89 kuralı) ve raporun kendisi 12 cevabın tamamının doğrulanmadığını yazıyordu. 'Tüm/bütün/her cevaplarda' niceleyicisi hem istemde yasaklandı hem çıktıda deterministik olarak 'doğrulanan cevaplarda' ile değiştiriliyor; ton kutusunun altındaki not da evreni açıkça yazıyor: 'bu değerlendirme yalnız marka sorgularının doğru şirket olarak doğrulanan cevaplarından çıkarıldı; tanınmayan ya da doğrulanamayan cevaplar tona girmez.' (3) Soru-cevap adımındaki 'teknik hazırlık zaten iyiyse asıl darboğaz sitenizin dışındadır' cümlesi fazla kesindi — darboğaz marka kimliği gibi site İÇİ bir iş de olabilir. Cümle artık hüküm vermez: 'asıl darboğaz teknik değildir — marka kimliği de olabilir, site dışı görünürlük de; bu ayın darboğazı yönetici özetinde adlandırıldı.'
YIL İDDİALARI DOSYA İÇİNDE ÇELİŞEMEZ; KATEGORİ KUTUSU KAPSAM YÖNÜNÜ BİLİYOR; SAYFADAN OKUNAN KAYNAK TAHMİN DİLİ BASMIYOR; İKİ NİYET TEK İÇERİĞE SIKIŞTIRILMIYOR. Ölçülen yüzdeler değişmez; beş düzeltme. (1) Hazır llms.txt bir satırda '2026 yılından beri 850'den fazla kuruma hizmet' derken birkaç satır altta '15 yılı aşan deneyim' diyordu ve motorun doğrulanmış cevabı '2007'den bu yana' idi — üçü aynı anda doğru olamaz ve 2026 satırı işaretsizdi. Kuruluş yılı bu yılla aynı ya da ilerideyse 'beri' iddiası, deneyim yılıyla tutarsızsa iki satır birden [DOĞRULAYIN] işareti alıyor; hangisinin doğru olduğunu müşteri seçer, biz seçmeyiz. Final QA'ya kritik kontrol olarak bağlandı. (2) Kategori kutusu 'geniş olabilir' derken site teşhisi 'beyan sitenin işlerinin yalnız bir bölümünü kapsıyor' diyebiliyordu — kategori geniş değil, bilinçli seçilmiş DAR bir hizmet hattıydı. Sektör teşhisi artık kapsam yönü bildiriyor (dar/geniş/uyumlu); yön dar ise kutu 'bu kategori işinizin tamamını değil belirli bir hizmet hattını ölçüyor; stratejik hedefse korunabilir' diyor ve şüphe kaskadı (aday kaynak öneki, başlık konusu değişimi) tetiklenmiyor. (3) Sayfası okunmuş bir kaynak için iş kartı hâlâ 'alan adı kategori kelimenizi taşıyor — bir dakikada doğrulayın' tahmin dilini basıyordu; sayfadan okunan karar artık kendi gerekçesiyle konuşuyor ve doğrulama ödevi vermiyor. (4) 'Danışmanlık süreci nasıl yürür' ile 'yazılım nasıl kullanılır' soruları aynı başlıkta birleşip tek içerik sayılıyordu — iki niyet iki ayrı iskelettir; soru yazılım kullanımı soruyorsa iş tipi hizmet olsa bile kullanım rehberi şablonu seçiliyor ve işler ayrışıyor. (5) Soru-cevap reçetesindeki 'cevaplar rakamlı olsun' ifadesi müşteriyi sayı üretmeye itebilirdi; artık 'rakam gerekiyorsa yalnız doğrulanmış rakam kullanın' deniyor.
llms.txt İŞARETİ İDDİAYA YAYILIYOR; REÇETE SÜZGECİNE AKSİYONUN TAM METNİ GİRİYOR; HİZMET VARSAYIMI ÖNKOŞUL ALDI. Ölçülen yüzdeler değişmez. (1) llms.txt'te 'Özel Ölçü Üretimi: müşteri tarafından tanımlanan ölçülerde…' satırı [DOĞRULAYIN] işareti taşırken, aynı dosyanın tanım cümlesi 'Ürünler … özel ölçülerde üretilmektedir' işaretsiz kesin gerçek gibi duruyordu. İşaret artık satırda kalmıyor: doğrulanamayan satırın ayırt edici ifadesini taşıyan işaretsiz satırlar da işaretleniyor ('bu satırı da birlikte kontrol edin'). Kategori ve marka adı gibi dosya genelinde geçen ifadeler yayılım yapmaz — yoksa bütün dosya işaretlenirdi. Final QA kontrolü eklendi: yayılmamış iddia bulgu düşürür. (2) Sürüm 90'ın performans süzgeci yalnız öneri başlığına bakıyordu; 'dayanıklılık özellikleri' ve 'hizmet kapsamı' gibi iddialar gövde metninde süzgeçsiz kalmıştı. Süzgece artık önerinin tam metni girer (başlık + soru + gerekçe + adımlar). (3) Yedinci önkoşul türü: hizmet/proje varsayımı. 'Petek kaplama projesi nasıl yürütülür — uygulanacak adımlar ve hizmet kapsamı' gibi öneriler, ürün satan bir markaya vermediği montaj/uygulama hizmetini anlattırabilirdi. Proje, montaj, uygulama süreci ve hizmet kapsamı ifadesi taşıyan her öneri koşul alıyor: 'bu hizmeti gerçekten veriyorsanız sürecini anlatın; vermiyorsanız gerçek satın alma sürecinizi yazın (ürün seçimi → ölçü → sipariş → teslimat)'. Yazılım dünyasının kendi kendine kurulum içeriği bilerek kapsam dışıdır — orada hizmet varsayımı yoktur.
'SİZİN SİTENİZ YOK' VERİYE BAĞLANDI; PERFORMANS İDDİALARI DOĞRULAMA ÖNKOŞULU ALIYOR. Ölçülen yüzdeler değişmez. (1) Raporun kaynak bölümü kendi sitenizi kategori cevaplarının kaynakları arasında gösterirken (6/6 soru), site-dışı bölüm 'motorların gösterdiği kaynaklar arasında sizin siteniz yok' diyordu — cümle üçüncü taraf listesini tarif ediyordu ama okuyana küresel bir yokluk gibi görünüyordu. Cümle artık veriden gelir: siteniz kaynaklardaysa 'bu bölüm yalnız üçüncü taraf kaynakları gösterir; kendi siteniz kategori cevaplarının kaynakları arasında ayrıca görünüyor' yazılır; üçüncü taraf ayak izi satırı ve iş kalemi de aynı sinyale bağlandı. Final QA kontrolü eklendi: site kaynaklarda görünürken 'sizin siteniz yok' kalıbı geçerse bulgu düşer. (2) İçerik reçetesine 'ısıl performansı koruma', 'ısı yayılımını etkilememe', 'dayanıklılık özellikleri' gibi ifadeler kesin öneri gibi girebiliyordu — müşteriyi doğrulanmamış ürün performansı yazmaya itebilirdi; oysa rapor başka bölümde motorların markaya olmayan özellik atfetmesini hata olarak yakalıyor. Aynı disiplin reçeteye bağlandı: performans, dayanıklılık ve ısı davranışı iddiası taşıyan her öneri artık doğrulama önkoşulu alır — 'bu iddiaları yalnız doğrulanmış teknik bilginiz ya da kendi ölçümünüz varsa yazın; ölçüm yoksa performans iddiası yazmayın'. Önkoşul, bölgesel varsayım / fiyat / politika / özel ölçü / ölçülen metrik türlerinin yanına altıncı tür olarak eklendi ve hem soru işlerine hem yapay zekâ önerilerine aynı süzgeçten uygulanır.
TON TEK KAYNAKTAN VE SAĞLAM ÖRNEKLEMDEN; 'YAPISAL ENGEL YOK' HÜKMÜ KALKTI. Ölçülen yüzdeler değişmez. (1) Bir raporda ton özeti, o ölçümün cevaplarının HİÇBİRİNDE geçmeyen hükümler taşıyordu ('Bagax gibi oyuncuların gölgesinde', 'modern minimalist'). İki ayrı kök neden bulundu ve ikisi de kapatıldı: ton, marka adı geçen KEŞİF cevaplarından da üretilebiliyordu (o cevaplar varlık denetiminden geçmez — adı geçen cevap arı peteğini anlatıyor olabilir) ve bu yol, denetlenmiş marka cevaplarından üretilen tonu bloke ediyordu; ayrıca günlük önbelleğin anahtarı cevapların içeriğini değil SAYISINI taşıyordu — aynı gün aynı sayıda ama bambaşka cevaplarla yapılan ölçüme bir öncekinin tonu giydirilebiliyordu. Ton artık tek kaynaktan çıkar (marka ekseninin denetlenmiş cevapları), önbellek anahtarı cevap içeriğinden türetilir ve varlık denetimi düşmüşse ton hiç üretilmez. Eşik de sağlamlığa bağlandı: doğrulanmış cevaplardan en az ikisi her çekilişte aynı sonucu vermediyse etiket verilmez, 'örnek yetersiz' yazılır — iki doğrulanmış cevabın biri 4/5 dar çoğunlukla gelmişse elde tek sağlam örnek vardır ve tek örnekten ton hükmü çıkmaz. Final QA'ya da bağlandı: kaynak işareti olmayan ton kritik akışta bulgu düşürür. (2) Rekabet haritası, rakiplerin çoğu Türkiye merkezli çıktığında 'görünmemek yapısal bir engelden değil' diyordu — aynı raporun darboğazı gerçek bir teknik erişim engeliyken (bot engeli, HTTP 401) bu cümle kendi teknik bölümüyle çelişiyordu. Cümle artık hüküm vermez, işaret eder: görünmemenin nedenini teknik erişim, tanınırlık ve üçüncü taraf varlığı birlikte belirler; her biri raporun kendi bölümünde ölçülür. Kalıp Final QA yasaklarına eklendi.
COĞRAFYADAN LİG ÇIKARIMI KALKTI; BELGE-TESİS REÇETESİ KOŞULLU. Ölçülen yüzdeler değişmez; iki düzeltme de rapor dilinde. (1) Rekabet haritası, listedeki firmaların çoğu Türkiye merkezli çıktığında 'yani sizinle aynı ligde oynuyorlar' diyordu. Merkez ülkesi ölçülen bir şeydir, lig üyeliği değildir: aynı kategori ifadesi farklı ürün ve iş modellerini aynı sonuç kümesine çekebilir — bir ölçümde radyatör üreticisi ile mobilyacı aynı listede 'rakibiniz' olarak durdu. Cümle artık yalnız ölçüleni söylüyor: coğrafya aynı, görünmemek kapatılabilir bir eksik; ama 'listedekilerin tamamını doğrudan rakip saymıyoruz'. Kalıp Final QA'ya da yasak olarak bağlandı: 'aynı ligde oynuyorlar' hangi yoldan gelirse gelsin bulgu düşer. (2) İçerik reçetesindeki 'belgeleri, tesis bilgilerini ve denetim kayıtlarını toplayın; belge numaralarını verin' maddesi koşulsuzdu ve tesisi ya da belgesi olmayan bir markayı, sırf reçete istedi diye olmayan bir belgeyi anlatmaya itebilirdi. Madde artık 'varsa' ile başlıyor ve tersini açıkça söylüyor: bu belgeler yoksa bu sayfayı üretmeyin — olmayan belgeyi yazmak hiç yazmamaktan kötüdür; onun yerine şirket kimliği, garanti-iade koşulları ve paylaşılabilir referanslar önerilir. Editoryal üretim maddesinde zaten var olan güvenlik kuralının güven reçetesine bağlanmasıdır.
BASAMAK HESABINA GİRMEYEN MOTORUN NEDENİ YAZILIYOR. Ölçülen yüzdeler ve basamak hesabı değişmez; düzeltme raporun açıklamasında. Sürüm 86'da tanınırlık dört motorla ölçülürken 'Motor başına basamak' satırı üç motor gösteriyordu (ChatGPT 2 · Gemini 2 · Perplexity 1) ve Claude'un neden dışarıda kaldığı hiçbir yerde yazmıyordu — okuyan haklı olarak 'Claude marka sorularına cevap verdiyse ham basamağı nerede?' diye soruyordu. Dışarıda kalması doğru: basamağın 3-5 bandı keşif ölçümünü gerektirir ve keşifte cevap alamadığımız bir motoru 'kategoride görünmedi' sayıp 0-2 bandına sıkıştırmak, ölçmediğimiz şeyi ölçmüş gibi sunmak olur. Sessiz kalması yanlıştı. Rapor artık bunu açıkça söylüyor: 'Claude için ham motor basamağı hesaplanmadı: basamak hesabı keşif ölçümünü de gerektirir ve bu motor keşif sorularına bu ölçümde cevap veremedi… Ortanca yalnız hesaplanabilen motorlardan türetildi.' Aynı kural Final QA'ya kritik kontrol olarak bağlandı: marka ekseninde ölçülen bir motor basamak satırında açıklamasız eksikse gönderim durur.
DOĞRULANAMAYAN BASAMAK MANŞET OLMAZ; MOTOR KAPSAMA NOTU EKSENİNE BAĞLANDI. Ölçülen yüzdeler değişmez; iki düzeltme de raporun sunumunda. (1) Varlık denetimi tamamlanamadığında rapor tanınırlık için 'bu ölçümde ölçülemedi' derken görünürlük basamağı manşeti büyük puntoyla 'Seviye 2 — Tutarlı tanıyor' basmaya devam ediyordu ve 'Bir üst basamak için' tavsiyesi o basamağı kesin gerçek sayıyordu ('Kimliğiniz oturmuş; sıra kategoriye girmekte'). Yanına küçük bir 'doğrulanmadı' rozeti koymak yetmiyor: okuyanın aklında kalan büyük yazıdır. Hiyerarşi ters çevrildi: manşet artık 'Bu ölçümde doğrulanamadı' der, ham sonuç ('Seviye 2') küçük bir bilgi satırına iner, basamak tavsiyesi denetimle birlikte bir sonraki ölçüme ertelenir. (2) Kapaktaki 'Bu ölçümde Claude yer almadı' notu keşif ölçümünün verisinden üretiliyordu ama küresel konuşuyordu; aynı raporun marka bölümünde Claude'un gerçek cevapları vardı — Claude keşif sorularında hata almış, marka sorularına cevap vermişti. İki eksen ayrı çağrılarla ölçülür ve bir motor birinde düşerken öbüründe cevap verebilir. Not artık eksene bağlanıyor ('Keşif ölçümünde yer almadı') ve ayrımı açıkça yazıyor: motor marka sorularına cevap verdiyse rapor bunu söyler; tanınırlık paydasının keşif paydasından neden farklı olduğu da böylece görünür olur (ör. tanınırlıkta 12 hücre, keşifte 18). İki durum da Final QA'ya kritik kontrol olarak bağlandı: doğrulanamayan basamağa dayalı tavsiye ve eksenler arası motor evreni çelişkisi artık gönderimi durdurur.
KATEGORİ HÜKMÜ KUTUYLA AYNI KALİBRASYONDA; FAQ SON CÜMLESİ MÜŞTERİYİ AKSİYONA SOKMUYOR; HAKEM GEREKÇESİ İŞ MODELİ İLAN ETMİYOR. Ölçülen yüzdeler değişmez; üç düzeltme de model çıktılarının dil kalibrasyonunda. (1) Kategori kutusu 'yanlış demiyoruz, doğrulayın' derken 'Sitenizin anlattığı iş' bölümü 'mobilyadan ziyade ısıtma sistemi aksesuarı kategorisine girmektedir' diye kesin hüküm veriyordu — aynı rapor iki ihtiyat seviyesinde konuştu. Sektör tespiti istemine dil kuralı kondu ('kesin kategori hükmü verme; sitenin daha spesifik odağını betimle') ve sonuca bakan yeni bir denetim kontrolü eklendi: ihtiyatlı kutu ile kesin hüküm aynı raporda görülürse Final QA bulgusu düşer. (2) İlk sayfa 'sizden bir şey beklemiyor' derken dosya sonundaki FAQ kutusu 'SSS metnini bize iletirseniz üretiriz' diye müşteriyi yeniden aksiyona sokuyordu; cümle artık 'bir sonraki ölçümde sayfadaki görünen soru-cevaplardan yeniden üretmeyi deneyeceğiz — sizden bir şey beklemiyor' diyor, kendi yazma seçeneği açıkça opsiyonel. (3) Varlık hakeminin gerekçeleri markayı 'mobilyaları üretmektedir' diye tanımlıyordu — üretici olup olmadığını hakem bilemez. Hakem istemine kural eklendi: iş modeli ilan edilmez, 'ürünleri sunan/satan marka' denir; 'üretir' ancak motorun cevabı açıkça öyle diyorsa aktarma olarak geçebilir. Yeni bulgu türleri Final QA seviye tablosuna bağlandı (kategori-hüküm-dili: küçük; ham etiket: önemli; soru-cevap/süzgeç çelişkisi: kritik).
İÇERİK VARKEN FAQ ÜRETİM ARIZASI MÜŞTERİYE İŞ ÇIKARMIYOR; ADAY STATÜSÜ DETAYDA DA TAŞINIYOR; ŞÜPHELİ KATEGORİNİN ETİKETİ BAŞLIKLARA GİRMİYOR. Ölçülen yüzdeler değişmez. (1) Soru-cevap kalemi ✓ iken (sitede gerçek içerik var) üretilen FAQPage 0/6 eşleşmedi ve rapor müşteriden 'önce SSS metnini netleştirin' diye İŞ İSTEDİ — arıza bizim üretim tarafımızdaydı ve aynı rapor '✓ içerik var' + 'metni netleştirin' diye çelişti. İçerik varken adım artık dürüst: 'FAQPage bu kez verilemedi — sizden bir şey beklemiyor; bir sonraki ölçümde sayfadaki görünen soru-cevaplardan yeniden üretilecek. Beklemek istemezseniz kendiniz yazabilirsiniz: soru-cevaplar sayfada GÖRÜNEN metinle birebir aynı olmalı.' İçerik yokken eski akış (metni netleştirin) durur. (2) Yönetici özeti 'Aday kaynak —' derken detay bölümü aynı kaynakları numaralı normal aksiyon görünümüyle basıyordu; aday statüsü artık detay başlıklarında da taşınır. (3) Kategori kutusu 'Mobilya fazla geniş' derken içerik başlıkları 'Mobilya: hangi model...' diye aynı geniş etiketle kuruluyordu; kategori şüpheliyken başlık konusu sitenin kendi tespitinden gelir ('petek kaplama dresuar: hangi model hangi ihtiyaca uygun'). Hizmet-kapsamı reçetesine uyumluluk cümlesi de eklendi: soru uyumluluk da içeriyorsa (hangi tiple çalışır, gerekli koşullar) doğrulanabilir uyumluluk bilgisi aynı sayfada verilir.
KATEGORİ ŞÜPHELİYKEN SİTE-DIŞI KAYNAKLAR DA ADAY; SINIFLANDIRILAMAYANLARA HIZ GENELLEMESİ YAPILMIYOR; llms.txt KUTUSU TASLAK UYARISIYLA AÇILIYOR. Ölçülen yüzdeler değişmez. (1) 'Şüpheli kategoriyi içerik yatırımına çevirmeyiz' kuralı (sürüm 52) yalnız içeriğe bağlıydı; geniş kategori sorgularından gelen site-dışı kaynaklar kesin aylık aksiyon olarak basılıyordu — kategori daralırsa o liste değişebilir. Kategori doğrulama kutusu açıkken kategoriden türeyen site-dışı işler artık 'Aday kaynak' başlığıyla ve açık koşulla listelenir ('kategori doğrulanana kadar aday; kesinleşmeden yatırım yapmayın'); markaya özgü işler (Wikidata/kimlik) ve sitenin gerçek işinden türetilen içerikler kesin kalır. (2) 'Buralarda görünmek kendi sitenize yazmaktan daha hızlı sonuç verebilir' cümlesi, altında dokuz 'sınıflandırılamayan' kaynak dururken hepsini kapsıyordu; genelleme artık yalnız müdahale edilebilen kaynaklar için kurulur ve sınıflandırılamayanların dışında tutulduğu açıkça yazılır. (3) Hazır llms.txt kutusu, doğrulanamayan satır varken ilk satırında tek cümlelik uyarıyla açılır: 'KONTROLLÜ TASLAK — [DOĞRULAYIN] etiketli satırları kontrol edip etiketleri kaldırmadan yayımlamayın' — kod bloğunu körlemesine kopyalama riskine karşı.
İŞ MODELİ İDDİASI SATIR ÖRTÜŞMESİNDEN BAĞIMSIZ İŞARETLENİYOR; 'VAR MI?' SORUSU KENDİ REÇETESİNİ ALDI; KISMİ ENGELDE BAŞLIK MUTLAK KONUŞMUYOR. Ölçülen yüzdeler değişmez. (1) Kaynak izi SATIR bazında örtüşmeye bakar ve 'tasarlayan ve ÜRETEN bir markadır' cümlesi, kelime çoğunluğu (marka, petek, kaplama) sitede bolca geçtiği için doğrulandı — içindeki tek doğrulanmamış kimlik iddiası ('üreten') oranı düşürmedi; aynı izin 'üretiyoruz' satırını düşürmüşken ilk cümle işaretsiz kesin gerçek gibi kaldı. İş modeli iddiaları (üretici/imalatçı/ithalatçı) artık kelime oranından bağımsız denetleniyor: kök okunan sayfalarda hiç geçmiyorsa satır '[DOĞRULAYIN — iddia okuduğumuz sayfalarda bulunamadı]' işareti alır; üretim istemine de kural eklendi — site metninde üretim ifadesi yoksa model markayı 'üreten' diye tanımlamaz, 'sunan/satan' der. (2) 'Kurulum hizmeti ile birlikte sunuluyor mu?' sorusu /kurulum/ deseniyle nasıl-yapılır dalına düşüp 'adım adım nasıl yapılır' önerisi üretiyordu — kullanıcı süreci değil hizmetin VARLIĞINI soruyor. Hizmet-varlığı kalıpları ('sunuluyor mu', 'dahil mi', 'hizmeti var mı') kendi reçetesini aldı: 'hangi hizmetler dahil, hangileri değil' — cevabın ilk cümlesi evet/hayırdır; sunulmuyorsa o da açıkça yazılır. Çıplak 'var mı' bu dala girmez ('referansları var mı' güven sorusudur). (3) Yedi tarayıcının üçü engelliyken yönetici özeti başlığı 'Motorlar sitenize giremiyor' diye hepsini kapsıyordu; kısmi engelde başlık artık 'Bazı AI tarayıcıları sitenize giremiyor'.
TEK KELİMELİK BEYANIN KUTUSU HER ZAMAN GENİŞLİK DİLİYLE; LİSTE KALIPLI ALAN ADI RAKİP TAHMİN EDİLMİYOR; AYNI SORUNUN İKİ YAZIMI İKİ İŞ ÜRETMİYOR; ÖZEL ÖLÇÜ İÇERİĞİ HİZMETİ VARSAYMIYOR. Ölçülen yüzdeler değişmez. (1) 'Mobilya' beyanına karşı sitenin üç ayırt edici kelimesi (petek, kaplama, dresuar) kutuyu eski 'birkaç kelimelik fark, eşanlamlı olabilir' diline düşürdü — mobilya ile petek kaplama eşanlam değil, üst kategori ile niştir. Beyan tek anlamlı kelimeye iniyorsa kutu artık her durumda genişlik diliyle konuşur ve ayırt edici kelimeleri sayar: 'etiketiniz tek kelimeye iniyor ve sitenizin ayırt edici kelimeleri etikette hiç geçmiyor; bu genişlikte bir etiket üreticiyi, toptancıyı ve perakendeciyi aynı sonuç kümesine sokabilir — etiket yanlış olmayabilir, alıcınızın gerçek arama diliyle doğrulanmalı.' (2) Kategori kelimesi taşıyan alan adı kuralı 'eniyimobilyamarkalari' ve 'mobilyamagazalar'ı 'muhtemelen rakip — oraya giremezsiniz' diye sınıfladı; oysa ad kalıbı liste/karşılaştırma/dizin ihtimalini güçlü taşır ve 'giremezsiniz' demek faydalı bir görünürlük kanalını kapatabilir. Liste kalıbı (eniyi…, …markaları, …mağazalar, …rehberi, …listesi) taşıyan alan adları artık rakip tahmin edilmez; dürüst sınıf olan 'sınıflandırılamadı — açıp doğrulayın'da kalır. (3) Model, hedef soruyu hafifçe değiştirebiliyor ('petek kaplatıcı' → 'petek kaplama') ve birebir kapsama kontrolü bunu kaçırınca aynı fiyat sorusuna hem model önerisi hem şablon işi basıldı. Kapsama artık normalize anahtar ve jeton-kümesi benzerliğiyle bakar: kelimelerin beşte dördü ortaksa aynı sorudur, ikinci iş üretilmez. (4) 'Özel ölçü' içeren içerik önerilerine önkoşul bağlandı: bu hizmeti gerçekten veriyorsanız süreci anlatın; vermiyorsanız standart ölçü seçeneklerinizi yazın — sunmadığınız bir hizmeti anlatmayın.
BOT ENGELİ AÇIKLAMASI STATÜYE GÖRE VE ÖLÇÜM DİLİYLE; 'YALNIZ ÜÇÜNCÜ TARAF' MUTLAKLIĞI KALKTI; ÇEŞİT SORUSU FİYAT ŞABLONUNA DÜŞMÜYOR; ÜRETİM REÇETESİ TESİS VARSAYMIYOR. Ölçülen yüzdeler değişmez. (1) Tablolar HTTP 401 gösterirken açıklama 'sunucudan HTTP 403 aldı' diyordu — statü sabit yazılmıştı; artık ölçümden gelir. Kök neden de kesinleştirilmiyor: yalnız 403 alınan durumda 'büyük olasılıkla CDN/WAF' denir, 401 varsa 'sunucu, CDN/WAF ya da kimlik doğrulama katmanlarından biri — kaynağını loglardan doğrulayın' denir; eldeki kanıt (robots izinli + HTTP engeli) katmanı seçmeye yetmez. (2) 'Sizi YALNIZ üçüncü taraflardan öğrenir' cümlesi kısmi engelde yanlıştı: aynı raporda üç bot 200 alıyor ve site, marka cevaplarının %17'sinde atıf kaynağıydı. İddia artık engellenen kanallarla sınırlı: 'engellenen tarayıcılar birincil kaynağınıza erişemez; motorlar O KANALLARDA sizi üçüncü taraflardan öğrenmek zorunda kalır.' (3) 'Uygun dresuar çeşitleri nelerdir?' sorusu, fiyat desenindeki çıplak 'uygun' yüzünden 'Fiyat, kapsam ve neyin dahil olduğu' şablonuna bağlandı. Çıplak 'uygun' fiyat sinyali değildir; çeşit/model soruları kendi seçim-rehberi dalını aldı ('hangi model hangi ihtiyaca uygun': ihtiyaç, ölçü, kullanım amacı, avantaj/sınır). (4) 'Üretim standartları' açısı tesis varsayıyordu; 'üretici' statüsü çoğu zaman sitenin doğrulanmamış kendi beyanıdır. Açı koşullu yazıldı: üretim kendi tesisinizdeyse tesis ve süreci, dışarıdaysa ürün geliştirme, tedarikçi seçimi ve kalite kontrolü anlatın — olmayan bir tesisi yazmayın.
RAKİP FARK TABLOSU FAQ KARARINDA ANA DENETİMİ İZLİYOR; İÇERİK ÖNKOŞULU SORUNUN TÜRÜNE GÖRE KONUŞUYOR. Ölçülen yüzdeler değişmez. (1) Ana denetim soru-cevap kalemini 'blog başlıkları gerçek soru değil' kanıtıyla düşürürken (sürüm 76) rakip fark tablosu aynı site için ✓ basıyordu: tablo ayrı bir ana-sayfa denetimi koşturur ve 'ölçek farklı' notu düşer — render gibi kalemler için meşru, ama soru-biçimi hükmü sayfa ölçeğinden bağımsızdır. Kanıt varken tablodaki kendi faq hücresi de artık ✗ gösterir; 'bende soru-cevap varsa neden 14 puan yok' çelişkisi kapandı. (2) İçerik önerilerindeki tek 'SAYI YAZMAYIN — nasıl azaltır — bir müşteride X'ten Y'ye' önkoşulu verimlilik-metriği dünyasından yazılmıştı ve ayna FİYATI ile GARANTİ SÜRESİ sorularına aynen basıldı. Önkoşul artık dört türü ayırıyor: bölgesel varsayım ('fark gerçekten varsa tablo; yoksa Türkiye geneli'), fiyat ('siteden doğrulanıyorsa yazın; eskiyen fiyat yanlış fiyattır — doğrulanmıyorsa etkenleri anlatıp güncel listeye yönlendirin'), politika/taahhüt ('garanti-iade-teslimatta resmî politikanız neyse onu yazın; deneysel veri gerekmez, olmayan süre yazılmaz') ve gerçek ölçülen metrik (eski kural yalnız burada). Koşullar şablon türevi işlere de model üretimi önerilere de aynı biçimde bağlanır.
KATEGORİ ŞÜPHELİYKEN 'AYNI LİG' ÇIKARIMI YAPILMIYOR; BÖLGESEL FARK VARSAYAN SORULARA ÖNKOŞUL — AI ÖNERİLERİ DAHİL. Ölçülen yüzdeler değişmez. (1) Aynı rapor bir kutuda 'tek kelimelik etiket üreticiyi, toptancıyı ve perakendeciyi aynı sonuç kümesine sokabilir' derken rekabet haritası 'firmaların çoğu Türkiye merkezli — yani sizinle aynı ligde oynuyorlar' diyordu. Coğrafya aynı olabilir; iş modeli çıkarımı kategori doğrulanana kadar yapılmaz. Kategori doğrulama kutusu açıkken cümle artık şöyle: 'Coğrafya sizinle aynı; ama kategori tanımınız geniş olabileceği için bu firmaların sizinle aynı iş modelinde olduğu sonucunu çıkarmıyoruz — listede üretici ile perakendeci yan yana olabilir.' (2) 'Kargo ücreti Türkiye'nin hangi bölgelerine uygulanıyor?' hedef sorusu, sitesi 'Türkiye'ye ücretsiz kargo' diyen müşteriye bölgeye göre ücret tablosu hazırlatmaya gidiyordu — soru bölgesel bir fark VARSAYIYOR ve olmayan veriyi ürettirmeye iter. Bölge/şehir + ücret kalıbı taşıyan sorulara artık önkoşul bağlanır: 'fark gerçekten varsa tabloyla yazın; yoksa uydurma bir kırılım kurmayın — Türkiye genelinde geçerlidir (koşulları ve varsa istisnalarıyla) tek net cümle doğru cevaptır.' Bu önkoşullar (sayısal veri koşulu dahil) artık yalnız şablon türevi işlere değil, model üretimi içerik önerilerine de bağlanıyor: koşul soruya bakar, işin nereden geldiği önemsiz.
TAHMİNİ PAZARYERİ 'ADAY' ETİKETİYLE AYRIŞIYOR; TEK KELİMELİK KATEGORİ KUTUSU KENDİ DİLİYLE KONUŞUYOR. Ölçülen yüzdeler değişmez; iki düzeltme de raporun anlatı katmanında. (1) Alan adı tahminiyle pazaryeri sayılan bir zincir (koctas.com.tr), bilinen gerçek pazaryeriyle (trendyol.com) aynı gruba düştü ve onun kesin metnini giydi: 'Bilinen çoklu satıcı pazaryeri — mağaza sayfanızı açın'. Oysa tahmin listesinin kendi metni koşulludur ('önce üçüncü taraf satıcı kabul edip etmediğini kontrol edin') ve satıcı almayan bir zincirde mağaza açtırmaya çalışmak yanlış satış kanalı aksiyonudur. Tahmin listesi artık 'Pazaryeri adayı' adını taşır: grup bilinenden ayrışır, koşullu metin ve doğrulama işareti korunur — sürüm 66'daki 'grup anahtarı tip değil tip+ad' dersinin, aynı ada sahip kesin/koşullu çiftine uzatılması. (2) Tek kelimelik beyan sinyaliyle (sürüm 76) açılan kategori kutusunun giriş cümlesi eski yoldan kalmıştı: 'yalnız birkaç kelimelik fark var ve bunlar eşanlamlı olabilir'. Ayna-vakasında fark eşanlamdan gelmiyor; tek kelimelik bir etiket üreticiyi, toptancıyı ve perakendeciyi aynı sonuç kümesine sokacak kadar geniştir ve kutu artık bunu söylüyor. Kutu metinleri sinyal türüne göre kurulur (lig farkı / kapsam farkı / tanıklı tek kelime / tek kelimelik beyan).
SORU-CEVAP KALEMİ SÜZGEÇLE SENKRON — TEKNİK PUAN DEĞİŞEBİLİR (DÜŞER); TEK KELİMELİK BEYAN KAPSAM SİNYALİDİR. (1) Bir raporda teknik bölüm '✓ soru-cevap içeriği var — 14 puan' derken aynı raporun reçetesi 'başlıklar soru biçiminde değil, önce gerçek 4-6 soru ekleyin' diyordu: soru biçimi süzgeci (sürüm 75) blog alt başlıklarından üretilen FAQPage'i doğru reddediyordu ama kanıtı kaleme geri yazılmıyordu ve teknik %95 aslında %81'di. Süzgeç 'ikiden az gerçek soru' dediğinde soru-cevap kalemi artık düşer, açıklaması sebebini örnek başlıkla söyler ('blog alt başlıkları doğrudan alıntılanabilir soru-cevap sayılmaz') ve puan onu izler; ayrıca kalıcı bir tutarlılık kontrolü eklendi — senkron bir daha kırılırsa rapor Final QA'da durur. Soru-cevap görünümlü ama soru içermeyen sitelerde teknik puan bu sürümde DÜŞEBİLİR; siteye gerçek soru-cevap eklendiğinde kalem ve FAQPage birlikte kapanır. (2) Beyanı tek anlamlı kelimeye inen kategoriler ('Ayna', 'Kahve', 'Mobilya') tanımı gereği geniştir; site tanımı daha uzun konuşuyor ve marka hiç görünmüyorsa 'kategoriyi doğrulayın' kutusu artık bu durumda da çıkar (zayıf kanıt tonunda). Önceki tek-kelime kuralı sorulara yayılmış tanık istiyordu; 'Ayna' beyanlı bir perakendecide ayırt edici kelime tek soruda kaldığı için üretici ligi (cam/ayna sanayi firmaları) uyarısız basılmıştı — içerik reçetesi de doğrulanana kadar sitenin kendi sorularına döner.
KATEGORİ TANIĞI KÖK TOLERANSLI; FAQPage YALNIZ GERÇEK SORULARDAN ÜRETİLİYOR; İTİBAR ÇERÇEVESİ KANIT GÜCÜNE KALİBRE; LinkedIn CÜMLESİ ÖLÇÜM DİLİYLE. (1) Beyanı 'Ayna', sitesi 'ayna satışı ve dekorasyonu' olan bir markada kapsam uyarısı üretilmedi: tek ayırt edici kelime 'dekorasyonu', site sorularında 'dekoratif' olarak geçiyordu ve tanık eşleşmesi birebir arıyordu. Tanık artık kök toleranslı (aynı kuralla: altı harflik ortak kök) — Şişecam/İKEA'lı geniş lige karşı 'kategoriyi doğrulayın' kutusu bu biçimde de çıkar ve içerik reçetesi sitenin kendi sorularına döner. (2) FAQPage'in Question adları blog alt başlıklarıydı ('Pencereyi Kopyala-Yapıştır Yapın'); sayfada geçtikleri için metin eşleşmesini geçtiler ama soru değildiler ve rapor 'eşleştiği doğrulandı' diye yapay bir işaretleme teslim etti. Dördüncü savunma hattı eklendi: Question adı soru biçiminde değilse madde düşer, ikiden az gerçek soru kalırsa kod hiç verilmez ve reçete 'önce sayfaya gerçek 4-6 soru-cevap ekleyin; işaretlemeyi ondan sonra üretiriz' der. (3) 'Bağımsız doğrulama az ama site güven verici; temkinli olumlu' diyen kanıt 'İtibar riski — okuyanı sizden uzaklaştırması görünmemekten acildir' çerçevesiyle basılıyordu. Uyarının şiddeti kanıtın gücüne uyar: motor markayı KÖTÜLÜYORSA (dolandırıcılık, şikâyet, açık şüphe) çerçeve 'İtibar riski' kalır; yalnız bağımsız kanıt bulamadığını ve temkin önerdiğini söylüyorsa başlık 'Güven kanıtı eksik' olur, kriz dili kurulmaz — önerilen işler (yasal unvan, adres, bağımsız kaynaklar) aynen durur. (4) LinkedIn kaynağının 'orada yazan tanım çoğu zaman resmi tanım sayılıyor' cümlesi ölçülmemiş bir sıklık iddiasıydı; cümle ölçüm diliyle yeniden kuruldu: 'motorlar kimlik bilgisini LinkedIn şirket sayfalarından da okuyabiliyor — bu ölçümde de kaynaklar arasında göründü.'
ÖLÇÜLEN Person ŞEMASI KALEM METNİNE VE REÇETEYE BAĞLANDI; KİMLİK-KATEGORİ İLİŞKİSİ OLASILIK DİLİYLE. Ölçülen yüzdeler değişmez. (1) Kişisel markada sitede Person şeması ZATEN VARKEN rapor iki yerde birden bunu görmedi: teknik kalem yalnız 'Organization bulundu' yazdı (geçişin neden meşru olduğu görünmüyordu, denetimde 'Person yokken %100' sanıldı) ve kimlik reçetesi var olan şemayı 'Person şemasını değerlendirin' diye ekletmeye çalıştı. Ölçüm Person'ı görüyordu, metinler bakmıyordu. Kalem detayı artık iki tipin de varlığını söylüyor ('Person bulundu — bireysel uzman için doğru tip; Organization da var'); reçete üç hali ayırıyor: Person varsa tanımı eşitleyin, yalnız Organization varsa Person'a geçin, hiçbiri yoksa Person ekleyin. Sürüm 73'ün kuralı değişmedi — Person'sız kişisel sitede kalem düşmeye devam eder; bu sürüm, kuralın SONUCUNU görünür yapar. (2) 'Adınız sorulduğunda bile doğru ilişkilendirilemiyorsanız kategori sorularında hiç çıkmazsınız' cümlesi ölçmediğimiz bir kesinlikti — bir motor marka sorusunda zayıfken kategori cevabında markayı bir kaynaktan listeleyebilir. Cümle olasılık diliyle kuruldu: 'görünme ihtimalinizi ciddi biçimde düşürür.'
Person/Organization KARARI TEK KURALA BAĞLANDI: TEKNİK PUAN, REÇETE, WIKIDATA VE HAKEM DİLİ AYNI ŞEYİ SÖYLÜYOR. Kişisel markada (bireysel uzman/danışman) TEKNİK PUAN DEĞİŞEBİLİR — düşer. Önceki sürümde rapor iki dilli konuşuyordu: ilk sayfa 'Person şemasını değerlendirin' derken teknik bölüm aynı sitedeki Organization işaretlemesine sorgusuz tam puan verip %100 yazıyordu. Kural artık tek: (1) Kişisel markada kimlik kalemi Person şemasıyla kapanır — yalnız Organization varsa kalem düşer ve puanı gider; Organization ayrıca gerçek bir şirketi temsil ediyorsa kalabilir ama Person eksikliğini kapatmaz. Person şeması zaten varsa kalem ondan geçer. (2) Düşen kalemin reçetesi de aynı dilden: 'Person işaretlemesi ekleyin (name, jobTitle, description, url; sameAs ile LinkedIn gibi doğrulanabilir profiller)'. (3) Wikidata adımı kişi öğesiyle konuşur: 'sektör, kuruluş yılı' değil 'meslek/uzmanlık, ülke, resmi site' — ve sameAs bağlantısı Person şemasına yapılır. (4) Varlık hakeminin ve raporun dili nötrleşti: 'doğru şirket' yerine 'doğru varlık (şirket ya da kişi)', 'başka bir işletmeyle karıştırıyor' yerine 'başka bir kişi veya işletmeyle karıştırıyor' — bireysel bir uzmanın raporunda gerekçeler artık onu şirketleştirmez. Karar entity onayında müşteriyle netleştirilmeye devam eder; tespit temkinlidir ve şüphede kurumsal davranış sürer.
NASIL-YAPILIR REÇETESİ İŞ TİPİNİ BİLİYOR; KİŞİSEL MARKA TESPİTİ DOĞRULANMIŞ CEVAPLARDAN DA BESLENİYOR; TON NOTU GİRDİYLE AYNI ŞEYİ SÖYLÜYOR; RAKİP COĞRAFYASI ÇIKARIMI ÖLÇÜLENLE SINIRLI. (1) 'Nasıl çalışıyor?' sorusunun reçetesi tek metinle yazılmıştı ve metin yazılım dünyasındandı: bireysel bir pazarlama danışmanına 'kullanım rehberi: kurulum, veri aktarma ve entegrasyon' ve 'sonuç ekranda nasıl görünür' önerildi — ilk sayfadaki beş işin içinde. Dal artık iş tipini biliyor: yazılımda kurulum/entegrasyon rehberi, hizmette sürecin kendi adlarıyla adımları ('hangi bilgiyle başlanır, hangi aşamalardan geçilir, müşteri her aşamada ne alır'), varsayılan metin ürün/ekran varsaymaz. (2) Sitesi üçüncü şahıs diliyle yazan bireysel danışman kişisel-marka tespitinden kaçtı ve raporu 'kuruluş yılı, merkez, Organization' şirket diliyle çıktı — oysa aynı ölçümün DOĞRULANMIŞ cevabı kişiyi 'danışman ve pazarlama yöneticisi' diye anlatıyordu. Tespit artık ikinci bir kanıt kaynağını da okuyor: hakemden geçmiş cevaplardaki tekil unvan dili ('bir danışmandır' bir şirkete yazılamaz; 'danışmanlık şirketi' bilerek dışarıda). (3) Ton kutusundaki uyarı 'değerlendirme o [karıştırılan] cevapları da içeriyor olabilir' diyordu; oysa sürüm 68'den beri ton yalnız doğrulanmış cevaplardan üretiliyor — düzelttiğimiz şeyi müşteriye hâlâ kusur diye anlatıyorduk. Not artık doğruyu söylüyor: o cevaplar değerlendirmeye ALINMADI; karışıklık yine ayrı bir iş olarak işaret ediliyor. (4) Türkiye hedefli sorularda yabancı rakiplerin çıkması 'içerik stratejinizi ikiye ayırın' önerisine çevriliyordu — ölçülmeyen bir pazar kararı. Cümle artık ölçülenle sınırlı: yabancı isimler motorların bu soruları küresel oyuncularla da cevapladığını gösterir; global pazar hedefse o ölçüm ayrıca kurulur. Kişisel marka biçimi altıncı ölçüm biçimi olarak fikstür setine eklendi.
TEK KELİMELİK KAPSAM FARKI ÖLÇÜM TANIKLIK EDİYORSA UYARI ÜRETİYOR; KİŞİSEL MARKA TANINIYOR (Person/Organization AYRIMI); HİZMET ŞABLONUNDAKİ DÜNYA ÖRNEĞİ KALDIRILDI. (1) Beyanı 'Pazarlama Danışmanlığı', sitesi 'LinkedIn pazarlama danışmanlığı' olan bir markada kategori uyarısı hiç üretilmedi: ayırt edici TEK kelime (LinkedIn) iki-kelime eşiğinin altında kaldı ve %0 keşif, Deloitte/McKinsey'li geniş listeyle kesin sonuç gibi basıldı. Tek kelime artık ölçümün kendi verisi tanıklık ediyorsa sayılır: site metninden türetilen soruların en az yarısında geçiyorsa o kelime eşanlam değil, işin odağıdır — uyarı zayıf-kanıt tonunda çıkar ('doğrulayın') ve içerik reçetesi geniş kategorinin değil, sitenin kendi sorularının üzerine kurulur. (2) Bireysel uzmanların raporu markayı şirket gibi ele alıyordu: 'kuruluş yılını, merkezini veren kurumsal tanım sayfası' reçetesi ve Organization şemasına sorgusuz tam onay. Kişisel marka artık deterministik tespit ediliyor (kişi adı biçimli marka + sitenin birinci tekil dili; iki bağımsız sinyal şart, şüphede kurumsal davranış sürer). Tespit edilince: kimlik reçetesi 'Hakkımda' sayfası ve Person şemasıyla konuşur, hazır şema Person üretilir, Organization kalemine 'temel varlık için Person daha doğru olabilir — varlık onayında netleştirin' notu düşer; kişisel sitede Person şeması zaten varsa kimlik kalemi artık ondan da geçer (eskiden 'Organization yok' diye düşerdi). (3) Hizmet sürecine örnek olarak yazılmış '(ör. ön değerlendirme → hazırlık → başvuru/uygulama → takip)' vize dünyasından kalmıştı ve bir pazarlama danışmanına aynen basıldı; sabit örnek kaldırıldı, adımların adı müşterinin kendi işinden gelir. 'Ekip yetkinliklerini' ifadesi de tek kişilik uzmanları kapsayacak biçimde 'uzmanlığınızı, varsa ekip yetkinliklerini' diye düzeltildi.
llms.txt'TE DOĞRULANMAMIŞ HİÇBİR SATIR İŞARETSİZ DURMUYOR; ADRES UYARISI TEK SATIRDA TOPLANIYOR; RAKAMLI KISA İDDİALAR DA İZLENİYOR. Ölçülen yüzdeler değişmez; üç düzeltme de hazır dosya katmanında. (1) Rapor '15 satır doğrulanamadı' derken dosyanın kendisi hangi 15 olduğunu söylemiyordu: '10 yıllık tecrübe', '20+ ülkede hizmet' gibi doğrulanamayan iddialar dosyada normal metin olarak duruyordu — işaret ilkesi yalnız iletişim satırlarına bağlıydı. Kural artık bütün doğrulanamayan satırlara bağlı: her birinin yanında dosyanın içinde '[DOĞRULAYIN — …]' işareti durur; satır silinmez (16 sayfalık örneklemde bilgi okumadığımız sayfada olabilir, düz metni okuyup karar verecek olan sizsiniz) ama işaretsiz de kalmaz. (2) 'Yıllık tecrübe', '20+ ülke' gibi rakam taşıyan kısa maddeler, altı kelimeden kısa diye doğrulama izinin dışında kalıyordu; rakam taşıyan iddia artık uzunluğuna bakılmaksızın izlenir. (3) Altı kelimesi sitede bulunamayan bir adres satırı rapora altı ayrı uyarı olarak basılıyordu — her birinde adresin tamamı tekrar ederek. Uyarı artık satır başına tektir: eşleşmeyen parçalar tek cümlede sayılır ve 'satırın tamamını yayımlamadan önce kontrol edin' denir.
HAZIR llms.txt KENDİ DOĞRULUĞU HAKKINDA GÜVENCE VEREMİYOR. Ölçülen hiçbir değer değişmez; düzeltme hazır dosya katmanında. Üretilen bir llms.txt kendi içinde 'bu dosya sitenin resmi içeriğini yansıtır' dedi — aynı raporun kaynak izi 27 satırın 13'ünü sitede doğrulayamamışken. Bu güvenceyi ancak satırların sitede doğrulanması verebilir ve o doğrulamanın sonucu raporda zaten satır satır yazılıyor; dosyanın kendi içindeki güvence cümlesi hem o izle çelişir hem de dosyayı olduğu gibi yayımlayan müşteri adına doğrulanmamış bir iddia dağıtır. Kural iki katmanda birden: üretim istemi bu tür öz-güvence cümlelerini yasaklıyor, deterministik süzgeç yine de yazılırsa cümleyi çıkarıp neden çıkarıldığını rapora yazıyor ('resmi içeriğini yansıtır', 'günceldir ve doğrudur' ve benzerleri). Sağlık iddiası ve teknik durum iddiası süzgeçlerinin yanına aynı yapıyla eklendi. Doğrulanamayan satırların kendisi dosyada kalmaya ve raporda işaretlenmeye devam eder: düz metni okuyup karar vermek mümkündür, karar müşterinindir.
MARKA TONU YALNIZ DOĞRULANAN CEVAPLARDAN; İKİDEN AZ CEVAP = ÖRNEK YETERSİZ; ÖZET SIRASI ÖNCELİK TABLOSUYLA AYNI KURALDA; KAPAKTA ÖLÇÜM SÜRÜMÜ. (1) Bir raporda 9 marka hücresinin yalnız 1'i doğru şirket olarak doğrulanmışken ton bölümü markayı 'güvenilirliği sorgulanabilir, doğrulanmamış' diye OLUMSUZ etiketledi — hüküm, tanınmayan sekiz cevabın 'bilgi yok / dikkatli olun' üslubundan geliyordu; doğrulanan tek cevap ise yalnız hizmetleri anlatıyordu. Tanınmayan cevap markanın itibarı değildir. Ton artık yalnız denetimden geçmiş (doğru şirketten bahsettiği doğrulanmış) cevaplardan üretiliyor ve doğrulanan cevap ikiden azsa etiket verilmiyor: bölüm 'Marka tonu değerlendirilemedi — örnek yetersiz' diyor ve sayıyı gösteriyor. Sürüm 67'deki sıfır-tanınırlık kuralının genellemesi. (2) Yönetici özetindeki site-dışı sıra ile öncelik tablosu farklı sıra üretebiliyordu: 'önce teyit' koşullu kaynak (ör. kategori varlığı doğrulanmamış hizmet pazaryeri) tabloda geriye düşerken özette öndeydi. İki liste artık aynı sınıflandırma kuralını kullanıyor; teyit bekleyen iş, teyitsiz yapılabilir işin arkasına düşer. (3) Kapak sayfasına ölçüm sürümü yazıldı: bir PDF'in hangi düzeltmeleri içerdiği artık dosya saatinden değil kapaktan okunur.
SIFIR TANINIRLIKTA MARKA TONU ÇIKARILMIYOR; HİZMET REÇETESİ “PROJE” DEMİYOR; HİZMET PAZARYERİ ÖNERİSİ KOŞULLU. Ölçülen yüzdeler değişmez. (1) Bir raporda 12 marka hücresinin sıfırı doğru şirket olarak doğrulanmışken “Yapay zeka sizi nasıl anlatıyor” bölümü markayı “hizmet sunan bir danışmanlık firması olarak konumlandırılmış” diye değerlendirdi — o cevapların hiçbiri bu markayı anlatmıyordu, yani başka kuruluşların anlatımı müşteriye mal edildi. Mevcut uyarı da tetiklenmedi çünkü hücreler “karıştırdı” değil “tanımadı” diye düşmüştü. Kural artık yapıda: ton marka sorgularından çıkarılmışsa ve denetimden geçen tek cevap yoksa etiket verilmez; bölüm “Marka tonu değerlendirilemedi” der ve nedenini yazar. Belirsizlik hata değildir — hata, doğrulanamayan cevaplardan kesin bir ton çıkarmaktı. (2) Hizmet şablonu ajans/proje dünyasından yazılmıştı: bir vize danışmanına “proje adımları”, “tamamlanan projeler” ve “vize projelerinde” önerildi — vize başvurusu proje değildir. Şablon, proje bazlı ajansları da dosya/süreç bazlı işleri de (vize, hukuk, muhasebe) kapsayan “süreç” ve “iş” diliyle yeniden yazıldı: “süreci: adım adım nasıl ilerliyor”, “sürecinde en sık karşılaşılan sorunlar”, güven kanıtı “ekip, deneyim ve doğrulanabilir referanslar”. (3) Alan adından hizmet pazaryeri sayılan kaynağa (ör. armut.com) “firma profilinizi açın” kesin iş olarak yazılıyordu; müşterinin kategorisinin o platformda var olduğunu ölçmüyoruz. Öneri artık teyitle başlıyor: “önce platformda hizmet kategorinizin var olduğunu kontrol edin; varsa profilinizi açın” — basın ve fiyat kaynağındaki kuralın hizmet pazaryerine bağlanması.
SİTE DIŞI İŞ GRUPLARI KAYNAĞIN ADIYLA AYRILIYOR; TEKNİK KALEM AĞIRLIK SIRASI TABLODAN TÜRETİLİYOR. Ölçülen yüzdeler değişmez; iki düzeltme de raporun anlatı katmanında. (1) GitHub ile LinkedIn aynı üst tipte (sosyal ağ/platform) durduğu için tek maddeye indi ve rapor “Kod platformu: github.com, linkedin.com” yazdı — LinkedIn bir kod platformu değildir ve önerilen iş de GitHub'ın işiydi. Gruplama artık tiple birlikte kaynağın sınıf adını da kullanıyor: kod platformu, profesyonel ağ ve sosyal medya ayrı maddeler olarak, her biri kendi işiyle çıkar. LinkedIn önerisi ayrıca koşullu dile çekildi: bu ölçümde şirket sayfanızın varlığını doğrulamıyoruz, cümle “sayfanız varsa güncelleyin, yoksa açın” diye konuşur. (2) Soru-cevap kalemi için “teknik kalemler arasında en ağırı budur (14 puan)” yazılıydı; oysa ağırlık tablosunda bot erişimi 18, sunucudan içerik 15 puandır — doğrusu üçüncülük. Sayı elle yazıldığı için tablodan kopmuştu; sıra ve puan artık ağırlık tablosunun kendisinden türetiliyor: tablo değişirse cümle kendiliğinden değişir, bir daha eskiyemez.
RAPOR METNİNE HAM HTML ETİKETİ SIZMASI ENGELLENDİ; RESMÎ KURUMLAR FİRMA SAYILMIYOR; KIRPILAN BULGU LİSTELERİ TOPLAMI GÖSTERİYOR. Ölçülen yüzdeler değişmez; üç düzeltme de raporun sunum katmanında. (1) Bir raporda “iki katmanda birden” vurgusu müşteri PDF'inde harfiyen “<b>iki katmanda birden</b>” olarak basıldı: metni üreten katman vurgu etiketi gömüyor, basan katman ise metni güvenlik gereği olduğu gibi yazıyordu. Etiket metinden çıkarıldı ve yayın öncesi denetime kalıcı bir kontrol eklendi: müşterinin göreceği metinde kaçırılmış sunum etiketi izi varsa rapor gönderilmez. (2) tuik.gov.tr “Başka bir firmanın sitesi” diye sınıflandı — sayfanın tek kurumu anlattığı doğruydu ama TÜİK bir firma değildir. Devlet tahsisli üst alanlar (gov.tr, edu.tr, bel.tr ve uluslararası gov/edu/mil/int) artık sayfa okumasından da önce “Resmî kurum / kamu kaynağı” sınıfına girer: alan adı tahsisi kamuya kapalıdır ve bu, sayfa metninden güçlü kanıttır. (3) Ton kutusu “motorlar sizi 7 cevapta karıştırdı” derken detay listesi ilk 5 bulguyu basıyor, kalan ikisi hiçbir yerde görünmüyordu — sayı doğruydu ama kanıtı eksikti ve dikkatli bir okuyucu sayının yanlış olduğunu düşünürdü. Kırpma artık sessiz değil: ilk beş bulgu gerekçesiyle anlatılır, kalanlar motor ve soru adıyla tek tek sayılır. Aynı kural olgu çelişkisi ve uydurma listelerine de bağlandı.
BOT ENGELİ KATMANLARI AJAN BAZINDA AYRILIYOR; “YAZACAK BİR ŞEYİ YOK” İDDİASI DÜZELTİLDİ; TAHMİNİ FİYAT KAYNAĞI KOŞULLU; EKSİK MOTOR AÇIKÇA YAZILIYOR. Ölçülen yüzdeler değişmez; dört düzeltme de rapor metninde ve reçetede. (1) “robots.txt izin verse bile bu botlar okuyamaz” cümlesi, bazı ajanların robots.txt'te DE engelli olduğu bir raporda kendi teknik ayrıntısıyla çelişti. İki katmanın düzeltmesi ayrı yerdedir ve mesaj artık ajan bazında ayırıyor: robots'un izin verdiği ama 403 alan ajanlar için CDN/WAF, iki katmanda birden engelli ajanlar için “önce robots.txt, sonra CDN/WAF”. (2) “Motor sitenizi indiremiyorsa hakkınızda yazacak bir şeyi yok” fazla mutlaktı: aynı rapor markanın %33 tanındığını gösteriyordu — motorlar üçüncü taraflardan da öğreniyor. Cümle üç yerde birden düzeltildi: “sitenizi okuyamıyorsa BİRİNCİL KAYNAĞINIZA erişemez; sizi yalnız üçüncü taraflardan öğrenir ve doğru, eksiksiz tanınma ihtimali ciddi biçimde düşer.” (3) Alan adı tahminiyle fiyat karşılaştırma sayılan kaynağa, sayfası okunmadan “ürünlerinizin listelerde bulunmasını sağlayın” deniyordu — B2B yazılım satan bir markada bu doğrulanmamış yüksek öncelikli işti. Öneri koşullu: “önce sizin ürün tipinizi listeleyip listelemediğini kontrol edin.” Sürüm 55'teki pazaryeri kuralının fiyat ayağı. (4) Çekirdek dört motorla ölçülürken tanınırlık 9 hücre gösteriyorsa bir motor o eksende yer almamış demektir ve okuyan bunu tahmin etmek zorunda bırakılmaz: rapor artık “bu eksende X yer almadı; payda bu yüzden 9 hücredir” diye yazıyor — ikinci kategoride sürüm 32'de öğrenilen “motor evreni sessizce daralamaz” dersinin marka eksenine bağlanması.
TANINMA İÇİN TİCARİ ÜRÜN ADI ŞART DEĞİL; PAYDA DENETİMİ EKSEN AYRIMINI TANIYOR. Birincisi TANINIRLIĞI değiştirebilir (yükseltir); ikincisi yalnız operatör denetimini düzeltir. (1) Bir cevap markanın “departman bazlı AI asistanları ve Google Drive entegrasyonundan” bahsediyordu; hakem “somut ürün veya hizmet adı vermiyor” gerekçesiyle yetersiz saydı. Oysa o birleşim herhangi bir şirkete yazılamaz: marka + doğru sektör + ayırt edici özellik birleşimi şirketi tanımlamaya yeter — ticari modül adı şart değildir. Hakem istemine kural ve gerçek vaka örneği eklendi; ölçü artık açıkça şu: cümle BAŞKA bir şirkete aynen yazılabilir mi? Yazılamıyorsa tanınmadır. Özellik diliyle anlatılan markalarda tanınırlık bu sürümde yükselebilir. (2) Yayın öncesi payda denetimi, keşif hücreleri (soru × motor, örn. 24) ile tanınırlık hücrelerini (örn. 12) aynı eksenin iki paydası sanıp “farkı açıklanmıyor” bulgusu üretti — oysa ikisi ayrı eksen ve rapor her birini kendi yerinde zaten açıklıyor. Denetim iki açıklama cümlesini de tanıyor artık; hiç açıklama yoksa fark yine yakalanır.
GÜVEN TONU TANIMA KARARI DEĞİL: TEMKİNLİ AMA DOĞRU CEVAP ARTIK TANINMA SAYILIYOR. Bu, TANINIRLIĞI değiştirir — temkinli anlatılan markalarda yüzde bu sürümde YÜKSELEBİLİR. Bir ölçümde motor, markanın şirket içi verilerle çalışan bir ürün olduğunu doğru ve ayırt edici biçimde anlattı; buna ek olarak “güvenilirliğinin bağımsız denetimlerle doğrulanmadığını” söyledi. Hakem cevabı “belirsizlik ve şüphe ifade ediyor” gerekçesiyle tanınma saymadı — oysa gerekçenin kendisi cevabın markayı TANIMLADIĞINI yazıyordu. İki ayrı soru birbirine karışmıştı: “motor markayı tanıyor mu” ile “motor markaya güveniyor mu”. Hakem istemine açık kural eklendi: doğru şirketi ayırt edici bilgiyle anlatan cevap, temkinli bir ton taşısa bile “doğru”dur — şüphe ifadesi tanımayı geçersiz kılmaz, çoğu zaman motorun markayı gerçekten inceleyip ayırt ettiğini gösterir. Markaya güven zaten AYRI bir eksende ölçülüyor (ton/itibar bölümü, sürüm 54'ten beri ham cevap kanıtıyla): temkinli cevap orada görünür ve oraya aittir. “Yetersiz” kararı yalnız cevabın ayırt edici hiçbir şey söylemediği duruma daraltıldı.
ÇIPLAK “PLATFORM” SÖZCÜĞÜ ARTIK PAZARYERİ SAYILMIYOR. Ölçülen yüzdeler değişmez; iş tipi sınıflandırması ve dolayısıyla içerik reçetesi, itibar adımları ve güven içerikleri değişir. Türkçede “platform” iki şeydir: iki tarafı buluşturan İLAN PAZARYERİ ve YAZILIM ÜRÜNÜ (“kurumsal bilgi yönetimi platformu”). İş tipi sözlüğünde çıplak “platform” pazaryeri tipine eşliydi ve sıralamada pazaryeri en önde bakıldığı için bir şirket-içi AI asistanı ürünü pazaryeri sayıldı: müşteriye “AI asistanı İLANI nasıl verilir: adım adım ve ücretler”, “arama ve filtreleme”, “güvenli ilan, şikâyet süreci” ve “hangi şehirlerde ne kadar arz var” önerildi — iş modeli baştan sona yanlış bir reçete. Pazaryeri tipi artık yalnız İKİ TARAFLILIK işaretiyle girilir: “ilan platformu”, “pazaryeri”, “marketplace”, “buluşturan”, “alıcı ve satıcı” gibi. Çıplak “platform” yazılım listesinde zaten vardı ve yazılım ürünleri artık oraya düşüyor: reçeteleri modüller, ürünün işleyişi (veriden sonuca), kurulum/entegrasyon ve güvenlik/veri işleme eksenlerinden kuruluyor. Gerçek ilan platformları (ilan sözcükleri, buluşturma dili) pazaryeri tipinde kalır — beş biçim fikstürünün platform biçimi bunu her koşuda doğruluyor.
NASIL-YAPILIR SORUSU GÜVEN İÇERİĞİNE DÜŞMÜYOR; SAYISAL SONUÇ İSTEYEN SORU RAKAM UYDURTMUYOR; ÖRNEKLEM İFADESİ GERÇEKTEN DEVREDE. Ölçülen yüzdeler değişmez; içerik eşlemesi ve iki rapor cümlesi değişir. (1) “Şirket BELGELERİNİ yapay zeka asistanına nasıl entegre etmek mümkün?” sorusunun karşısına “müşteri referansları ve uyum belgeleri” içeriği çıktı. Sebep: güven deseni çıplak “belge” içeriyordu ve Türkçede belge iki şeydir — sertifika VE doküman. Nasıl-yapılır soruları artık güven dalından ÖNCE ayrılıyor ve karşılığı kullanım/entegrasyon rehberi: “kurulum, veri aktarma ve entegrasyon — işlemin kendi ürününüzde adım adım nasıl yapıldığını gösterin.” Güven deseninden çıplak “belge” çıkarıldı (“belgeli” ve “sertifika” duruyor). (2) “Bilgi arama süresi NE KADAR azalıyor?” hedef sorusuna içerik yazdırmak, elinde ölçüm olmayan müşteriyi rakam uydurmaya iter — ve uydurulmuş sayıyı başka bir bölümde kendimiz yasaklıyoruz. Soru ölçülmeye devam ediyor (kullanıcılar gerçekten böyle soruyor); içerik maddesine koşul ekleniyor: “elinizde ölçülmüş veri yoksa SAYI YAZMAYIN — 'nasıl azaltır' çerçevesinde mekanizmayı anlatın; ölçülmüş vakanız varsa 'bir müşteride X'ten Y'ye' biçiminde kaynağıyla yazın.” (3) Sürüm 59'un “örneklenen kapsamda” düzeltmesi üretimde HİÇ ÇALIŞMAMIŞTI: koşul, fikstürün uydurduğu bir alan adına (toplam_sayfa) bakıyordu, üretimin gerçek alanı sitemap_url_sayisi. Fikstür-üretim alan adı uyumu düzeltildi; fikstürler artık üretim alan adlarını kullanıyor. Aynı hizalama bir yanlış pozitifi de görünür kıldı ve kapattı: kapsama cümlesindeki toplam sayfa sayısı (“16 / 715 sayfa”) sabit yazılmış sayı değildir — sayı denetimi artık örneklemi DE toplamı DA geçerli sayıyor; üretim raporlarında bu sınıf sessizce küçük bulgu üretiyordu.
ŞÜPHELİ KATEGORİ İÇERİK YATIRIMINA ÇEVRİLMİYOR; TEKNİK İDDİA ÖRNEKLEM KADAR KONUŞUYOR. Ölçülen yüzdeler değişmez; içerik önerilerinin hedef soruları ve bir rapor cümlesi değişir. (1) Rapor bir yanda “kategoriniz fazla geniş olabilir, %0'ı yorumlamadan önce doğrulayın” derken içerik reçetesi aynı şüpheli kategorinin sorularından türüyordu — ölçümün kendisinin şüpheli bulduğu kategoriyi müşterinin içerik yatırımına çeviriyorduk. Üstelik daha iyi hedefler zaten elimizdeydi: genişletilmiş ölçümün sitenin KENDİ anlattığı işten türettiği ve yine cevapsız kalan soruları (sürüm 33'te platformda yaşanan “yetenek vardı, reçete o kaynaktan konuşmuyordu” dersinin genel hâli). Kural: kategori uyarısı VARSA içerik hedefleri önce site türevi cevapsız sorulardan seçilir, kalan yer çekirdek sorularla dolar; uyarı yoksa davranış değişmez. Rapor da bunu açıkça yazar: “şüpheli bulduğumuz bir kategoriyi içerik yatırımına çevirmeyiz — beyan kategorisinden türeyen maddeler kategori daralırsa değişebilir, kategoriyi teyit ettiğinizde bir sonraki reçete ona göre kurulur.” (2) “Siteniz teknik olarak %100 hazır” cümlesi, 715 sayfalık bir sitede 16 sayfalık örneklemden gelen skoru sitenin tamamı denetlenmiş gibi okutuyordu. İddia ölçtüğümüz kadar: örneklem varsa cümle “örneklenen kapsamda siteniz teknik olarak %100 hazır” diye kurulur; tam taramada eski hâli kalır. Sürüm 51'deki “sitenizin tamamı tarandı” düzeltmesinin cümle düzeyindeki devamı.
sameAs BİR KİMLİK İDDİASIDIR: İÇ BAĞLANTI VE DOĞRULANMAMIŞ ADRES ORAYA GİRMİYOR. Ölçülen yüzdeler değişmez; teslim edilen Organization şeması ve bir içerik başlığı değişir. Üretilen şemada sameAs alanına sitenin kendi dil sürümleri yazıldı ([…/en, …/tr]) — oysa sameAs, markanın kimliğini DIŞARIDA doğrulayan profilleri bağlar (LinkedIn, Wikidata, sektör profili) ve raporun kendisi ilk sayfada bunu doğru söylüyordu: tavsiye doğru, üretilen kod yanlıştı. Kural Wikidata kuralıyla aynı (kanıt gücü = müdahale gücü): sitenin kendi alan adındaki adresler İÇ BAĞLANTIDIR ve çıkar; sitede okuduğumuz sayfalarda geçmeyen dış adresler de çıkar — model profil adresi uydurabilir ve uydurulmuş bir LinkedIn adresi makine okunur yanlış kimliktir; resmi site alanı eşleşerek doğrulanmış Wikidata kaydı varsa onu BİZ ekleriz. Geriye bir şey kalmazsa alan tümden kaldırılır, rapor ne çıkarıldığını sebebiyle yazar ve doğrulanmış profillerini ekleyebilecek tek kişi müşteridir. İkinci düzeltme: yazılım markalarında güven işi ile editoryal güvenlik içeriği neredeyse özdeş iki başlık üretiyordu (“güvenlik, uyumluluk ve müşteri referansları” + “güvenlik, veri işleme ve uyumluluk”). Güven işi artık REFERANS tarafını alıyor — “müşteri referansları ve uyum belgeleri” — veri işleme ve güvenlik mimarisi editoryal içerikte kalıyor; aynı ayın listesinde iki kez aynı işi önermeyiz.
ZAYIF KATEGORİ KUTUSU SEKTÖR TEŞHİSİYLE UZLAŞIYOR; ANALİTİK ÜRÜNLER YAZILIM SAYILIYOR; BASIN KANALI ERİŞİM VARSAYMIYOR. Ölçülen yüzdeler değişmez; iş tipi sınıflandırması ve rapor metni değişir. (1) Rapor bir yerde “kategori tanımınızı doğrulamak isteyebilirsiniz” derken sektör bölümü “tam olarak örtüşmektedir” diyordu — ikisi bağdaşır ama okuyana çelişki hissi veriyordu, çünkü ayrım yazılmıyordu. Zayıf kanıtlı kutu, sektör teşhisi yüksek güvenle uyumlu olduğunda artık ayrımı kendisi yazıyor: “Sektör beyanınız sitenizle örtüşüyor — buradaki soru beyanın doğruluğu değil, çekirdek ölçüm kategorisinin alıcınızın aradığı DARLIKTA olup olmadığı.” Bu ikili artık operatör panosuna çelişki olarak da düşmüyor; çelişki bulgusu yalnız GÜÇLÜ kutu ile uyumlu teşhis yan yana geldiğinde kalıyor. (2) “Sosyal medya monitoring ve duygu analizi” yapan bir SaaS, iş tipi sözlüğünde “monitoring” bulunmadığı için “genel”e düştü ve danışmanlık şablonu yedi: “işin baştan sona nasıl ilerlediğini ve her adımda ne teslim edildiğini yazın.” Bir üründe teslimat değil ÇIKTI vardır. Sözlüğe monitoring/social listening/analitik eklendi; yazılım açılarına da ürünün işleyişini çıktıyla anlatan bir açı eklendi: “nasıl çalışır: veriden sonuca — hangi girdiyle başlıyor, hangi adımlardan geçiyor, kullanıcı ekranında ne görüyor.” (3) Basın/haber kaynağının reçetesi “basın bülteni gönderin” diyordu — kanalın içerik kabul edip etmediğini ölçmeden. Reçete koşullu: “önce içerik kabul edip etmediğini ve katkı yolunu kontrol edin; erişim teyit edilmeden bülten göndermek bir iş maddesi değildir.” Kanıt gücü = müdahale gücü, basın kanalında.
ÜRÜN MARKASINDA SORULAR ÜRÜNÜ ARIYOR, ÜRETİCİYİ DEĞİL; TIBBİ CİHAZ İDDİA SÜZGECİ EKLENDİ. Birincisi ÖLÇÜLEN SORULARI değiştirir: ürün markası olarak ölçülen markalarda keşif ve tanınırlık önceki sürümlerle kıyaslanamaz. (1) Bir ürün markası (burun spreyi) için çekirdek sorular “Who are the best nasal spray MANUFACTURERS?” diye kuruldu; rakip listesi Pfizer, GSK ve sözleşmeli üreticiler çıktı ve motorun kendisi “Bentrio is a product brand, not a manufacturer” yazdı. Şablon zincirinin en derin varsayımı buydu: her marka bir FİRMADIR ve alıcı firma arar. Oysa ürün markasının alıcısı ürün arar — “What are the best drug-free nasal sprays for allergies?” Yanlış varlık tipine sorulan sorunun %0'ı bulgu değildir; nitekim aynı raporda sitenin kendi özelliklerinden türetilen sorularda görünürlük %31'di. Karar, siteyi okuyan tek katmandan geliyor: kategori çevirisi artık alıcının FİRMA mı ÜRÜN mü aradığına da karar veriyor (form alanı) ve ürün markasında hem kategori terimi ürün kategorisi olarak kuruluyor (aktör eki yok) hem altı çekirdek soru, marka soruları ve niyet soruları ürün biçimini kullanıyor (“What are the best …?”, “Is X a reliable choice among …?”). Firma markalarında hiçbir şey değişmez. Kategori düzeltilince rakip listesi ve içerik hedef soruları da aynı üretimde kendiliğinden yeni sorulardan türer. (2) TIBBİ CİHAZ sektörü iddia süzgecinde tanımlı değildi ve bir burun spreyi markası “genel”e düşüp üretilen llms.txt'e klinik kanıt, gebelik/emzirme kullanımı, farmakolojik/immünolojik etki, tolerasyon ve MDR/CE sınıfı ifadeleri KESİN ifade olarak girdi. Medikalde standart daha yüksek: bu beş iddia sınıfı, açık kaynak izi olmadan üretilen dosyaya taşınmaz — cümle çıkarılır, sebebi rapora yazılır, dayanağı olan müşteri kendi ifadesiyle ekler. Zararsız kullanım/tanım cümleleri kalır. (3) Küçük bir şablon düzeltmesi: “ürün yelpazesi” başlığı tek ürünlü markada sızıntıydı; başlık artık ürün sayısını varsaymadan kuruluyor — “kimler için: hangi ihtiyaca, hangi kullanım durumuna”.
KISA ALAN ADI JETONLARI ALT DİZEYLE EŞLEŞMİYOR; TAHMİNE DAYALI PAZARYERİNE “MAĞAZA AÇIN” DENMİYOR; GEREKÇELER ÖLÇÜM DİLİYLE YAZILMIYOR. Ölçülen yüzdeler değişmez; kaynak tipleri ve rapor metni değişir. (1) Zincir market “bim”, alan adı eşleşmesinde çıplak alt dize olarak aranıyordu ve “hoBİMarketim” ile “hoBİMos” içinde eşleşti: iki küçük hobi mağazası “Pazaryeri — mağaza sayfanızı açın” çıktı. Dosyanın kendi yorumu bu tuzağı yıllardır anlatıyordu (“bet” → betonmarket); kural artık kodda — dört harf ve altı jetonlar yalnız alan adının ÇEKİRDEĞİYLE birebir eşleşir: bim.com.tr pazaryeri kalır, hobimos.com eşleşmez. (2) Alan adı tahminiyle pazaryeri sayılan listede üçüncü taraf satıcı almayan zincirler de var (Migros, BİM); tahmine dayanarak “mağaza açın” denmez. Öneri artık koşullu: “önce üçüncü taraf satıcı kabul edip etmediğini kontrol edin; ediyorsa mağaza açın, etmiyorsa tedarikçi olarak listelenme yolunu araştırın.” Çoklu satıcı yapısı kamuca bilinen pazaryerlerinde (Trendyol gibi) öneri doğrudan kalıyor. (3) İtibar adımının gerekçesi “motorların ‘resmi kayıt bulunamadı’ demesinin en doğrudan cevabı budur” idi — ölçülmüş bir alıntı gibi okunuyor, oysa genel bir gerekçe; raporun kanıt kutusu ise başka bir bulguyu (şikâyet) gösteriyordu. Kanıtı gösterilmeyen cümle ölçüm diliyle yazılmaz: gerekçe artık “kurumsal kimlik bilgilerinin açık ve tutarlı yayımlanması, markanın doğrulanabilirliğini güçlendirir.” (4) Yönetici özeti “bazıları sizi başka bir işletmeyle karıştırıyor” derken, adı günlük dilde geçen markada karıştırılan şey bir işletme değil GENEL KAVRAMDI ve özet detayla çelişiyordu. Cümle karıştırılanın cinsine göre kuruluyor: kavram vakasında “bazıları adınızı özel bir marka olarak değil genel bir kavram olarak anlıyor” deniyor.
GENEL KAVRAM KARARI ÇAPRAZ KONTROLLE YAYILIYOR; İTİBAR RİSKİ HÜKMÜ HAM CEVAPTA DOĞRULANIYOR; “MAĞAZA AÇIN” ÖNERİSİ YALNIZ DOĞRULANMIŞ PAZARYERİNE VERİLİYOR. Birincisi TANINIRLIĞI değiştirebilir (düşürür); ikincisi risk bölümünün basılıp basılmadığını, üçüncüsü kaynak reçetelerini değiştirir. (1) Sürüm 53'te hakeme “kavram tanımı tanınma değildir” kuralını ekledik; hakem üç motorun sözlük-tanımı cevabını doğru biçimde düşürdü ama dördüncünün AYNI TÜR cevabına ✓ verdi — sürüm 32'de çapraz kontrolü doğuran hakem tutarsızlığının ta kendisi. Jeton tabanlı yayılım burada çalışmaz: “genel kavram” bir varlık adı değil, sınıf etiketi. Yayılan kanıt artık cevapların KENDİSİNDEN çıkarılıyor: düşen cevapların en az ikisinde ortak geçen ve markanın sitesinde GEÇMEYEN sözcükler tanım sözlüğüdür; tanınmış bir hücrenin cevabı bu sözlükten en az üç sözcük taşıyorsa aynı tanım cevabıdır ve düşer. Üç güvenlik kapısı var: en az iki doğrulanmış hücre, site metni dışlaması, üç ortak sözcük eşiği. Genel adlı markalarda tanınırlık bu sürümde DÜŞEBİLİR. (2) İTİBAR RİSKİ desenleri modelin yazdığı ton ÖZETİNE bakıyordu ve rapor “cevaplarda şikâyet aktarılıyor” gibi ağır bir hükmü, hangi motorun hangi soruda ne dediğini göstermeden basıyordu. Hüküm özetten, kanıt ham cevaptan: her bulgu ham cevaplarda da aranıyor — bulunursa motor + soru + cümle “Cevaplardan kanıt” kutusunda gösteriliyor, hiçbir cevapta karşılığı olmayan bulgu BASILMIYOR. Özet bir model çıktısıdır ve genelleme yapabilir; kanıtsız risk hükmü müşteriye gitmez. (3) “Sepet, kargo, stok” dili tek markalı bir mağazada da geçer; sayfa sınıflandırıcı bunu pazaryeri sayıyordu ve müşteriye kategorisinde satış yapan üç küçük mağaza için “mağaza sayfanızı açın” önerildi — oysa oralar büyük olasılıkla rakip. Pazaryeri, ÜÇÜNCÜ TARAF SATICI kabul eden yerdir ve kanıtı satıcı çağrısıdır (“satıcı ol”, “mağazanı aç”): çağrı sayfada okunmuşsa pazaryeri, okunmamışsa “başka bir firmanın online mağazası” — oraya mağaza açılmaz ve reçete bunu söyler. Trendyol, Hepsiburada gibi çoklu satıcı yapısı kamuca bilinen büyük pazaryerleri elle tasnif edildi; onlarda mağaza önerisi sayfa kanıtı olmadan da doğrudur. Küçük bir dil düzeltmesi: perakende içerik başlığı “çeşitleri: hangi ihtiyaca hangisi” yerine “hangi ihtiyaca hangi ürün?” diye kuruluyor.
GENEL İFADE OLAN MARKA ADLARINDA KAVRAM TANIMI TANINMA SAYILMIYOR; RAKİP KONTROLÜ SAYFA TİPİNDEN ÖNCE GELİYOR; PERAKENDE ŞABLONLARI GIDAYA ÖZGÜ KONUŞMUYOR. Birincisi TANINIRLIĞI değiştirebilir (düşürür); diğer ikisi kaynak sınıflandırmasını ve reçete metnini değiştirir. (1) Adı günlük dilde de geçen bir markada (“hobi sitesi” gibi) motor, adı geçirip KAVRAMIN KENDİSİNİ tanımlayabiliyor: “hobi sitesi, insanların boş zamanlarına yönelik kurulan internet platformudur.” Hakem bu cevaba ✓ verdi — oysa cevap spesifik şirketi değil sözlük tanımını anlatıyor ve markayı ayırt eden hiçbir şey söylemiyor. Hakem istemine açık kural eklendi: kavram tanımı tanınma DEĞİLDİR, karar “yanlış” ve karıştırılan “genel kavram”dır. Genel adlı markalarda tanınırlık bu sürümde DÜŞEBİLİR; motorlar değişmedi, ölçüm sıkılaştı. (2) Bir raporda rakibin kendi mağazası (aynı ölçümün rakip listesinde adı geçen marka) kaynak tablosunda “Pazaryeri — mağaza sayfanızı açın” önerisiyle basıldı: müşteriyi rakibinin sitesinde mağaza açmaya yönlendirdik. Sebep öncelik sırasıydı: sayfadan okunan tip (pazaryeri) rakip kontrolünün önüne geçiyordu. Sayfanın pazaryeri OLMASI doğruydu; ama rakibin pazaryeri olması onu kaynak yapmaz. Rakip kontrolü artık her şeyden önce geliyor — sayfadan okunan karar yalnız alan adı TAHMİNİNİN önüne geçer, aynı ölçümün kendi rakip bulgusunun değil. Ayrıca Türkçe aksanlı marka adı (“Hobidünya”) ASCII alan adıyla (hobidunya.com) eşleşmiyordu ve rakip sitesi “Basın/haber” çıkmıştı; eşleşme aksan düşürülerek yapılıyor. (3) Perakende içerik şablonları gıda dünyasından yazılmıştı: “hangi damak zevkine hangisi” bir hobi malzemesi satıcısına, “tazelik” bir kırtasiyeciye önerildi. Kapalı liste yazarken kapsadığı dünyayı yaz — perakende gıdadan ibaret değil. Şablonlar nötrleşti: eşleştirme kullanıcı İHTİYACI üzerinden (“hangi ihtiyaca hangisi”), güven işi “tedarik, orijinallik ve iade” üzerinden kuruluyor.
SİTEDEN TÜRETİLEN HER SORU, TÜRETİLDİĞİ METNE KARŞI DOĞRULANIYOR. Bu, genişletilmiş ölçümün soru setini değiştirebilir (skora ve trende karışmayan eksen); çekirdek ölçüm etkilenmez. “Sitenizin anlattığı işe göre sorular” başlığı bir İDDİADIR ve okuyanın doğrulayabilmesi gerekir. Bir raporda “glutensiz ve şekersiz pasta” sorusu çıktı; ürünler sitede GERÇEKTEN vardı ama raporun site özeti onları anmıyordu ve soru havada kaldı. Başka bir raporda ise soru gerçekten dayanaksızdı (sunulmayan değerleme hizmeti). İkisini ayırmanın tek yolu, soruyu üretildiği metne karşı sınamak. Kural: sorunun ayırt edici terimlerinin en az yarısı (ve en az ikisi) site metninde geçmeli; geçmiyorsa soru “siteden türetilmiş” sayılmaz ve ölçüme girmez. Soru kalıbının çerçeve kelimeleri (“hangi butik PASTANELERDE bulunur”) sınamaya girmez — soru kategoriye sorulur, markaya değil, ve o kelimelerin sitede geçmesi gerekmez. Türkçe çekim eki alt dize eşleşmesini kırdığı için (“pastası” ↔ “pastaları”) eşleşme köke esnetildi; bu kural soru DÜŞÜRDÜĞÜ için yanlış negatif pahalıdır ve esneklik güvenli taraftadır. Site metni okunamadıysa sınama yapılmaz: ölçemediğimize dayanarak soru elemeyiz. Rapor artık bölümün başında doğrulamayı açıkça söylüyor. AYNI SÜRÜMDE BİR TON KALİBRASYONU (ölçülen değer değişmez): zayıf kanıtlı kategori kutusunun içindeki mesaj hâlâ “belirgin biçimde GENİŞ görünüyor” diyordu — aynı kutu bir yanda “kanıt zayıf, eşanlamlı olabilir” derken öbür yanda kesin konuşuyordu. Mesajın sertliği artık kanıtın gücüne uyuyor: zayıf kanıtta “bir miktar geniş olabilir … kesin bir uyumsuzluk iddiası değil, doğrulama önerisidir” deniyor; güçlü kanıtta (lig farkı ya da bol kelime farkı) sert mesaj duruyor.
TEKNİK ÖLÇÜMÜN ÖRNEKLEMİ DÜZELDİ: ALT HARİTALARIN SORGU DİZESİ KORUNUYOR VE HTML OLMAYAN DOSYALAR SAYFA DENETİMİNE GİRMİYOR. Bu, TEKNİK SKORUN ölçülme biçimini değiştirir; etkilenen sitelerde teknik skor ve GEO Hazırlık Endeksi önceki aylarla kıyaslanamaz. Gerçek vaka: bir Shopify mağazasının site haritası, ürün/koleksiyon/blog alt haritalarına bağlanan bir dizindi ve alt harita adresleri sorgu dizesiyle çalışıyordu (sitemap_products_1.xml?from=…&to=…). Örnekleyici adresin yalnız yol kısmını alıyordu; sorgusuz istekler boş döndü ve koca mağaza İKİ sayfaya düştü — biri de agents.md. Rapor sonra bu iki sayfayı “sitenizin tamamı” diye sundu ve bir Markdown dosyasında HTML başlığı, meta açıklama ve H1 arayıp bulamayınca teknik skoru düşürdü: %72 teknik hazırlık ile %36 endeks, büyük ölçüde bu iki kusurun eseriydi. Üç düzeltme: (1) alt harita adreslerinin sorgu dizesi korunuyor ve en çok altı alt harita birleştiriliyor; (2) HTML olmayan kaynaklar (.md, .txt, .json, .xml ve benzeri) sayfa-bazlı HTML kontrollerinin paydasına hiç girmiyor — bu dosyalar kendi kontrollerinde ayrıca ele alınıyor; (3) “sitenizin tamamı tarandı” iddiası daraltıldı: taranan şey SİTE HARİTASINDA KEŞFEDİLEN sayfalardır ve rapor artık böyle söylüyor — haritada listelenmeyen sayfalar ölçümün dışındadır. AYNI SÜRÜMDE İKİ ANLATI KALİBRASYONU (ölçülen değer değişmez). (a) Motorun markaya yanlış iş atfettiği bulgularda ATIF BİR DEMETTİR ve demetin içi karışık olabilir: bir vakada atfedilen “günlük ekmek, kurabiye, poğaça, gluten free, vegan ürünler ile kafe hizmetleri” demetinden glutensiz, vegan, kurabiye ve poğaça sitede GERÇEKTEN vardı; ekmek ve kafe yoktu. Bulgu ayakta kalır (kısmen doğru iddia hâlâ iddiadır) ama rapor artık ayrımı yazıyor: sitede bulunanlar ayrı, bulunamayanlar ayrı — müşteriye kendi sattığı ürün “yapmadığınız iş” diye gösterilmez ve soru üretecine yasak yalnız bulunamayan kalemlerden gider. (b) Kategori uyarısının ŞİDDETİ KANITIN GÜCÜNE uyuyor: lig farkı ya da bol kelime farkı (≥4) güçlü kanıttır ve birinci sayfada “skoru yorumlamadan önce” uyarısı basılır; yalnız 2-3 kelimelik kapsam farkı zayıf kanıttır — “Butik Pastane” beyanına karşı “özel, tasarım, tatlı” kelimeleri uyumsuzluk değil eşanlam olabilir — ve o durumda birinci sayfa uyarısı basılmaz, detayda ölçülü bir “kategori tanımınızı doğrulayın” notu kalır. Zayıf kanıtla skoru gölgelemek, doğru raporu gereksiz yere durdurmanın rapor içi karşılığıdır.
SİTEDEN TÜRETİLEN SORULAR YANLIŞ ATFEDİLEN İŞLERİ ÖLÇMÜYOR; GÜVEN REÇETESİ OLMAYAN SÜRECİ VARSAYMIYOR. Birincisi genişletilmiş ölçümün sorularını değiştirebilir (skora ve trende karışmayan eksen); ikincisi yalnız reçete metni. (1) Bir raporda siteden türetilen soru “Emlak sitelerinde daire değeri nasıl hesaplanır?” çıktı — aynı rapor, markanın değerleme hizmeti VERMEDİĞİNİ varlık denetiminde ayrıca yazıyordu. Sunulmayan bir hizmet hakkında keşif sorusu markayı değil YANLIŞ ATFI ölçer; öyle bir sorudan çıkan yüzde bulgu değildir. Kanıt elimizdeydi ve kullanılmıyordu: varlık denetiminin “sunmadığı iş atfediliyor” bulguları artık soru üretecine veriliyor — istem, o işler hakkında soru üretmemesi söylenerek kuruluyor ve genel kural da eklendi: sorular sitenin SUNDUĞUNU ANLATTIĞI iş üzerine olmalı, komşu hizmetler üzerine değil. “Yetenek vardı, yanlış yere uygulanmıştı” dersinin bir örneği daha. (2) GÜVEN İÇERİĞİ REÇETESİ “ilanların nasıl doğrulandığını, şüpheli ilan bildirimini ve anlaşmazlıkta ne yaptığınızı anlatın” diyordu — doğrulama sürecinin VAR olduğunu varsayarak. Platformda öyle bir süreç olmayabilir ve olmayan bir süreci varmış gibi yazdırmak, raporun başka yerlerinde yasakladığımız yanlış beyanın ta kendisidir: yanlış güven beyanı, hiç yazmamaktan kötüdür. Öneri artık koşullu: “varsa … süreçlerinizi yazın; olmayan bir süreci varmış gibi anlatmayın.” Aynı düzeltme hem içerik reçetesindeki güven işine hem platform editöryal açısına uygulandı. KANIT GÜCÜ = MÜDAHALE GÜCÜ kuralının reçete tarafındaki karşılığı: sürecin varlığını ölçmediysek varlığını varsayan talimat yazamayız.
BOT REÇETESİ ÖLÇÜLEN AJANLARI SAYIYOR — SABİT LİSTEYİ DEĞİL. Ölçülen hiçbir değer değişmez; değişen şey iş maddesinin metni. Bir raporda bot yoklaması altı ajanın HTTP 403 aldığını gösterdi (GPTBot, OAI-SearchBot, Claude-User, Claude-SearchBot, ClaudeBot, PerplexityBot); hemen altındaki iş maddesi ise elle yazılmış sabit listesini okudu: ChatGPT-User ile Google-Extended'ı saydı — ikisinin engellendiği ölçülmemişti — ve ölçümün 403 gösterdiği Claude-User ile Claude-SearchBot'u atladı. Aynı sayfada ölçüm bir liste, reçete başka bir liste söylüyordu. İş maddesi artık ölçümün ENGELLİ bulduğu ajanları adlandırıyor: “bu ölçümde HTTP engeli aldığı doğrulanan ajanlar: …” Başka ajanları da desteklemek isteyen müşteriye bunun ölçüm dışında ayrıca kontrol edilmesi söyleniyor — ölçmediğimiz bir engel için kesin konuşmayız. Bot yoklaması hiç koşulmamışsa genel liste kalıyor: hangi ajanın engelli olduğunu bilmiyorsak seçici davranamayız. Bu, “sabit yazılmış sayı” dersinin liste hâli: sürüm 26'da “üç motorda da” cümlesi motor sayısını, sürüm 32'de “21 sayfadan” ifadesi örneklem sayısını sabit yazmıştı. Rapor içinde ölçümden türetilebilecek hiçbir şey elle yazılmış kalmamalı.
GLOBAL ÖLÇÜMDE KAPSAM UYARISI HESAPLANMIYOR; İNCELEME PLATFORMU REÇETESİ KOŞULLU KONUŞUYOR; TON KUTUSU ÇAPRAZ KONTROLÜ SAYIYOR. Ölçülen hiçbir değer değişmez; üç düzeltme de raporun anlatı katmanında. (1) KAPSAM UYARISI. Bir raporda beyan edilen kategori “E-Invoice”, sitenin kendi tanımı “E-Fatura ve Uyum Çözümleri” idi ve kelime farkı sayılınca ilk sayfaya “ana kategoriniz geniş görünüyor” uyarısı bastı — oysa “fatura”, “invoice”ın Türkçesidir: iki metin FARKLI DİLLERDE ve kelime karşılaştırması diller arasında anlamsız. Daha derindeki sebep şu: kapsam sinyalinin öncülü “rakip listesi geniş beyandan geldi” idi. Global ölçümde bu öncül kırık — sorular beyan etiketiyle değil, site metni okunarak üretilen İngilizce terimle kuruluyor (sürüm 29); ölçülen kategori yapısı gereği site türevi ve “beyan sitenin anlattığından geniş” cümlesi o ölçümü geçersiz kılamaz. Kapsam sinyali artık yalnız Türkçe ölçülen pazarlarda hesaplanıyor; sürüm 26'nın vakası bu değişiklikten sonra da uyarı üretiyor ve beyanı yanlış olan global marka için iki koruma ayrıca duruyor: müşteriyle kapatılan kategori onayı ve teşhis çelişkisini operatöre bildiren kontrol. (2) İNCELEME PLATFORMU REÇETESİ “profiliniz burada size aittir: sahiplenin” diyordu — profili hiç kontrol etmeden. Motorun o alan adından okuması, markanın orada profili olduğunu göstermez; sayfa bir rakibi ya da kategori listesini anlatıyor olabilir. Kaynağın TİPİNİ biliyoruz, profilin VARLIĞINI ölçmedik ve cümle artık bu ikisini ayırıyor: “profil varsa sahiplenin, yoksa oluşturma uygunluğunu kontrol edin — bu sayfada markanızın geçip geçmediğini ayrıca doğrulamadık.” Analist kuruluşlarının yorum platformu önerisi de aynı koşullu dile çekildi. (3) TON KUTUSU “motorlar sizi 3 cevapta başka bir şeyle karıştırdı” derken kimlik bölümü dört düşen hücre anlatıyordu: sayı yalnız hakemin bulduklarından geliyor, çapraz kontrolle yakalananları saymıyordu. İki liste aynı bulgunun iki yakalanma yoludur; kutu artık toplamı söylüyor.
FİNAL QA AŞAMASI DEVREDE: HER RAPOR GÖNDERİLMEDEN ÖNCE EN ÇOK ÜÇ TUR DENETLENİYOR. Ölçülen hiçbir değer değişmez; değişen şey raporun teslime hazır sayılıp sayılmadığı ve bunun nasıl kayda geçtiği. Rapor üretildikten sonra kendi metni ve ölçüm nesneleri denetleniyor, bulgular müşteri zararına göre seviyeleniyor (kritik / önemli / küçük / iyileştirme) ve on alana dağılmış yüz puan üzerinden bir puan çıkıyor. KARARI SEVİYELER VERİR, PUAN DEĞİL: genel kalite 9,5 olsa bile tek bir kritik bulgu gönderimi durdurur, buna karşılık yalnız küçük bulguları olan bir raporu durdurmak da doğru raporu gereksiz yere engellemek olur — ikisi eşit ağırlıkta hata. BELİRSİZLİK BULGU DEĞİLDİR. Raporun kendi kalite mekanizmaları — “doğrulanamadı”, “kontrollü taslak”, “örneklem”, “tek çekiliş”, “sınıflandırılamadı” — risk kontrolüdür ve hata sayılmaz; hata ancak rapor AYNI belirsiz bilgiyi başka bir yerde kesin gerçek gibi kullanıyorsa doğar. Kontroller bu yüzden hep iki yer arasındaki çelişkiye bakar, tek bir cümleye değil. DÖNGÜ KODU DEĞİŞTİRMEZ ve bu bilinçli. Son turlarda gelen bulguların neredeyse hepsi kod hatasıydı; bir worker'ın kendini yamalaması ne mümkün ne de istenir. Döngünün işi yeniden DENENEBİLECEK olanı denemek: varlık denetimi çağrısının düşmesi, global ölçümde kategori çevirisinin üretilememesi, siteden türetilen soruların tamamının elenmesi. Üçünün ortak yanı sonucun bir model çağrısından gelmesi ve çağrı tekrarlandığında değişebilmesi. Çaresi olmayan bulguda TUR HARCANMAZ: kod hatası tekrarlandığında aynı sonucu verir ve döngüde çevirmek yalnız para ve zaman yakar. Aynı bulgu imzası iki turda üst üste çıkarsa da durulur. MALİYET BİR RAPOR DEĞİL BİR ÇAĞRI KADAR: tur yeniden üretim yapar ama yalnız çarenin adını verdiği önbellek kaydı geçersiz kılınır, raporun geri kalanı günlük önbellekten gelir. KAYIT ASIL ÖĞRENME YERİ. Her raporun kaçıncı turda hangi kararla durduğu ve son turun bulguları saklanıyor; yönetim tarafındaki Final QA sayfası bunları bulgu türüne göre topluyor ve KAÇ AYRI MARKADA çıktığını gösteriyor. Tek markada tekrarlayan bir bulgu o markanın durumu olabilir; farklı markalarda tekrarlayan bulgu bizim kodumuzun sorunudur ve artık döngü işi değildir. Bu liste, kök nedenin ne zaman ele alınması gerektiğini söyleyen tek veridir.
KATEGORİ UYARISI KELİME BİÇİMİ FARKINI ARTIK UYUMSUZLUK SAYMIYOR. Ölçülen hiçbir değer değişmez; değişen şey uyarının çıkıp çıkmadığı. Bir raporda beyan edilen kategori “endüstriyel otomasyon sistem ENTEGRATÖRÜ”, sitenin kendi tanımı “endüstriyel otomasyon ve SCADA sistem ENTEGRASYONU” idi ve rapor ilk sayfada “ana kategoriniz geniş görünüyor” dedi. Oysa AYNI raporun sektör bölümü iki tanımın “tam olarak örtüştüğünü” yazıyor, kategori sorgularından dönen sekiz rakibin sekizi de Türkiye merkezli gerçek sistem entegratörleriydi. Elimizdeki kanıtların ikisi “kategori doğru” derken uyarı yine de çıkıyordu. İKİ AYRI KUSUR VARDI. (1) KÖK PAYLAŞIMI GÖRÜLMÜYORDU: kapsam farkı alt dize toleransıyla çalışıyordu ve “entegrasyonu” ile “entegratoru” birbirini içermiyor. Türkçede aynı kökten türeyen sözcükler ortak bir ön ek taşır; eşik ALTI harfe kondu — “entegra” (7) yakalanır, “otoma” (otomasyon/otomatik, 5) yakalanmaz, yani yalnız gerçekten ayırt edici bir kök paylaşımı sayılır. Bu kural uyarıyı SUSTURDUĞU için kaçırdığında güvenli tarafa düşmesi gerekiyor. (2) İKİNCİ KATEGORİ BEYANIN PARÇASI SAYILMIYORDU: ayırt edici sayılan öbür kelime “SCADA”ydı ve SCADA zaten ikinci kategori olarak beyan edilmiş, ayrıca ölçülmüş ve raporda kendi yüzdesiyle duruyordu. Müşterinin bize söylediği ve bizim ölçtüğümüz bir şeyi “sitenizde var ama beyanınızda yok” diye saymak, kendi verimizi görmezden gelmekti. SÜRÜM 26'NIN KARARI DURUYOR. Orada “modelin uyumludur yargısına güvenmiyoruz” demiştik ve o vaka hâlâ geçerli: “Akıllı Yaşam Alanları” örneğinde model “uyumludur” demişti ve yanılmıştı. Bu sürümde modelin yargısını sinyal olarak KULLANMIYORUZ; düzeltilen şey kelime farkının kendi hesabı — nitekim sürüm 26'nın vakası bu değişiklikten sonra da uyarı üretiyor. Ayrıca yayın öncesi denetime bir kontrol eklendi: rapor kategoriyi hem “geniş” diyor hem de sektör teşhisi yüksek güvenle “uyumlu” diyorsa bu operatöre bildiriliyor. Kontrol KARAR VERMEZ, çelişkiyi gösterir — hangisinin doğru olduğunu bilseydik zaten çelişki olmazdı.
TÜRKÇE ÇEKİRDEK SORULAR KATEGORİYE UYUM SAĞLIYOR; ÖZNESİZ SORU ÖLÇÜLMÜYOR; “BUNU YAPMIYORSUNUZ” İDDİASI KENDİ SİTENİZE KARŞI SINANIYOR. Birincisi ÖLÇÜLEN SORULARI değiştirir: kategorisi bir firma türüyle biten markalarda skor önceki sürümlerle kıyaslanamaz. Üçüncüsü tanınırlığı YÜKSELTEBİLİR. (1) TÜRKÇE ŞABLON. Sürüm 30'da İngilizce şablonu düzeltmiştik: kategori aktörü zaten adlandırıyorsa (“specialty coffee roasters”) şablon üstüne bir “companies” daha eklemesin diye. Türkçe taraf o gün dokunulmadan kaldı ve kategori teşhisi iyileştikçe aynı hata burada çıktı: “Türkiye'de endüstriyel otomasyon sistem entegratörü ALANINDA en iyi firmalar hangileri?” Kategori artık bir ALAN değil, bir FİRMA TÜRÜ; “… alanında en iyi firmalar” kalıbı onu bir konu gibi sarıyor ve kimsenin kurmayacağı bir cümle üretiyor. Doğal olanı: “Türkiye'deki en iyi endüstriyel otomasyon sistem entegratörleri hangileri?” Bu altı soru ANA KEŞİF SKORUNU üretiyor, dolayısıyla sorgu dilinin doğallığı üslup meselesi değil ölçümün kendisidir. Çoğul biçim KAPALI BİR TABLODAN geliyor, kuralla türetilmiyor: Türkçe çoğul ünlü uyumuna ve iyelik ekine bağlı (“entegratörü” → “entegratörleri”, “firması” → “firmaları”, “üretici” → “üreticiler”) ve tahmin etmektense yazımı elle tutuyoruz — tablo eksikse şablon eski hâline düşer, yani kaçırdığında güvenli tarafa gider. Aynı kural coğrafyasız sete ve satın alma niyeti sorularına da bağlandı. (2) ÖZNESİZ SORU. Sitenin kendi metninden türetilen sorular “SCADA ve PLC sistemlerinin entegrasyonunu hangi sektörlerde YAPIYORSUNUZ?” diye çıkıyordu. Bu soru motora tek başına gidiyor ve orada “siz” diye biri yok; öznesi belirsiz bir sorudan dönen cevapta markanın görünmemesi bir bulgu değildir. İsteme açık yasak eklendi ve çıktı ayrıca süzülüyor. Marka adını EKLEYEREK düzeltmiyoruz: o zaman soru kategori keşfinden çıkıp marka sorusuna dönerdi ve zaten ayrı ölçülen bir ekseni ikinci kez ölçerdik. Hiç soru kalmazsa bölüm düşer ve rapor bunu yazar. (3) “YAPMADIĞINIZ İŞLER” İDDİASI. Hakem bir raporda motorun markaya “yazılım geliştirme ve proses otomasyonu gibi yapmadığı işler” atfettiğini söyledi; oysa AYNI rapor markanın DCS, PLC, SCADA ve endüstriyel otomasyon entegrasyonu yaptığını doğruluyordu — müşteriye kendi işi “yapmadığınız iş” diye gösterildi. Sürüm 32'de çapraz kontrole koyduğumuz kapının aynısı buraya konmamıştı: atfedilen faaliyetin ayırt edici sözcükleri müşterinin KENDİ sayfalarında geçiyorsa o iddia kanıt sayılmaz. Eşik TAM KAPSAMA: sözcüklerin bir tanesi bile sitede yoksa bulgu ayakta kalır, çünkü kısmen doğru bir iddia hâlâ iddiadır ve müşterinin bakması gerekir. İddia tamamen dayanaksızsa hücre de GERİ VERİLİR: hücre “markaya ait olmayan faaliyet anlatılıyor” diye düşürülmüştü ve o gerekçeyi kendimiz çürüttüğümüzde cezayı sürdürmek olmaz. Site metni okunamadıysa hakemin kararına dokunulmuyor — ölçemediğimize dayanarak karar bozmayız.
DİL/PAZAR MİMARİSİ ARTIK GÖZLEM OLARAK RAPORLANIYOR — TEŞHİS OLARAK DEĞİL. Skor ETKİLENMEZ: bu bir puan kalemi değil, çünkü doğru mimarinin ne olduğuna dair bir hükmümüz yok. Hedef pazarı Türkiye olan bir markada kök adres /en/ sürümüne yönleniyordu. Altı çekirdek soru Türkçe soruluyor, motorlar kök adresten giriyor ve karşılarına İngilizce sayfa çıkıyor; arada gerçek bir gerilim var ve bunu söylememek eksiklik olurdu. Rapor yönlendirmenin kendisini zaten yazıyordu, ama hedef pazarla ilişkisini kurmuyordu. AMA “/tr'ye yönlendirin” DEMİYORUZ ve bunu raporda açıkça yazıyoruz. Böyle bir tavsiye için hangi sürümün dizinde olmasını istediğinizi, canonical kurgunuzu ve varsa sunucu tarafı ülke yönlendirmenizi bilmek gerekir; bunların hiçbirini ölçmedik. Ölçmediğimiz bir şeye dayanarak site mimarisi değiştirtmek, bu üründe yapılabilecek en pahalı hata olurdu — yanlış bir yönlendirme, yanlış bir yüzdeden çok daha zor geri alınır. HREFLANG'A BAKIYORUZ ÇÜNKÜ ELİMİZDE. Kök sayfanın HTML'i zaten okunuyordu; dil sürümlerinin birbirine ait olduğunu motorlara söyleyen işaret orada ya vardır ya yoktur ve bunu ölçmek yeni bir istek gerektirmiyor. Rapor üç durumu ayırıyor: hreflang var ve Türkçe sürüm bildirilmiş, hreflang var ama Türkçe bildirilmemiş, hreflang hiç yok. Yalnız KÖK sayfaya bakıldığı raporda yazılıyor — motorların ilk gördüğü sayfa o, ve okumadığımız sayfalar için hüküm vermeyiz. Kurgu bilinçliyse müşterinin bir şey yapmasına gerek olmadığı da yazıyor.
KARIŞTIRILAN ŞEYLER TEKİLLENİYOR; llms.txt UYARISI KUSURUN ÖLÇEĞİNE GÖRE KONUŞUYOR. Ölçülen hiçbir değer değişmez — iki düzeltme de metin tarafında. (1) Bir raporun ilk sayfasında “şu an bazı motorlar sizi jest (beden dili hareketi) ve jest (beden dili) ve guest relation (turizm) ile karıştırıyor” yazdı. Hakem her hücreyi ayrı değerlendiriyor ve aynı karışıklığı iki hücrede farklı sözcüklerle yazabiliyor; liste TAM eşleşmeyle tekilleniyordu ve bu ikisi tam eşleşmiyor. İlk çözüm girdileri “ve” üzerinden bölüp atomlara ayırmaktı; vazgeçildi, çünkü “Sağlık ve Güzellik Merkezi” gibi tek bir ad da ikiye bölünürdü — düzeltme yeni bir hata üretirdi ve bunu daha önce yaşadık (sürüm 30). Onun yerine KAPSAMA bakılıyor: bir girdinin baş terimi daha uzun bir girdinin içinde geçiyorsa kısa olan düşer, çünkü uzun olan aynı bilgiyi ve fazlasını taşıyor. Tüzel ek farkını (“A.Ş.” ile “AS”) bilerek birleştirmiyoruz: ad normalleştirmesini buraya taşımak, gerçekten farklı iki varlığı birleştirme riski getirir ve bu bölümün işi karışıklığı göstermek. (2) llms.txt kaynak izi, satırların çoğu doğrulanamadığında da “yayımlamadan önce bu satırları kontrol edin” diyordu. Yirmi satırın on dördü doğrulanamamışken bu cümle kusuru hafifletiyor: müşteri dosyayı kopyalayıp yayımlayabilir ve rapordaki kutu dosyayla birlikte gitmez. UYARININ ŞİDDETİ KUSURUN ÖLÇEĞİNE UYMALI — az sayıda satırda “kontrol edin” doğru ölçüdür, çoğunlukta değildir. Satırların yarısından çoğu doğrulanamadıysa rapor artık açıkça “bu dosyayı olduğu gibi YAYIMLAMAYIN” diyor. Doğrulamanın yapılamamasının sebebi BİZDE olduğunda (sayfalar sunucudan boş geliyorsa karşılaştıracak metin yoktur) bu uyarı kurulmuyor: sebebini bildiğimiz bir eksikliği müşterinin sırtına yıkmayız.
COĞRAFYASIZ SET ARTIK GERÇEKTEN COĞRAFYASIZ; VARLIK KAYITLARI AD BENZERLİĞİYLE ONAYLANMIYOR. Birincisi ÖLÇÜLEN SORULARI değiştirir: hedef pazarı belirtilmemiş markalarda skor önceki sürümlerle kıyaslanamaz. (1) HEDEF PAZAR BELİRTİLMEDİĞİNDE kullanılan altı sorudan biri “Türkiye'de … konusunda güvenilir şirketler kimler?” diyordu. Oysa bu set tam olarak “hedef pazarınızı bilmiyoruz ve VARSAYMADIK” dediğimiz durumda kullanılıyor; rapor bir sayfada “sorular coğrafya kısıtı olmadan soruldu” derken iki sayfa sonra rakip bölümü “Türkiye kısıtıyla sorulan soruda da görünmüyorsunuz” diyerek o soruya dayanıyordu — aynı ölçümün iki yarısı birbirini yalanlıyordu. Karışık bir set ölçüm de değil: beş soru bir evreni, biri başka bir evreni ölçer ve çıkan yüzde ikisinin ortalaması olur, yani ne Türkiye yüzdesi ne global yüzde — hiçbir şeyin yüzdesi. Set artık bütünüyle coğrafyasız. Kural iki yönlü ve yayın öncesi denetime de bağlandı: belirsiz pazarda hiçbir çekirdek soru coğrafya kısıtı taşımamalı, Türkiye pazarında ise hepsi taşımalı. (2) WİKİDATA VE ANSİKLOPEDİK MADDE ARTIK AD BENZERLİĞİYLE ✓ SAYILMIYOR. Bir raporda “✓ Wikidata kaydı — Q16870171 / soyadı” yazdı: eşleşen şey bir SOYADIYDI ve müşterinin şirketiyle tek ortak yanı harfleriydi. Üstelik aynı rapor birinci sayfada Organization şemasının sameAs alanına “doğrulanabilir profillerinizi ekleyin” diyor — yanlış varlık oraya bağlanırsa müşteri, makine okunur bir kimlik iddiasını kendi eliyle yayımlar. Bulguyu yanlış üretmek, hiç üretmemekten çok daha pahalı. KANIT GÜCÜ MÜDAHALE GÜCÜNE EŞİT OLMALI: “kaydınız var, sameAs'e koyun” güçlü bir müdahaledir ve güçlü kanıt ister. Kaydın RESMİ SİTE alanı (P856) ikinci bir çağrıyla okunuyor ve müşterinin alan adıyla karşılaştırılıyor. Ansiklopedik madde de aynı kapıdan geçiyor: ya doğrulanmış Wikidata kaydının kendi bağlantısı olmalı, ya da özetinde müşterinin alan adı geçmeli. ÜÇ SONUÇ VAR, İKİ DEĞİL. Doğrulandı → ✓ ve sameAs'e girebilir. Aday bulundu ama doğrulanamadı → gösterilir, ✓ SAYILMAZ, sameAs'e konmaması söylenir ve o kaydı doğrulamak ayın işlerinden biri olur. Kayıt açıkça bir kuruluşu anlatmıyorsa (soyadı, ilk isim, kişi, anlam ayrımı sayfası) hiç gösterilmez. Ret listesi Q kimliklerine değil kaydın AÇIKLAMASINA bakıyor: Q kimlikleri zamanla değişiyor ve tam listesini tutmak mümkün değil, açıklama ise sorguladığımız dilde ve kısa; liste eksik kalırsa sonuç “şüpheli” olur, yanlış ✓ olmaz — yani kaçırdığında güvenli tarafa düşüyor. Ayrım yalnız gösterimde değil: merdiven, yönetici özeti ve site dışı iş listesi de doğrulanmamış kaydı “yok” sayıyor, çünkü doğrulanmamış bir kayıt müşteriye hiçbir şey kazandırmaz ve asıl yapılacak iş tam da onu doğrulamaktır.
“SAĞLAM TANINMA” ARTIK TANINIRLIĞIN PAYDASINDAN OKUNUYOR. Ölçülen hiçbir değer değişmez — tanınırlık yüzdesi, hücre kararları ve skor aynı kalır; değişen tek şey bir oranın PAYDASI. Rapor manşette “2/12 hücre = %17” derken üç sayfa sonra “Sağlam tanınma: 2/11 hücre” diyordu. İkisi de kendi içinde doğruydu ve fark raporda açıklanmıştı, ama okuyan iki sayı arasında haklı olarak duraksıyor. İnceleyince sorun yalnız yazım değildi: PAYDANIN KENDİSİ yanlış seçilmişti. Cümle “bu sayı tanınırlık yüzdenizin sağlam zemini” diyor ve bir zemin, üstünde durduğu sayıyla AYNI ölçekten okunur. Kararlılık paydası (cevap veren hücreler) başka bir sorunun cevabıdır: “çekilişler birbirini tuttu mu”. Motorun hiç cevap vermediği bir hücre skorda zaten “tanınmadı” sayılıyor, dolayısıyla sağlam tanınma da olamaz — paydaya girmesi sayıyı şişirmez, sadece doğru zemine oturtur. Oran artık tanınırlıkla aynı paydadan yazılıyor ve cümle iki paydanın hangisinin ne anlattığını yerinde söylüyor. AYNI SÜRÜMDE YAYIN ÖNCESİ METİN DENETİMİ DEVREDE. Bu, ölçümü değil ürünün nasıl teslim edildiğini değiştirir. Kırk sürümün geri bildirim kaydına baktığımızda aldığımız uyarıların çoğunun ölçüm hatası değil RAPORUN METNİNDEKİ hata olduğu görülüyor: yanlış dilde sorulmuş bir soru, dört motor ölçüldüğü hâlde “üç motorda da” diyen bir cümle, örneklenen sayfa sayısı 16 iken “21 sayfa” yazan sabit bir ifade, aynı eksende açıklanmamış iki payda. Elimizdeki tutarlılık denetimi VERİYİ karşılaştırıyordu ve metni hiç okumuyordu; oysa bu hataların hepsi metinde ve hepsi makineyle bulunabilir — nitekim her biri bir insan tarafından okunarak bulundu. Artık rapor çizildikten sonra kendi metni denetleniyor: ölçümün dili, pazar çerçevesi, iki eksenin aynı soruyu sorması, bozuk soru dilbilgisi, sabit yazılmış sayılar, açıklanmamış paydalar ve sınıflandırılamamış kaynaklar. Bulgular MÜŞTERİYE DEĞİL operatöre gösterilir ve denetim hiçbir şeyi kendiliğinden düzeltmez: çelişkinin hangi tarafının doğru olduğunu bilseydik hatayı zaten yapmazdık. Her kontrol gerçek bir bulgudan doğdu ve kaynağı koda yazıldı — kaynağı olmayan bir kontrol zamanla yanlış pozitif üretip listenin tamamını okunmaz yapar.
GLOBAL ÖLÇÜMDE BÜTÜN SORU SETLERİ ARTIK İNGİLİZCE — TANINIRLIK DAHİL. Bu, ÖLÇÜLEN SORULARI değiştirir: global ölçülen markalarda hem keşif hem TANINIRLIK skoru önceki sürümlerle kıyaslanamaz. Sürüm 37'de çekirdek soruları, sürüm 39'da ikinci kategoriyi İngilizceye çevirdik. Geriye bağlanmamış üç yol kalmıştı ve bir raporda hepsi görünür oldu: "Eaglessoft güvenilir bir E-fatura markası mı?" (marka sorguları — tanınırlık eksenini besler), "E-fatura alanında fiyatlar nasıl?" (niyet seti) ve "PEPPOL Access Point hizmeti nedir?" (sitenin kendi metninden türetilen set — üstelik site baştan sona İngilizceydi). En ağırı birincisi: tanınırlık SKORA giriyor. Sitesi baştan sona İngilizce olan bir markanın alıcısı motorlara Türkçe sormaz ve Türkçe sorulan bir soruya dönen cevap, o alıcının gördüğü cevap değildir — yani ölçtüğümüz şey müşterinin pazarındaki tanınırlık değildi. AYNI HATANIN BEŞİNCİ TEKRARI OLDUĞU İÇİN BU KEZ YAPIYI DEĞİŞTİRDİK. Kuralı her seferinde kullanan yollara TEK TEK bağlıyorduk ve her seferinde geride bağlanmamış bir yol kalıyordu. Soru üreten bütün kalıplar artık tek bir dosyada ve ölçümün dili orada bir kez karar veriliyor; yeni bir soru seti eklenecekse oraya eklenir. Şablon kategorinin aktörü adlandırıp adlandırmadığını görüyor: "a reliable e-invoicing solution providers brand" gibi bozuk bir cümle kurulmuyor, bozuk bir sorunun cevabı ölçüm sayılmaz. Site metninden soru türeten isteme de dil talimatı eklendi — söylenmediğinde model, istemin geri kalanı Türkçe olduğu için Türkçe soru üretiyordu. Sitenin işini adlandıran ETİKET Türkçe kalıyor, çünkü beyan edilen kategoriyle karşılaştırılıp kapsam farkı oradan okunuyor; değişen yalnız sorular. ÇEVİRİ ÜRETİLEMEZSE HİÇBİR SET İNGİLİZCEYE GEÇMEZ: çekirdek zaten coğrafyasız Türkçe sete düşüyor ve öbür setleri İngilizce kurmak, aynı raporda iki farklı alıcıya sorulmuş sorular demek olurdu. Bütün setler ya birlikte İngilizce ya birlikte Türkçe. AYNI SÜRÜMDE KAYNAK SINIFLANDIRMASI: DÜNYACA BİLİNEN KAYNAKLAR ELLE TASNİF EDİLİYOR. Ölçülen yüzdeler değişmez; kaynak tipleri ve site dışı iş listesi değişir. Bir raporda gartner.com "sınıflandırılamayan kaynak — dizin mi, rakip mi belli değil" olarak çıktı ve müşteriye ayın işi olarak "önce açıp bakın" ödevi verildi. Gartner'ın ne olduğu tahmin edilecek bir şey değil: bunlar sınırlı sayıda, yıllarca aynı kalan kaynaklar ve otomatik sınıflandırıcının bunları bilememesi değil, listeye yazılmamış olmaları zayıflıktı. Üç tip eklendi ve AYRI tutuldular çünkü yapılacak iş bambaşka. ANALİST/ARAŞTIRMA KURULUŞLARINA (Gartner, Forrester, IDC) içerik koyamazsınız; değerlendirmelerine girmek onların kendi kapsam kriterlerine bağlıdır ve bunu "şu formu doldurun" diye yazmak müşteriyi yanıltır — rapor bunun yerine tanıtım görüşmesi talebini ve aynı kuruluşun müşteri yorumuna dayanan platformunu işaret ediyor. BAĞIMSIZ İNCELEME PLATFORMLARINDA (G2, Capterra, TrustRadius, Trustpilot) profil gerçekten sizindir: sahiplenmek, kategori ve özellik listesini sitenizle aynı yapmak ve gerçek müşterilerden değerlendirme istemek doğrudan yapılabilir işlerdir. Sahte yorum önerilmiyor: platform temizler ve motorun okuduğu tutarsızlığı büyütür. ANSİKLOPEDİ/AÇIK VERİ (Wikipedia, Wikidata) için kendi maddenizi kendiniz yazamazsınız — çıkar çatışması kuralları buna kapalı; yapılacak iş bağımsız kaynak biriktirmek, Wikidata tarafında ise kaynak göstererek kimlik alanlarını düzeltmek.
İKİNCİ KATEGORİ AYNI SORULARI SORUYORSA ARTIK ÖLÇÜLMÜYOR. Çekirdek skor ve trend etkilenmez — ikinci eksen zaten skora karışmıyordu; değişen şey o eksenin ölçülüp ölçülmediği. Bir raporda müşterinin birincil kategorisi "E-fatura", ikincisi "E-Invoice" yazıyordu. Global ölçümde ikisi de İngilizceye çevrildi ve İKİSİ DE "e-invoicing solution providers" terimine çözüldü: aynı altı soru iki kez soruldu, 12 hücre boşa ölçüldü ve rapor aynı %0'ı iki kutuda gösterdi. Üstüne "iki yüzde doğrudan karşılaştırılabilir" yazdı — doğruydu ama boş, çünkü karşılaştırılan şey ölçümün kendisiydi. ÇEVİRİ BU ÇAKIŞMAYI GÖRÜNMEZ YAPIYOR: beyan edilen iki etiket birbirinden farklıydı ve girdiye bakan bir kontrol bunu yakalayamazdı; yakalanabilir tek yer ÇIKTIDIR, yani iki eksenin gerçekten sorduğu sorular. Karşılaştırma artık orada yapılıyor ve setler aynıysa ölçüm hiç yapılmıyor. Bölüm SESSİZCE KAYBOLMUYOR: rapor ölçmediğimizi, neden ölçmediğimizi ve ne verilirse ölçebileceğimizi yazıyor — gerçekten ayrı bir soru seti üreten bir ikinci kategori, aynı terimin başka bir yazımı değil. GLOBAL ÖLÇÜMDE İKİNCİ KATEGORİ TÜRKÇE SETE DÜŞMÜYOR. Çeviri üretilemediğinde soru üreteci coğrafyasız Türkçe sete düşüyordu ve o setin içinde "Türkiye'de … güvenilir şirketler kimler?" sorusu var; Türkiye pazarı olmayan bir markanın raporuna o soruyu koymak, çekirdek eksende sürüm 37'de düzelttiğimiz hatayı ikincil eksende tekrarlamak olurdu. Aynı ders dördüncü kez: bir kuralı yazmak yetmiyor, onu kullanan HER yola bağlamak gerekiyor. Çeviri yoksa eksen ölçülmüyor ve rapor bunu yazıyor. İKİ DÜZELTME DAHA. (1) Bölümün giriş cümlesi "İki pazarda satıyorsunuz; ikisi ayrı ayrı ölçülür" diyordu — bu bir PAZAR cümlesiydi, oysa bölüm pazarı değil KATEGORİYİ ikiye ayırıyor. Global ölçülen bir raporda cümle üstelik manşetin altındaki "bu ölçüm global pazar için yapıldı" kutusuyla doğrudan çelişiyordu. Artık "iki kategoride ölçüm yapıyoruz" diyor. (2) Karşılaştırma kutuları BEYAN EDİLEN etiketi gösteriyordu ("E-fatura", "E-Invoice") ama sorular çevrilmiş terimle sorulmuştu; kutu, sorulmamış bir soruyu sorulmuş gibi gösteriyordu. Global ölçümde kutular artık ölçümün GERÇEKTEN sorduğu terimi yazıyor. Türkiye çekirdeğinde beyan edilen etiket kalıyor, çünkü sorulan da odur.
HEDEF PAZAR OLARAK "GLOBAL" EKLENDİ: TÜRKİYE PAZARI OLMAYAN MARKADA RAPOR TÜRKİYE'Yİ BİR EKSEN OLARAK HİÇ KURMUYOR. Ölçülen çekirdek değer değişmez — "ihracat" ile "global" birebir aynı ölçümdür: her ikisinde de sorular İngilizce ve coğrafya kısıtı olmadan sorulur. Ayrılan şey ANLATIDIR. İhracat yapan bir Türk firması için Türkiye bir referans noktasıdır ve "yurt dışı", "Türkçe profil orada okunmaz", "ihracat kapasiteniz" cümleleri ona kendi işini anlatır. Türkiye pazarı hiç olmayan bir markaya aynı cümleler yabancı bir çerçeve dayatıyordu: sitesi baştan sona İngilizce, adresi yurt dışında, Türkçe tek satırı yok — onun için "yurt dışı" diye bir yer yok, her yer aynı yer. Sürüm 35'ten beri böyle bir markanın ölçümünü globale çeviriyorduk ama RAPOR Türkiye'ye göreli kalmıştı ve bu bir tutarsızlıktı: doğru soruyu sorup yanlış çerçevede cevaplıyorduk. Değişen dört yer var. (1) RAKİP COĞRAFYASI KUTUSU KURULMUYOR. Kutunun tek ekseni "kaç rakip Türkiye merkezli, kaç tanesi değil" ve bu ancak Türkiye bir referans noktasıysa bir karar verdirir; "14 rakibin 14'ü yurt dışı merkezli" cümlesi global bir markaya hiçbir şey söylemez. Yerine bir şey UYDURMUYORUZ — elimizdeki tek coğrafya verisi bu ikili ayrım ve o burada anlamsız; kutunun taşıdığı tek kullanışlı cümle ("bu liste sizin liginiz") bölümün giriş paragrafında kalıyor. (2) İTİBAR ADIMLARI KURUM ADI SÖYLEMİYOR. "Ticaret sicil numaranızı, vergi numaranızı" cümlesi Türkiye'de kayıtlı bir firma için doğru; global bir markanın böyle bir numarası olmayabilir (adı KvK, VAT, EIN, CRN olabilir). Adım ATLANMIYOR çünkü altındaki ihtiyaç evrensel — motorun "resmi kayıt bulunamadı" demesinin cevabı doğrulanabilir bir tüzel kimliktir; değişen tek şey kurumu adlandırmamak, çünkü hangi sicilde kayıtlı olduğu hukuki bir sorudur ve ölçtüğümüz bir şey değil. (3) İÇERİK REÇETESİ HANGİ DİLDE YAYIMLANACAĞINI SÖYLÜYOR. Ölçüm İngilizce sorularla yapıldı, her maddenin hedef sorusu İngilizce yazıyor ve o soruyu soran alıcı sayfayı da İngilizce okuyacak; başlığı Türkçe görüp Türkçe bir sayfa açan müşteri tam da ölçtüğümüz sorunun cevabını üretmemiş olur. Başlıkları kendiliğimizden İngilizceye çevirmiyoruz — bunlar yayına hazır manşetler değil, ne yazılacağını anlatan brief'ler ve otomatik çevrilmiş bir manşet doğrulanmadan sayfa başlığı olarak kullanılabilir görünürdü. (4) DIŞ AYAK İZİ ÖNCE İNGİLİZCE KAYNAKLARA BAKIYOR. Wikidata etiketleri ve Wikipedia araması Türkçeyi önceliyordu; global bir markanın kaydı büyük olasılıkla en.wikipedia'da. Kapsam DEĞİŞMİYOR, sıra değişiyor: iki dil de sorgulanmaya devam ediyor ve marka tr.wikipedia'da bulunuyorsa bunu saklamıyoruz. Sitede Türkiye'ye dair hiçbir iz bulunamadığında ölçüm artık "ihracat" yerine bu değere geçiyor — düzeltmeyi tetikleyen kanıt zaten tam olarak "bu markanın Türkiye pazarı yok" kanıtı, yani sıfır iz; onu ihracata çevirmek soruları doğru kurar ama raporu Türkiye'ye göreli bir çerçevede bırakırdı ve "yurt dışı" diyebilmek için önce bir "yurt içi" olması gerekir. Karar sessiz değil: rapor manşetin dibinde bu kararın yalnız soruları değil raporun tamamını belirlediğini yazıyor.
GLOBAL ÖLÇÜMDE ÇEKİRDEK SORULAR ARTIK GERÇEKTEN İNGİLİZCE. Bu, ölçülen soruları değiştirir; global ölçülen markalarda skor önceki sürümle kıyaslanamaz. Sürüm 35'te "sitede Türkiye izi yoksa ölçümü globale çevir" kuralını koyduk ve çeviriyi bu yola BAĞLAMADIK. Sonuç: cümle İngilizce kuruldu ama kategori Türkçe kaldı — "Who are the best E-fatura companies?" Bu, sürüm 20 ve 28'de iki kez düzelttiğimiz hatanın ÜÇÜNCÜSÜ ve ilk kez ÇEKİRDEK eksende, yani skoru doğrudan etkiliyor. Ders her seferinde aynı: bir kuralı yazmak yetmiyor, onu kullanan HER yola bağlamak gerekiyor — İngilizce kontrolü ikincil eksende vardı, çekirdek yolda yoktu. Kategori çevirisi artık çekirdek ölçümden ÖNCE üretiliyor ve iki eksene birden hizmet ediyor (aynı önbellek anahtarı, ek maliyet yok). İkinci kategori de aynı kurala tabi. Çeviri üretilemezse global çekirdek kurulmuyor ve ölçüm coğrafyasız Türkçe sete düşüyor; rapor bunu yazıyor. Doğrulama İKİ katmanlı, çünkü biri yetmiyor: Türkçe harf kontrolü bir doğrulayıcıdır ve "E-fatura" onu geçer — ikinci kontrol çevirinin gerçekten yapıldığını, yani sonucun girdiden farklı olduğunu arıyor. Aynı kestirmeye sürüm 29'da da düşmüştük. HAKEME PAZAR KANITI VERİLİYOR. Rapor bir yanda "sitede Türkiye izi yok, ölçümü global yaptık" derken hakem öbür yanda "aranan şirket Türkiye merkezli olabilir" gerekçesiyle yabancı merkezli cevapları YANLIŞ sayıyordu; aynı ölçümün iki yarısı birbiriyle çelişiyordu ve kanıt elimizdeyken hakeme verilmemişti. Artık site kanıtı isteme giriyor: iz yoksa "bu şirketi Türkiye merkezli VARSAYMA" deniyor. Adı paylaşılan global markalarda tanınırlık bu sürümde YÜKSELEBİLİR. İçerik reçetesindeki soru desenleri de yalnız Türkçe yazılmıştı ve İngilizce sorular en alttaki varsayılan dala düşüp BAŞLIK OLARAK KENDİSİ kullanılıyordu: müşterinin sitesine "Who are the best … companies?" diye bir sayfa önerildi. Kural yıllardır yazılıydı ("sorunun kendisini başlık yapma, arkasındaki ihtiyaca cevap ver") ama tek dilde. Sıralama, güven, karşılaştırma ve fiyat desenleri artık iki dilde. Son olarak, global ölçülen bir markaya Türkiye'ye özgü tavsiye verilmiyor: rakip coğrafyası bölümü "hangi ligde yarışıyorsunuz" yerine "rakiplerinizin coğrafyası" diyor ve "asıl bakılacak yer aynı soruların Türkiye kısıtıyla sorulmuş hâli" cümlesi kurulmuyor — o soru hiç sorulmadı.
"İHRACAT PAZARI" EKSENİNİN ADI "GLOBAL PAZAR" OLDU. Ölçülen hiçbir değer değişmez; değişen şey etiket. Ad yanlış değildi ama DARDI: ihracat mal göndermeyi çağrıştırıyor ve ölçtüğümüz markaların çoğu mal göndermiyor. Bir e-fatura yazılımı, bir ilan platformu, bir danışmanlık şirketi ihracat yapmıyor — yurt dışında ÇALIŞIYOR. "İhracat pazarında %0" cümlesi böyle bir markaya kendi işini tarif etmiyor gibi geliyor ve raporun geri kalanının da ona göre yazılmadığı izlenimini bırakıyor. Ölçtüğümüz şeyin kendisi de zaten ihracat değil: soruları İNGİLİZCE ve COĞRAFYA KISITI OLMADAN soruyoruz ve bunun karşılığı global görünürlüktür. Bir üretici için global görünürlük ihracat demektir; bir yazılım için değildir — adın ikisini birden kapsaması gerekiyordu. Aboneliğin hedef pazar seçeneği de "İhracat (yurt dışı)" yerine "Global (yurt dışı)" yazıyor. Veritabanındaki değer "ihracat" olarak KALIYOR: göç gerektirmeyen bir ad değişikliği için kayıtlı veriyi ellemeyiz ve geçmiş ölçümlerin karşılaştırılabilirliği bozulmaz.
SİTEDE TÜRKİYE PAZARINA DAİR HİÇBİR İZ YOKSA TÜRKİYE ARTIK ÖLÇÜLMÜYOR. Bu, ÖLÇÜLEN SORULARI değiştirir; etkilenen markalarda skor önceki sürümlerle kıyaslanamaz. Bir abonelikte hedef pazar "ikisi" yazıyordu ve ölçümün yarısı Türkçe sorulara gitti. Oysa site baştan sona İngilizceydi (html lang="en"), Türkçe tek satır yoktu, Türkiye telefonu, KVKK metni, ₺ fiyat ve .tr alan adı da yoktu. O yarım ölçüm boşa gitti: Türkçe sorulan bir soruya dönen liste, o markanın müşterisinin gördüğü liste değil. SÜRÜM 18'DEKİ KURALLA ÇELİŞMİYOR, TERSİNİ SÖYLÜYOR. Orada "sitenin diline bakıp demek ki Türkiye'de satıyor demek varsayım olur" demiştik ve bu doğru — ihracat yapan pek çok Türk firmasının sitesi Türkçedir. Buradaki çıkarım ters yönde ve çok daha güçlü: Türkiye'ye satan bir markanın sitesinde Türkiye'ye dair EN AZ BİR iz bulunur. Yedi ayrı iz aranıyor ve TEK BİRİ bile Türkiye ölçümünü sürdürmeye yetiyor; eşik bilinçli olarak böyle asimetrik, çünkü Türkiye'de satan bir markanın ölçümünü kesmek, satmayan bir markaya boş ölçüm yapmaktan çok daha pahalı. ÜRÜN KAPSAMI PAZAR İZİ DEĞİLDİR — bu ayrım kuralın en kritik parçası. Bir e-fatura yazılımının sayfasında "Turkey — E-Invoice, E-Archive (GIB)" satırı desteklenen MEVZUAT listesindendir; yanında Hollanda, Belçika, İspanya ve Polonya da vardır. Ülke adının gövde metninde geçmesi tek başına asla iz sayılmaz. Türkçe metin tespiti de ham harf SAYISINA değil ÇEŞİTLİLİĞİNE bakıyor: "Türkiye" tek bir Türkçe harf taşır, gerçek Türkçe metin ş, ğ, ı, ç, ö, ü'yü birlikte kullanır. Karar SESSİZ DEĞİL ve GERİ ALINABİLİR: rapor manşetin dibinde ölçümün hangi pazar için yapıldığını, hangi izleri aradığımızı ve düzeltmenin nasıl yapılacağını yazıyor. Sitenin metni hiç okunamadıysa düzeltme YAPILMIYOR — iz bulamamak ile bakamamak ayrı şeylerdir ve ölçemediğimize dayanarak pazar değiştirmek tam da kaçındığımız varsayım olurdu.
ÇAPRAZ KONTROLÜN GÜVENLİK KAPISI DİL FARKINDA DELİNİYORDU — bu bir DÜZELTMENİN DÜZELTMESİDİR ve tanınırlık bu sürümde YÜKSELEBİLİR. Sürüm 32'de eklediğimiz çapraz kontrolün üçüncü kapısı şuydu: bir karışıklığın ayırt edici jetonu müşterinin KENDİ SİTESİNDE geçiyorsa karışıklık kanıtı sayılmaz — site o ülkeden söz ediyorsa markanın gerçekten orada bir ofisi olabilir. Bu kapı ilk gerçek vakada çalışmadı. Hakem karışıklığı Türkçe yazmıştı ("Belçika merkezli"), müşterinin sitesi İngilizceydi ve "Belgium" diyordu. Aynı ülke, iki dil, eşleşme yok — ve büyük olasılıkla aynı şirkete ait hücreler tanınmadan düşürüldü; o ölçümde tanınırlık 3/12 yerine 1/12 çıktı. Normalleştirme aksanı çözüyordu ama DİLİ çözmüyordu. Yer adları bu hatanın en olası kaynağı, çünkü karışıklıkların çoğu "başka ülkede merkezli aynı adlı şirket" biçiminde. Kapalı ve dar bir eşanlam tablosu (otuz kadar ülke, Türkçe ve İngilizce yazımlarıyla) tahmin etmeden bu boşluğu kapatıyor. Liste tam değil ve olamaz: kapsamadığı bir dil çiftinde kapı yine delinebilir. Bu yüzden çapraz kontrolle düşen hücreler raporda ayrıca listeleniyor — karar bizim çıkarımımızdan geliyor ve okuyan onu görebilmeli. Aynı sürümde ölçüleni değiştirmeyen bir düzeltme: robots.txt kaleminin açıklaması "AI motorları tarayabiliyor" diyordu ve bir raporda altı botun altısı da sunucudan HTTP 403 alırken bu cümle basıldı — rapor iki satır arayla hem "tarayabiliyor" hem "6/6 bot engelleniyor" dedi. robots.txt bir İZİN belgesidir; erişimi sunucu, CDN ve WAF katmanı belirler. Açıklama artık bot yoklamasının sonucunu biliyor ve engel varsa kuralın nerede olduğunu söylüyor.
PLATFORM/PAZARYERİ BİR İŞ TİPİ OLARAK EKLENDİ. Ölçülen skor değişmez; içerik reçetesi, itibar adımları ve ihracat soruları değişir. Bir ölçümde sistem markayı DOĞRU tanıdı — "satılık ve kiralık daire ilanları platformu" — ve iki sayfa sonra reçete klasik danışmanlık şablonuna döndü: "hizmet alanları: hangi ihtiyaca hangi çözüm", "süreç: adım adım nasıl ilerliyor", "uzmanlık: referanslar ve tamamlanan projeler". Bir ilan platformunun tamamlanan projesi ya da çalışma biçimi yoktur. Üstelik aynı raporun genişletilmiş ölçümü platforma özgü çok daha iyi soruları site metninden zaten türetmişti ("ilan vermek ücretsiz mi", "kurumsal mağaza açabilir miyim", "hangi şehirlerde ilan var"); reçete o kaynaktan konuşmuyordu. Yeni tip en önde sıralanıyor: "emlak ilan platformu" hem hizmet hem platform anahtarına uyar ve belirleyici olan platform tarafıdır — müşteri danışmanlık satmıyor, ilan yayımlatıyor. Bir pazaryeri teknik olarak yazılımdır ama ticari modeli yazılım satmak değildir. Platformun otorite kurduğu yer KULLANIM: ilan nasıl verilir, arama nasıl yapılır, kurumsal hesap ne işe yarar, güven nasıl sağlanır, kapsam hangi şehirlerdir. İTİBAR ADIMLARI DA İŞ MODELİNE BAĞLANDI. Liste sabitti ve her markaya "acentelik, bakanlık izni, meslek örgütü kaydı" öneriyordu; platformda karşılığı yok ve müşteri "bunlar bende yok" deyince yalnız o madde değil listenin tamamı değersizleşiyor. Doğrulanabilir kimlik her iş modelinde korunuyor — değişen şey belge adları. Bilmediğimiz bir ruhsatın adını dayatmıyoruz: hangi belgenin gerektiği hukuki bir sorudur ve ölçtüğümüz bir şey değil; genel listede artık "faaliyetiniz böyle bir belge gerektirmiyorsa bu adımı atlayın" yazıyor. İHRACAT ŞABLONU: aktör sözlüğüne platform ekonomisi eklendi (platform, marketplace, portal, directory, aggregator, listing). Sözlük ilk yazıldığında yalnız üretim ve ticaret dünyasından sözcükler taşıyordu ve bir ilan platformunun kategorisi "apartment listing platforms" çıkınca şablon üstüne "companies" ekledi.
VARLIK DENETİMİNE ÇAPRAZ KONTROL EKLENDİ VE TANINIRLIK BU SÜRÜMDE DÜŞEBİLİR. Hakem her cevabı BAĞIMSIZ değerlendiriyor ve bir çağrıda fark ettiğini öbüründe kaçırabiliyor. Bir ölçümde bunun somut sonucu şuydu: hakem iki cevabı "aynı adlı, başka ülkede merkezli bir şirketle birlikte anlatıyor" diye düşürdü ve gerekçesini yazdı; aynı ölçümdeki başka bir motorun cevabı markayı doğrudan o ülkede merkezli diye tanımlıyordu ve DOĞRU sayıldı. Rapor aynı sayfada hem bulguyu hem bulguyu çürüten bir onay işareti bastı. Biz bütün cevaplara aynı anda bakabiliyoruz: bir hücrede DOĞRULANMIŞ karışıklık, aynı ayırt edici ifadeyi taşıyan öbür hücreler için de kanıttır. Artık doğrulanmış karışıklığın ayırt edici jetonları çıkarılıyor ve tanınmış sayılan diğer hücrelerin tam cevaplarında aranıyor; bulunan hücre tanınma saymıyor. Yanlış pozitife karşı üç kapı var: jeton dört harften uzun ve jenerik listede olmamalı, markanın kendi adı olmamalı, ve en önemlisi MÜŞTERİNİN KENDİ SİTESİNDE geçmemeli — site o ülkeden söz ediyorsa cevapta geçmesi karışıklık kanıtı değildir. Karar sessiz değil: çapraz kontrolle düşen hücreler raporda ayrıca yazılıyor, çünkü bu karar hakemden değil bizim çıkarımımızdan geliyor. Adı başka bir varlıkla paylaşan markalarda tanınırlık bu sürümde DÜŞER; motorlar değişmedi, ölçüm tutarlı hale geldi. Ölçüleni değiştirmeyen iki düzeltme: rakip fark tablosundaki "sizi 21 sayfadan ölçüp" ifadesi bir örnekten SABİT yazılmıştı ve 16 sayfa örneklenen bir raporda da 21 diyordu — sayı artık ölçümden geliyor. İkinci kategori bölümü, çekirdek ölçümden daha az motorla ölçüldüğünde bunu söylüyor ve "iki yüzde doğrudan karşılaştırılabilir" cümlesini kurmuyor; bir ölçümde çekirdek dört motorla, ikinci kategori üçle ölçülmüştü ve rapor paydaların eşit olduğunu ima ediyordu.
KATEGORİ UYARISI YÖNETİCİ ÖZETİNE TAŞINDI; TESLİM EDİLEN DOSYA KENDİ UYARISINI TAŞIYOR. Ölçülen hiçbir değer değişmez. (1) Kategori uyarısı manşetin altındaydı ama raporun üçüncü sayfasına düşüyordu. Oysa söylediği şey keşif yüzdesinin NASIL OKUNACAĞINI kökten değiştiriyor: bir ölçümde "Yazıcı" kategorisinden dönen sekiz rakibin sekizi de yabancı üreticiydi ve markanın kendi sitesi işini "yazıcı ve ofis ekipmanları distribütörü" diye anlatıyordu — orada %0 bir başarısızlık değil, ölçümün yanlış ligde yapıldığının göstergesi. Yönetici özeti raporun tamamını okumayan için yazılır; skorun yorumunu değiştiren bir uyarı skorun kendisiyle aynı ekranda olmalı. Özet artık "Bu skoru yorumlamadan önce" satırını taşıyor ve ayrıntıya işaret ediyor. (2) Teslim edilen llms.txt'te doğrulanamayan iletişim satırları artık dosyanın İÇİNDE işaretleniyor: "[DOĞRULAYIN — okuduğumuz sayfalarda bulunamadı]". Bulguyu yalnız rapora yazmak yetmiyordu, çünkü müşteri dosyayı kopyalayıp yayımlıyor ve rapordaki uyarı kutusu dosyayla birlikte gelmiyor. Satırı SİLMİYORUZ ve bu bilinçli: "okuduğumuz sayfalarda yok" ile "sitede yok" aynı şey değil — 301 sayfalık bir siteden 16 sayfa örneklediğimizde bilgi büyük olasılıkla okumadığımız bir sayfadadır ve doğru olabilecek bir iletişim bilgisini atmak müşteriye zarar verir. Şema tarafında ters karar vermiştik (orada alan ya vardır ya yoktur ve makine okunur bir iddiadır); burası düz metin ve müşteri okuyarak karar verebilir. Rapor ayrıca kaç sayfadan kaçını okuduğumuzu bu kutuda da yazıyor, çünkü kanıtın gücü buna bağlı.
İNGİLİZCE SORU ŞABLONU KATEGORİYE UYUM SAĞLIYOR. İhracat sorularının KURULUŞU değişti; ihracat yüzdesi önceki sürümle kıyaslanamaz, Türkiye ölçümü etkilenmez. Bir önceki sürümde kategori çevirisini iyileştirdik: iş türü sitede açıkça görünüyorsa terime ekleniyor ("specialty coffee" değil "specialty coffee roasters"). Ama soru şablonu buna uyum sağlamıyordu ve kendisi de bir aktör ismi ekliyordu: "Who are the best specialty coffee roasters COMPANIES?", "Which specialty coffee roasters BRANDS are most recommended?". Dilbilgisi bozuk ve bozuk bir sorunun cevabı ölçüm sayılmaz — bir düzeltme, bir sonraki katmanda yeni bir hata üretti. Şablon artık kategorinin aktörü adlandırıp adlandırmadığını görüyor. Adlandırıyorsa kategori sorunun ÖZNESİ oluyor ("Who are the best specialty coffee roasters?"); adlandırmıyorsa şablon eskisi gibi aktör ismini kendisi ekliyor ("Who are the best specialty coffee companies?"). Ayrım KAPALI bir İngilizce ticaret sözlüğüne dayanıyor — roaster, manufacturer, supplier, distributor, factory ve benzeri, tekil ve çoğul biçimleriyle. Tahmin yok: bir sözcük ya bu listededir ya değildir. Çeviri isteminden artık ÇOĞUL biçim isteniyor, çünkü terim "Who are the best ___?" sorusunun öznesi olarak kullanılıyor.
YÖNETİCİ ÖZETİ KUSURUN CİNSİNİ ÖLÇÜMDEN ALIYOR; ihracat terimi sitenin kendi metnini de görüyor. Ölçülen skor bu sürümde değişmez, ihracat sorularının kurulduğu terim değişebilir. (1) Özet cümlesi her markada aynı şeyi söylüyordu: "bazı motorlar sizi tanımıyor ya da başka bir şeyle karıştırıyor". Bir ölçümde asıl bulgu bunların hiçbiri değildi — motor doğru markayı buluyor ama sunmadığı ürün ve hizmetleri ona atfediyordu. Hakem bu ayrımı bir önceki sürümde yapmaya başlamıştı ve rapor ayrı bir bölümde gösteriyordu; ÖZET onu duymuyordu. Yönetici özeti raporun tamamını okumayan için yazılır ve orada yanlış kusuru adlandırmak müşteriyi yanlış işe yönlendirir: karıştırmanın çözümü kimliği ayrıştırmak, kapsam hatasının çözümü ne yapmadığını yazmaktır. Cümle artık dört ayrı bulgudan hangileri gerçekten ölçüldüyse onlardan kuruluyor — "hiç tanımıyor" da dahil: bunu ancak hiçbir bulgu etiketi taşımayan düşmüş bir hücre varsa söylüyoruz. (2) İHRACAT TERİMİ: kategoriyi İngilizceye çevirirken modele sitenin kendi metnini VERMİYORDUK ve model kategoriyi tek başına çevirmek zorunda kalıyordu. "Nitelikli Kahve" için "specialty coffee" çıktı — doğru ama TİCARİ KONUMU kaçırıyor: marka bir kavurucu ve yurt dışı alıcı "specialty coffee roasters" arıyor. Sitenin kendi metni bu farkı taşıyor ve zaten okuyoruz; modele vermemek elimizdeki kanıtı kullanmamaktı. Artık site metni de veriliyor ve istem, iş türünün sitede açıkça göründüğü durumlarda terime eklenmesini istiyor — görünmüyorsa tahmin edilmiyor, kategori terimi tek başına kullanılıyor. Aynı sayfa metni sektör teşhisinde de kullanılıyor, yani ek istek yok. İhracat yüzdeleri bu sürümde farklı bir terimle ölçülmüş olabilir ve önceki sürümlerle doğrudan kıyaslanmaz.
İHRACAT KATEGORİSİ ÇEVRİLMEDEN GEÇİYORDU VE HAKEME YENİ BİR KARAR EKLENDİ. (1) İHRACAT: sürüm 20'de kategoriyi yerelleştirme kuralını koymuştuk ama çeviri fonksiyonunda bir kestirme vardı — "içinde Türkçe harf yoksa zaten İngilizcedir" varsayımı. "Nitelikli Kahve" içinde tek bir Türkçe harf yok; çeviri HİÇ DENENMEDİ ve ihracat soruları "Who are the best Nitelikli Kahve companies?" diye kuruldu. Tam da engellemek için yazdığımız hata, engelleyicinin kendi kestirmesinden geri geldi. Türkçe harf kontrolü bir DOĞRULAYICIDIR, bir tespit aracı değil: harf varsa İngilizce olmadığı kesindir, yoksa hiçbir şey bilinmez — bunu kendi kod yorumumuzda yazmıştık ve yine de tespit için kullandık. Çeviri artık her zaman deneniyor ve sonuç girdinin aynısı dönerse ihracat bölümü hiç ölçülmüyor. İhracat yüzdeleri önceki sürümlerle kıyaslanamaz. (2) HAKEME "UYDURMA" KARARI EKLENDİ ve tanınırlık bundan etkilenir. Eskiden iki ayrı sorun tek hanede toplanıyordu: motorun markayı BAŞKA bir şirketle karıştırması ile DOĞRU şirkete olmayan hizmetler atfetmesi. Bir ölçümde bir motor doğru markadan bahsedip ona ekipman satışı, barista eğitimi, çay ve atıştırmalık ekledi; rapor bunu "sizi başka bir şeyle karıştırıyor" başlığı altında gösterdi. Motor karıştırmıyordu. İkisinin reçetesi de ayrı: karıştırmada kimlik ayrıştırılır (farklı ad, kayıt, tutarlı adres-unvan), uydurmada ise markanın kendi sayfasında ne yaptığını olduğu kadar NE YAPMADIĞINI da net yazması gerekir. Artık ayrı bir karar, ayrı bir liste ve ayrı bir bölüm. Hücre yine düşer — somut ama yanlış bilgi temiz bir tanınma değildir — ama bulgu doğru kutuda görünür. Ölçüleni değiştirmeyen üç düzeltme: görünürlük merdiveninin basamak özetleri artık "çoğu motor" demiyor. Basamak ORTANCADIR ve dört motorun ikisi tanıyıp ikisi tanımadığında ortanca 1 çıkar; "çoğu" demek yanlıştı, ortancanın garanti ettiği şey "motorların en az yarısı". İkincisi: "asıl darboğaz" iki ayrı bölümde iki farklı şey için kullanılıyordu; darboğaz artık yalnız yönetici özetinde adlandırılıyor ve site dışı bölümü okuyanı oraya geri gönderiyor. Üçüncüsü: "motorlar bu tür içeriği sık alıntılar" gibi gerekçeler yumuşatıldı — alıntılanma sıklığını ölçmüyoruz; söyleyebileceğimiz şey içeriğin biçiminin alıntılanmaya uygun olduğu.
KAYNAK SINIFLANDIRMASI SAYFANIN KENDİ BAŞLIĞINI DA OKUYOR; ölçülen skor değişmez, kaynak tipleri değişir. Bir raporda sekiz kaynak "sınıflandırılamayan" çıktı ve ayın üçüncü işi olarak müşteriye "önce açıp bakın" diye ödev verildi — çekirdek sorularda toplam 38 kez geçen sekiz alan adı. Oysa o sitelerin sayfalarını OKUMUŞTUK; kullanmadığımız şey en açık kanıttı: sayfanın kendi <title> etiketi. "Onedio — Sosyal İçerik Platformu", "Paranet — Finans, Ekonomi ve Piyasa Haberleri", "Avansas: Ofis ve İşyeri İhtiyaçları". Sınıflandırıcı yalnız gövdeye bakıyordu ve gövde işaretleri elle yazılmış kalıplara dayanıyor: "firmanızı ekleyin", "son yazılar", "hakkımızda". Modern siteler bu kalıpları kullanmıyor. Üç ekleme yapıldı. (1) Başlık, gövde KARARSIZ kaldığında devreye giriyor — yalnız "bilinmiyor" kararının yerini alabiliyor, başka hiçbir kararın değil, dolayısıyla yanlış sınıflandırma riski hiç sınıflandıramamakla sınırlı. (2) Perakende/e-ticaret dili eklendi: eski dizin listesi B2B firma rehberi diliyle yazılmıştı ve bir e-ticaret sitesi o kalıpların hiçbirini kullanmıyor — "sepete ekle", "kargo bedava", "stokta" diyor. (3) "Sayfa tek bir firmayı anlatıyor ama sizin kategorinizde değil" kararı artık ATILMIYOR. Bu bir karardır; boşa çevirince kaynak alan adı tahminine geri düşüyor ve yine "önce siz bakın" çıkıyordu. Artık "başka bir firmanın sitesi" olarak raporlanıyor: girilecek bir yer yok, yapılacak iş aynı soruyu kendi sayfanızda daha net cevaplamak. Ayrıca sayfa sınıflandırıcısının döndürebildiği her tip kaynak tipi tablosuna bağlandı — "basın", "pazaryeri" ve "forum" tabloda yoktu ve o kararlar sessizce düşüyordu. Bu değişiklik görünürlük yüzdelerini ETKİLEMEZ ama kaynak tipi kırılımını, öncelik tablosunu ve site dışı iş listesini değiştirir: daha önce "sınıflandırılamadı" diye tek maddede toplanan kaynaklar artık kendi tiplerinde ve kendi reçeteleriyle görünüyor.
KATEGORİ UYUM UYARISI ARTIK KAPSAMA DA BAKIYOR; ÖLÇÜLEN DEĞER DEĞİŞMEZ. Uyarı ligi yalnız COĞRAFYAYLA ölçüyordu: hedef pazarı Türkiye'yi içeren bir markada rakip listesi baştan sona yurt dışı merkezliyse "kategoriyi doğrulayın" diyordu. Gerçek bir vakayı kaçırdı. "Akıllı Yaşam Alanları" kategorisinden Vestel, Samsung, Arçelik, Siemens ve Turkcell çıktı — sekiz rakibin yedisi Türkiye merkezliydi, yani coğrafya sinyali "aynı ligdesiniz" dedi. Oysa markanın kendi sitesi işini "güneş enerjili carport ve akıllı dış mekan çözümleri" diye anlatıyordu: sorun ülke değil KAPSAMDI, beyan edilen etiket sitenin anlattığı işten belirgin biçimde genişti. Artık ikinci bir sinyal var ve ikisinden biri yeterli: sitenin kendi tanımı, kategori etiketinde hiç geçmeyen en az iki ayırt edici kelime taşıyorsa ("güneş", "carport") ve marka o kategorinin hiçbir sorusunda görünmüyorsa rapor kategoriyi doğrulamanızı istiyor. Ölçüt sayılabilir bir olgudur, bir yargı değil: modelin "sektör uyumludur" demesine bakmıyoruz, çünkü bu vakada model tam da öyle demişti. Jenerik kelimeler ("çözümleri", "sistemleri", "hizmetleri") ayırt edici sayılmaz ve tek fazladan kelime yetmez — her site kendini etiketinden uzun anlatır. İki teslim düzeltmesi daha var. (1) DOĞRULANMAYAN TANIM ARTIK ŞEMADAN ÇIKARILIYOR. Önceki sürümde cümleyi bırakıp "doğrulanmadı" damgası basıyorduk; yetmiyor, çünkü şema makine okunur bir İDDİADIR ve müşteri kodu olduğu gibi yapıştırdığında o cümle markanın resmi tanımı olarak yayımlanır. Rapor bir yanda "bu cümleyi sitenizde bulamadık" derken öbür yanda aynı cümleyi teslim ediyordu. llms.txt'te satırı bırakmaya devam ediyoruz — orası düz metin ve okuyup karar verebilirsiniz; şemada alan ya vardır ya yoktur ve boş bırakmak da yanlış beyandır. Çıkarılan alan "dolduramadığımız alanlar" listesine giriyor. (2) Motor kırılımı bölümündeki "Üç motorda da aynı sonuç" cümlesi motor sayısını SABİT yazıyordu ve dördüncü motor eklendikten sonra altındaki tabloyla çelişiyordu; sayı artık ölçümden geliyor.
MOTOR SETİ DONDURULDU VE GEÇİŞ AYI İÇİN KIYAS TABLOSU EKLENDİ. Bu sürüm ölçülen değeri DEĞİŞTİRMEZ; değiştirdiği şey, değişen bir çerçevenin nasıl anlatıldığı. Perplexity eklendiği ölçümde tanınırlık %44'ten %33'e düştü ve merdiven 1'den 0'a indi. Tanınan hücre sayısı DEĞİŞMEMİŞTİ — dördü de yerinde duruyordu. Düşen şey paydaydı: 9 hücreden 12'ye çıktı ve dördüncü motor markayı hiç tanımıyordu. Sitede ve markada hiçbir şey değişmemişti ama rapor bunu açıklayan tek satır taşımıyordu. İlk ölçümde zararsız; aboneliğin ikinci raporunda müşteriyi kaybettiren şey tam olarak budur. Yapamayacağımız şey açık: önceki ölçümın ölçümünü yeni motorla yeniden hesaplamak. O motora o ölçümde soru sorulmadı ve olmayan bir cevabı üretmek, ölçmediğimizi ölçtük demenin en kötü biçimi olurdu. Yapabildiğimiz şey bunun tersi: BU ayın ölçümünü ÖNCEKİ ölçümün çerçevesinde yeniden hesaplamak — bu ay bütün motorların hücreleri elimizde, yenisini dışarıda bırakınca önceki ölçümle birebir aynı çerçeve çıkıyor. Motorun eklendiği ölçümde rapor üç sütun basıyor: önceki ölçüm, bu ölçüm eski çerçeveyle, bu ölçüm yeni çerçeveyle. Trend ortadaki sütundan okunuyor; sağdaki sütun sonraki ölçümlerin başlangıç noktası. Tablo yalnız o ölçümde çıkar. Ayrıca motor seti bundan sonra DONDURULMUŞ sayılıyor: bir ölçümde set değişirse operatöre uyarı gidiyor ve trend grafiğinde tam o satırda kırılma işareti çıkıyor. Beşinci bir motor eklemek bilinçli bir karar olmak zorunda, fark edilmeden olan bir şey değil — çünkü geriye dönük düzeltmesi yok. İkinci ekleme: ÇİFT SAYIDA MOTORDA ORTANCANIN NASIL YUVARLANDIĞI artık yazılı. Dört motorda ortanca iki ortadaki değerin arasına düşebiliyor ({2,1,0,0} için 0,5) ve biz AŞAĞI yuvarlıyoruz. Karar değişmedi, görünür oldu: bir basamak, bir motorun daha markayı tanımasıyla kazanılır, tanımamasıyla kaybedilmez — "sizi tanıyor" demek "tanımıyor" demekten daha iddialıdır ve iddialı tarafın kanıt yükü ağırdır. Bağ aşağı çözüldüğünde rapor bunu satırın yanında söylüyor.
VARLIK DENETİMİNİN NEDEN DÜŞTÜĞÜ BULUNDU VE TANINIRLIK BU SÜRÜMDE DÜŞEBİLİR. İki ayrı kök neden çıktı, ikisi de ölçülen değeri etkiliyor. (1) KARIŞIK KARARI EKLENDİĞİ GÜNDEN BERİ ÖLÜ KODDU. Sürüm 16'da hakeme "karisik" kararı eklenmişti: motor doğru şirketten bahsediyor ama aynı adı taşıyan başka bir varlığı da anlatıyorsa, bu temiz bir tanınma değildir. Ama kararı kabul eden liste elle yazılmıştı ve "karisik" o listeye konmamıştı — gelen her "karisik" kararı sessizce "belirsiz"e dönüşüyor, hücre düşmüyor ve kimlik karışıklığı listesi dolmuyordu. Yani sekiz sürümdür duyurduğumuz bir ölçüm hiç çalışmamış. Artık kabul listesi kararların kendi tanımından türetiliyor. SONUÇ: adı başka bir varlıkla paylaşan markalarda tanınırlık bu sürümde DÜŞER ve kimlik karışıklığı bölümü dolabilir; motorlar değişmedi, ölçüm düzeldi. (2) HAKEME GİDEN CEVAP TAVANA ÇARPIP KESİLİYORDU. Hakemin yanıt uzunluğu sabit bir tavana bağlıydı ve o tavan üç motorluk ölçüme (9 hücre) göre konmuştu. Perplexity eklenince hücre 12'ye çıktı, her karar bir gerekçe cümlesi taşıyor ve Türkçe metin token bakımından pahalı: yanıt yarıda kesiliyor, kesilen JSON çözülemiyor ve denetim tümüyle düşmüş görünüyordu. Arka arkaya iki ölçümde düşmesinin sebebi bir sağlayıcı arızası değil, motor eklerken bu tavanın güncellenmemesiydi — bir sabit, üzerinde durduğu ölçek değişince sabit kalamaz. Tavan artık hücre sayısıyla ölçekleniyor ve kesilme ayrıca kayda geçiyor. (3) KISMİ DENETİM ARTIK DENETİM SAYILMIYOR. Yanıt yarıda kesildiğinde bazen 12 hücrenin 8'i geliyor, 4'ü gelmiyordu; karar bulunamayan hücre olduğu gibi bırakılıyor, yani SESSİZCE "denetlendi ve geçti" hanesine yazılıyordu. Kısmi kesilme tam kesilmeden tehlikeliydi çünkü rapora "denetlendi" diye giriyordu. Eksen ancak tanınmış görünen HER hücre denetlendiyse geçerli sayılıyor. Aynı sürümde ölçülen değeri değiştirmeyen iki metin düzeltmesi: dereceli modda kararlılık paragrafı artık tanınırlık iddiası taşımıyor (çekiliş kararlılığı denetimden bağımsız ölçülebilir, "sağlam tanınma" ve ondan türeyen puan ölçülemez — ölçülemediğini söylediğimiz eksenden bir "gerçek zemin" bildiriyorduk); ve sayfaları sunucudan boş gelen sitede llms.txt özet cümlesi artık "bu satırları kontrol edin" demiyor — aynı bölümün ayrıntı kutusu "sizden bir şey beklemiyoruz" derken özet cümlesi bunun tersini söylüyordu.
VARLIK DENETİMİ DÜŞERSE TANINIRLIK EKSENİ ARTIK SAYI BASMIYOR. Bir ölçümde tanınırlık "%67 DENETLENMEDİ" diye basıldı; önceki ölçüm %44'tü ve müşterinin gördüğü şey 23 puanlık bir sıçramaydı. Aynı sayfada bir motorun yanında hem ⚠ ✓ duruyor hem de o ✓'i çürüten alıntı basılıyordu, üstelik bunu açıklayacak kimlik karışıklığı bölümü denetime bağlı olduğu için hiç çıkmıyordu. Rozet yetmiyor: rozetli bir sayı, sayının yanlış okunmasını engellemiyor, yalnızca bizi haklı çıkarıyor. Asıl zarar TREND tarafındaydı — o sayı başarı ölçütüne başlangıç noktası olarak yazılıyor ve gelecek ay denetim çalışınca gerçek değer çok daha düşük çıkıp ÇÖKÜŞ gibi okunuyordu. Ürünün bütün değeri aylar arası kıyasta; denetlenmemiş bir sayıyı başlangıç yapmak o değeri zehirler. Artık üç şey birden değişti: (1) denetim düşerse bir kez daha DENENİYOR ve başarısız sonuç günlük önbelleğe YAZILMIYOR — eskiden ilk başarısızlık güne yazılıyordu ve aynı gün yeniden denemek fiilen imkânsızdı; (2) ikinci deneme de düşerse tanınırlık ekseni sayı yerine "bu ölçümde ölçülemedi" durumu gösteriyor, o ayın tanınırlık hedefi konmuyor ve sayı geçmişe yazılmıyor; (3) görünürlük merdiveni de damgalanıyor ve geçmişe yazılmıyor, çünkü kategoride görünmeyen bir motorun basamağı marka tanınmasından çıkar. Kimlik karışıklığı bölümü de artık sessizce kaybolmuyor: "kontrol edilemedi" diyor, çünkü yokluk ile ölçülememek ayrı şeylerdir. Aynı sürümde ölçülen değeri değiştirmeyen dört düzeltme: motor seti bir ölçümden diğerine değişirse TREND GRAFİĞİNDE tam o satırda kırılma işareti çıkıyor (kategori için zaten savunduğumuz ilkenin motorlara uygulanmış hâli; eklenen motor ile o ölçümde cevap vermeyen motor ayrı ayrı anlatılıyor); tek çekilişte görünen bir alan adı artık rakip fark tablosuna girmiyor (aynı adres hem rakip olarak ölçülüp hem "gözlem — henüz iş değil" listesinde duruyordu); teslim edilen Organization kodunda modelin HİÇ yazmadığı alanlar da "dolduramadığımız alanlar" listesine giriyor ve iş listesi artık genel bir alan listesi yerine yalnız eksik kalanları söylüyor (kodda logo yokken "logo doldurun" diyordu); ve sayfaları sunucudan boş gelen bir sitede llms.txt satırlarının doğrulanamaması artık müşteriye ödev olarak verilmiyor — kök neden teknik bölümde zaten ölçülü ve tek bir iş iki sorunu birden kapatıyor.
PERPLEXITY ÇEKİRDEK ÖLÇÜME KATILDI. Bu, sürüm sisteminin var oluş sebebi olan değişiklik türüdür: skor motorların ORTALAMASIDIR ve dördüncü bir motor eklemek PAYDAYI değiştirir. Bu sürümün skoru önceki sürümlerin skorlarıyla DOĞRUDAN KIYASLANAMAZ — sitenizde ya da markanızda hiçbir şey değişmeden sayı oynayabilir, çünkü artık dört motorun ortalaması alınıyor. Hücre sayısı da değişti: hücre = soru × cevap veren motor olduğu için çekirdek ölçüm 18 hücreden 24 hücreye, marka ölçümü 9 hücreden 12 hücreye çıktı; bir hücrenin puan ağırlığı bu yüzden DÜŞTÜ (tanınırlıkta yaklaşık 11 puandan 8 puana) ve ölçümün çözünürlüğü arttı. Görünürlük merdiveninin genel basamağı motorların ortancasıdır; dört motorda ortanca, ortadaki iki motorun ortalamasından hesaplanır. NEDEN ŞİMDİ VE NEDEN BİR KEREDE: Perplexity bir GEO ölçümünde kendi başına anlamlı çünkü cevabını her zaman web aramasıyla kurar — diğer üç motorda web aramasını biz açıyoruz, orada zaten açık. Bir önceki sürümde onu AYRI bir eksende, tek çekilişle ve skora karıştırmadan ölçüyorduk; sebebi tam da buydu, trendi kırmamak. Skora katmak bilinçli bir karardır ve bir kerede yapılır: yeni bir motor eklemenin yan etkisi olarak, sessizce olmaz. Perplexity artık diğer motorlarla AYNI muameleyi görüyor — aynı altı çekirdek soru, aynı üç çekiliş, aynı çoğunluk oyu. Ayrı eksen bölümü kaldırıldı: aynı şeyi iki kez ölçüp iki kez ödemenin anlamı yok. ÜCRETSİZ TESTTE PERPLEXITY YOKTUR ve bu bilinçli: Perplexity'nin web aramasız bir modu yok, ücretsiz test ise motorların hafızasını ölçüyor ve web araması kapalı. Her zaman aramalı bir motoru oraya koymak iki farklı şeyi aynı yüzdede toplamak olurdu. Bu yüzden ücretsiz testin yüzdesiyle abonelik raporunun yüzdesi bu sürümden sonra daha da az kıyaslanabilir; rapor bunu zaten yazıyordu.
ÖNBELLEĞİ YAZAN İLE OKUYAN AYNI BİÇİMİ KONUŞMUYORDU ve bu ölçülen değeri etkiliyordu. Gemini yolunda önbellek JSON zarfıyla yazılıyor ({metin, kaynaklar}) ama HAM okunuyordu; Claude ve OpenAI yolları doğru fonksiyonu kullanıyordu, yalnız Gemini kaçmıştı. İki sonucu vardı. Görüneni: önbellekten dönen her Gemini cevabı metin değil JSON dizesiydi ve müşteriye giden PDF'e birebir basıldı — kaçış karakterleriyle birlikte. Görünmeyeni ve daha ağırı: zarfın kaynak alanı hiç okunmadığı için önbellekten gelen Gemini cevapları KAYNAK LİSTESİNE HİÇ KATKI VERMİYORDU; kaynak sayıları, kaynak tipi kırılımı ve kendi sitenizin kaynak oranı eksik hesaplanıyordu. Bu sürümde düzeldi ve bu sayılar önceki sürümlerle doğrudan kıyaslanamaz. Aynı sürümde alıntı boru hattına bir son savunma hattı eklendi: alıntı, kaynağı ne olursa olsun önce normalleştiriliyor (JSON zarfı açılıyor, kaçışlar çözülüyor, markdown temizleniyor) — kök nedeni değil belirtiyi engelliyor, ikisi birden gerekiyor. Ölçülen değeri DEĞİŞTİRMEYEN dört düzeltme daha var. (1) Koşullu bölümler artık sessizce kaybolamıyor: bir raporda tam bir sayfa itibar riski bölümü vardı, ertesi ölçümde skor birebir aynıyken o bölüm yoktu ve rapor bunu hiç söylemedi — okuyan bunu "demek düzeldi" diye okur. Hangi koşullu bölümlerin çıktığı artık kayda geçiyor ve bir bölüm kaybolduğunda rapor bunun ne anlama GELMEDİĞİNİ yazıyor. (2) Organization şemasındaki boş alanlar ("telephone": "", "address": "") koddan çıkarılıyor: boş bir alan, alanın hiç olmamasından kötüdür — motorlara "bu markanın telefonu yok" diye yapısal bir beyan gider, oysa doğrusu "bilmiyoruz". Dolduramadığımız alanlar raporda adıyla yazılıyor. (3) Bilinen alan adları artık müşteriye "önce açıp sınıflandırın" diye ödev olarak verilmiyor: LinkedIn, operatör ve üretici siteleri, üretici destek forumları tanınıyor ve doğrudan işiyle birlikte geliyor. (4) Darboğaz sıralamasına teknik eşik eklendi: sayfaların tamamı sunucudan boş geliyorsa bu, tarayıcı engelinin ikizidir ve ayın altıncı işi olamaz — motor kapıdan giriyor ama boş bir oda buluyor, üstüne kurulacak her iş boşa gider. Ayrıca teslim ettiğimiz llms.txt'in bölüm başlıkları artık sabit bir listeden seçiliyor: dosya her ay yeniden üretiliyor ve başlıklar her ay değişirse müşteri yayımladığı dosyayı güncellemeye çekinir.
İHRACAT ÖLÇÜMÜ VE SEKTÖR TEŞHİSİ ayrı ayrı düzeltildi; ikisi de ölçülen değeri değiştirir. (1) İHRACAT: sorular İngilizce kuruluyordu ama KATEGORİ Türkçe kalıyordu ve ortaya "Who are the best Akıllı Yaşam Alanları companies?" gibi, hiçbir yurt dışı alıcının yazmayacağı bir sorgu çıkıyordu. O sorgudan dönen liste alıcının gördüğü liste değildir; dolayısıyla oradan çıkan "%0" bir bulgu değil, ölçüm hatasıydı. Kategori artık yerelleştiriliyor — birebir çeviri değil, alıcının sektörde kullandığı terim — ve çeviri doğrulanmazsa (içinde Türkçe harf kalmışsa) İHRACAT BÖLÜMÜ HİÇ ÖLÇÜLMEZ: yanlış kurulmuş bir sorunun sonucunu yayımlamaktansa "bu ölçüm yapılamadı" demek doğru olanı. İhracat yüzdeleri önceki sürümlerle kıyaslanamaz. (2) SEKTÖR TEŞHİSİ yalnız ANA SAYFANIN metnini görüyordu; JavaScript ile çizilen bir sitede sunucudan gelen HTML boş olduğu için 200 karakterlik eşik hiç aşılmıyordu, teşhis sessizce düşüyor ve raporun İKİ bölümü birden kayboluyordu ("Sitenizin anlattığı iş" ve "Sitenizin anlattığı işe göre sorular"). Oysa aynı ölçümde 21 sayfanın metni elimizdeydi — yetenek vardı, yanlış yere uygulanmıştı. Teşhis artık tüm sayfa havuzunu okuyor; daha önce teşhis edilemeyen sitelerde artık bir sektör tespiti ve ona bağlı bir soru seti çıkıyor. Çıkaramadığımızda da SEBEBİ yazılıyor. (3) Aynı sürümde ölçülen değeri değiştirmeyen dört düzeltme: kategori uyum uyarısı (Türkiye pazarında rakip listesi baştan sona küresel markalardan oluşuyor ve marka hiçbirinde görünmüyorsa rapor artık "skoru yorumlamadan önce kategoriyi doğrulayın" diyor — ölçtüğümüz şey "aynı ligde mi", "gerçek rakibiniz mi" değil); Organization şemasının description alanının da sitenin metniyle karşılaştırılması (bir teslimde bir cümlenin sitede bulunamadığı yazarken aynı cümle şemaya description olarak girmişti); SSS sayfası var ama sunucudan boş geliyorsa iş listesinin "5-8 soru yazın" yerine "var olan içeriği sunucudan gönderin" demesi; ve yanıtsız hücrenin raporda sayılması (tanınırlık "9 hücre" derken kararlılık "5/8" yazıyor ve dokuzuncu hücreye ne olduğu hiçbir yerde geçmiyordu).
KAYNAK LİSTESİNİN OKUNMA BİÇİMİ değişti; kaynak sayısına ve kaynak oranına dayanan her şey bu sürümde oynayabilir. İki hata birden vardı. (1) Gemini, web araması sonuçlarını kendi iç yönlendirme adresinin arkasından veriyor (vertexaisearch.cloud.google.com) ve biz o adresi KAYNAK sanıyorduk: bir raporda "2 soruda · yinelendi" etiketiyle kaynak listesinde durdu. Bu bir site değil, arkasındaki gerçek kaynağı gizleyen bir ara adres — müşteriye "Google'ın iç yönlendiricisi sizin kategorinizi yazıyor" demiş oluyorduk ve asıl kaynağı da kaybediyorduk. Artık gerçek alan adı motorun ayrıca verdiği alandan okunuyor; okunamıyorsa adres listeye hiç alınmıyor. Aynı süzgeç bilinen kısaltıcılar ve önbellek/çeviri proxy'leri için de çalışıyor. Bu değişiklik kaynak listesini, kaynak tipi kırılımını ve kendi sitenizin kaynak oranını ETKİLER; önceki sürümlerle doğrudan kıyaslanmaz. (2) Aynı sürümde ölçümü etkilemeyen ama raporun DOĞRULUĞUNU etkileyen üç düzeltme var: teslim ettiğimiz dosyanın iletişim satırları artık sitenin kendi metniyle karşılaştırılıyor (bir teslimde e-posta "[email protected]" — Cloudflare'ın yer tutucusu — ve adres "Trupm Tower" olarak çıkmıştı; ikisi de doğrulama katmanımızdan geçti), itibar riski kalıpları sabit cümle değil ANLAM arıyor (motor aynı şeyi başka kelimelerle söyleyince etiket yine "Nötr" çıkıyordu), ve rapor markayı tek bir yazımla anıyor (kapakta, ton bölümünde ve teslim edilen dosyada üç farklı yazım vardı — "aynı tanım her yerde aynı olsun" diyen bir raporun kendi kapağında olmaz). Ayrıca PDF sayfa kırılımı düzeltildi: bölüm başlıkları <div> olduğu için başlıkları içeriğiyle birlikte tutan kural hiçbir şeye uygulanmıyordu ve on bir kalemlik kontrol listesi bir sayfaya sığmadığı için komple sonraki sayfaya atlayıp arkasında %70 boş bir sayfa bırakıyordu.
HEDEF PAZAR eklendi ve çekirdek soruları şekillendiriyor. Rapor bu ayrımı bilmiyordu ve aynı "%0" iki bambaşka anlama geliyordu. Bir yazıcı distribütörünün rakip listesi HP, Canon, Epson, Brother, Xerox çıktı — o firma bir distribütör ve küresel üretici listesinde görünmesi YAPISAL OLARAK İMKÂNSIZ; oradaki %0 bir başarısızlık değil, ölçümün yanlış ligde yapıldığının göstergesiydi. Bir fan üreticisinin listesinde ise Türkiye firmaları vardı ve orada %0 gerçek, kapatılabilir bir eksiklikti. İkisine aynı reçeteyi vermek yanlış. Aboneliğe hedef pazar alanı eklendi (Türkiye / ihracat / ikisi). TÜRKİYE seçilirse altı çekirdek soru da "Türkiye'de…" diye sorulur. İHRACAT seçilirse sorular İNGİLİZCE sorulur: yurt dışı alıcı Türkçe aramaz ve Türkçe sorulan bir soruya dönen liste onun gördüğü liste değildir; ölçtüğümüz şey müşterinin gerçek pazarındaki görünürlük olmalı. İKİSİ seçilirse çekirdek Türkiye kalır — trendi taşıyan eksen markanın ana pazarıdır ve iki dili tek skorda toplamak hangisinin değiştiğini göremez hâle getirir — ihracat tarafı ayrı bir set olarak ölçülür ve skora karışmaz. Hedef pazar BELİRTİLMEZSE coğrafya kısıtı konmaz ve rapor bunu açıkça yazar: bu bizim ölçebileceğimiz bir şey değil, müşterinin ticari kararıdır ve sitenin diline bakıp "demek ki Türkiye'de satıyor" demek bir varsayım olurdu — ihracat yapan pek çok Türk firmasının sitesi Türkçedir. Hedef pazarı seçilen ya da değiştirilen markalarda bu sürümün skoru öncekilerle doğrudan kıyaslanmaz, çünkü sorular değişir; rapor ölçümün hangi pazar için yapıldığını manşetin altında yazar. Aynı sürümde ölçümü etkilemeyen bir eklenti: rakip ve kaynak listeleri artık Türkiye/yurt dışı diye kırılıyor ve dizin reçetesi ülkeye göre değişiyor (Türkçe faaliyet açıklaması ve yerel referanslar bir tarafta, İngilizce ürün adları ve ihracat kapasitesi diğer tarafta).
Bu sürüm bir DÜZELTMENİN İTİRAFIDIR. Sürüm 16'dan sonra soru-cevap kaleminin kalıbını düzelttik — "sikca-sorulan" deseni üç ayrı dosyaya kopyalanmıştı ve üçü de sonuna sınır koyduğu için gerçek adresi (/sikca-sorulan-sorular) kaçırıyordu — ama sürümü ARTIRMADIK. Yanlıştı: o düzeltme 14 puanlık bir kalemi düşükten geçere çevirdi ve aynı site 17 dakika arayla önce %81, sonra %95 aldı. Sitede hiçbir şey değişmemişti. Kural açıktı ve biz kendi kuralımızı uygulamadık: bir kontrolün neyi geçer saydığı değişiyorsa sürüm artar. Bu sürüm o düzeltmeyi kayda geçiriyor, böylece iki ölçüm arasındaki fark trend grafiğinde "yöntem değişti" olarak işaretleniyor ve müşteri performansı gibi anlatılmıyor. Aynı sürümde ölçümün TEKRARLANABİLİRLİĞİ için bir değişiklik daha var: sayfa örneklemi artık AYLAR ARASI SABİT. "Eşit aralıkla seç" kuralı site haritası değiştiğinde başka sayfalar getiriyordu ve teknik skor site hiç değişmeden oynayabiliyordu. Ürünün asıl vaadi tek bir rapor değil trend: ikinci ay raporu "teknik hazırlığınız +14 puan iyileşti" derse müşteri hiçbir şey yapmadan tebrik almış olur. Bir ölçümde seçilen sayfalar kayda geçiyor ve sonraki ölçümlerde aynıları ölçülüyor; site büyürse yeni sayfalar eklenir, eskiler çıkarılmaz — çıkan sayfa zaten 404 döner ve o da bir bulgudur. Rapor örneklemin sabit olup olmadığını yazıyor.
İki ölçüm biçimi birden değişti. (1) TANINIRLIK: hakem "karışık" diye yeni bir karar verebiliyor. Motor doğru şirketten bahsedip AYNI ADI TAŞIYAN başka bir varlığı da anlattığında ("KABİM, Kültür ve Turizm Bakanlığı'nın bir birimidir; ayrıca yazıcı sarf malzemesi satan bir firma da bu adı kullanır") eski hakem bunu "doğru" sayıyordu: doğru şirket cevapta geçiyor, karışıklık yok gibi görünüyor. Sonuç, raporun kendi kendini yalanlamasıydı — aynı sayfada hem "%100 doğru tanınma" hem "motorlar sizi kamu kurumu olarak tanımlıyor" yazıyordu. Adını bilen biri böyle bir cevabı okuduğunda hangi şirketten bahsedildiğinden emin olamaz; bu temiz bir tanınma değildir. Bu hücreler artık tanınma saymıyor ve raporda ayrı bir dille anlatılıyor ("sizi anlattı ama aynı adlı başka bir varlığı da anlattı"). Adı paylaşılan markalarda tanınırlık bir önceki sürüme göre DÜŞER; motorlar değişmedi, ölçüm düzeldi ve kimlik karışıklığı çoğu zaman o raporun asıl haberidir. (2) SAYFA KEŞFİ: site haritası bulunamayan sitelerde ölçüm artık tek sayfaya düşmüyor. Bir müşteride sitemap.xml 404 döndü, ölçüm yalnız ana sayfayı gördü ve rapor site GENELİ için hüküm verdi: "hiçbir sayfada soru-cevap yok", -14 puan, listedeki en yüksek getirili iş. Oysa sitede on bir soruluk bir SSS sayfası vardı ve adresini AYNI RAPORDA teslim ettiğimiz llms.txt içinde biz veriyorduk. Site haritası bir kolaylıktır, ölçümün ön koşulu değil: yoksa sayfalar ana sayfanın kendi bağlantılarından çıkarılıyor. Bu sitelerde sayfa bazlı kalemler ve site hazırlık puanı DEĞİŞİR (çoğunlukla yükselir); rapor sayfaların nereden bulunduğunu ayrıca yazıyor.
Soru-cevap kaleminin ÖLÇÜLME BİÇİMİ yine değişti ve bu kez kalem DÜŞEBİLİR. Sayfanın soru-cevap taşıyıp taşımadığı "sıkça sorulan sorular" ya da "SSS" ibaresi aranarak ölçülüyordu. Bu ibare sitelerin ANA MENÜSÜNDE de geçiyor ve menü her sayfada olduğu için pratikte HER sayfa bu kalemi geçiriyordu — sitede tek bir soru-cevap bulunmasa bile. İbare bir NİYET işaretidir, içerik değil; soru-cevap içeriğinin kanıtı sorunun kendisidir. Kalem artık sayfada gerçekten soru arıyor: en az iki tane, üç ve daha fazla kelimelik, soru işaretiyle biten cümle. Menüsünde SSS bağlantısı olup gerçek soru-cevap içeriği olmayan sitelerde bu kalem (14 puan) ve site hazırlık puanı bir önceki sürüme göre DÜŞER; sitede bir şey bozulmadı, ölçüm düzeldi. Aynı hatanın ikinci yüzü FAQPage işaretlemesinin sekiz ölçümdür verilememesiydi: doğrulama sitenin SSS sayfasının metnine bakıyor, üretim ise "ibare geçen İLK sayfayı" alıyordu — yani ana sayfayı, içinde tek soru işareti olmayan metni. Modele "işte SSS metni" diye soru içermeyen bir metin verip ondan soru çıkarmasını istiyorduk ve sonra uydurduğu için kodu vermiyorduk. Metin seçimi artık gerçekten soru taşıyan sayfayı buluyor; adı SSS/FAQ olan sayfa eşit soru sayısında öne geçiyor.
KATEGORİ EKSENİ ARTIK ÇOĞUNLUK OYUYLA ÖLÇÜLÜYOR. Bu, skorun geldiği eksende ölçüm biçiminin değişmesidir ve aylar arası kıyası doğrudan etkiler. Marka ekseni sürüm 6'dan beri üç çekilişle ölçülüyor ve kararlılığı rapora yazılıyordu; KATEGORİ ekseni — yani skorun ve "bu ayın işi" listesinin türediği eksen — tek atıştan geliyordu ve kararlılığı hiç ölçülmemişti. Kanıt aynı gün çıktı: aynı marka için 28 dakika arayla alınan iki ölçümde motorların gösterdiği 12 kaynağın 9'u değişti. O listeden aylık taahhüt üretiyoruz ve müşteriden o sitelerin editörlerine yazmasını istiyoruz. Artık ücretli raporda her çekirdek soru her motora üç kez soruluyor; hücre kararı çoğunlukla veriliyor ve sıra, markayı anan çekilişlerin ORTANCASINDAN alınıyor (ortalama değil: tek bir uç değer sırayı kaydırmasın). Bu sürümün skoru önceki sürümlerin tek çekilişlik değerleriyle doğrudan kıyaslanmaz. Kaynak listesi de artık kaç çekilişte göründüğünü yazıyor: yalnız tek çekilişte çıkan kaynak "gözlem" sayılır, YÜKSEK öncelik alamaz ve ayın ilk işi olamaz — doğrulamadığımız bir bulgu için müşteriye e-posta yazdırmak, ölçmediğimizi ölçtük demenin bir başka biçimidir. Ücretsiz testte çekiliş tek kalır (o iş arka planda ~30 saniyede iptal ediliyor) ve rapor kaç çekilişle ölçüldüğünü her iki durumda da yazar. Motor başına eşzamanlı çağrı 4'ten 8'e, motor bütçesi de çekiliş sayısıyla birlikte büyütüldü: yoksa "kararlılığı ölçelim" derken ölçümün kendisi zaman aşımına düşerdi.
ÇEKİRDEK SORULARIN ÜRETİLME BİÇİMİ değişti; bu, aylar arası kıyası doğrudan etkileyen bir değişikliktir. Beyan edilen sektör etiketi soru şablonuna HAM haliyle giriyordu ve Türkçede kimsenin kurmayacağı sorular üretiyordu: "Bir arkadaşıma Nitelikli Kahve İmalatı için hangi firmayı önerirsin?" İki ayrı zarar veriyordu. Birincisi dil: kimse böyle sormaz, dolayısıyla ölçtüğümüz şey gerçek bir kullanıcı sorusu değildi. İkincisi anlam: "imalat" kelimesi motorları kahve markalarına değil EKİPMAN üreticilerine savurdu, rakip listesine espresso makinesi üreticileri girdi ve rapor bunu "rekabetiniz yapay zekanın gözünde bu liste" diye sundu. Sonuç: %0 keşif skorunun ne kadarının gerçek görünmezlik, ne kadarının doğal olmayan soru olduğu ayrıştırılamıyordu. Süreç eki (imalatı, üretimi, sanayii) artık YALNIZ kalan kısım kendi başına aranabilir bir tüketici kategorisiyse atılıyor: "Nitelikli Kahve İmalatı" -> "Nitelikli Kahve", ama "Fason Takviye Edici Gıda Üretimi" ve "Endüstriyel Fan Üretimi" olduğu gibi kalıyor — o firmalar gerçekten üretici ve müşterileri tam da o kelimeyi arıyor. Körlemesine sadeleştirme işin kendisini silerdi. Etiketi sadeleştirilen markalarda bu sürümün skoru öncekilerle doğrudan kıyaslanmaz ve rapor ölçümün hangi ifadeyle yapıldığını manşetin altında yazar; kategorinin kendisi değişmez. Aynı sürümde ölçümü etkilemeyen iki teslim düzeltmesi: hazır llms.txt'teki her sayfa adresi yayın öncesi çağrılıyor (bir teslimde üç adresten ikisi 404 dönmüştü ve doğruları sitenin kendi haritasında duruyordu), ve yönetici özetindeki iş sıralaması artık kaynak öncelik tablosuyla aynı kuralı kullanıyor.
Organization kaleminin ÖLÇÜLME BİÇİMİ değişti ve bu kalem artık YÜKSELEBİLİR. Kontrol üç tiplik sabit bir listeye bakıyordu: Organization, EducationalOrganization, LocalBusiness. Oysa schema.org bir HİYERARŞİDİR ve bu üçünün altında düzinelerce tip var. Gerçek bir ölçümde site "Store" işaretlemesi kullanıyordu — schema.org'da Store, LocalBusiness'ın, o da Organization'ın altındadır — ve kalem "yok" saydı. Kalemin ağırlığı 12, yani listedeki EN AĞIR kalem, ve yönetici özetinin bir maddesi tümüyle buna dayanıyordu: müşteriye zaten yaptığı işi yapması söylendi. Üstelik aynı raporun hazır dosya notu "mevcut Website ve Store schema'larının yanına yerleştir" diyerek Store'un varlığını kendi ağzıyla söylüyordu. İkinci bir eksik daha vardı: işaretleme yalnız ANA SAYFADA aranıyordu; birçok site Organization'ı kurumsal sayfaya koyar. Kalem artık Organization'ın tüm alt tiplerini tanıyor ve örneklenen TÜM sayfalara bakıyor; rapor hangi tipi bulduğunu da yazıyor. Bu sitelerde kalem ve site hazırlık puanı bir önceki sürüme göre YÜKSELİR (en fazla 12 puan); sitede bir şey düzelmedi, ölçüm düzeldi.
Soru-cevap kaleminin ÖLÇÜLME BİÇİMİ değişti ve bu kalem artık YÜKSELEBİLİR. Eski kural iki şeyi birden kaçırıyordu. (1) Yalnız "Sıkça Sorulan Sorular" / "SSS" ibaresini ve FAQPage şemasını arıyordu; oysa soru-cevap içeriği bir akordeon bloğu olmak zorunda değil — koca bir terim sözlüğü ("SCADA Nedir?", "SNMP Nedir?") de doğrudan alıntılanabilir soru-cevap içeriğidir ve bu kalıpların hiçbirine uymaz. (2) Tespit yalnız örneklenen sayfalarda çalışıyordu: 365 sayfalık bir sitede 16 sayfa, yani %4. Oysa sayfa adresleri site haritasında zaten elimizde ve okumak ek istek gerektirmiyor. Gerçek bir raporda 141 soru sayfası olan bir siteye "soru-cevap içeriğiniz yok, sıfırdan 5-8 soru yazın" dedik ve bunu +14 puanlık "en yüksek getirili iş" diye sunduk. Kalem artık site haritasındaki TÜM adresleri soru formatı açısından tarıyor; beş ve üzeri soru sayfası olan site bu kalemi geçiyor ve öneri de değişiyor: "yaz" değil "işaretle ve güncelle". Bu sitelerde kalem ve site hazırlık puanı bir önceki sürüme göre YÜKSELİR; sitede bir şey düzelmedi, ölçüm düzeldi. Aynı sürümde iki şeffaflık eklemesi daha var (puanı değiştirmezler): rapor artık skorun yanına KAPSAMA ORANINI yazıyor ("16 / 365 sayfa") ve sayfa listelerinde başlık ile meta açıklamayı ayrı ayrı söylüyor — "başlık/meta eksik" etiketi, başlığın her sayfada var olduğu bir sitede raporun tamamına duyulan güveni sarsıyordu.
llms.txt kaleminin ÖLÇÜLME BİÇİMİ değişti ve bu kalem artık DÜŞEBİLİR. Eski kural yalnız HTTP 200'e bakıyordu: adres yanıt veriyorsa kalem geçiyordu. Bir müşteride dosya "vardı" ve tam puan alıyordu ama içi tamamen boştu; başka bir sunucu dosya yokken 404 yerine bir HTML sayfası döndürüyordu ve kalem yine geçiyordu. İkisinde de motorun okuyacağı hiçbir şey yok. HTTP 200 "istediğin dosya burada" demek değildir — aynı hatayı sürüm 3'te sitemap.xml'de yapmıştık. Kalem artık dosyanın VARLIĞINA değil OKUNABİLİR İÇERİĞİNE bakıyor: boş dosya, HTML dönen adres, hata metni ve bir başlıktan ibaret dosya geçmiyor. İçi boş llms.txt sunan sitelerde bu kalem ve site hazırlık puanı bir önceki sürüme göre DÜŞER; sitede bir şey bozulmadı, ölçüm düzeldi. Kalemin ağırlığı 2'dir, yani etki en fazla 2 puandır. Aynı sürümde ölçümün ŞEFFAFLIĞI da arttı (puanı değiştirmez): kök adres başka bir sayfaya yönlendiriyorsa rapor artık hangi adresin okunduğunu yazıyor. Bir müşteri "ana sayfamda H1 var, rapor yok diyor" dedi ve haklıydı; denetim de haklıydı — kök adres herkesi, GPTBot'u da, İngilizce sürüme yönlendiriyordu ve o sayfada H1 yoktu. Hangi sayfayı okuduğumuzu yazmayınca ölçüm doğrulanamıyor.
İki kontrolün ÖLÇÜLME BİÇİMİ değişti ve ikisi de puanı YÜKSELTİR. (1) robots.txt'in OLMAMASI artık engel sayılmıyor. Eski kural dosya yoksa kalemi düşürüyor ve rapor "robots.txt yoksa motorlar siteye uğramadan geri döner" diyordu — bu yanlış: dosya yoksa hiçbir tarama kısıtı yok demektir. Nitekim aynı raporda 7/7 yapay zeka tarayıcısı siteye HTTP 200 ile giriyordu; kalem raporun kendi ölçümüyle çelişiyordu. Kalem artık adıyla aynı şeyi ölçüyor: AI botları robots.txt ile ENGELLENİYOR MU. Dosya yoksa geçer, dosya var ve engelliyorsa düşer. Dosyayı eklemek yine önerilir ama ceza kalemi değil, tavsiyedir. (2) Site haritası bir sitemapindex ise alt haritalar artık www/apex farkı gözetilmeden okunuyor ve ilk alt harita yerine dört tanesi birleştiriliyor. Eski kural alt harita adresini birebir karşılaştırdığı için "https://www.ornek.com/page-sitemap.xml" yazan bir indeks, denetim "https://ornek.com" üzerinden yürüdüğünde hiç eşleşmiyordu: iç sayfa örneklenemiyor, teknik skor TEK SAYFADAN çıkıyor ve rapor bunu sitenin tamamıymış gibi sunuyordu. Örneklem üçten azsa rapor artık puanın kaç sayfadan çıktığını da yazıyor.
Yapay zeka tarayıcısı erişiminin ÖLÇÜLME BİÇİMİ değişti; iki ayrı hata vardı. (1) 200 dışındaki her yanıt "engel" sayılıyordu. HTTP 429 "Too Many Requests" demek, yani HIZ SINIRI: geçicidir ve erişim engeli değildir. Engel 401/403/451'dir. Gerçek bir raporda site GPTBot'u engellemediği hâlde "sunucunuz GPTBot'u engelliyor" yazdık ve bunu en ağır kalem olarak sunduk. (2) 429'a büyük olasılıkla ölçümün kendisi sebep oluyordu: yedi bot kimliği, robots.txt/llms.txt/sitemap/ana sayfa istekleriyle AYNI ANDA gönderiliyordu. Yoklamalar artık ana isteklerden sonra, sırayla ve aralıklı yapılıyor; 429 alınırsa bir kez daha, bekleyerek deneniyor. Sonuç: dört durum ayrı ayrı raporlanıyor (girebiliyor, engelleniyor, hız sınırı, ölçülemedi) ve yalnız GERÇEK engel kalemi düşürüyor. Hiçbir bottan yanıt alınamadığında da "engelliyor" denmiyor — o zaman ölçemedik demektir. Bu sitelerde "yapay zeka tarayıcıları girebiliyor" kalemi ve site hazırlık puanı bir önceki sürüme göre YÜKSELİR; sitede bir şey düzelmedi, ölçüm düzeldi. Hız sınırı kalemi düşürmez ama TAM ONAY da almaz: iki yeniden denemede de 429 dönerse o bot için erişim "doğrulanamadı" sayılır, raporda ⚠ ile gösterilir ve bir sonraki ölçümde yeniden bakılır.
Sürüm 4'te eklenen “kapanmamış style etiketinden sonrasını at” kuralı bir siteyi TERS yönde yanlış ölçüyordu. Sayfa metne çevrilmeden önce 400 KB'a kesiliyordu; kesme noktası büyük bir <style> bloğunun ortasına düşen sitelerde kapanış etiketi dilimin dışında kalıyor ve kural sayfanın tamamını siliyordu. 2,4 MB'lık, ana sayfasında 18 bin karakter gerçek metin sunan bir siteden geriye 15 karakter kalıyordu ve rapor o siteye “sunucudan gelen metin yetersiz, sunucu taraflı render'a geçin” diyordu — sitede böyle bir sorun yokken. Artık ham belge kesilmiyor: etiket temizliği tam belge üzerinde yapılıyor, sınır çıkarılan metne uygulanıyor ve kapanmamış etiket kuralı yalnız gerçekten kapanmamış etikette çalışıyor. Bu sitelerde “içerik sunucudan geliyor” kalemi ve site hazırlık puanı bir önceki sürüme göre YÜKSELİR; sitede bir şey düzelmedi, ölçüm düzeldi.
Marka tanınırlığı artık ÇOĞUNLUK OYUYLA ölçülüyor. Her marka sorusu her motora üç kez soruluyor ve hücre üç çekilişin çoğunluğuna göre karara bağlanıyor. Sebep: 9 hücrelik bir ölçümde tek bir hücre 11 puan eder ve motorlar aynı soruya her seferinde birebir aynı cevabı vermez — tek çekilişte bir hücre yazı turaydı. Aynı marka aynı gün %67, %56 ve %78 ölçülebiliyordu. Her çekiliş kendi önbellek yuvasında durur, yani aynı gün rapor yeniden alındığında aynı üç çekiliş geri gelir. Rapor ayrıca ölçümün KARARLILIĞINI yazıyor: hücrelerin kaçı oybirliğiyle, kaçı dar çoğunlukla karara bağlandı ve hangi motor hangi soruda sınırda kaldı. Bu sürümle ölçülen tanınırlık, önceki sürümlerin tek çekilişlik değerleriyle doğrudan kıyaslanmaz. Çekilişler ayrışırsa o hücre için iki çekiliş daha alınır ve karar beşte üçle verilir: ek ölçüm belirsizliğin olduğu yere harcanır, kararlı hücrelere fazladan çağrı yapılmaz. Dar çoğunlukla (ör. 3/5) sonuçlanan hücrede bir karar vardır ama düşük güvenlidir; bu ölçüm hatası değil, markanın o motordaki durumunun kendisidir ve rapor bunu böyle yazar.
Marka tanınırlığının ÖLÇÜLME BİÇİMİ değişti. "Bilgi bulunamadı" gibi EDİLGEN ifadeler "bilinmiyor" kalıpları arasında yoktu; liste yalnız etken biçimi ("bulamadım") tanıyordu. Bu yüzden marka adını tekrarlayıp hakkında bilgi bulunamadığını söyleyen uzun cevaplar TANINDI sayılıyor ve tanınırlık yüzdesi olduğundan yüksek çıkıyordu. Edilgen biçimler eklendi; aynı marka aynı cevaplarla artık daha düşük bir tanınırlık alabilir. Ayrıca raporda gösterilen alıntı, verilen kararı destekleyen cümleden başlıyor: ✓ işaretli bir satırın altında "bilgi bulunamadı" diye başlayan bir alıntı duruyordu. Aynı sürümde iki ek sıkılaştırma: (1) "erişimim yok", "bilgiye sahip değilim" gibi olumsuz İSİM CÜMLELERİ de artık bilinmiyor sayılıyor — fiil çekimi aramak yetmiyordu. (2) Hakem katmanına "yetersiz" kararı eklendi: cevap doğru şirketten bahsediyor olsa bile hakkında ayırt edici hiçbir şey söylemiyorsa ("çeşitli alanlarda profesyonel hizmet sunan bir firmadır" gibi) tanınma sayılmıyor. Adı tekrarlamak tanınmak değildir. (3) Hakem, cevabın beyan edilen SEKTÖRLE bağdaşmasını da arıyor: markaya sektörüyle bağdaşmayan faaliyetler atfeden cevaplar (Ar-Ge danışmanlığı yapan bir firmaya "yazılım ürünleri satar" demek gibi) doğru tanıma sayılmıyor.
Ağırlıklar aynı kaldı, sayfa metninin ÇIKARILMA BİÇİMİ değişti. Kapanmamış bir <style> ya da <script> etiketinden sonrası eskiden "görünür metin" sayılıyordu; bir ana sayfadan 397 bin karakterlik CSS metin diye okunuyor ve "içerik sunucudan geliyor" kalemi haksız yere geçiyordu. Artık kapanmayan etiketten sonrası atılıyor. Ayrıca çıkarılan metin olağandışı uzunsa ya da kod işareti yoğunluğu yüksekse rapor "içerik çıkarımı şüpheli, bu teşhis elle doğrulanmalı" uyarısı basıyor — ölçtüğünü sanıp ölçmediğini söylemek bu üründe en pahalı hata.
Ağırlıklar aynı kaldı, iki kontrolün ÖLÇÜLME BİÇİMİ değişti. (1) Site haritası artık robots.txt'nin "Sitemap:" satırından bulunuyor ve gövdesi gerçekten site haritası mı diye bakılıyor; /sitemap.xml adresi ana sayfaya yönlenip HTML döndüren siteler bu kalemi haksız yere geçiyordu. (2) Yapay zeka tarayıcı kontrolüne Claude-User, Claude-SearchBot ve Googlebot eklendi; önceden yalnız ClaudeBot ölçülüyordu, oysa o eğitim tarayıcısıdır ve görünürlükle ilgili ajanlar diğer ikisidir. Ayrıca aylık raporda örneklenen sayfa sayısı 5'ten 15'e çıktı.
llms.txt ağırlığı 8'den 2'ye indirildi (isteğe bağlı, etkisi kanıtlanmamış bir konvansiyon). Soru-cevap içeriği ile FAQPage işaretlemesi ayrıldı: içerik 14, işaretleme 3 puan. sitemap.xml 7'den 8'e çıktı.
İlk sürüm.
Yöntemle ilgili her soruyu cevaplarız — itiraz da dahil. Ölçümün nasıl yapıldığını tartışamıyorsak sonucuna da güvenilmez.
Bize yazın →