Tüm yazılar
Pazarlama 6 dk okuma

Google SGE sonrası organik trafik stratejileri

Google'ın yanıt üreten araması tıklamayı düşürürken ne yapmalı: etkilenen sorguları ölçün, özgün veri ve araç sayfaları üretin, e-posta listesi büyütün.

#automation

Google'ın yanıt üreten arama özelliği (önce SGE adıyla denendi, şimdi AI Overviews adıyla yayılıyor) sonuç sayfasının en üstüne sorunun cevabını özetleyen bir kutu koyuyor. Kullanıcı cevabı orada görüp ayrılıyor, sitenize tıklamıyor. Organik trafik açısından bu, sıralama kaybetmeden ziyaretçi kaybetmek demek. Kendi baktığım Search Console hesaplarında örüntü hep aynı: gösterim sayısı yerinde duruyor, konum değişmiyor, tıklama oranı geriliyor.

Bu yazıda paniğe kapılmadan ne yapılabileceğini anlatacağım. Sıralama taktiği önermeyeceğim; yanıt kutusunun hangi sorguda çıkacağını ne siz belirliyorsunuz ne de ben. Onun yerine kontrolünüzde olan dört şeye odaklanacağım: hangi sorguların gerçekten etkilendiğini ölçmek, özetlenemeyen içerik üretmek, kullanıcıyı tıklamaya mecbur bırakan araç sayfaları kurmak ve trafiği tek bir kanala emanet etmemek.

Ölçüm ve araç bölümlerinde çalışan kod var; ilki Python, ikincisi tarayıcıda çalışan JavaScript. İkisini de kendi sitelerimde kullandığım hâlden sadeleştirerek aldım.

Önce ölçüm: hangi sorgular yanıt kutusuna gitti?

Search Console, yanıt kutusunda göründüğünüzü ayrı bir satır olarak raporlamıyor; en azından benim kullandığım arayüzde böyle bir kırılım yok. Bu yüzden dolaylı yoldan gidiyorum: iki dönemin sorgu raporunu dışa aktarıp gösterimi ve konumu sabit kalırken tıklama oranı düşen sorguları ayıklıyorum. Bu üçlü birlikte görüldüğünde en olası açıklama, sayfanın üstüne giren bir yanıt kutusu ya da benzeri bir sonuç sayfası öğesidir.

Dışa aktarma sırası şöyle: Performans raporunda tarih aralığını seçin, Sorgular sekmesini açın ve CSV olarak indirin; sonra önceki dönem için aynı işlemi tekrarlayın. Betik sütun adlarına değil sıralarına güveniyor, bu yüzden Türkçe ve İngilizce arayüzden gelen dosyalarda aynı çalışıyor. Türkçe dışa aktarımda yüzde işareti başta ve ondalık ayracı virgül geliyor; küçük yardımcı fonksiyon bunu tolere ediyor.

import pandas as pd

# Search Console > Performans > Sorgular > Dışa aktar (CSV), iki ayrı dönem
ONCEKI = "sorgular_onceki.csv"
SONRAKI = "sorgular_sonraki.csv"

def sayi(seri):
    # "%3,2" / "3.2%" / "12,4" gibi biçimleri sayıya çevirir
    return pd.to_numeric(
        seri.astype(str).str.replace("%", "", regex=False)
                        .str.replace(",", ".", regex=False),
        errors="coerce",
    )

def oku(yol, ek):
    df = pd.read_csv(yol)
    # Sütun adları dile göre değişir; sıra değişmez: sorgu, tık, gösterim, CTR, konum
    df.columns = ["sorgu", "tik" + ek, "gosterim" + ek, "ctr" + ek, "poz" + ek]
    for k in ("tik", "gosterim", "ctr", "poz"):
        df[k + ek] = sayi(df[k + ek])
    return df

m = oku(ONCEKI, "_onceki").merge(oku(SONRAKI, "_sonraki"), on="sorgu", how="inner")
m["gosterim_degisim"] = m["gosterim_sonraki"] / m["gosterim_onceki"] - 1
m["ctr_degisim"] = m["ctr_sonraki"] - m["ctr_onceki"]   # yüzde puanı
m["poz_degisim"] = m["poz_sonraki"] - m["poz_onceki"]

suphe = m[
    (m["gosterim_onceki"] >= 100)          # gürültüyü ele
    & (m["gosterim_degisim"] > -0.10)      # gösterim düşmedi
    & (m["ctr_degisim"] < -1.0)            # CTR en az 1 puan geriledi
    & (m["poz_degisim"].abs() < 2)         # sıra yerinde
].sort_values("ctr_degisim")

kolonlar = ["sorgu", "gosterim_onceki", "gosterim_sonraki",
            "ctr_onceki", "ctr_sonraki", "poz_onceki", "poz_sonraki"]
print(suphe[kolonlar].head(30).to_string(index=False))
suphe.to_csv("yanit-kutusu-suphelileri.csv", index=False)

Eşikler keyfî değil ama evrensel de değil: yüz gösterim altını gürültü sayıyorum, tıklama oranında bir puanlık düşüşü anlamlı buluyorum, iki sıradan az konum oynamasını "yerinde" kabul ediyorum. Kendi sitenizin hacmine göre ayarlayın. Çıkan listeyi niyet türüne göre gruplamak sonraki adımı belirliyor. Gördüğüm kadarıyla kayıp en çok şu sorgu tiplerinde:

  • Tanım sorguları ("X nedir", "Y ne işe yarar"): cevap iki cümleye sığıyor, kutu bunu rahatça üretiyor.
  • Kısa olgu sorguları (tarih, limit, sürüm numarası): tıklamaya gerek bırakmıyor.
  • Karşılaştırma sorguları ("A mı B mi"): kutu tabloyu kendisi kuruyor.

Buna karşılık "nasıl kurulur", "neden hata veriyor", "hangi ayar" gibi uygulama gerektiren sorgularda tıklama daha dayanıklı; kullanıcı özete değil adımlara ihtiyaç duyuyor. Bu ayrım, hangi sayfalara yatırım yapacağınızı söylüyor.

Özetlenemeyen içerik: derinlik ve özgün veri

Yanıt kutusu, internette zaten onlarca kez yazılmış bilgiyi özetliyor. Sizin sayfanız da aynı bilgiyi anlatıyorsa, kutu sizi kaynak olarak gösterse bile tıklama gelmiyor. Çıkış yolu özetlenmesi zor olanı yazmak; bunun iki biçimi var: derinlik ve özgün veri.

Derinlikten kastım uzunluk değil. Bir kurulumu gerçekten yapmış birinin bildiği şeyler: hangi adımda hangi hata çıkıyor, varsayılan ayar neden yetmiyor, hangi kombinasyonu deneyip vazgeçtiniz. Bu blogdaki PowerShell ile sistem izleme betiği yazısını böyle kurmaya çalıştım: sayaçların adını her yerde bulabilirsiniz, ama eşik değerlerini neden o seviyeye çektiğimi ancak deneyen biri yazabilir.

Özgün veri ise başkasının üretemeyeceği rakamlar demek. Büyük araştırma bütçesi gerekmiyor:

  • Kendi sunucu ya da uygulama loglarınızdan çıkardığınız dağılımlar: hangi hata ne sıklıkla, yük hangi saatte.
  • Bir aracı farklı ayarlarla çalıştırıp ölçtüğünüz süre ve kaynak tabloları.
  • Herkese açık bir veri setini tek bir soruya cevap verecek biçimde yeniden işlemeniz.
  • Küçük ölçekli de olsa yöntemini açıkça yazdığınız bir anket.

Bu tür içerik iki iş görüyor: yanıt kutusu sizi kaynak gösterdiğinde ayrıntıyı merak edenler tıklıyor, başka yazarlar rakamı alıntılarken size bağlantı veriyor. Yöntemi ve tarihi her zaman yazın; tarihsiz bir rakam bir yıl sonra kimseye güven vermiyor.

Araç ve hesaplayıcı sayfaları

Yanıt kutusu metin özetliyor, ama sizin girdinizle çalışan bir hesaplamayı yapamıyor. Kullanıcının kendi rakamlarını girdiği ve sonucu anında gördüğü bir sayfa, tıklamayı zorunlu kılan en sağlam içerik türü. Üstelik insanlar bu sayfaları yer imine ekliyor ve iş arkadaşına gönderiyor; yani doğrudan trafik de üretiyor.

Aşağıdaki örnek, yazının son bölümündeki soruyu araca çeviriyor: trafiğiniz tek kanala ne kadar bağımlı? Kullanıcı kanal başına oturum sayısını giriyor, betik en büyük kanalın payını ve Herfindahl-Hirschman endeksini (HHI) hesaplıyor. HHI payların karelerinin toplamı; rekabet hukukunda pazar yoğunlaşmasını ölçmek için kullanılıyor, burada aynı mantıkla kanal yoğunlaşmasını ölçüyor. Dört eşit kanal tam 0,25 verir; üzerini "yoğun" sayıyorum.

// Kanal yoğunlaşma hesaplayıcı — araç sayfasının çekirdeği
// Girdi: { kanalAdi: oturumSayisi } · Çıktı: en büyük pay ve HHI (0-1 arası)
function kanalYogunlasmasi(oturumlar) {
  const degerler = Object.values(oturumlar).map(Number).filter((v) => v >= 0);
  const toplam = degerler.reduce((a, b) => a + b, 0);
  if (toplam === 0) return null;
  const paylar = degerler.map((v) => v / toplam);
  const hhi = paylar.reduce((a, p) => a + p * p, 0);
  const enBuyukPay = Math.max(...paylar);
  return { enBuyukPay, hhi, yorum: hhi > 0.25 ? "yoğun" : "dağılmış" };
}

// Sayfadaki form: her input'un name özniteliği kanal adı, değeri oturum sayısı
document.querySelector("#kanal-formu").addEventListener("submit", (olay) => {
  olay.preventDefault();
  const girdi = Object.fromEntries(new FormData(olay.target));
  const s = kanalYogunlasmasi(girdi);
  document.querySelector("#sonuc").textContent = s
    ? `En büyük kanal payı %${(s.enBuyukPay * 100).toFixed(1)}, HHI ${s.hhi.toFixed(2)} (${s.yorum})`
    : "Önce oturum sayılarını girin.";
});

Araç sayfası kurarken dikkat ettiğim noktalar:

  • Sunucu tarafı gerekmiyor; hesap tarayıcıda dönüyor, sayfa statik barındırmada kalıyor.
  • Formun altına hesabın nasıl yapıldığını ve eşiklerin nereden geldiğini düz yazıyla koyuyorum; aramada dizinlenen kısım orası.
  • Girdi alanlarına örnek değer yazıyorum, kullanıcı boş formla karşılaşmıyor.
  • Sonucu URL parametresine yazıp paylaşılabilir yapmak iyi bir ikinci adım; ilk sürümde şart değil.

Tek kanala bağlı kalmamak: e-posta listesi ve kanal dağılımı

Arama motoru, sosyal ağ ve video platformu; üçü de dağıtımı kendi kurallarıyla yapıyor ve kuralı bir gecede değiştirebiliyor. E-posta listesi, doğrudan ulaşabildiğiniz tek kitle. Yanıt kutusu tıklama oranını düşürdüğünde listeye yazdığınız kişi sayısı değişmiyor.

Türkiye'de ticari elektronik ileti göndermek alıcının onayına bağlı ve bu onaylar İleti Yönetim Sistemi üzerinden kayıt altına alınıyor. Ayrıntıyı hukuk görüşüyle netleştirmek gerekir; benim söyleyebileceğim şu: onayı almadan gönderim yapmayın, onayı nasıl aldığınızı saklayın. Bu yüzden Google Maps üzerinden çıkardığım firma listelerini asla toplu gönderim için kullanmıyorum; o listeler araştırma aracı, e-posta listesi ise kendisi isteyerek yazılan insanlardan oluşuyor.

Listeyi büyütmek için işe yaradığını gördüğüm şeyler:

  • Araç sayfasının sonucunu e-postayla gönderme seçeneği: kullanıcı zaten değer aldı, adresini vermeye daha yakın.
  • Özgün veri yazılarında ham tabloyu isteyenler için indirme bağlantısı yerine kısa bir kayıt formu.
  • Çift onay (double opt-in): liste küçük kalıyor ama gerçekten okuyanlardan oluşuyor.
  • Düzenli ama seyrek gönderim: iki haftada bir düz metin, tek konu, tek bağlantı.

Bültende ölçtüğüm şey açılma oranı değil; bültenden siteye gelen oturum sayısını Search Console'daki organik tıklamayla yan yana koyuyorum. Amaç, organik gerilediğinde bültenin bunu kısmen karşılayacak boyuta gelmesi. Aynı tabloya ay sonunda bütün kanalları ekleyip yukarıdaki HHI hesabını uyguluyorum; en büyük kanal toplam oturumun yarısını geçiyorsa bir sonraki içerik planında diğer kanallara ağırlık veriyorum. Beslediğim kanallar şunlar:

  • Doğrudan ve marka aramaları: araç sayfaları ve tutarlı yazı ritmi bunu büyütüyor.
  • Yönlendirme: GitHub depoları, teknik topluluklar, özgün veriye atıf yapan yazılar.
  • Profesyonel ağlar: yazıyı özetleyen değil, yazıdaki tek bir bulguyu tartışan kısa paylaşımlar.

Yanıt kutusunun içine girmeye çalışmayı tamamen bırakmış değilim; yapılandırılmış veri, net başlıklar ve soruya doğrudan cevap veren ilk paragraf hâlâ işe yarıyor. Ama bunu ana strateji değil, yan kazanç olarak görüyorum.

Sonuç

Yanıt üreten arama, sıralamayı koruyup tıklamayı kaybetmenin mümkün olduğunu gösterdi. Cevap daha çok SEO değil, daha az bağımlılık: etkilenen sorguları ölçün, özetlenemeyen içerik ve kendi verinizi üretin, kullanıcının kendi rakamlarıyla çalışan araçlar kurun, doğrudan ulaşabildiğiniz bir e-posta listesi büyütün. Kanal dağılımını da bir metrik gibi takip edin; tek kanala bağımlılık, o kanal iyi giderken fark edilmiyor.

Kendi siteniz için ölçüm ve araç sayfası kurgusunu konuşmak isterseniz çalışmalarıma göz atabilir, iletişim bölümünden yazabilirsiniz. İlk görüşmede genellikle Search Console dışa aktarımını birlikte okumakla başlıyoruz; hangi sorguların gittiği belli olunca planın gerisi kendiliğinden şekilleniyor.