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
53 yazı bulundu
Teknik SEO Denetimi: Screaming Frog, Lighthouse SEO Audit'leri, Bing Site Scan, URL Inspection API ve CI'da Kendi Crawler'ın
SEO ve GEO SERİ 16

Teknik SEO Denetimi: Screaming Frog, Lighthouse SEO Audit'leri, Bing Site Scan, URL Inspection API ve CI'da Kendi Crawler'ın

Lighthouse'un SEO puanı tek bir sayfanın temel kurallara uyduğunu gösterir; kırık link, orphan sayfa ve hreflang dönüşü gibi site düzeyindeki sorunları ancak siteyi gezen bir crawler bulur. Screaming Frog, Bing Site Scan ve URL Inspection API'nin neyi gördüğünü karşılaştırıyor, sitemap ve link graph'ı kontrol eden kendi C# crawler'ımızı yazıp GitHub Actions'ta her PR'da çalıştırıyoruz.

15 Kas 2026 14 dk 6
Faceted Navigation, Pagination ve Infinite Scroll: Katalog Filtrelerini Crawl Budget'ı Harcamadan Sunmak
SEO ve GEO SERİ 15

Faceted Navigation, Pagination ve Infinite Scroll: Katalog Filtrelerini Crawl Budget'ı Harcamadan Sunmak

Index'lenmesi gerekmeyen filtre URL'leri robots.txt ile crawl dışında tutulur; index'lenecek filtreler tek yazımla, sabit sırada ve & ile kurulur, sonuçsuz kombinasyon o URL'de 404 döner ve her sayfa kendi canonical'ını taşır. Bookstore kataloğunda filtreleri normalize eden ASP.NET Core kodunu, gerçek link'li pagination'ı, crawl edilebilir "daha fazla yükle"yi ve Angular SSR'daki karşılığını kuruyoruz.

15 Kas 2026 13 dk 6
Video SEO: Watch Page, Video Sitemap, VideoObject, Clip ve SeekToAction ile Key Moments, Thumbnail Kuralları
SEO ve GEO SERİ 14

Video SEO: Watch Page, Video Sitemap, VideoObject, Clip ve SeekToAction ile Key Moments, Thumbnail Kuralları

Video özellikleri için her videonun tek bir watch page'i olmalı; video ilk HTML'de, tıklama beklemeden yüklenmeli ve sitemap, VideoObject ve sayfa aynı thumbnail, başlık ve süreyi söylemeli. Bookstore'un video sayfalarında video sitemap'i, Clip ve SeekToAction ile key moments'ı, ?t= parametresini, sabit thumbnail URL'lerini ve süreli, bölgesel videoları ASP.NET Core ile kurup testle sabitliyoruz.

15 Kas 2026 12 dk 6
Image SEO: alt Metni, Dosya Adı, srcset/picture, Image Sitemap, CDN Domain'i, og:image ve max-image-preview
SEO ve GEO SERİ 13

Image SEO: alt Metni, Dosya Adı, srcset/picture, Image Sitemap, CDN Domain'i, og:image ve max-image-preview

Google görseli yalnız img element'inin src'sinden bulur; CSS background index'lenmez, srcset ve picture her zaman bir src yedeğiyle kullanılır. Kapak alt metnini katalog verisinden üretiyor, dosya adını sabit tutuyor, sitemap'e image:loc ekliyor, CDN domain'ini ve tercih edilen görseli (og:image, primaryImageOfPage, max-image-preview:large) ASP.NET Core ve Angular NgOptimizedImage ile kuruyoruz.

15 Kas 2026 12 dk 5
Diğer Gallery Tipleri İçin Tarifler: Event, Course List, Discussion Forum, Q&A, Dataset, Software App ve Image Metadata
SEO ve GEO SERİ 09

Diğer Gallery Tipleri İçin Tarifler: Event, Course List, Discussion Forum, Q&A, Dataset, Software App ve Image Metadata

Bir tip, galerideki görünüme göre değil sayfanın gerçekte ne olduğuna göre seçilir: yalnızca online bir etkinlik Event'e, ürün sayfasındaki soru-cevap QAPage'e, kitap yorumları DiscussionForumPosting'e aday değildir. Event, Discussion forum, Q&A ve Image metadata için Bookstore örnekli kartlar veriyor, Bookstore'a uymayan tipleri ve Türkiye'deki carousel sınırını açıklıyor, kartları xUnit'te çalışan bir kural tablosuyla test ediyoruz.

15 Kas 2026 12 dk 9
Organization Seviyesinde Mağaza Bilgisi: Logo, İletişim, MerchantReturnPolicy, Shipping Policy ve Öncelik Sırası
SEO ve GEO SERİ 08

Organization Seviyesinde Mağaza Bilgisi: Logo, İletişim, MerchantReturnPolicy, Shipping Policy ve Öncelik Sırası

İade ve kargo politikası her ürün sayfasına ayrı ayrı yazılmaz; mağaza düzeyinde OnlineStore altında bir kez tanımlanır, ürün teklifleri ona @id ile işaret eder ve yalnızca istisnalar ürün düzeyinde ezilir. Bookstore için MerchantReturnPolicy ve ShippingService'i tek bir StorePolicy nesnesinden üretiyor, 14 günlük cayma hakkını ve Google'ın feed, Search Console ve markup arasındaki öncelik sırasını ele alıyoruz.

15 Kas 2026 11 dk 8
Review Snippet ve AggregateRating: Kimin Review'u Sayılır? Self-serving Review Kuralı, Puan Hesabı ve Riskler
SEO ve GEO SERİ 07

Review Snippet ve AggregateRating: Kimin Review'u Sayılır? Self-serving Review Kuralı, Puan Hesabı ve Riskler

Yıldız gösterimine yalnızca sayfada görünen, kullanıcıdan gelen ve değerlendirilen öğeye ait yorumlar aday olur; mağazanın kendi hakkındaki puanı Organization'a yazması self-serving kuralına takılır. Bookstore'un kitap yorumlarını moderasyonla süzüyor, ortalamayı EF Core'un SQL'e çevirdiği tek sorguyla alıp bir kez yuvarlıyor ve sayfayla markup'ı testlerle aynı tutuyoruz.

15 Kas 2026 10 dk 6
Product Structured Data: Product Snippet mi Merchant Listing mi? Kitap Sayfası için Product, Offer ve Book
SEO ve GEO SERİ 06

Product Structured Data: Product Snippet mi Merchant Listing mi? Kitap Sayfası için Product, Offer ve Book

Ürün bu sayfadan satın alınabiliyorsa merchant listing kuralları geçerlidir: Offer zorunlu, fiyat sıfırdan büyük; satın alınamıyorsa product snippet. Bookstore'un kitap sayfasında Product ile Book'u birlikte tipliyor, fiyatı ve stoğu görünen sayfayla aynı nesneden üretiyor, kampanya fiyatını ve bitişini işaretliyor ve hepsini xUnit testleriyle sabitliyoruz.

15 Kas 2026 13 dk 6
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 8
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 9
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 7
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 5
Blog Haritası