JSON-LD vs Microdata vs RDFa Karşılaştırması

Yapılandırılmış veri (structured data) eklerken kullanabileceğiniz üç ana format vardır: JSON-LD, Microdata ve RDFa. Bu rehberde her birinin tarihçesini, nasıl çalıştığını, kod örneklerini, avantaj-dezavantajları karşılaştıracak ve Google'ın neden JSON-LD önerdiğini açıklayacağız. Mevcut sitenizde Microdata veya RDFa varsa, JSON-LD'ye geçiş için pratik adımlar da paylaşacağız.

Schema.org, bu üç formatın hepsini destekler. Aynı anlamsal bilgiyi (örneğin bir FAQ sayfası) üç farklı şekilde ifade edebilirsiniz. Ancak uygulama kolaylığı, bakım ve arama motoru desteği açısından farklar vardır. Google'ın resmi dokümantasyonu JSON-LD'yi açıkça önerir.

Kısa Tarihçe

RDFa (Resource Description Framework in Attributes) en eskisidir; 2004 civarında W3C tarafından geliştirildi. HTML nitelikleriyle (attribute) meta veri eklemenizi sağlar. XHTML ve HTML5 ile uyumludur.

Microdata ise 2011'de HTML5 spesifikasyonunun bir parçası olarak tanıtıldı. WhatWG tarafından önerildi ve daha basit bir sözdizimi sunar. Schema.org başlangıçta Microdata ile birlikte anıldı.

JSON-LD (JavaScript Object Notation for Linked Data) 2014'te W3C standardı olarak yayınlandı. HTML'den ayrı, saf JSON formatında yapılandırılmış veri sunar. Google, 2015 civarından itibaren JSON-LD'yi öne çıkarmaya başladı.

JSON-LD Nasıl Çalışır?

JSON-LD, HTML içeriğinden tamamen ayrı bir <script type="application/ld+json"> bloğunda tutulur. Sayfa yapısından bağımsızdır; sadece JSON nesneleriyle schema bilgisini iletirsiniz. Örnek:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [{
    "@type": "Question",
    "name": "JSON-LD nedir?",
    "acceptedAnswer": {
      "@type": "Answer",
      "text": "Yapılandırılmış veri formatıdır."
    }
  }]
}
</script>

HTML DOM'unu değiştirmeden head veya body'ye ekleyebilirsiniz. Dinamik içerikle (AJAX, sunucu tarafı şablonlama) kolayca entegre edilir.

Microdata Nasıl Çalışır?

Microdata, mevcut HTML elementlerine itemscope, itemtype, itemprop gibi nitelikler ekleyerek çalışır. Veri, HTML yapısına gömülüdür. Örnek:

<div itemscope itemtype="https://schema.org/Question">
  <h3 itemprop="name">Microdata nedir?</h3>
  <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
    <p itemprop="text">HTML'e gömülü yapılandırılmış veri formatıdır.</p>
  </div>
</div>

Avantajı: mevcut HTML'i minimal değişiklikle zenginleştirir. Dezavantajı: HTML ile sıkı bağlantı, tasarım değişikliklerinde schema'nın bozulma riski.

RDFa Nasıl Çalışır?

RDFa, vocab, typeof, property gibi nitelikler kullanır. XML ve HTML5 ile uyumludur. Örnek:

<div vocab="https://schema.org/" typeof="Question">
  <h3 property="name">RDFa nedir?</h3>
  <div typeof="Answer" property="acceptedAnswer">
    <p property="text">Nitelik tabanlı yapılandırılmış veri formatıdır.</p>
  </div>
</div>

RDFa, bağlı veri (Linked Data) dünyasında yaygındır; ancak SEO bağlamında JSON-LD ve Microdata kadar sık kullanılmaz.

Karşılaştırma Tablosu

Özellik JSON-LD Microdata RDFa
HTML'den ayrı Evet Hayır Hayır
Google önerisi Evet Desteklenir Desteklenir
Bakım kolaylığı Yüksek Orta Orta
Dinamik ekleme Kolay Zor Zor
Çift kod riski Düşük Yüksek Yüksek

Çift kod riski: HTML ve schema ayrı tutulduğunda, sadece HTML değişince schema güncel kalır (JSON-LD). Gömülü formatlarda HTML değişince schema da etkilenir.

Google Neden JSON-LD Öneriyor?

Google'ın resmi dokümantasyonunda JSON-LD tercih edilir çünkü: (1) HTML'den ayrıdır, mevcut sayfa yapısını bozmaz; (2) bakımı kolaydır; (3) dinamik içerikle (SPA, AJAX) kolayca eklenebilir; (4) hata ayıklaması daha basittir. Microdata ve RDFa hâlâ desteklenir; ancak yeni projelerde JSON-LD kullanılması önerilir.

Microdata/RDFa'dan JSON-LD'ye Geçiş

Mevcut sitenizde Microdata veya RDFa varsa, geçiş adımları:

  1. Mevcut şemayı çıkarın: Schema.org Validator ile sayfanızı test edin; algılanan yapıyı not alın.
  2. JSON-LD eşdeğerini oluşturun: Aynı entity'leri JSON-LD formatında yazın. Aracımız FAQPage, Article, LocalBusiness için hazır şablon sunar.
  3. Geçiş yapın: Eski nitelikleri (itemprop, itemscope vb.) kaldırın; yeni <script type="application/ld+json"> bloğunu ekleyin.
  4. Test edin: Rich Results Test ile doğrulayın. Aynı sayfada hem Microdata hem JSON-LD tutmayın (duplicate content riski).

JSON-LD şeması oluşturmak ister misiniz? Ücretsiz aracımızla FAQPage, Article ve LocalBusiness için hazır JSON-LD kodu üretin.

Aracı Kullan Schema Nedir? FAQPage Şablonu