Structured Data ve JSON-LD: Arama Motorları İçin Veri Yapılandırma

Structured Data ve JSON-LD: Arama Motorları İçin Veri Yapılandırma
Yapısal veri (structured data), web sayfalarındaki içeriğin arama motorları tarafından daha iyi anlaşılmasını sağlayan standartlaştırılmış bir işaretleme yöntemidir. Google, Bing ve diğer arama motorları, structured data sayesinde sayfanızın ne hakkında olduğunu daha net kavrar ve arama sonuçlarında zengin snippet'ler (rich results) görüntüleyebilir. Bu yazıda JSON-LD formatını, en yaygın schema tiplerini ve implementation best practice'lerini detaylı olarak inceliyoruz.
Structured Data Nedir?
Structured data, web içeriğini makinelerin anlayabileceği bir formatta tanımlayan bir veri organizasyon yöntemidir. Schema.org standartlarına dayanan bu sistem, arama motorlarına sayfanızdaki içeriğin türünü (makale, ürün, tarif, etkinlik vb.), özelliklerini ve ilişkilerini bildirir.
Üç temel format kullanılır:
- JSON-LD (önerilen): JavaScript Object Notation for Linked Data. Google'ın resmi olarak önerdiği formattır.
- Microdata: HTML attribute'ları ile inline olarak eklenir. Bakımı zordur.
- RDFa: Resource Description Framework in Attributes. Karmaşık ve eski bir yöntemdir.
JSON-LD Temel Yapısı
JSON-LD, HTML sayfanızın <head> veya <body> bölümüne bir <script> tag'i içinde eklenir. Her JSON-LD bloğu @context ve @type alanlarını içermelidir.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Structured Data ve JSON-LD Rehberi",
"description": "Arama motorları için veri yapılandırma rehberi",
"image": "https://tariktunc.com/images/structured-data.webp",
"author": {
"@type": "Person",
"name": "Tarik Tunç",
"url": "https://tariktunc.com"
},
"publisher": {
"@type": "Organization",
"name": "Tarik Tunç Blog",
"logo": {
"@type": "ImageObject",
"url": "https://tariktunc.com/logo.png"
}
},
"datePublished": "2025-07-25",
"dateModified": "2025-07-25",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://tariktunc.com/blog/structured-data-json-ld"
}
}
</script>
Yaygın Schema Tipleri ve Örnekleri
1. BreadcrumbList (Breadcrumb Navigasyonu)
Breadcrumb schema'sı, arama sonuçlarında sayfa hiyerarşisini görüntüler. Kullanıcıların sayfanın site içindeki konumunu anlamasını sağlar.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Ana Sayfa",
"item": "https://tariktunc.com"
},
{
"@type": "ListItem",
"position": 2,
"name": "Blog",
"item": "https://tariktunc.com/blog"
},
{
"@type": "ListItem",
"position": 3,
"name": "Structured Data Rehberi"
}
]
}
</script>
2. FAQPage (Sıkça Sorulan Sorular)
FAQ schema'sı, arama sonuçlarında doğrudan soru-cevap formatında görüntülenir ve önemli ölçüde SERP alanı kaplar.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "JSON-LD nedir?",
"acceptedAnswer": {
"@type": "Answer",
"text": "JSON-LD, web sayfalarındaki yapısal veriyi tanımlamak için kullanılan JavaScript Object Notation for Linked Data formatıdır."
}
},
{
"@type": "Question",
"name": "Structured data SEO'yu nasıl etkiler?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Structured data doğrudan bir sıralama faktörü olmasa da, rich results ile tıklama oranını (CTR) artırarak dolaylı olarak SEO'yu olumlu etkiler."
}
}
]
}
</script>
3. HowTo (Adım Adım Rehber)
HowTo schema'sı, nasıl yapılır içeriklerini adım adım tanımlar ve Google'da görsel adım listesi olarak görüntülenebilir.
Next.js ile JSON-LD Implementasyonu
Next.js App Router'da JSON-LD eklemek için bir bileşen oluşturabilirsiniz:
// components/JsonLd.tsx
interface JsonLdProps {
data: Record<string, unknown>;
}
export default function JsonLd({ data }: JsonLdProps) {
return (
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(data) }}
/>
);
}
// Kullanım: app/blog/[slug]/page.tsx
import JsonLd from '@/components/JsonLd';
export default function BlogPost({ post }) {
const articleSchema = {
"@context": "https://schema.org",
"@type": "Article",
headline: post.title,
description: post.summary,
image: post.image,
author: {
"@type": "Person",
name: "Tarik Tunç",
},
datePublished: post.date,
dateModified: post.updatedAt || post.date,
};
return (
<>
<JsonLd data={articleSchema} />
<article>
<h1>{post.title}</h1>
{/* ... */}
</article>
</>
);
}
Doğrulama ve Test Araçları
Structured data'nızı yayınlamadan önce mutlaka test edin:
- Google Rich Results Test: Google'ın zengin sonuç uygunluğunu kontrol eder.
- Schema Markup Validator: Schema.org standardına uygunluğu doğrular.
- Google Search Console: Canlı sitedeki structured data hatalarını ve performansını izler.
Yaygın Hatalar ve Çözümleri
- Eksik zorunlu alanlar: Her schema tipinin zorunlu alanlarını Schema.org dokümantasyonundan kontrol edin.
- Sayfa içeriğiyle uyumsuzluk: Schema verileri sayfadaki görünür içerikle tutarlı olmalıdır. Yanıltıcı veri spam olarak değerlendirilir.
- Geçersiz JSON: JSON syntax hatalarını linter ile kontrol edin. Trailing comma ve escape edilmemiş karakterlere dikkat.
- Birden fazla entity: Bir sayfada birden fazla JSON-LD bloğu kullanabilirsiniz, her biri farklı bir entity'i tanımlayabilir.
Sonuç
Structured data ve JSON-LD, modern SEO stratejisinin vazgeçilmez bileşenleridir. Arama motorlarına içeriğinizi daha iyi anlamalarını sağlayarak, arama sonuçlarında öne çıkmanıza yardımcı olur. Article, FAQ, HowTo, BreadcrumbList gibi yaygın schema tiplerini doğru şekilde implement ederek zengin sonuçlar elde edebilirsiniz. Her zaman Schema.org dokümantasyonunu takip edin ve değişikliklerinizi yayınlamadan önce doğrulama araçlarıyla test edin.