Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
SEO'yu Ölçmek: Hangi Soru, Hangi Veri? Search Console, GA4, Server Log ve CrUX Neden Farklı Sayılar Verir
Search Console, GA4, sunucu log'u ve CrUX aynı ziyaretin farklı parçalarını saydığı için farklı sayılar verir; doğru sayı, sorduğun soruya göre seçilir. Soru-metric-kaynak eşlemesini, sayıların neden tutmadığını, Google'ın Referer kurallarıyla log'dan Google trafiğini ayıran C# kodunu ve mertozen.com için ölçüm seçeneklerini anlatıyoruz.
Search Console Performance Raporu Derinlemesine: Position, CTR, Regex Filtreleri, Branded Query'ler ve Query Groups
Performance raporunda position her sorgudaki en üst sonucun ortalamasıdır ve property ile sayfa görünümü farklı topladığı için CTR iki sekmede farklı çıkar. Anonim sorguları, 1.000 satır ve 16 ay sınırını, RE2 regex'lerinde Türkçe karakter tuzağını, branded filtreyi, query groups'u, annotation'ları ve sitenin kendi CTR'ıyla düşük CTR'lı sorguları bulan C# kodunu anlatıyoruz.
Search Console API ve BigQuery Export: C# ile Kendi SEO Raporunu Otomatikleştirmek
Search Console verisini 16 ayın ötesinde saklamak için Search Analytics API'den her günü ayrı çekip kendi veritabanına yazar ya da bugünden itibaren BigQuery bulk export'u açarsın; ikisi de geçmişi geriye doğru doldurmaz. Service account yetkisini, sayfalamayı, kotaları, sahte handler'la testi, SQL Server'a idempotent arşivi, eşik tabanlı haftalık raporu ve export'un maliyet notlarını C# koduyla anlatıyoruz.
GA4 ile Site İçi Ölçüm: Event Modeli, Angular SPA'da page_view, Custom Event'ler ve Key Event'ler
Angular SPA'da page_view'i ya enhanced measurement'ın history takibiyle ya da elle gönderirsin, ikisini birden değil; elle gönderiyorsan Router başlığı NavigationEnd'den sonra yazdığı için TitleStrategy içinde gönder. GA4'ün event modelini, key event'leri, Razor sayfalarında CSP nonce ile gtag'i, blog için anlamlı event'leri ve kişisel veri göndermeyen Measurement Protocol kodunu anlatıyoruz.
Analytics'te Gizlilik ve Consent: KVKK Çerez Rehberi, Consent Mode ve Cookieless Alternatifler
Analytics tag'ini consent'ten önce yüklemezsin ve consent oranı değişince GA4'ün sayısı trafik değişmeden düşer; bunu consent'ten etkilenmeyen bir kaynakla ayırırsın. KVKK çerez rehberinin ölçüm için anlamını, ASP.NET Core'da ITrackingConsentFeature'ı, Angular'da consent'e bağlı yüklemeyi, Consent Mode'un basic ve advanced farkını, 2026 değişikliğini ve çerezsiz alternatifleri anlatıyoruz. Hukuki tavsiye değildir.
Core Web Vitals'ın SEO Etkisi: Google Ne Diyor, CrUX Field Data ve web-vitals ile Kendi RUM'unu Kurmak
Google'a göre Core Web Vitals ranking system'lerde kullanılır ama sıralama garantisi değildir ve relevance önce gelir; değerlendirme Lighthouse skoruyla değil, gerçek kullanıcılardan gelen field data ile yapılır. Eşikleri ve 75. persentili, CrUX'in kimi kapsadığını, Search Console raporunun URL gruplarını, C# ile CrUX API'yi ve Search Console mantığıyla p75 hesaplayan bir ASP.NET Core RUM endpoint'ini anlatıyoruz.
Bir SEO Değişikliğinin Etkisini Ölçmek: Önce/Sonra Analizi, Mevsimsellik, Annotation ve Dürüst Raporlama
Bir SEO değişikliğinin etkisini, değişiklik yapılmayan benzer sayfalardan oluşan bir kontrol grubuyla, tam haftalık pencerelerle ve normal haftalık dalgalanmanın aralığına göre ölçersin; kontrol grubu olmadan mevsim ve tatiller etkiyle karışır. Hipotez yazmayı, annotation'ı, dış etkenleri, sentetik veriyle C# analizini, küçük sitede split testin sınırlarını ve dürüst bir etki raporunu anlatıyoruz.