Mert Özen Her Satırda Daha İleri

Blog

Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.

Seriler
45 yazı bulundu
Bir SEO Değişikliğinin Etkisini Ölçmek: Önce/Sonra Analizi, Mevsimsellik, Annotation ve Dürüst Raporlama
SEO ve GEO SERİ 07

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.

15 Kas 2026 10 dk 0
Core Web Vitals'ın SEO Etkisi: Google Ne Diyor, CrUX Field Data ve web-vitals ile Kendi RUM'unu Kurmak
SEO ve GEO SERİ 06

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.

15 Kas 2026 12 dk 0
Analytics'te Gizlilik ve Consent: KVKK Çerez Rehberi, Consent Mode ve Cookieless Alternatifler
SEO ve GEO SERİ 05

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.

15 Kas 2026 11 dk 0
GA4 ile Site İçi Ölçüm: Event Modeli, Angular SPA'da page_view, Custom Event'ler ve Key Event'ler
SEO ve GEO SERİ 04

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.

15 Kas 2026 11 dk 0
Search Console API ve BigQuery Export: C# ile Kendi SEO Raporunu Otomatikleştirmek
SEO ve GEO SERİ 03

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.

15 Kas 2026 12 dk 0
Search Console Performance Raporu Derinlemesine: Position, CTR, Regex Filtreleri, Branded Query'ler ve Query Groups
SEO ve GEO SERİ 02

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.

15 Kas 2026 11 dk 0
SEO'yu Ölçmek: Hangi Soru, Hangi Veri? Search Console, GA4, Server Log ve CrUX Neden Farklı Sayılar Verir
SEO ve GEO SERİ 01

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.

15 Kas 2026 10 dk 0
Structured Data'yı Test Etmek ve İzlemek: Rich Results Test, Schema Markup Validator, Search Console ve CI'da Otomatik Kontrol
SEO ve GEO SERİ 05

Structured Data'yı Test Etmek ve İzlemek: Rich Results Test, Schema Markup Validator, Search Console ve CI'da Otomatik Kontrol

Rich Results Test Google'ın rich result uygunluğunu, Schema Markup Validator schema.org geçerliliğini kontrol eder; regresyonu ise ancak her build'de çalışan testler yakalar. URL Inspection ve Search Console raporlarını, xUnit ve WebApplicationFactory ile JSON-LD testlerini, Angular SSR için Playwright kontrollerini ve deploy sonrası smoke test'leri gerçek başarılı ve başarısız çıktılarla gösteriyoruz.

14 Kas 2026 13 dk 31
Diğer Tipler ve Kaldırılan Rich Result'lar: VideoObject, SoftwareApplication, Speakable, FAQ ve HowTo'nun Hikâyesi
SEO ve GEO SERİ 04

Diğer Tipler ve Kaldırılan Rich Result'lar: VideoObject, SoftwareApplication, Speakable, FAQ ve HowTo'nun Hikâyesi

VideoObject yalnızca tek videoya odaklanan bir watch page'te video özelliklerine aday olur, SoftwareApplication puan veya yorum olmadan rich result üretmez, speakable ise hâlâ İngilizce ve haber odaklı bir beta. HowTo'dan FAQ'ya 2023–2026 arasında kaldırılan rich result'ların tarihlerini Google'ın değişiklik günlüğünden çıkarıyor, kaldırılan markup'ı silmenin gerekip gerekmediğini ve mertozen.com'daki karşılıklarını .NET 10 örnekleriyle tartışıyoruz.

14 Kas 2026 10 dk 22
BlogPosting, BreadcrumbList ve Yazar Entity'si: Person, ProfilePage, Organization ve WebSite ile Entity Graph Kurmak
SEO ve GEO SERİ 03

BlogPosting, BreadcrumbList ve Yazar Entity'si: Person, ProfilePage, Organization ve WebSite ile Entity Graph Kurmak

Bir teknik blog'un structured data'sı, sitede tek bir @id ile tanımlanan Person, Organization ve WebSite'a bağlanan bir BlogPosting ile dil başına doğru URL'li bir BreadcrumbList'ten oluşur. Google'ın Article, Breadcrumb ve ProfilePage önerilerini, dateModified'ı dürüst kullanmayı ve Schema Markup Validator'da graph'ın nasıl çözüldüğünü .NET 10 ile gösteriyor, mertozen.com'un canlı çıktısını denetliyoruz.

14 Kas 2026 11 dk 22
JSON-LD Sözdizimi ve Güvenli Üretim: @context, @type, @id, @graph ve ASP.NET Core / Angular SSR'da Doğru Kodlama
SEO ve GEO SERİ 02

JSON-LD Sözdizimi ve Güvenli Üretim: @context, @type, @id, @graph ve ASP.NET Core / Angular SSR'da Doğru Kodlama

JSON-LD'yi güvenli üretmenin kuralı, metni JSON'un kendi \u003C escape'iyle yazmak ve sayfaya tek bir @graph olarak koymaktır; UnsafeRelaxedJsonEscaping ile Html.Raw bir başlıktaki </script> yüzünden sayfayı bölüp XSS'e kapı açar. @context, @type, @id ve @graph'ı, ASP.NET Core 10'da typed record'larla üretimi, .NET 9 ile gelen ScriptTagHelper ayrıntısını ve Angular 22 SSR'da çift script ile sessiz veri bozulmasını gerçek çıktılarla inceliyoruz.

14 Kas 2026 15 dk 23
Structured Data Nedir? Schema.org, JSON-LD ve Google'ın Bununla Gerçekte Ne Yaptığı
SEO ve GEO SERİ 01

Structured Data Nedir? Schema.org, JSON-LD ve Google'ın Bununla Gerçekte Ne Yaptığı

Structured data, sayfanın ne anlattığını schema.org vocabulary'si ve JSON-LD gibi bir syntax ile makineye açıkça söylemektir; Google bunu sayfayı anlamak ve rich result uygunluğu için kullanır, ama markup ne rich result'ı garanti eder ne de sıralama faktörü olarak sunulur. Aynı bilgiyi Microdata, RDFa ve JSON-LD ile yazıp karşılaştırıyor, Bookstore sayfasının entity graph'ını .NET 10 ile döküyor ve Google dışındaki tüketicilere bakıyoruz.

14 Kas 2026 12 dk 27
Blog Haritası