JSON-LD Şema İşaretlemesi: Eksiksiz SEO Uygulama Rehberi

Son Güncelleme 28.03.2026
Yapılandırılmış veri Zengin sonuçlar

JSON-LD yapılandırılmış verisi, arama motorlarına içeriğinizin tam olarak ne hakkında olduğunu bildirir. Doğru şema işaretlemesi, Google Arama'da SSS açılırları, makale kaydırıcıları, gezinme izleri ve daha fazlasını doğrudan arama sonuçlarında açar.

Bu rehber, gerçek C# uygulama kodu ve ürettiği tam JSON çıktısı ile tüm önemli şema türlerini kapsar. Tüm örnekler doğrudan üretim ortamındaki Blazor kod tabanından alınmıştır.

JSON-LD yapılandırılmış verisinin Google Arama'da SSS açılırları, makale kaydırıcıları ve gezinme izleri gibi zengin sonuçları beslediğini gösteren görsel
JSON-LD yapılandırılmış veri, şema işaretlemesini eklemenin en sürdürülebilir yoludur — HTML'den tamamen ayrı bir script etiketi içinde yer alır.

JSON-LD nedir ve SEO için neden önemlidir

JSON-LD (Bağlantılı Veri için JavaScript Nesne Gösterimi), yapılandırılmış veriyi JSON formatında kodlama yöntemidir. Google gibi arama motorları bu veriyi, sadece anahtar kelimeler değil, içeriğinizin anlamını anlamak için okur.

Google yapılandırılmış verinizi okuyabildiğinde, derecelendirmeler, SSS açılırları, makale görselleri, gezinme izleri ve diğer özellikleri doğrudan arama sonuçlarında gösteren görsel olarak zenginleştirilmiş sonuçlar için uygun hale gelir. Zengin sonuçlar, sıradan mavi bağlantılardan daha yüksek tıklanma oranları sağlar.

Google, JSON-LD'yi Microdata ve RDFa'ya tercih eder çünkü sayfanın herhangi bir yerine — özellikle head bölümüne — yerleştirilebilir ve mevcut HTML öğelerini değiştirmeyi gerektirmez. Yapılandırılmış veri, işaretlemenizden tamamen ayrıdır.

Zengin sonuç uygunluğu

Geçerli şema işaretlemesi, sayfalarınızı Google Arama'da SSS açılırları, makale kaydırıcıları, gezinme izleri ve diğer zengin özellikler için uygun hale getirir.

Aynı sıralamadan daha fazla tıklama

Anlamsal netlik

Yapılandırılmış veri belirsizliği ortadan kaldırır. Soru-cevap konulu bir sayfa açıkça FAQPage olarak tanımlanır, böylece Google bunu SSS zengin sonucu olarak gösterir.

Arama motorlarına tam olarak neye sahip olduğunuzu söyleyin

HTML'de sıfır değişiklik

JSON-LD, head bölümünde bir script etiketi içinde yer alır. Görsel HTML'inize dokunmaz, bu yüzden şema eklemek veya güncellemek düzeni veya erişilebilirliği bozmaz.

Temiz sorumluluk ayrımı

JSON-LD, Microdata ve RDFa karşılaştırması

Web sayfalarına schema.org yapılandırılmış verisi eklemek için üç format vardır. Üçü de Google tarafından anlaşılır ancak uygulanma ve bakım şekilleri önemli ölçüde farklıdır.

Format Sözdizimi konumu Bakım SEO etkisi Google önerisi
JSON-LD Ayrı script etiketi Kolay — HTML değişikliği yok Tam zengin sonuç desteği Önerilen
Microdata Satır içi HTML öznitelikleri Yüksek — işaretlemeye sıkı bağlı Tam zengin sonuç desteği Destekleniyor
RDFa Satır içi HTML öznitelikleri Yüksek — işaretlemeye sıkı bağlı Tam zengin sonuç desteği Destekleniyor

JSON-LD'nin sürdürülebilirlikte üstünlüğü

Microdata ve RDFa ile şema öznitelikleri HTML'inizin her yerine dağılır. Bir tasarım değişikliği şemayı gizlice bozabilir. JSON-LD ise kendi içinde bağımsız bir bloktur — script'i bir kez güncelleyin, HTML etkilenmez.

Web Geliştirme öğrenim seçkisi

SEO en iyi uygulamalarıyla modern web geliştirmeyi öğrenin

Benden bir ipucu Bu kursun, teknik SEO, yapılandırılmış veri ve modern web standartlarının gerçek projelerde nasıl birlikte çalıştığını anlamamda faydalı olduğunu gördüm.

  • HTML meta etiketleri, Open Graph ve JSON-LD yapılandırılmış veri uygulamasını öğrenin.
  • Daha iyi arama motoru görünürlüğü ve sıralaması için pratik SEO stratejileri.
  • Duyarlı tasarım ve performans optimizasyonunu kapsayan uygulamalı projeler.
Web Geliştirme kursunu keşfedin

Temel şema türleri ve kullanım zamanları

Schema.org yüzlerce tür tanımlar ancak birkaçı web içeriğinin çoğunluğunu kapsar. Bunlar Google Arama'da zengin sonuçları açan türlerdir.

Şema türü Kullanım durumu Zengin sonuç türü
Article Blog yazıları, rehberler, haber makaleleri Makale kaydırıcısı, Öne çıkan haberler
FAQPage Soru/cevap çiftleri içeren sayfalar Arama sonuçlarında SSS açılırı
BreadcrumbList Gezinme hiyerarşisi olan herhangi bir sayfa URL altında gezinme izi
WebSite / WebPage Ana sayfa, merkez sayfalar, açılış sayfaları Site bağlantıları arama kutusu, varlık tanıma
SoftwareApplication Uygulamalar, araçlar, yazılım ürünleri Derecelendirme ve fiyatlı uygulama zengin sonucu

Schema.org sözlüğü

Tüm şema türleri schema.org'da tanımlıdır. Her JSON-LD bloğundaki @context özelliği, ayrıştırıcıların özellik adlarını schema.org sözlüğüne göre yorumlamasını sağlar. Bir sayfada birden fazla şema türü birleştirilebilir — Google her script bloğunu bağımsız işler.

Makale şeması uygulaması

Makale şeması, içerik odaklı siteler için en önemli türdür. Google'a başlık, açıklama, yayın tarihi, yazar ve yayıncı bilgilerini verir — zengin sonuç uygunluğu için gereken minimum özelliklerdir.

Aşağıdaki C# sınıfı serileştirme modelidir. Her özellik, JsonPropertyName öznitelikleri kullanılarak ilgili JSON-LD alanına doğrudan eşlenir.

C#ArticleSchema C# sınıfı (JsonLdService.cs)
private class ArticleSchema
{
    [JsonPropertyName("@context")]
    public string Context { get; } = "https://schema.org";

    [JsonPropertyName("@type")]
    public string Type { get; } = "Article";

    [JsonPropertyName("headline")]
    public string? Headline { get; set; }

    [JsonPropertyName("description")]
    public string? Description { get; set; }

    [JsonPropertyName("image")]
    public string? Image { get; set; }

    [JsonPropertyName("url")]
    public string? Url { get; set; }

    [JsonPropertyName("author")]
    public Organization? Author { get; set; }

    [JsonPropertyName("publisher")]
    public ArticlePublisher? Publisher { get; set; }

    [JsonPropertyName("datePublished")]
    public string? DatePublished { get; set; }

    [JsonPropertyName("dateModified")]
    public string? DateModified { get; set; }

    [JsonPropertyName("articleSection")]
    public List<string>? ArticleSection { get; set; }
}

Gerekli özellikler: headline, image, datePublished, dateModified, author ve publisher. articleSection dizisi isteğe bağlıdır ancak önerilir — makalenin konusal kapsamını Google'a bildirir.

HTMLMakale şeması JSON-LD çıktısı
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "JSON-LD Schema Markup: Complete SEO Implementation Guide",
  "description": "Learn how to implement JSON-LD structured data for Article, FAQPage, BreadcrumbList, WebSite, and WebPage schema types.",
  "image": "https://ghostlyinc.com/images/web/jsonldguide/opengraph/hero-1200.png",
  "url": "https://ghostlyinc.com/en/json-ld-schema-markup-seo-guide/",
  "author": {
    "@type": "Organization",
    "name": "GhostlyInc",
    "url": "https://ghostlyinc.com"
  },
  "publisher": {
    "@type": "Organization",
    "name": "GhostlyInc",
    "logo": {
      "@type": "ImageObject",
      "url": "https://ghostlyinc.com/images/logo.png"
    }
  },
  "datePublished": "2026-03-28T10:00:00Z",
  "dateModified": "2026-03-28T10:00:00Z",
  "articleSection": [
    "What is JSON-LD and why it matters for SEO",
    "JSON-LD vs. Microdata vs. RDFa",
    "Core schema types and when to use them",
    "Article schema implementation"
  ]
}
</script>

Yazar ve yayıncı her ikisi de Organization olarak tanımlanır. Kişisel bloglarda yazar, isim ve URL içeren bir Person olabilir.

Zengin snippetler için SSS şeması

FAQPage şeması, Google Arama sonuçlarında sayfa listenizin altında doğrudan gösterilen genişletilebilir soru/cevap çiftleriyle SSS zengin sonuçları oluşturur. Bu, sonuçlarınızın kapladığı dikey alanı artırarak görünürlüğü ve tıklanma oranlarını yükseltir.

FaqPage sınıfı, soru varlıklarından oluşan bir liste tutar. Her varlık bir isim (soru) ve metin özelliğine sahip kabul edilmiş bir cevap (cevap) içermelidir.

C#FaqPage C# sınıfı (JsonLdService.cs)
private class FaqPage
{
    [JsonPropertyName("@context")]
    public string Context { get; } = "https://schema.org";

    [JsonPropertyName("@type")]
    public string Type { get; } = "FAQPage";

    [JsonPropertyName("@id")]
    public string? Id { get; set; }

    [JsonPropertyName("name")]
    public string? Name { get; set; }

    [JsonPropertyName("mainEntity")]
    public List<FaqEntity>? MainEntity { get; set; }
}

private class FaqEntity
{
    [JsonPropertyName("@type")]
    public string Type { get; } = "Question";

    [JsonPropertyName("name")]
    public string? Name { get; set; }

    [JsonPropertyName("acceptedAnswer")]
    public FaqAnswer? AcceptedAnswer { get; set; }
}

private class FaqAnswer
{
    [JsonPropertyName("@type")]
    public string Type { get; } = "Answer";

    [JsonPropertyName("text")]
    public string? Text { get; set; }
}

Çıktı, mainEntity dizisine sahip tek bir FAQPage bloğudur. Her öğe, kabul edilmiş cevaba sahip bir Question türüdür. Google, zengin sonuçlar için sayfa başına en fazla on soruyu destekler.

HTMLSSS şeması JSON-LD çıktısı
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "@id": "https://ghostlyinc.com/en/json-ld-schema-markup-seo-guide/#faq",
  "name": "Frequently asked questions",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What is the difference between JSON-LD and Microdata?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "JSON-LD is a separate script block that lives in the head and does not touch HTML. Microdata adds attributes directly to HTML elements. Google recommends JSON-LD for its maintainability."
      }
    },
    {
      "@type": "Question",
      "name": "How many FAQ questions can I mark up?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Google supports up to ten questions per page for the FAQ rich result. Additional questions are still valid schema but will not appear in the search result enhancement."
      }
    }
  ]
}
</script>

FAQPage bloğundaki @id, şemayı belirli bir URL parçasına bağlar. Bu, birden fazla şema bloğu içeren sayfalar için en iyi uygulamadır ve ayrıştırıcıların her varlığı net şekilde tanımlamasını sağlar.

WebSite ve WebPage şeması

WebSite ve WebPage şeması, bir site için temel varlık grafiğini oluşturur. WebSite, sitenin kendisini — adı, URL'si, dili ve yayıncısını — tanımlar. WebPage, bireysel sayfayı tanımlar ve isPartOf ilişkisiyle ana WebSite'a bağlar.

Her iki sınıf da aynı JSON-LD desenini takip eder. WebSite'deki @id alanı alan adı kökünü, WebPage'deki @id ise tam sayfa URL'sini gösterir.

C#WebSiteSchema ve WebPageSchema C# sınıfları (JsonLdService.cs)
private class WebSiteSchema
{
    [JsonPropertyName("@context")]
    public string Context { get; } = "https://schema.org";

    [JsonPropertyName("@type")]
    public string Type { get; } = "WebSite";

    [JsonPropertyName("name")]
    public string? Name { get; set; }

    [JsonPropertyName("url")]
    public string? Url { get; set; }

    [JsonPropertyName("inLanguage")]
    public string? InLanguage { get; set; }

    [JsonPropertyName("publisher")]
    public Organization? Publisher { get; set; }
}

private class WebPageSchema
{
    [JsonPropertyName("@context")]
    public string Context { get; } = "https://schema.org";

    [JsonPropertyName("@type")]
    public string Type { get; } = "WebPage";

    [JsonPropertyName("@id")]
    public string? Id { get; set; }

    [JsonPropertyName("name")]
    public string? Name { get; set; }

    [JsonPropertyName("description")]
    public string? Description { get; set; }

    [JsonPropertyName("url")]
    public string? Url { get; set; }

    [JsonPropertyName("inLanguage")]
    public string? InLanguage { get; set; }

    [JsonPropertyName("isPartOf")]
    public WebSiteReference? IsPartOf { get; set; }
}

inLanguage özelliği BCP 47 dil kodlarını kullanır (ör. en, de, fr). isPartOf bağlantısı, WebPage'i alan adının @id'sine referans vererek WebSite varlığına bağlar. Bu, Google'ın sitenizin tam bir varlık modelini oluşturmasına yardımcı olur.

HTMLWebSite ve WebPage şeması JSON-LD çıktısı
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "GhostlyInc",
  "url": "https://ghostlyinc.com",
  "inLanguage": "en",
  "publisher": {
    "@type": "Organization",
    "name": "GhostlyInc",
    "url": "https://ghostlyinc.com"
  }
}
</script>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "WebPage",
  "@id": "https://ghostlyinc.com/en/json-ld-schema-markup-seo-guide/",
  "name": "JSON-LD Schema Markup: Complete SEO Implementation Guide",
  "description": "Learn how to implement JSON-LD structured data for Article, FAQPage, BreadcrumbList, WebSite, and WebPage schema types.",
  "url": "https://ghostlyinc.com/en/json-ld-schema-markup-seo-guide/",
  "inLanguage": "en",
  "isPartOf": {
    "@type": "WebSite",
    "@id": "https://ghostlyinc.com"
  }
}
</script>

Uygulama en iyi uygulamaları

WrapInScriptTag yardımcı metodu, JSON dizelerinin geçerli JSON-LD bloklarına dönüştüğü tek noktadır. Serileştirilmiş şema verisini application/ld+json MIME türü ile gerekli script etiketi içine sarar.

Bu, servisteki tüm şema oluşturucularının çağırdığı metottur — Article, FAQPage, BreadcrumbList, WebSite ve WebPage tümü serileştirilmiş JSON'larını bu yardımcıya iletir.

C#WrapInScriptTag metodu (JsonLdService.cs)
private static MarkupString WrapInScriptTag(string json)
{
    var builder = new StringBuilder();
    builder.AppendLine("<script type=\"application/ld+json\">");
    builder.AppendLine(json);
    builder.AppendLine("</script>");

    return new MarkupString(builder.ToString());
}

SchemaContext nesnesi, BuildSchema metodunun giriş noktasıdır. Bir sayfa için tam şema blokları setini oluşturmak için gereken tüm verileri taşır — tür, meta veriler, SSS listesi, gezinme hiyerarşisi ve makale verisi.

C#BuildSchema yönlendirme mantığı (JsonLdService.cs)
public SchemaBuildResult BuildSchema(SchemaContext context)
{
    if (context == null) throw new ArgumentNullException(nameof(context));

    var jsonLd = new List<MarkupString>();

    switch (context.PageType)
    {
        case PageSchemaType.Home:
            jsonLd.Add(WebSite(context));
            jsonLd.Add(WebPage(context));
            break;
        case PageSchemaType.Article:
            jsonLd.Add(Article(context.Article!));
            break;
        case PageSchemaType.Tool:
            jsonLd.Add(WebPage(context));
            jsonLd.Add(SoftwareApplication(context.SoftwareApplication!));
            break;
        case PageSchemaType.Hub:
            jsonLd.Add(WebPage(context));
            break;
    }

    if (context.Faqs != null && context.Faqs.Count > 0)
    {
        jsonLd.Add(FAQ(context.Faqs.ToList(), context.FaqTitle, context.Url));
    }

    if (context.ParentHierarchy.Count > 0)
    {
        jsonLd.Add(BreadcrumbList(BuildBreadcrumbItems(context)));
    }

    return new SchemaBuildResult(jsonLd, context.PageType == PageSchemaType.Article);
}

Yönlendirme anahtarı, şema oluşturucuyu bileşen haline getirir. SSS ve gezinme izleri, sayfa türü ne olursa olsun mevcutsa her zaman eklenir. Bu, herhangi bir sayfa türüne SSS bloğu veya gezinme izi eklenebileceği anlamına gelir, temel yönlendirme mantığı değişmeden.

Şemanızı test etmek ve doğrulamak

Geçerli JSON-LD sözdizimi, zengin sonuç uygunluğunu garanti etmez. Google'ın araçları hem sözdizimi geçerliliğini hem de içeriğinizin her zengin sonuç türü için politika gereksinimlerini karşılayıp karşılamadığını kontrol eder.

Zengin Sonuçlar Testi

Herhangi bir URL'yi test etmek veya ham HTML yapıştırmak için search.google.com/test/rich-results adresini kullanın. Google, tespit edilen zengin sonuç türlerini doğrular ve eksik gerekli özellikleri vurgular.

Google'ın resmi uygunluk denetleyicisi

Şema İşaretleme Doğrulayıcısı

validator.schema.org, işaretlemenizi Google'ın zengin sonuç politikalarından bağımsız olarak schema.org spesifikasyonuna karşı kontrol eder. Özellik adı yazım hataları ve tür uyumsuzluklarını yakalamak için faydalıdır.

Schema.org sözdizimi doğrulaması

Google Arama Konsolu

Arama Konsolu'ndaki Geliştirmeler bölümü, dizine eklenen sayfalarınızda şema hatalarını ve uyarılarını toplu olarak raporlar. İlk doğrulamadan sonra sürekli izleme için kullanın.

Lansman sonrası geniş çapta izleme

Sıkça Sorulan Sorular

Yaygın JSON-LD şema işaretleme sorularının yanıtları