GEO Çalışması Örneği: Kendi Sitemizin Uygulama Kaydı
Bir GEO çalışması örneği arıyorsanız, bu yazı bunun en denetlenebilir halidir: nextgeoagency.com üzerinde hangi işi hangi sırayla yaptığımızı, her birini nasıl ölçtüğümüzü ve nerede yanıldığımızı anlatan bir uygulama kaydı. Sonuç tarafında ilk ve sınırlı bir sayım var: 16, 17 ve 18 Eylül 2026'da ChatGPT, Gemini ve Perplexity'ye otuz sabit soruyu ikişer kez sorduk; 179 geçerli cevabın 12'sinde adımızla anıldık, bunların 8'inde soru zaten marka adımızı içeriyordu, 6'sında ise adımız yazılmadan sitemiz kaynak gösterildi. Yapay zeka kaynaklı trafik ya da dönüşüm hakkında ise elimizde ölçülmüş veri bulunmuyor ve bu yazıda böyle bir rakam uydurulmadı.
Kaydı dört katmana ayırdık: erişim, kimlik, içerik ve hız. Ardından bilerek yapmadığımız iki işi, fark etmeden yaptığımız dört hatayı ve sonucu hangi yöntemle ölçtüğümüzü yazıyoruz. Teknik iddiaların çoğunu tarayıcınızdan ya da bir komut satırından kendiniz kontrol edebilirsiniz.
Bu kayıt esas olarak uygulamayı anlatır. Başlangıç ölçümünün altı kümesi de aşağıda anlatılan yöntemle alındı; üç motoru kapsıyor, Google AI Overviews bu kümelere dahil değil ve her motor tek bir hesapla ölçüldü. Ölçüm yenilendikçe bu yazı güncellenecek.
Neden müşteri sitesi değil de kendi sitemiz?
Bir ajansın vaka çalışması genellikle paylaşılamayan müşteri verisine dayanır. Okur grafiğin nereden geldiğini, hangi dönemin seçildiğini göremez. Kendi sitemizde bu sorun yok: yapılandırılmış veri sayfanın kaynağında, robots.txt herkese açık bir adreste, sunucunun döndürdüğü başlıklar tek bir komutla görülebiliyor.
İkinci neden daha basit. Next GEO Agency'nin sattığı ana hizmet GEO, yani üretken arama motorlarında görünürlük. Kendi sitesi bu işin temel kontrollerinden geçmeyen bir ajansın başka bir siteye aynı işi yapacağını söylemesi zayıf bir iddia olur. Bu yüzden projedeki her teknik kararın ilk ölçütü, sitenin yapay zeka tarayıcılarının gözünden örnek oluşturup oluşturmadığı.
Üçüncü neden hataları yazabilmek: bir müşteri projesindeki yanlışı anlatmak müşteriyi de ifşa eder.
Erişim: botlar sayfayı JavaScript çalıştırmadan görebiliyor mu?
Site React ile yazıldı ve React varsayılan olarak içeriği tarayıcıda, JavaScript çalıştıktan sonra oluşturur. JavaScript çalıştırmayan bir tarayıcı böyle bir sayfada boş bir kutu görür. Bunu önlemek için her adres derleme sırasında önceden HTML'e dönüştürülüyor (statik site üretimi). Bot istek attığında başlık, gövde metni ve yapılandırılmış veri ilk yanıtın içinde geliyor.
Erişimin ikinci ayağı izin. robots.txt dosyasında yapay zeka tarayıcıları tek tek adıyla yazılı ve hepsine açık izin verilmiş. Aynı kararın ağ katmanında bozulmaması da gerekiyordu. Cloudflare panelinde yapay zeka botlarını otomatik engelleme ayarı, arama, ajan ve eğitim kategorilerindeki bot politikaları ve AI Labyrinth adlı tuzak özelliği 24 Ağustos 2026'da tek tek kontrol edildi: engelleme kapalı, üç politika da izinli, tuzak kapalı. Gerekçe şu: Cloudflare kendi robots.txt'sini sunarsa bizim dosyamız fiilen geçersiz kalır. Bu ayrımın genel anlatımı llms.txt ve AI tarayıcı yönetimi rehberinde var.
Üçüncü ayak iletişim adresi. Cloudflare'in e-posta adresi gizleme özelliği adresi şifreleyip yerine bir çözme betiği koyuyordu. JavaScript çalıştırmayan bir tarayıcı adresi hiç göremiyordu; betik de her sayfanın kritik istek zincirine bir halka ekliyordu. Özellik 24 Ağustos 2026'da kapatıldı. Bedelini de yazalım: adres artık düz metin ve spam toplayıcılara açık.
llms.txt, site haritası ve yönlendirme dosyası elle düzenlenmiyor. Üçü de her derlemeden önce içerik verisinden yeniden üretiliyor; yeni bir makale eklendiğinde listelere kendiliğinden giriyor.
11 Eylül 2026 canlı testi
Aşağıdaki tabloyu bu yazıyı hazırlarken, 11 Eylül 2026 gece saatlerinde aldık. Her satır /geo-ajansi adresine, belirtilen user-agent adıyla atılmış tek bir istek.
| Tarih | Adres | User-agent | Durum kodu | İndirilen bayt |
|---|---|---|---|---|
| 11 Eylül 2026 | /geo-ajansi | GPTBot/1.2 | 200 | 73.983 |
| 11 Eylül 2026 | /geo-ajansi | ClaudeBot/1.0 | 200 | 73.983 |
| 11 Eylül 2026 | /geo-ajansi | PerplexityBot/1.0 | 200 | 73.983 |
| 11 Eylül 2026 | /geo-ajansi | OAI-SearchBot/1.0 | 200 | 73.983 |
| 11 Eylül 2026 | /geo-ajansi | Mozilla/5.0 Chrome/128 | 200 | 73.983 |
Beş istek de aynı boyutta yanıt aldı; sunucu bota tarayıcıdan farklı bir sayfa göstermiyor. Aynı gece robots.txt 200 döndü; dosyada 21 user-agent grubu var, hepsinde Allow: / yazıyor, tek bir Disallow satırı yok. llms.txt 200 döndü ve 44.066 bayt. Site haritasında 180 adres listeleniyor. Ham HTML'de sayfanın H1 başlığı ve yapılandırılmış veri blokları JavaScript çalışmadan duruyor.
Bu testin bir sınırı var: istek, bot adını taşıyan bir user-agent ile bizim bilgisayarımızdan gitti. Gerçek botun kendi IP adresinden gelen isteğine aynı yanıtın verildiğini ancak sunucu kayıtları kanıtlar. Testin nasıl kurulacağı ve kayıtların nasıl okunacağı AI botları sitenize girebiliyor mu rehberinde anlatılıyor; burada yalnızca kendi sonucumuzu veriyoruz.
Kimlik: künyede ne var, sameAs neden boş?
Yapay zeka motorunun bir işletmeyi önermesi için önce onu tanıması gerekiyor. Sitenin yapılandırılmış verisinde işletme hem Organization hem ProfessionalService tipinde tanımlı. Künyede ilçe ve il (Onikişubat, Kahramanmaraş), kuruluş yılı (2026), çalışan aralığı (1-10), kurucu ve 17 maddelik bir uzmanlık listesi var. Açık sokak adresi yok, çünkü yayımlanabilir bir sokak adresi elimizde yok.
sameAs alanı bilerek boş; 11 Eylül 2026'da sayfa kaynağında boş bir liste olarak duruyor. Bu alan sitedeki kaydı başka platformlardaki profillerle eşleştirmek içindir. Bizim henüz bir sosyal medya profilimiz ya da Google İşletme Profili kaydımız yok. Olmayan bir profil adresini şemaya yazmak, makineye doğrulanamayan bir bilgi vermek demek. Alanın genel olarak nasıl kullanıldığını Knowledge Graph ve varlık yönetimi yazısında ele aldık.
Şemada yazan her bilgi sayfada da görünüyor. Hakkımızda sayfasında aynı künye okurun okuyabileceği bir blok olarak duruyor ve sayfa bir AboutPage düğümüyle Organization kaydına bağlı. Bu bağ kurulmadan önce künyeyi ilan eden sayfada Organization düğümü hiç yoktu. Aynı bilgiler llms.txt dosyasının başında bir kimlik bloğu olarak da yazılıyor.
Neden bu alanlar? "En iyi GEO ajansı" aramasının Türkçe sonuçlarına baktığımızda sonuçların tamamı üçüncü taraf liste sayfalarıydı. Bu listeler ajans başına şehir, kuruluş yılı, çalışan sayısı ve ayrı bir GEO sayfası olup olmadığı gibi alanlar yayımlıyor. Künyeyi bu alanları doğrulanabilir biçimde karşılayacak şekilde kurduk.
İçerik: sayfa gerçekten bir soruya cevap veriyor mu?
Yapay zeka motorlarının alıntıladığı birim çoğu zaman bir paragraf. Bu yüzden makalelerde ara başlığı müşterinin sorduğu cümle gibi kuruyoruz ve cevabı başlığın hemen altındaki ilk paragrafa koyuyoruz. Her makalenin sonunda beş soruluk bir SSS bloğu var; bu blok derleme sırasında ayrıştırılıp makaleye özel bir FAQPage şemasına dönüştürülüyor.
Bu şemanın gerekçesini sonradan düzeltmek zorunda kaldık. İşe başlarken beklenen şey Google'ın SSS zengin sonucuydu; Google bu sonuç türünü 7 Mayıs 2026'da kaldırdı. Şemayı yine de tuttuk: SSS metni sayfada HTML olarak duruyor ve şema aynı metnin makine okunur bir kopyası. Ama artık arama sonuç sayfasında görsel bir kazanç beklemiyoruz.
Aynı denetimde iki makalede SSS bloğunun hiç olmadığı ortaya çıktı. Ayrıştırıcı başlığı bulamayınca makalenin son bölümündeki soru işaretiyle biten kalın satırları topluyordu; o iki makalenin şeması gerçek bir SSS'den değil, gövdedeki rastgele satırlardan üretiliyordu. İkisine gerçek birer SSS bloğu yazıldı.
Bir de temizlik oldu. Sitenin arayüz metinlerinde sekiz kaynaksız performans iddiası vardı; ana sayfada ayrıca dört sayısal rozet duruyordu. Hiçbirinin arkasında bir ölçüm yoktu. Hepsi nitel ifadelerle değiştirildi. Kaynağı olmayan bir rakam, okura da yapay zeka motoruna da yanlış bilgi verir.
Aynı kelimeyi iki sayfaya vermişiz
Bir anahtar kelime iki sayfanın hedef listesinde birden geçerse iki sayfa aynı sorguda birbirini bastırır. İlk sayımda makaleler arasında altı Türkçe kelimenin çift sahipli olduğunu bulduk ve her çifti konuyu gövdede derinlemesine işleyen makaleye bıraktık.
Sonra sayımın kendisinin eksik olduğunu anladık. Birinci sorun büyük-küçük harfti: aynı ifadenin büyük ve küçük harfle yazılmış iki hali ayrı kelime sayılmıştı, oysa arama motoru için ikisi aynı. İkincisi kapsamdı: yalnızca makale dosyası sayılmıştı. Sektör, hizmet ve GEO ajansı sayfalarıyla statik sayfaların meta kayıtları da girince sayım beş dosyaya çıktı ve çift sahiplik dokuz Türkçe, on beş İngilizce çift olarak göründü. Bir makalenin taraf olduğu çiftlerin tamamı kapatıldı.
Açık kalan bir kısım var ve onu da yazıyoruz. İki sayfa arasındaki çakışmalar (ana sayfa ile bir hizmet sayfasının aynı kelimeyi taşıması gibi) bilerek bırakıldı; ana sayfanın meta tasarımını değiştireceği için karar bekliyor. Kural ise netleşti: satın alma niyetli kelimeyi hizmet sayfası alır, bilgi niyetli olanı makale.
İki dil: İngilizce sayfalar neden ayrı adreste?
Önceki kurulumda Türkçe ve İngilizce aynı adresi paylaşıyordu; dil tercihi tarayıcıda saklanıyordu. Önceden üretilen HTML'in tamamı Türkçe olduğu için İngilizce içerik arama motorlarına hiç ulaşmıyordu. Şimdi dil adresten okunuyor: /geo-ajansi Türkçe, /en/geo-agency İngilizce. Çevrilmemiş bir içerik için İngilizce adres hiç üretilmiyor.
İki sayfa birbirini hreflang etiketiyle karşılıklı gösteriyor; tek yönlü bildirim yok sayıldığı için karşılıklılık şart. 11 Eylül 2026'da iki adresi de kontrol ettik: Türkçe sayfa lang="tr" ile geliyor ve tr, en ile x-default bağlantılarını taşıyor; İngilizce sayfa aynı üç bağlantıyı geri veriyor.
Hız: yazı tipini kendi sunucumuza almak
Hız tarafında ölçtüğümüz en net değişiklik yazı tipi kararı oldu. Site başlangıçta yazı tiplerini Google Fonts'tan çekiyordu: bir alan adı çözümlemesi, bir güvenli bağlantı, bir CSS isteği ve dört dosya, toplam 202 KB. Lighthouse'ta yalnızca bu bağlantıyı kaldırıp yazı tiplerini kendi sunucumuzdan vermek, ilk içerik boyamasını (FCP) 3,7 saniyeden 2,2 saniyeye, düzen kaymasını (CLS) 0,036'dan sıfıra indirdi.
İki dosya Türkçe karakterlerin tamamını tutacak şekilde alt kümeye ayrıldı; boyutları 37 KB ve 35 KB. Bu rakamlar laboratuvar ölçümü; sahadaki gerçek kullanıcı ölçümünü henüz almadık.
Bilerek yapmadığımız iki şey
Birincisi şehir sayfası. "İstanbul diş kliniği SEO ajansı" sorgusunda dönen yedi sonucun yedisinin de adresinde şehir adı yoktu; sorgu genel hizmet sayfalarıyla karşılanıyordu. Şehir adını alan adında taşıyan sağlayıcıların çıktığı sorgularda ise sinyal adresten değil, o şehirdeki fiziksel varlıktan geliyordu. Ajansın fiziksel varlığı yalnızca Kahramanmaraş'ta. Başka bir şehirde ofis ya da düzenli saha varlığı olmadan o şehrin adına sayfa açmak doğrulanamayan bir iddia olurdu. Kahramanmaraş için eksik olan şey bir sayfa değil, Google İşletme Profili kaydı.
İkincisi olmayan profiller: sameAs ancak gerçek bir profil açıldığında dolacak.
Yaptığımız hatalar ve onları nasıl bulduk
Bu bölüm kaydın en önemli kısmı. Dört hatanın ortak noktası, hepsinin bir süre yayında kalmış olması.
Alt bilgi alanı 161 sayfada görünmüyordu
Sayfanın altındaki bağlantı sütunlarına elle bir animasyon işareti konmuştu. Stil kuralı bu işareti taşıyan öğeyi başlangıçta görünmez yapıyordu; görünür hale getiren gözlemci ise alt bilgi alanına hiç bağlanmamıştı. Kural yalnızca cihazda "hareketi azalt" ayarı kapalıyken uygulanıyordu. Geliştirme bilgisayarında bu ayar açık olduğu için alt bilgi normal görünüyordu. Sorunu bir kullanıcı mobilde bildirdi. Artık animasyon işareti elle yazılmıyor, yalnızca gözlemciye kayıt yapan bileşen üzerinden ekleniyor.
Dokuz sektör sayfasında ham bir yer tutucu duruyordu
Türkçe sektör sayfalarının dokuzunda da ekranda {ui.badge} yazıyordu; metnin yerine yer tutucunun kendisi basılıyordu. İngilizce karşılığı doğru olduğu için aylarca fark edilmedi. Hizmet sayfaları üzerinde çalışılırken aynı bileşene bakıldı, hata orada görüldü ve düzeltildi.
Güvenlik başlığını kimin gönderdiğini yanlış biliyorduk
Tarayıcıya siteye yalnızca güvenli bağlantıyla girmesini söyleyen HSTS başlığı canlı yanıtta vardı ve bunu Cloudflare'in gönderdiğini sanıyorduk. Aslında önceki barındırma sağlayıcısı gönderiyormuş. Oradan ayrıldıktan sonra yapılan canlı ölçümde başlığın kaybolduğu görüldü ve başlık kendi yapılandırma dosyamıza eklendi. 11 Eylül 2026'da başlık yanıtta yerinde.
Meta açıklama uzunluğunu yanlış saydık
Bir denetimde iki açıklama 165 ve 162 karakter göründü; sınır 160. Oysa sayım, tırnak işaretinin HTML'deki kodlanmış hali çözülmeden yapılmıştı: altı baytlık bir kod ekranda tek karakter. Gerçek uzunluklar 155 ve 152'ydi, yani iki açıklama zaten sınırın içindeydi ve gereksiz yere kısaltılacaktı. Karakter sayımı artık metin çözüldükten sonra yapılıyor.
Sonucu nasıl ölçüyoruz?
Yöntemi rakamdan önce kayda geçirdik ki verilen her rakamın nereden geldiği sorgulanabilsin. Dört parçası var.
- Sabit soru seti. Hizmet verdiğimiz sektörlerde müşterinin gerçekten sorduğu sorulardan oluşan, değişmeyen bir liste.
- Motor kapsamı. Aynı sorular ChatGPT, Gemini, Perplexity ve Google AI Overviews üzerinde tek tek soruluyor; bu turda ölçülen altı küme yalnızca ilk üç motoru kapsıyor, Google AI Overviews bu kümelere dahil değil.
- Tarih. Her tur tarihiyle kaydediliyor ve aynı set düzenli aralıkla yeniden sorulacak.
- Ham cevap kaydı. Özet bir puan değil, cevabın kendisi saklanıyor: markanın anılıp anılmadığı, sitenin kaynak olarak gösterilip gösterilmediği.
Analitik tarafında yapay zeka kaynaklı oturumlar ayrıca izlenecek. Hangi metriklerin tutulacağı ve ölçüm günlüğünün nasıl kurulacağı AI görünürlüğü nasıl ölçülür yazısında anlatılıyor. Bu yöntemle alınan altı ölçüm kümesinin sonucunu GEO Görünürlük Endeksi sayfasında yayımladık. 179 geçerli hücrenin 12'sinde adımızla anıldık; bunların 8'i marka adımızın soruda zaten geçtiği hücreler, yani bir keşif değil. Marka adımızın geçmediği sorularda adımız 4 hücrede geçti: ChatGPT'de küçük işletme için uygun fiyatlı GEO ajansı sorusunun iki çalıştırmasında (kaynak GEO fiyatları sayfamız), Perplexity'de Kahramanmaraş'ta GEO ya da SEO hizmeti veren ajans sorusunun bir çalıştırmasında (listenin ilk sırasında, kaynak hakkımızda sayfamız) ve ChatGPT'de Türkiye'de GEO hizmeti veren ajansları soran İngilizce sorunun bir çalıştırmasında (on ajanslık bir tablonun beşinci satırı). Bu son ikisi aynı sorunun diğer çalıştırmasında tekrarlamadı; yani bu görünürlük kazanılmış değil, oynak. Fiyat sorularında adımız geçmedi, ama 6 hücrede cevap adımızı yazmadan sitemizi kaynak gösterdi: ChatGPT'de 4, Gemini'de 2 hücrede. Bu sayım her motorda tek bir hesapla ve iki çalıştırmayla alındı ve ajansların kalitesini sıralamaz; planlanan 180 hücrenin 179'u geçerli, eksik tek hücre Perplexity'nin ücretsiz arama sınırına takıldı.
Kendi siteniz için bu kayıttan çıkan kontrol listesi
Kaydın size uyarlanabilir kısmı altı madde:
- Bot adıyla bir istek atın ve tarayıcıyla aynı durum kodunu ve boyutu alıp almadığınıza bakın.
- Sayfanın ham kaynağında başlık ve gövde metni JavaScript çalışmadan duruyor mu, kontrol edin.
- CDN ya da güvenlik panelinizde yapay zeka botlarını engelleyen bir ayar açık mı, bakın.
- Şemanızdaki her bilginin sayfada da göründüğünü doğrulayın; olmayan profili yazmayın.
- Sitenizdeki her rakamın bir kaynağı olsun; olmayanı kaldırın.
- Denetimi tek bir cihaz ayarıyla değil, farklı ayarlarla da yapın; bizim alt bilgi hatamız tek bir erişilebilirlik ayarının arkasında saklandı.
Bu listeyi bir ekiple birlikte uygulamak isterseniz GEO ajansı sayfamızda altı iş kalemini ve dört aşamayı görebilirsiniz. Önce kendi durumunuzu konuşmak isterseniz ücretsiz iş analizi için iletişim sayfasından başlayabilirsiniz.
Sıkça Sorulan Sorular
Bu yazı bir GEO vaka çalışması mı?
Kısmen. Bir GEO çalışmasının uygulama tarafını, yani yapılan işleri, ölçüm yöntemlerini ve hataları anlatıyor. Sonuç tarafı sınırlı: 16, 17 ve 18 Eylül 2026'daki altı ölçüm kümesinde ChatGPT, Gemini ve Perplexity'nin 179 geçerli cevabının 12'sinde Next GEO Agency adıyla anıldı; bunların 8'inde soru zaten marka adını içeriyordu, marka adı geçmeyen sorulardaki anılma 4 cevapta kaldı ve bu dördün ikisi aynı sorunun diğer çalıştırmasında tekrarlamadı. 6 cevapta ise ad yazılmadan nextgeoagency.com kaynak gösterildi. Google AI Overviews bu kümelere dahil değil, her motor tek bir hesapla ve iki çalıştırmayla ölçüldü ve trafik ile dönüşüm verisi yok. Ölçüm yenilendikçe yazı güncellenecek.
Neden trafik ve dönüşüm rakamı vermiyorsunuz?
Çünkü bu ikisi için elimizde ölçülmüş bir sonuç yok. Yapay zeka cevaplarındaki görünürlük için verdiğimiz tek rakamlar altı ölçüm kümesinin sayımı: her motorda tek bir hesapla ve iki çalıştırmayla alınmış 179 cevabın 12'sinde adımızla anılma — bunların 8'inde soru zaten marka adımızı içeriyordu — ve 6'sında adımız yazılmadan kaynak gösterilme. Bu sayılar bir kalite sıralaması ya da kalıcı bir görünürlük göstergesi değil. Trafik ya da dönüşüm için tahmini bir rakam yazmak, bu kaydın geri kalanındaki doğrulanabilir bilgilerin güvenilirliğini de düşürür.
Bot testi sonucunuz 200 çıktı, bu yapay zeka motorlarının sitenizi okuduğu anlamına gelir mi?
Hayır. 200 kodu, bot adını taşıyan bir isteğe sunucunun sayfayı eksiksiz verdiğini gösterir. Gerçek bir botun siteye gerçekten geldiğini ancak sunucu erişim kayıtları kanıtlar; bir motorun sayfayı cevaplarında kullanıp kullanmadığı ise ayrı bir ölçüm konusudur.
Şemadaki sameAs alanını boş bırakmak dezavantaj değil mi?
Profil olmadığı sürece hayır; olmayan bir profili yazmak daha büyük bir sorundur. Şemaya yazılan bağlantı doğrulanamazsa makineye yanlış bilgi verilmiş olur. Gerçek bir profil açıldığında alan doldurulur ve aynı bilgi sayfada da görünür hale getirilir.
Bu uygulamalar her site için geçerli mi?
Erişim ve kimlik kontrolleri çoğu site için geçerlidir: botların ham HTML'de içerik görmesi, izinlerin ağ katmanında bozulmaması, şemanın sayfayla tutarlı olması. Şehir sayfası açmama ya da yazı tipini kendi sunucudan verme gibi kararlar ise bizim ölçümümüze dayanıyor; aynı ölçümü yapmadan uygulamayın.