Ana içeriğe geç
Yapısal Veri & Schema

JSON-LD ile Yapısal Veri Nasıl Eklenir?

JSON-LD ile schema nasıl eklenir? Google'ın önerdiği JSON-LD formatını, örnek kodları ve sık kullanılan schema türlerinin uygulamasını adım adım gösteriyoruz.

EErcan Büyükcafer 9 Mart 2025 Güncelleme: 1 Temmuz 2026 7 dk okuma
İçindekiler

İnternette "yapısal veri ekleyin" tavsiyesini duyduğunuzda karşınıza hemen üç harf çıkar: JSON-LD. Peki bu format tam olarak nedir, sayfanıza nasıl eklenir ve neden Google bizzat bu formatı önerir? Bu yazıda JSON-LD'nin ne olduğunu, HTML içinde nereye yerleştirileceğini, en sık kullanılan Organization ve Article şemalarının nasıl yazıldığını ve eklediğiniz kodu nasıl test edip doğrulayacağınızı adım adım anlatıyoruz.

Yapısal veri kavramına yeni başlıyorsanız önce schema markup nedir yazımıza göz atmanızı öneririz; elinizdeki bu yazı ise doğrudan uygulamaya, yani kodu nasıl yazıp yerleştireceğinize odaklanıyor.

Kısa tanım: JSON-LD (JavaScript Object Notation for Linked Data), bir web sayfasının içeriğini arama motorlarına makine tarafından okunabilir biçimde açıklamak için kullanılan bir yapısal veri formatıdır. Sayfanın görünür HTML yapısından bağımsız olarak <script type="application/ld+json"> etiketi içinde yazılır ve Google'ın resmî olarak önerdiği yapısal veri biçimidir.

JSON-LD Nedir?

JSON-LD, schema.org sözlüğünde tanımlanan varlıkları (bir makale, bir ürün, bir işletme, bir SSS listesi) JSON formatında, ayrı bir kod bloğu hâlinde ifade etmenizi sağlar. "Linked Data" (bağlı veri) kısmı, bu verinin @type ve @context gibi alanlarla hangi standarda göre yorumlanması gerektiğini arama motoruna bildirmesinden gelir.

En önemli özelliği, sayfanızın görünür tasarımından tamamen bağımsız çalışmasıdır. Kullanıcının ekranda gördüğü metin ve düzeni hiç değiştirmeden, arka planda "bu sayfa aslında bir makaledir, yazarı şu kişidir, yayın tarihi şudur" gibi bilgileri arama motoruna iletebilirsiniz.

JSON-LD, Microdata ve RDFa Farkı

Yapısal veriyi işaretlemenin JSON-LD dışında iki yöntemi daha vardır: Microdata ve RDFa. Üçü de aynı schema.org sözlüğünü kullanır ama uygulama biçimleri çok farklıdır.

FormatNasıl uygulanırBakım kolaylığıGoogle'ın önerisi
JSON-LDTek bir <script> bloğu, HTML'den ayrıYüksek — HTML'e dokunmadan güncellenirÖnerilen format
MicrodataHTML etiketlerinin içine itemprop gibi öznitelikler eklenirDüşük — her tasarım değişikliğinde bozulma riski taşırDesteklenir, önerilmez
RDFaHTML etiketlerine property, typeof öznitelikleri eklenirDüşük — Microdata'ya benzer risk taşırDesteklenir, önerilmez

JSON-LD'nin bu kadar tercih edilmesinin pratik bir nedeni var: Görünür HTML'inizle iç içe geçmediği için geliştiricileriniz tasarımı değiştirirken yapısal veriyi kırma riski çok daha düşük. Ayrıca tek bir script bloğunda birden fazla varlığı tanımlamak, Microdata'da her öğeyi ayrı ayrı HTML etiketine gömmekten çok daha pratiktir. Bunun yanında JSON-LD yalnızca arama motorları için değil; bazı sosyal medya paylaşım kartları ve dahili otomasyon sistemleri için de okunabilir bir veri kaynağı işlevi görebilir — yani bu yatırımın faydası SEO ile sınırlı kalmaz.

JSON-LD Sayfaya Nereye Eklenir?

JSON-LD kodu, <script type="application/ld+json"> etiketi içine yazılır ve genellikle sayfanın <head> bölümüne eklenir; teknik olarak <body> içine de eklenebilir, Google her ikisini de tarar.

html
<!DOCTYPE html>
<html lang="tr">
<head>
  <meta charset="UTF-8">
  <title>Bursa Yatak Odası Takımları | Ornek Mobilya</title>
  <meta name="description" content="Modern ve klasik yatak odası takımları, uygun fiyat ve ücretsiz montaj.">
  <script type="application/ld+json">
  </script>
</head>
<body>
  ...
</body>
</html>

Yukarıdaki boş <script> etiketinin içine, aşağıda örneklerini verdiğimiz JSON-LD içeriğini yerleştirmeniz yeterli. CMS kullanıyorsanız bu genellikle elle kod yazmayı gerektirmez:

  1. 1WordPress: Yoast SEO, Rank Math gibi eklentiler Organization ve Article şemasını çoğunlukla otomatik üretir; özel alanlar için eklenti ayarlarından veya ayrı bir şema eklentisiyle ince ayar yapabilirsiniz.
  2. 2Shopify, Wix, Webflow: Bu platformlar Product ve Organization gibi temel şemaları otomatik ekler; özel şema ihtiyaçlarınız için tema koduna veya uygulama mağazasındaki şema eklentilerine ihtiyaç duyabilirsiniz.
  3. 3Özel geliştirilmiş siteler: Script bloğu genellikle sayfa şablonuna sabit kod olarak yazılır; her sayfa tipi (ürün, makale, ana sayfa) için ayrı bir JSON-LD bloğu tanımlamanız gerekir.

JavaScript ile Oluşturulan Sitelerde JSON-LD

React, Vue veya Angular gibi istemci tarafında (client-side) render edilen sitelerde JSON-LD bloğu, sayfa ilk yüklendiğinde değil JavaScript çalıştıktan sonra DOM'a ekleniyorsa dikkatli olun. Google botu günümüzde JavaScript'i genellikle çalıştırıp render edebiliyor olsa da bu işlem ek kaynak ve zaman gerektirir; bazı durumlarda tarama gecikmesine veya şemanın hiç görülmemesine yol açabilir. Mümkünse JSON-LD bloğunu sunucu tarafında (server-side rendering) oluşturulan ilk HTML yanıtına dahil edin. JavaScript tabanlı sitelerde SEO'nun genel zorluklarını JavaScript SEO yazımızda daha kapsamlı ele alıyoruz.

Organization Schema Örneği

Organization şeması, sitenizin arkasındaki işletmeyi tanımlar: adı, logosu, iletişim bilgileri ve sosyal medya hesapları. Genellikle ana sayfaya ve mümkünse tüm sayfalarda ortak biçimde eklenir.

json
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Ornek Mobilya",
  "url": "https://ornek-mobilya.com.tr",
  "logo": "https://ornek-mobilya.com.tr/logo.png",
  "sameAs": [
    "https://www.instagram.com/ornekmobilya",
    "https://www.facebook.com/ornekmobilya",
    "https://www.linkedin.com/company/ornekmobilya"
  ],
  "contactPoint": {
    "@type": "ContactPoint",
    "telephone": "+90-224-555-00-00",
    "contactType": "customer service",
    "areaServed": "TR",
    "availableLanguage": "Turkish"
  }
}

sameAs alanı özellikle önemlidir: sosyal medya ve diğer güvenilir profillerinizi listeleyerek Google'a "bu işletme gerçek ve tutarlı bir dijital kimliğe sahip" sinyali verir. Bu, E-E-A-T açısından da değerli bir uygulamadır.

Article Schema Örneği

Bir blog yazısı veya haber içeriği yayınlıyorsanız Article (veya BlogPosting, NewsArticle) şeması, yazarı, yayın tarihini ve öne çıkan görseli arama motoruna bildirir.

json
{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "headline": "JSON-LD ile Yapısal Veri Nasıl Eklenir?",
  "image": "https://ornek-site.com.tr/gorseller/json-ld-rehberi.jpg",
  "author": {
    "@type": "Person",
    "name": "Ayşe Yılmaz"
  },
  "publisher": {
    "@type": "Organization",
    "name": "Ornek Blog",
    "logo": {
      "@type": "ImageObject",
      "url": "https://ornek-site.com.tr/logo.png"
    }
  },
  "datePublished": "2026-02-10",
  "dateModified": "2026-02-10",
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://ornek-site.com.tr/blog/json-ld-ekleme"
  }
}

Dikkat: datePublished ve dateModified alanlarını gerçek yayın ve güncelleme tarihleriyle uyumlu tutun. Google, içeriğinizin gerçekten güncel olup olmadığını bu alanlar ile sayfa içeriğini karşılaştırarak değerlendirir; tutarsızlık güven sinyalini zedeler.

Aynı Sayfada Birden Fazla Şema Kullanabilir misiniz?

Evet. Bir ürün sayfası hem Product hem de BreadcrumbList şemasına aynı anda ihtiyaç duyabilir. Bunu iki şekilde yapabilirsiniz:

  • Ayrı script blokları: Her şema türü için kendi <script type="application/ld+json"> etiketini kullanmak — en yaygın ve okunması en kolay yöntem.
  • `@graph` ile birleştirme: Birden fazla varlığı tek bir JSON nesnesi içinde, @graph dizisiyle gruplamak. Özellikle şablon tabanlı sistemlerde tek bir bloğu dinamik olarak doldurmak isterseniz kullanışlıdır.

Örneğin ana sayfanızda hem işletme kimliğini hem de web sitesini tanımlamak isterseniz, iki varlığı @graph altında birleştirebilirsiniz:

json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "name": "Ornek Mobilya",
      "url": "https://ornek-mobilya.com.tr"
    },
    {
      "@type": "WebSite",
      "name": "Ornek Mobilya",
      "url": "https://ornek-mobilya.com.tr"
    }
  ]
}

Bu örnek işletme ile sitenin kimliğini ayrı düğümlerde tanımlar. Google sitelinks arama kutusu özelliğini Kasım 2024'te kaldırdığı için SearchAction eklemek Google'da marka altı arama kutusu oluşturmaz.

SSS içeriğini kullanıcı ihtiyacı varsa görünür metin olarak yayımlayın. FAQPage schema.org içinde varlığını sürdürse de Google FAQ zengin sonucunu Mayıs 2026'da kaldırdı; güncel ayrımı FAQ schema rehberimizde bulabilirsiniz.

JSON-LD Nasıl Test Edilir ve Doğrulanır?

Kodu yayınlamadan önce mutlaka doğrulayın. İki temel araç var:

  1. 1Rich Results Test (search.google.com/test/rich-results): Google'ın kendi aracı. Bir URL'yi veya kod parçasını yapıştırdığınızda, sayfanın hangi zengin sonuç türlerine uygun olduğunu ve varsa hataları/uyarıları gösterir.
  2. 2Schema Markup Validator (validator.schema.org): Schema.org topluluğunun aracı. Rich Results Test'ten farklı olarak yalnızca Google'ın desteklediği zengin sonuçlarla sınırlı kalmadan, tüm schema.org sözlüğüne göre teknik doğrulama yapar.

Doğrulama sürecinde şu üçüne dikkat edin:

  • Hatalar (errors): Zorunlu bir alan eksik veya format yanlış; bu genellikle zengin sonucun hiç görünmemesine yol açar.
  • Uyarılar (warnings): Zorunlu olmayan ama önerilen bir alan eksik; zengin sonuç görünebilir ama eksiksiz olmayabilir.
  • Geçerli öğeler: Aracın başarıyla tanıdığı ve doğru bulduğu şema türleri.

Kodunuz doğrulandıktan sonra bir sonraki adım, bu yatırımın gerçekten karşılığını almaktır — hangi zengin sonuçların hangi koşullarda göründüğünü zengin sonuçlar nasıl alınır yazımızda ayrıntılı ele alıyoruz.

Sık Yapılan JSON-LD Hataları

  • Görünmeyen içerik hakkında şema yazmak. Şemada belirttiğiniz bilgi (fiyat, SSS, yazar) sayfada kullanıcıya da görünmelidir. Google, sayfa içeriğiyle uyuşmayan şemaları görmezden gelir; ciddi durumlarda bu bir manuel işlem riski oluşturur.
  • Geçersiz JSON söz dizimi. Eksik virgül, kapanmayan parantez gibi basit hatalar tüm bloğu geçersiz kılar. Yayın öncesi mutlaka bir doğrulama aracından geçirin.
  • Yanlış `@type` seçimi. Örneğin bir hizmet sayfası için Product şeması kullanmak; doğru varlık türünü seçmek doğruluk açısından kritiktir.
  • Şablonlarda kopyala-yapıştır hatası. Tüm sayfalarda aynı headline veya datePublished değerinin kalması, her sayfanın kendi gerçek verisiyle güncellenmesi gerektiğinin unutulmasından kaynaklanır.
  • Aynı sayfada çelişen birden fazla blok. Örneğin farklı isim veya logo bilgisi taşıyan iki ayrı Organization bloğu, Google'ın hangisine güveneceğini şaşırmasına yol açabilir.
  • `@context` alanını eklemeyi unutmak. https://schema.org referansı olmadan yazılan bir JSON nesnesi, teknik olarak geçerli JSON olsa bile yapısal veri olarak tanınmaz.

Kendi sitenizde hangi sayfalarda şema eksik veya hatalı olduğunu tek tek kontrol etmek yerine, ücretsiz çözüm rehberlerimizdeki şema bölümü size adım adım bir kontrol listesi sunar.

Sıkça Sorulan Sorular

JSON-LD kullanmak sıralamayı doğrudan yükseltir mi?

Hayır. JSON-LD tek başına bir sıralama faktörü değildir. Google, içeriğinizi daha iyi anlamasını sağlar ve zengin sonuç kazanma ihtimalinizi artırır; bu da dolaylı olarak tıklama oranını ve görünürlüğü iyileştirebilir.

JSON-LD eklemek için yazılımcı gerekir mi?

Küçük ve orta ölçekli sitelerde genellikle gerekmez; WordPress gibi CMS'lerde eklentiler bunu sizin için otomatik yapar. Özel geliştirilmiş sitelerde veya karmaşık şema ihtiyaçlarında bir geliştiriciden destek almak süreci hızlandırır.

Yanlış yazılmış JSON-LD sitemi olumsuz etkiler mi?

Geçersiz bir JSON-LD bloğu genellikle sayfanızın sıralamasına zarar vermez; sadece o şemanın Google tarafından yok sayılmasına, dolayısıyla zengin sonuç kazanamamanıza yol açar. Yine de sayfa içeriğiyle kasıtlı biçimde çelişen (yanıltıcı) şemalar Google'ın manuel işlem uygulayabileceği bir ihlal sayılabilir.

JSON-LD'yi her sayfaya eklemem gerekir mi?

Hayır, her sayfaya aynı şemayı eklemek anlamlı değildir. Site kimliği için uygun yerde Organization, blog yazılarında Article/BlogPosting, ürün sayfalarında Product gibi gerçek içerikle eşleşen türleri seçin. Google'ın desteklemediği bir schema.org türünü yalnızca zengin sonuç beklentisiyle eklemeyin.

Birden fazla dilde site varsa JSON-LD nasıl yönetilir?

Her dil sürümü kendi JSON-LD bloğunu, o dildeki gerçek içerikle (başlık, açıklama, SSS metinleri) barındırmalıdır. Aynı şemayı çeviri yapmadan tüm dillerde tekrarlamak, içerik-şema uyumsuzluğuna yol açar.

Sonuç

JSON-LD, görünüşte teknik bir detay gibi dursa da, Google'ın sitenizi doğru anlaması ve zengin sonuçlarla ödüllendirmesi için en pratik ve bakımı en kolay yoldur. Doğru yerde, doğru @type ile ve sayfa içeriğinizle tam uyumlu yazıldığında, hem arama motorlarına hem kullanıcılarınıza net bir mesaj verir.

Sitenizde JSON-LD'nin doğru kurulup kurulmadığını, hangi sayfalarda eksik olduğunu görmek isterseniz SeoPulse'un ücretsiz analizini deneyebilirsiniz; yapısal veri taraması dahil 33 modülde sitenizi saniyeler içinde değerlendiriyoruz.

Sitenizde bu konular nasıl duruyor?

Ücretsiz SeoPulse analizi, sitenizin bu ve 30+ konudaki durumunu tek raporda gösterir.

Ücretsiz analiz
E

Yazar

Ercan Büyükcafer

SEO & Dijital Pazarlama Uzmanı · SeoPulse

SeoPulse'un arkasındaki isim. Teknik SEO, içerik stratejisi ve organik büyüme üzerine çalışıyor; işletmelerin hem arama motorlarında hem de yapay zekâ araçlarında (GEO) görünürlüğünü artırmaya odaklanıyor.

  • SEO & organik büyüme
  • Teknik SEO & içerik stratejisi
  • GEO / AI görünürlük

İlgili yazılar