Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
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.
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.
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.
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.
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.
İç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.
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.
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.
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.
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.
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.
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.