SEO ve GEO
Ürün sayfaları için yapısal veri (Product schema) rehberi

Kısaca
Product schema, ürün sayfanızdaki ad, görsel, fiyat, stok ve değerlendirme bilgilerini Google'ın okuyabileceği JSON-LD koduyla işaretler. Satın alınabilen sayfalarda merchant listing işaretlemesi kullanın: name, image ve price ile priceCurrency içeren offers zorunludur. Kodu Zengin Sonuçlar Testi ile doğrulayın, Search Console raporlarını izleyin ve verinin görünür sayfayla birebir uyuştuğundan emin olun.
İçindekiler
- Ürün sayfası için yapısal veri (Product schema) nedir?
- Merchant listing ile ürün snippet'i arasındaki fark nedir?
- Product schema için hangi alanlar zorunlu, hangileri önerilen?
- Zorunlu alanlar
- Önerilen alanlar
- Örnek bir JSON-LD kodu nasıl görünür?
- Yapısal veriyi ürün sayfalarına nasıl eklersiniz?
- Yapısal veri nasıl test edilir?
- Product schema uygularken en sık yapılan hatalar nelerdir?
- Yapısal veri ile Merchant Center feed'i nasıl ilişkilidir?
- Özet
Ürün sayfası için yapısal veri (Product schema) nedir?
Product schema, ürün sayfanızdaki ad, görsel, fiyat, stok durumu ve değerlendirme gibi bilgileri schema.org sözlüğüyle makinenin okuyabileceği biçimde işaretleyen koddur. Google bu veriyi sayfayı anlamak ve fiyat, stok, yıldız gibi zengin sonuçlar göstermek için kullanır. E-ticarette önerilen biçim JSON-LD'dir ve görünür sayfa içeriğiyle birebir uyumlu olmalıdır.
Yapısal veri, Google'ın sayfanızı tahmin etmek yerine kesin bilgiyle anlamasını sağlar. Bir ürün sayfasında "2.499,90 TL" yazan metni insan hemen fiyat olarak okur. Arama motoru için ise bu tutarın güncel fiyat mı, eski fiyat mı yoksa taksit tutarı mı olduğu belirsiz kalabilir. Product işaretlemesi bu belirsizliği ortadan kaldırır ve ürünlerinizi zengin sonuçlara uygun hâle getirir.
Önemli bir not: Google, yapısal verinin arama sonuçlarında mutlaka gösterileceğini garanti etmez. İşaretleme sizi uygun hâle getirir, gösterim kararı ise arama motoruna aittir. Yine de hiç işaretlenmemiş ya da hatalı işaretlenmiş bir ürün sayfasının bu deneyimlere girme şansı çok daha düşüktür.
Merchant listing ile ürün snippet'i arasındaki fark nedir?
Google, ürün yapısal verisini iki farklı senaryo için ayrı ayrı belgeler. Hangisini uygulayacağınız, ürünün o sayfada doğrudan satın alınıp alınamadığına bağlıdır.
| Kriter | Merchant listing (satıcı listesi) | Ürün snippet'i |
|---|---|---|
| Uygun sayfa | Ürünün doğrudan satın alınabildiği ürün sayfası | İnceleme, karşılaştırma veya editoryal içerik sayfası |
| Zorunlu alanlar | name, image, offers (price ve priceCurrency) | name ve review, aggregateRating ya da offers alanlarından en az biri |
| Görünebileceği yerler | Alışveriş odaklı sonuçlar, Google Görseller, ürün bilgi panelleri | Metin sonuçlarında puan, fiyat ve stok bilgisi |
| Search Console raporu | Satıcı listeleri | Ürün snippet'leri |
E-ticaret sitesi için kural basittir: ürün detay sayfalarınızda merchant listing gereksinimlerini karşılayın. Bu işaretleme, ürün snippet'i için gereken alanları da büyük ölçüde kapsar. Blogunuzdaki "en iyi 5 koşu ayakkabısı" gibi bir karşılaştırma yazısında ise satın alma o sayfada gerçekleşmediği için ürün snippet'i yaklaşımı doğrudur.
Product schema için hangi alanlar zorunlu, hangileri önerilen?
Zorunlu alanlar
Merchant listing için Google'ın zorunlu tuttuğu alanlar şunlardır:
- name: Ürünün adı. Sayfadaki ürün başlığıyla aynı olmalıdır.
- image: Ürün görselinin URL'si. Birden fazla en boy oranında görsel vermek önerilir.
- offers: Bir Offer nesnesi. İçinde price (fiyat) ve priceCurrency (ISO 4217 para birimi kodu, Türk lirası için TRY) zorunludur.
Önerilen alanlar
Zorunlu alanlar sizi yalnızca yarışa sokar. Zengin sonuçlarda öne çıkmanızı sağlayan bilgiler önerilen alanlarda yer alır:
- availability: Stok durumu (InStock, OutOfStock, PreOrder gibi).
- brand, gtin, sku, mpn: Ürünün kimliği. GTIN (barkod), Google'ın ürünü diğer satıcılardaki aynı ürünle eşleştirmesine yardımcı olur.
- itemCondition: Yeni, yenilenmiş veya ikinci el.
- shippingDetails: Kargo ücreti ve teslim süresi.
- hasMerchantReturnPolicy: İade süresi, yöntemi ve ücreti.
- aggregateRating ve review: Gerçek müşteri değerlendirmeleri.
- description, color, size, material: Ürün özellikleri.
Varyantlı ürünlerde (beden, renk gibi) Google, ProductGroup türünü ve hasVariant, variesBy gibi özellikleri de destekler. Varyant sayınız yüksekse bu yapıyı ayrıca planlamanız gerekir.
Örnek bir JSON-LD kodu nasıl görünür?
Aşağıdaki kod, tek bir sırt çantası için hazırlanmış örnek bir merchant listing işaretlemesidir. Marka, barkod, fiyat ve URL değerleri tamamen örnektir. Bu blok sayfada, type değeri application/ld+json olan bir script etiketi içinde yer alır.
{
"@context": "https://schema.org/",
"@type": "Product",
"name": "Örnek Marka Deri Sırt Çantası 20 L",
"image": [
"https://www.ornekmagaza.com/gorsel/canta-1x1.jpg",
"https://www.ornekmagaza.com/gorsel/canta-4x3.jpg",
"https://www.ornekmagaza.com/gorsel/canta-16x9.jpg"
],
"description": "Su itici kaplamalı, 15 inç laptop bölmeli deri sırt çantası.",
"sku": "CNT-20-SYH",
"gtin13": "8690000000001",
"brand": { "@type": "Brand", "name": "Örnek Marka" },
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": 4.6,
"reviewCount": 87
},
"offers": {
"@type": "Offer",
"url": "https://www.ornekmagaza.com/urun/deri-sirt-cantasi-20-l",
"price": 2499.90,
"priceCurrency": "TRY",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition",
"shippingDetails": {
"@type": "OfferShippingDetails",
"shippingRate": { "@type": "MonetaryAmount", "value": 0, "currency": "TRY" },
"shippingDestination": { "@type": "DefinedRegion", "addressCountry": "TR" },
"deliveryTime": {
"@type": "ShippingDeliveryTime",
"handlingTime": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 1, "unitCode": "DAY" },
"transitTime": { "@type": "QuantitativeValue", "minValue": 1, "maxValue": 3, "unitCode": "DAY" }
}
},
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"applicableCountry": "TR",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"merchantReturnDays": 14,
"returnMethod": "https://schema.org/ReturnByMail",
"returnFees": "https://schema.org/FreeReturn"
}
}
}
Kodda dikkat edilmesi gereken birkaç ayrıntı var. Fiyat, binlik ayırıcı ve para birimi simgesi olmadan, ondalık ayırıcı olarak nokta kullanılarak yazılır; yani "2.499,90 TL" değil 2499.90. Stok durumu ve ürün durumu gibi alanlar düz metin yerine schema.org URL'leriyle verilir. Değerlendirme alanları ise yalnızca sayfada gerçekten gösterilen yorumlara dayanmalıdır.
Yapısal veriyi ürün sayfalarına nasıl eklersiniz?
- Mevcut durumu tespit edin. Temanızın veya platformunuzun zaten Product işaretlemesi üretip üretmediğini birkaç ürün sayfasında Zengin Sonuçlar Testi ile kontrol edin. Hazır temaların çoğu temel bir işaretleme ekler ama önerilen alanları sıklıkla eksik bırakır.
- Tek bir kaynak belirleyin. Tema, SEO uygulaması ve yorum uygulaması aynı anda ayrı Product blokları üretiyorsa çelişkili veri oluşur. İşaretlemeyi tek yerde toplayın.
- Şablon düzeyinde uygulayın. Kodu ürünlere tek tek değil, ürün sayfası şablonuna ekleyin ve değerleri ürün veritabanından dinamik olarak çekin.
- Görünür içerikle eşleştirin. Fiyat, stok, puan ve yorum sayısı, kullanıcının sayfada gördüğüyle aynı olmalıdır. İndirim varsa işaretlemedeki fiyat, ödenecek güncel fiyattır.
- Doğrulayın ve yayına alın. Önce test ortamında, ardından canlı sitede örnek sayfaları test edin.
- Düzenli izleyin. Search Console'daki Satıcı listeleri ve Ürün snippet'leri raporlarını haftalık rutininize ekleyin.
Yapısal veri nasıl test edilir?
Üç araç birbirini tamamlar. Zengin Sonuçlar Testi, sayfanızın Google'ın zengin sonuç türlerine uygun olup olmadığını ve hangi alanların eksik kaldığını gösterir. Schema Markup Validator, Google'a özel olmayan genel schema.org söz dizimi doğrulaması yapar. Search Console zengin sonuç raporları ise sitenin tamamını izler: geçerli, uyarı içeren ve hatalı öğeleri listeler, bir hatayı düzelttiğinizde doğrulama başlatmanıza izin verir.
Tek bir sayfayı test etmek yeterli değildir. Stokta olmayan, indirimli, varyantlı ve hiç yorumu olmayan ürünler gibi farklı senaryoları ayrı ayrı deneyin. Hataların büyük kısmı bu kenar durumlarda ortaya çıkar.
Tema güncellemeleri, yeni bir yorum uygulaması veya kampanya dönemlerinde yapılan fiyat değişiklikleri de işaretlemeyi bozabilir. Bu yüzden testi tek seferlik bir iş olarak değil, her büyük site değişikliğinden sonra tekrarlanan bir kontrol adımı olarak görün. Örnek bir rutin: her tema güncellemesinden sonra beş farklı ürün tipini test etmek ve Search Console raporundaki hata sayısını bir önceki haftayla karşılaştırmak.
Product schema uygularken en sık yapılan hatalar nelerdir?
- Fiyat uyuşmazlığı: İşaretlemede eski fiyatın, sayfada ise indirimli fiyatın görünmesi. Merchant Center kullanıyorsanız bu durum ürün onaylarını da etkileyebilir.
- Sayfada görünmeyen veri: Sayfada hiç gösterilmeyen yorumları veya puanları işaretlemek Google'ın yapısal veri yönergelerine aykırıdır ve manuel işleme yol açabilir.
- Çift işaretleme: Tema ile uygulamaların birbirinden farklı iki Product bloğu üretmesi.
- Kategori sayfasında Product kullanımı: Ürün listeleyen kategori sayfaları tek bir ürünü temsil etmez. Product işaretlemesi ürün detay sayfasına aittir.
- Statik değerler: Stok bittiğinde bile InStock gönderen sabit kodlar.
Yapısal veri ile Merchant Center feed'i nasıl ilişkilidir?
Yapısal veri ve Merchant Center ürün feed'i, aynı bilgiyi Google'a iki farklı kanaldan iletir. Google, Merchant Center'ın sitenizdeki yapısal veriyi ürün bilgilerini doğrulamak ve güncel tutmak için kullanabileceğini belirtir. Bu yüzden feed'deki fiyat ve stok bilgisinin sayfadaki işaretlemeyle aynı olması, hem ücretsiz listelemelerde hem de reklamlarda tutarlılık sağlar. Feed tarafını güçlendirmek için Performance Max ürün feed optimizasyonu yazımız iyi bir başlangıç noktasıdır. Kategori sayfalarınızı da ele almak isterseniz kategori sayfası SEO rehberimize göz atabilirsiniz.
Ürün sayfalarınızdaki yapısal veriyi ve feed uyumunu birlikte değerlendirmek isterseniz, Performetic ekibinden ücretsiz büyüme analizi talep edebilirsiniz.
Özet
- Product schema, ürün bilgilerini Google'ın kesin olarak okuyabileceği biçimde işaretler ve zengin sonuçlara uygunluk sağlar, ancak gösterim garantisi vermez.
- Satın alınabilen ürün sayfalarında merchant listing, inceleme ve karşılaştırma sayfalarında ürün snippet'i yaklaşımını kullanın.
- Zorunlu alanlar name, image ve price ile priceCurrency içeren offers'tır. availability, gtin, shippingDetails ve iade politikası gibi önerilen alanlar fark yaratır.
- İşaretlemeyi tek kaynaktan, şablon düzeyinde ve dinamik olarak üretin.
- Zengin Sonuçlar Testi, Schema Markup Validator ve Search Console raporlarıyla düzenli test edin.
Sık sorulan sorular
Product schema SEO sıralamasını yükseltir mi?
Yapısal veri tek başına bir sıralama faktörü gibi çalışmaz. Google'ın sayfanızı doğru anlamasına yardım eder ve fiyat, stok, puan gibi zengin sonuçlara uygun hâle getirir. Zengin sonuçlar arama sayfasında daha fazla yer kaplayarak tıklamayı artırabilir, ancak Google bu gösterimi hiçbir zaman garanti etmez.
E-ticaret temam zaten Product schema ekliyor mu?
Güncel e-ticaret temalarının çoğu temel bir Product işaretlemesi üretir, ancak gtin, kargo detayları ve iade politikası gibi önerilen alanlar genellikle eksik kalır. Birkaç ürün sayfasını Zengin Sonuçlar Testi ile kontrol edin; eksik alanları ve uygulamaların eklediği çift blokları bu testle kolayca görebilirsiniz.
JSON-LD mi, Microdata mı kullanmalıyım?
Google her iki biçimi de destekler, ancak mümkün olduğunda JSON-LD önerir. JSON-LD, HTML yapısından bağımsız tek bir script bloğunda durduğu için tema değişikliklerinden daha az etkilenir, bakımı kolaydır ve dinamik olarak üretilmesi basittir. Mevcut Microdata sorunsuz çalışıyorsa geçişi acele etmeden, kontrollü biçimde yapabilirsiniz.
Stokta olmayan ürünlerde işaretleme nasıl olmalı?
Ürün sayfası yayında kalıyorsa işaretlemeyi kaldırmayın, availability değerini OutOfStock olarak güncelleyin. Böylece Google güncel durumu bilir ve kullanıcıya yanlış bilgi gösterilmez. Ürün kalıcı olarak satıştan kalktıysa sayfanın akıbetine, yani yönlendirme mi yoksa kaldırma mı yapılacağına ayrıca karar vermeniz gerekir.