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
38 yazı bulundu
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 13
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 10
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 10
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 12
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 11
İçerik Bakımı: Content Decay, Güncelle–Birleştir–Sil Kararı ve Sürüm Bağımlı Yazıları Yaşatmak
SEO ve GEO SERİ 07

İçerik Bakımı: Content Decay, Güncelle–Birleştir–Sil Kararı ve Sürüm Bağımlı Yazıları Yaşatmak

Content decay, bir sayfanın arama trafiğinin aylar içinde düşmesidir ve çözümü tarihi güncellemek değil, nedeni ayırıp güncelle, yeniden yaz, birleştir ya da kaldır kararını vermektir. Search Console'da yıllık karşılaştırmayla decay'i tespit etmeyi, .NET 10 ile sinyal çıkarmayı, .NET 11 çıkarken sürüm bağımlı yazıları yaşatmayı, dateModified'ı dürüst kullanmayı, spam policy sınırlarını ve annotation ile ölçmeyi anlatıyoruz.

14 Kas 2026 12 dk 3
Cevap Veren Sayfa Yazmak: Başlık Yapısı, İlk Paragraf, Kod Örnekleri, Görseller ve İki Dilli İçerik
SEO ve GEO SERİ 06

Cevap Veren Sayfa Yazmak: Başlık Yapısı, İlk Paragraf, Kod Örnekleri, Görseller ve İki Dilli İçerik

Cevap veren bir sayfa, başlıktaki sorunun cevabını ilk paragrafta verir, tek ve net bir h1 taşır, kodu metin olarak ve gerçek çıktısıyla gösterir; heading sırası Google için sıralama faktörü değil ama okur ve erişilebilirlik için önemli. Başlık yapısını, ilk paragrafı, teknik içerikte sürüm ve çıktıyı, görsellerde alt text ve dosya adını, TR/EN yerelleştirmeyi ve AI destekli yazımı anlatıyor, .NET 10 ve AngleSharp ile bir sayfa denetleyicisi yazıyoruz.

14 Kas 2026 11 dk 2
Internal Linking: Anchor Text, Orphan Sayfalar, Link Derinliği ve C# ile Kendi Link Graph'ını Çıkarmak
SEO ve GEO SERİ 05

Internal Linking: Anchor Text, Orphan Sayfalar, Link Derinliği ve C# ile Kendi Link Graph'ını Çıkarmak

Internal link'ler Google'a hem yeni sayfaları keşfettirir hem de anchor text ile ne hakkında olduklarını anlatır; önemli her sayfa sitedeki en az bir sayfadan gerçek bir <a href> link'i almalıdır. Crawlable link kurallarını, anchor text'i, orphan sayfaları ve link derinliğini anlatıyor, .NET 10 ve AngleSharp ile sitemap'ten başlayan bir crawler yazıp orphan, derin sayfa, redirect zinciri ve nofollow'u raporluyoruz.

14 Kas 2026 11 dk 2
Content Architecture: Topic Cluster, Seri ve Kategori Yapısı ve Keyword Cannibalization
SEO ve GEO SERİ 04

Content Architecture: Topic Cluster, Seri ve Kategori Yapısı ve Keyword Cannibalization

İyi bir içerik mimarisi, her sorgu niyetinin sitede tek bir sahibi olmasını ve hub sayfaların gerçekten bir konuyu anlatmasını sağlar; aynı niyeti hedefleyen iki sayfa ise keyword cannibalization ile birbirini zayıflatır. mertozen.com'un kategori, seri ve yazı yapısını, etiket enflasyonunu, Search Console verisinden .NET 10 ile cannibalization adaylarını çıkarmayı ve birleştir, farklılaştır, canonical seçeneklerini anlatıyoruz.

14 Kas 2026 10 dk 3
Search Intent: Sorgunun Arkasındaki Niyeti Okumak ve Doğru İçerik Formatını Seçmek
SEO ve GEO SERİ 03

Search Intent: Sorgunun Arkasındaki Niyeti Okumak ve Doğru İçerik Formatını Seçmek

Search intent, sorgunun arkasındaki amaçtır ve doğru içerik formatını o belirler: tanım isteyen sorguya rehber, hata mesajına ilk ekranda çözüm, karşılaştırmaya tablo. Broder sınıflamasını, rater rehberindeki Know/Do/Website niyetlerini, geliştirici sorgularına özgü niyetleri, SERP okumayı, AI Overviews'un tıklamaya etkisini ve .NET 10 ile sorguları niyete göre sınıflandırmayı anlatıyoruz.

14 Kas 2026 10 dk 2
Keyword Research: Teknik Blog İçin Konu ve Sorgu Bulmak, Search Console'dan Keyword Planner'a
SEO ve GEO SERİ 02

Keyword Research: Teknik Blog İçin Konu ve Sorgu Bulmak, Search Console'dan Keyword Planner'a

Teknik bir blog için en güvenilir keyword kaynağı kendi Search Console verindir; autocomplete, Google Trends ve Keyword Planner ise ifade, karşılaştırma ve tahmin verir, gerçek hacim değil. Her kaynağın sınırlarını, Türk geliştiricilerin İngilizce jargon ve hata mesajıyla arama alışkanlığını ve bulk export verisinden .NET 10 ile TR/EN keyword map çıkarmayı gösteriyoruz.

14 Kas 2026 13 dk 3
Content SEO Nedir? People-First İçerik, "Kim, Nasıl, Neden" Soruları ve Search Engine-First Uyarı İşaretleri
SEO ve GEO SERİ 01

Content SEO Nedir? People-First İçerik, "Kim, Nasıl, Neden" Soruları ve Search Engine-First Uyarı İşaretleri

Content SEO, bulunabilir hâle gelmiş bir sayfanın bir sorguya cevap olarak seçilmesini sağlayan içerik işidir: doğru konuyu doğru niyet için yazmak ve okura gerçekten bir şey katmak. Google'ın people-first içerik rehberini kendi cümlelerimizle anlatıyor, "Kim, Nasıl, Neden" sorularını mertozen.com'daki gerçek bir yazıya uyguluyor, search engine-first uyarı işaretlerini ve AI ile toplu üretimde scaled content abuse sınırını gösteriyoruz.

14 Kas 2026 11 dk 2
Blog Haritası