E-Ticarette Product Schema İşaretlemesi: Google Ne İster, Mağazalar Neyi Atlar?
Product schema Google ve yapay zeka alışverişi için neye ihtiyaç duyar, 103 Shopify mağazası neyi atlar; GTIN, politikalar ve çift bloklar nasıl düzeltilir.
Product schema, bir ürün sayfasında makinelere sayfanın ne sattığını anlatan gizli yapılandırılmış veri bloğudur: ad, fiyat, stok, barkod, marka. Google bunu ürün sonuçları için okur, Merchant Center feed'inizi onunla karşılaştırır, yapay zeka alışveriş ajanları da sayfanıza baktıklarında onu okur. Alışverişçiler onu hiç görmez; tam da bu yüzden kimse fark etmeden bozulur.
Mağazaların içine gerçekte ne koyduğunu görmek için altı kategorideki köklü Shopify mağazalarından 2.629 ürün sayfası çektim ve her sayfanın gönderdiği HTML'deki işaretlemeyi okudum. 182'sinde Google'ın önerdiği biçim olan JSON-LD ile yazılmış bir product schema yoktu: 108'inde hiç ürün bloğu yoktu, 36'sında yalnızca geçerli JSON olmayan bir blok vardı, 38'i ise, hepsi üç mağazadan, bunun yerine eski microdata biçimini kullanıyordu. Aşağıdaki sayılar, schema'sı olan 103 mağazadan 2.447 sayfayı kapsıyor. Kısacası: temalar temel alanları neredeyse her sayfada doğru yapıyor. Eksik olan alanlar ise bir ürünü daha zengin sonuçlara uygun hale getiren ve Google'ın onu başka yerlerdeki aynı ürünle eşleştirmesini sağlayan alanlar. Google'ın kuralları her platformda aynıdır. Adım adım düzeltmelerde Shopify'ı kullanıyorum, çünkü verilerim oradan geliyor.
- Google yalnızca üç şeyi zorunlu tutar: bir ad, bir görsel ve fiyatı ile para birimi olan bir teklif. Product schema'sı olan sayfaların %98'inde üçü de vardı.
- Boşluklar önerilen alanlarda. Sayfaların yalnızca %43'ünde GTIN vardı; ürün işaretlemesinde iade politikası %15'inde, kargo bilgisi %13'ünde vardı.
- Barkod yolda sık sık kayboluyor. Bir ürünün Shopify'da geçerli bir barkodu olduğunda schema bunu yalnızca %62 oranında gösteriyordu. Shopify'ın kendi yapılandırılmış veri filtresini kullanan temalar onu neredeyse her seferinde aktarıyordu.
- Sayfaların dörtte birinde iki ürün bloğu var. Sayfaların %24'ünde birden fazla blok vardı; çoğu zaman hem tema hem bir uygulama kendi bloğunu yazıyordu ve bazıları fiyatta birbiriyle çelişiyordu.
- Kargo ve iadeyi mağaza düzeyinde tanımlayın. Google tüm mağaza için tek bir politika önerir ve Search Console ya da Merchant Center'daki ayarlar işaretlemenin önüne geçer.
- Schema tek başına bir ürünü seçtirmez. Yapay zeka alışverişinde kısa listeyi feed belirler, sayfanın da aynı hikâyeyi anlatması gerekir.
Product schema nedir ve Google neyi zorunlu tutar?
Product schema, ürünü schema.org sözlüğüyle anlatan, genellikle sayfanın HTML'inde bir script etiketi içinde JSON-LD olarak yazılan yapılandırılmış veridir. Google onu iki tür sonuç için kullanır. Ürün snippet'leri, inceleme sayfaları gibi alışverişçinin ürünü doğrudan satın alamadığı sayfalar içindir ve bir puan, bir yorum ya da bir tekliften birini ister. Satıcı listelemeleri (merchant listings) ise alışverişçinin ürünü satın alabildiği sayfalar içindir; yani her mağazanın ürün sayfası.
Bir satıcı listelemesi için Google şunları zorunlu tutar:
- Product üzerinde name, image ve offers.
- Offer üzerinde price ve priceCurrency.
Geri kalan her şey önerilir: stok durumu, marka, açıklama, GTIN, MPN, SKU, durum, renk, beden, malzeme, puanlar, yorumlar, kargo bilgisi ve iade politikası. "Önerilen" pratikte isteğe bağlı demek değildir. Bunlar, Google'ın ürününüzü başka sitelerdeki aynı ürünle eşleştirmesini, sonuçlarda kargo ücretini ve iade süresini göstermesini ve sayfanın feed'inizle aynı şeyi söylediğine güvenmesini sağlayan alanlardır. Google bunu açıkça söyler: sayfalarınızda yapılandırılmış veri ve bir Merchant Center feed'i birlikte sunmak uygunluğunuzu en üst düzeye çıkarır.
2.447 sayfanın taşıdıkları:

Shopify temalarının zaten doğru yaptıkları
Zorunlu alanlar ve ilk önerilen alanlar neredeyse her sayfada var. Ad, görsel, fiyat, para birimi ve stok durumu sayfaların %99'unda, bir marka da %99'unda vardı; ancak Shopify'da marka genellikle ürünün satıcı (vendor) alanıdır, bu yüzden satıcı alanınızın gerçekten marka olduğunu kontrol edin. Mağazaların en az 8'inde bu alanda bir sezon, bir ürün serisi ya da yer tutucu bir değer vardı. Bir alanın var olması çok şey söylediği anlamına da gelmiyor: ad alanı ürün başlığınız ne diyorsa odur ve 1.000 Shopify mağazasını kapsayan çalışmamda başlıkların 7'de 1'i ürünün ne olduğunu söylemiyordu.
Shopify'da bazı temalar bloğu Shopify'ın kendi structured_data filtresiyle kurar; bu filtre varyantı olmayan bir ürün için Product, varyantlı bir ürün için ProductGroup yazar. Örneklemimde 103 mağazanın 28'i bu filtreyi kullanıyordu, geri kalanında işaretlemeyi temanın kendisi ya da bir uygulama yazıyordu. Okuduğum sayfaların %38'i ProductGroup kullanıyordu ve varyantı olan ürünlerin %40'ı hâlâ tek bir Product olarak işaretlenmişti.
ProductGroup, Google'ın ürün varyantlarının anlatılmasını istediği yoldur: grup kimliği olan bir grup ve içinde her varyant kendi Product'ı olarak. Bulduğum ProductGroup bloklarının %84'ü varyantlarını ve grup kimliğini listeliyordu, ama yalnızca %36'sı varyantların neye göre değiştiğini söylüyordu (variesBy, örneğin beden ya da renk). Bu önerilen bir özelliktir ve Google'a varyantlardan hangisinin mavi M beden olduğunu söyleyen de odur. Shopify'ın kendi filtresi onu yazmaz: örneklemimde ürettiği 381 ProductGroup bloğunun hiçbirinde variesBy yoktu. İşaretlemeyi tema ya da bir uygulama yazdığında blokların %59'unda vardı.
Yani güncel bir Shopify teması kullanıyorsanız muhtemelen product schema'yı sıfırdan kurmanız gerekmez. Temanızın yazdığı bloktaki boşlukları doldurmanız, ki bu temanın kodunda bir değişiklik gerektirebilir, ve başka hiçbir şeyin ikinci bir blok yazmadığından emin olmanız gerekir.
Ürün sayfalarının çoğunun atladığı alanlar
Giyim beş alanın dördünde önde: sayfalarının yarısından fazlasında GTIN, %24'ünde iade politikası vardı. En az GTIN %33 ile yiyecek ve içecekte, en az kargo bilgisi %6 ile evdeydi.
GTIN: schema'ya ulaşmayan barkod
Sayfaların yalnızca %43'ü bir GTIN taşıyordu ve 103 mağazanın 42'sinde kontrol ettiğim hiçbir sayfada GTIN yoktu. GTIN taşıyan sayfaların yaklaşık dokuzda birinde değer gerçek bir barkod değildi, çoğunlukla SKU'ydu. GTIN'i görünmeyen ürünlerin bir kısmının, mağaza markaları ve el yapımı ürünler gibi, gerçekten GTIN'i yoktur. Ama birçoğunun vardır: işaretlemesinde hiç GTIN olmayan 42 mağazanın 36'sında, kontrol ettiğim ürünlerde Shopify'da geçerli barkodlar vardı. Bir ürünün Shopify'da geçerli bir barkodu olduğunda bu barkod schema'ya yalnızca %62 oranında ulaşıyordu. Shopify'ın kendi filtresini kullanan temalar onu neredeyse her seferinde, 419 sayfanın 418'inde aktarıyordu. Diğer her yerde yarıdan azında ulaşıyordu.
GTIN, Google'ın ürününüzün başka mağazaların sattığı ürünle aynı olduğunu anlamasını sağlayan alandır. Merchant Center'ın dayandığı alan da odur; eksik ya da hatalı olduğunda neler olduğunu Merchant Center'ın ürünleri neden reddettiği yazımda anlattım.
Nerede düzeltilir? Önce mağazanızda her varyantın barkodunu doldurun. Sonra schema'nızın bunu gtin, gtin8, gtin12, gtin13 ya da gtin14 olarak gösterdiğini ve değerin SKU değil barkodun kendisi olduğunu kontrol edin. Shopify'da barkod varyantta duruyor ama schema'da görünmüyorsa, işaretlemeyi yazan tema ya da uygulama onu dışarıda bırakıyordur. Önce temada ya da uygulamada bir ayar arayın; yoksa temanın geliştiricisi varyant barkodunu bloğa ekleyebilir.
Kargo bilgisi ve iade politikası
103 mağazanın yalnızca 13'ünde kontrol ettiğim herhangi bir ürün sayfasının işaretlemesinde kargo bilgisi, 18'inde iade politikası vardı. Yalnızca 3'ünün bu işaretlemede mağaza düzeyinde bir iade politikası vardı. Google mağaza düzeyindeki politikayı tek bir sayfaya koymayı önerir, Search Console ya da Merchant Center'daki ayarlar da dışarıdan görülemez; yani bazı mağazalar bunları benim göremediğim bir yerde tanımlamış olabilir. Bunlar, Google'ın bir ürünün yanında gösterebildiği kargo ücretinin ve iade süresinin arkasındaki alanlardır.
Google'ın kendi tavsiyesi, bunları her üründe değil tüm mağaza için bir kez tanımlamaktır. İade politikasını Organization işaretlemenizin altında tanımlamanızı, teklif düzeyindeki politikaları yalnızca farklı olan ürünler için kullanmanızı önerir; kargo için de aynısı geçerli. Hangi kaynağın önce geldiğini de söyler. En güçlüden en zayıfa:
- Merchant Center ürün feed'inizdeki kargo ve iade verileri ve Merchant Center'a API üzerinden gönderilen ayarlar.
- Merchant Center ya da Search Console'daki kargo ve iade ayarları.
- Sayfadaki ürün düzeyindeki işaretleme.
- Mağaza düzeyindeki işaretleme.
Yani kargo ve iadeyi Merchant Center'da zaten tanımladıysanız onlar geçerlidir, işaretleme bir yedektir. Merchant Center kullanmıyorsanız en hızlı yol, Search Console siteniz için sunuyorsa oradaki kargo ve iade ayarlarıdır. Bunları işaretlemenizde de istiyorsanız, mağaza düzeyinde bir iade politikasını her ürüne değil, temanızın zaten yazdığı Organization ya da OnlineStore bloğuna, tek bir sayfada ekleyin. Şöyle görünür:
{
"@context": "https://schema.org",
"@type": "OnlineStore",
"name": "Your Store",
"url": "https://www.yourstore.com",
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"applicableCountry": "US",
"returnPolicyCountry": "US",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"merchantReturnDays": 30,
"returnMethod": "https://schema.org/ReturnByMail",
"returnFees": "https://schema.org/FreeReturn"
}
}
Google ülkeyi ve politika türünü, süre sınırlıysa gün sayısını da zorunlu tutar. Bunların yerine merchantReturnLink ile iade politikası sayfanıza bir bağlantı vermek de gereksinimi karşılar.
Puanlar ve yorumlar
Sayfaların %42'si bir puan (aggregateRating), yalnızca %3'ü tek tek yorum taşıyordu. En yüksek oran yaklaşık sayfaların yarısıyla yiyecek ve güzellikteydi. Arama sonuçlarındaki yıldızların arkasındaki alan budur. Bu sayıyla ilgili bir uyarı: bazı yorum uygulamaları işaretlemelerini sayfa yüklendikten sonra JavaScript ile ekler ve benim sayımım yalnızca sayfanın gönderdiği HTML'i kapsıyor, yani puanların gerçek payı daha yüksek olabilir.
Ürün sayfalarınız yorum gösteriyorsa, yorum uygulamasının bunları schema'ya da yazdığını kontrol edin. Puan yapılandırılmış veride yoksa, sayfa kaç yorum gösterirse göstersin yıldızlar Google Arama'da sayfanın yanında görünemez. Uygulama bunun için kendi ürün bloğunu yazıyorsa, o blok temanızınkiyle aynı fiyatı ve stoğu taşımalıdır.
Durum, MPN ve diğerleri
Durum (itemCondition) sayfaların %34'ünde, MPN %32'sinde vardı. Durum en çok ikinci el ya da yenilenmiş ürün satan mağazalar için önemlidir, MPN ise GTIN'i olmayan ürünler için; o ürünleri Google'ın tanıma yolu marka ile MPN'dir. Renk ve beden sayfaların %17'sindeydi. Bir ProductGroup'ta varyantları birbirinden ayıran bunlardır.
Product schema'yı bozan hatalar
Eksik alanlar uygunluğa mal olur. Bazı hatalar daha kötüsünü yapar: sayfayı kendisiyle çeliştirir.
- İki ürün bloğu. Product schema'sı olan sayfaların %24'ünde, 32 mağazada, birden fazla blok vardı. Bu, tema bir blok, bir uygulama da başka bir blok yazdığında olur; çoğu zaman bir yorum ya da SEO uygulaması. 4 mağazadaki 17 sayfada iki blok aynı varyant için farklı fiyatlar veriyordu.
- Bozuk JSON. 6 mağazadaki 43 ürün sayfasında yapılandırılmış veri bloklarından biri hiç geçerli JSON değildi, örneğin fazladan bir virgül ya da başında sıfır olan ve sayı olarak yazılmış bir barkod yüzünden. Bunların 36'sında o blok sayfadaki tek ürün işaretlemesiydi; yani Google'ın orada okuyabileceği bir product schema yoktu.
- Ondalık virgül. Bir mağaza fiyatını "69,99" diye yazmıştı. Schema.org ondalık nokta ister, bu yüzden bir makine o fiyatı 6.999 olarak alabilir.
- Geçersiz bir stok değeri. Bir başkası stok durumunu ortasında boşlukla "schema.org/ InStock" diye yazmıştı, bu geçerli bir değer değil.
- Sayfayla çelişen veri. Schema bir fiyat ya da stok durumu söylüyor, sayfa başka bir şey. Merchant Center'da ürünleri reddettiren budur.
Nerede düzeltilir? Hedef, ürün başına tek bir blok. İkincisini yıldız puanlarınızı taşıdığı için tutuyorsanız ikisinin de aynı fiyatı ve stoğu söylediğinden emin olun. İşaretlemeyi elle yazıyorsanız bir product schema oluşturucu biçimi doğru kurar: barkodun uzunluğuna göre doğru GTIN türü, fiyatta ondalık nokta ve geçerli bir stok değeri. Çıktısını ikinci bir blok eklemek için değil, temanızın bloğunu düzeltmek için kullanın: yapıştırılan bir blok yazdığınız fiyatı ve stoğu korur, bu yüzden ikisinden biri değiştiği anda geride kalır.

Product schema'nızı nasıl kontrol edersiniz?
Üç kontrol neredeyse her şeyi yakalar:
- Google'ın Zengin Sonuçlar Testi. Bir ürün URL'si yapıştırın. Sayfanın satıcı listelemeleri ve ürün snippet'leri için uygun olup olmadığını, hangi alanların eksik olduğunu ve kaç ürün öğesi bulduğunu gösterir. Aynı ürünü iki kez listeliyorsa sayfada genellikle iki blok vardır.
- Search Console. Satıcı listelemeleri raporu, Google'ın taradığı ürün sayfalarından bir örneklemdeki hataları ve uyarıları gösterir; böylece tek bir sayfanın değil, şablonun sorunlarını görürsünüz.
- Sayfanın bir makineden görünüşü. Ücretsiz ürün verisi denetimi otomatik bir alışverişçinin sayfanızdan ne okuduğunu gösterir: yapılandırılmış veri, açıklama, görseller ve tarayıcıların girip giremediği.
Sattığınız her türden bir ürünü kontrol edin: varyantlı bir ürün, varyantsız bir ürün, indirimde olan bir ürün. Temalar ve uygulamalar çoğu zaman her birini farklı işler.
Ürünleriniz Google'da hiç görünmüyorsa sebep nadiren schema'dır. İndekslemeden başlayın; o sırayı Shopify ürünlerinin neden Google'da görünmediği yazımda anlattım.
Product schema ve yapay zeka alışverişi
Yapay zeka alışveriş ajanları ürün sayfalarını okur ve bu, schema'yı önerilmenin anahtarı gibi gösterir. Durum bu kadar basit değil. AI raf raporumda ChatGPT ve Google AI Mode, sayfasında hiç yapılandırılmış veri olmayan ürünleri önerdi ve bunların her biri Google Shopping'de listeleniyordu. O çalışmada kısa listeye girmek için feed çok daha güçlü bir sinyaldi.
Schema'nın önemli olduğu yer bundan sonrası. Sayfanızı açıp feed'le uyuşan bir fiyat, stok durumu ve açıklama bulan bir ajanın şüphelenmesi için sebep yoktur. Farklı fiyatlı iki blok ya da sayfanın yalanladığı bir "stokta yok" bulan birinin her türlü sebebi vardır. Yani schema'yı feed'in yerine geçen bir şey olarak değil, sayfanın feed'i doğrulama yolu olarak görün. Açıklama da burada önemli: sayfaların %92'sinin schema'sında bir açıklama vardı ve bir ajanın ürünün ne işe yaradığını anlamak için okuduğu yerlerden biridir; bu yüzden ürünün gerçekte ne olduğunu söyleyen açıklamalar yazın.
BrandyBee product schema'yı nasıl kontrol eder?
BrandyBee her ürün sayfasının yapılandırılmış verisini, barkodunu ve stoğunu okur ve sonucu Google'ın Merchant Center'da bildirdiği sorunlarla aynı düzeltme listesine koyar. Eksik bir barkodu girdiğinizde BrandyBee kontrol basamağını doğrular; bir kategori de seçebilir ya da Shopping niteliklerini doldurabilirsiniz. Onayladığınızda bunlar doğrudan Shopify ürününüze yazılır ve Google feed'iniz onları bir sonraki senkronizasyonda alır. Düzeltme listesini Merchant Center feed sayfasında görebilirsiniz.
Önce neyi düzeltmeli?
Sayfayı kendisiyle çeliştiren şeylerle başlayın: farklı fiyatlı ikinci bir ürün bloğu, bozuk JSON, geçersiz bir fiyat ya da stok değeri. Sonra eşleşmeye ve uygunluğa mal olan boşlukları doldurun: ürünün GTIN'i olan her yerde GTIN ve Search Console'da, Merchant Center'da ya da işaretlemenizde mağaza genelinde bir kargo ve iade politikası. Durum, MPN ve variesBy gibi geri kalanları temanın işaretlemesi yazmalıdır. Temanız ne durumu ne de variesBy'ı yazan Shopify structured_data filtresini kullanıyorsa, bu temanın kodunda bir değişiklik demektir. Aramada bulunmakla ilgili diğer yazılar SEO ve GEO bölümünde.
Product schema istatistikleri
Bu çalışmanın ana rakamları tek yerde:
- 103 mağazadan product schema'sı olan 2.447 Shopify ürün sayfasının %98'inde Google'ın satıcı listelemesi için zorunlu tuttuğu üç alan da vardı: ad, görsel ve fiyatı ile para birimi olan bir teklif.
- Çektiğim 2.629 ürün sayfasının 182'sinde JSON-LD ile yazılmış bir product schema yoktu.
- Ürün sayfalarının yalnızca %43'ünün product schema'sında GTIN vardı ve 103 mağazanın 42'sinde kontrol ettiğim hiçbir sayfada GTIN yoktu.
- Bir ürünün Shopify'da geçerli bir barkodu olduğunda barkod product schema'ya yalnızca %62 oranında ulaşıyordu. Shopify'ın
structured_datafiltresini kullanan temalar onu 419 sayfanın 418'inde aktarıyordu. - Ürün sayfalarının %24'ünde, 32 mağazada, birden fazla ürün bloğu vardı; 4 mağazadaki 17 sayfada bloklar aynı varyant için farklı fiyatlar veriyordu.
- 103 mağazanın yalnızca 13'ünün ürün işaretlemesinde kargo bilgisi, 18'inde iade politikası vardı. 3'ünde mağaza düzeyinde bir iade politikası vardı.
- Ürün sayfalarının %42'sinin schema'sında bir puan (
aggregateRating), %3'ünde tek tek yorumlar vardı. - Ürün sayfalarının %38'i ProductGroup kullanıyordu, ama ProductGroup bloklarının yalnızca %36'sı varyantların neye göre değiştiğini (
variesBy) söylüyordu ve varyantı olan ürünlerin %40'ı hâlâ tek bir Product olarak işaretlenmişti.
Product schema SSS
Product schema işaretlemesi nedir?
Bir ürün sayfasında, ürünü makinelere schema.org sözlüğüyle anlatan, genellikle JSON-LD olarak yazılan yapılandırılmış veridir: adı, görseli, fiyatı, para birimi, stoğu, markası, barkodu ve daha fazlası. Google onu ürün sonuçları ve satıcı listelemeleri için kullanır, yapay zeka alışveriş ajanları da sayfaya baktıklarında onu okur.
Shopify product schema'yı otomatik ekler mi?
Güncel temaların çoğu ekler, ama ne yazdıkları değişir. Shopify'ın structured_data filtresini kullanan temalar varyantı olmayan bir ürün için Product, varyantlı bir ürün için ProductGroup yazar; örneklemimde varyantı olan ürünlerin %40'ı hâlâ tek bir Product olarak işaretlenmişti. Bu yüzden sizinkinin barkodu GTIN olarak gösterip göstermediğini ve bir uygulamanın ikinci bir blok ekleyip eklemediğini kontrol edin.
Product schema bir sıralama faktörü mü?
Google yapılandırılmış veriyi bir sayfayı anlamak ve onu satıcı listelemeleri ve ürün snippet'leri gibi sonuçlara uygun hale getirmek için kullanır. Uygunluk, bir sonucun görüneceğini garanti etmez ve schema temellerin yerini tutmaz: indekslenmiş bir sayfa, iyi bir ürün sayfası ve temiz bir feed.
Product schema'mda GTIN gerekli mi?
Google onu önerilen olarak listeler. Ürünün bir GTIN'i varsa onu schema'ya koyun ve feed'inizdekiyle aynı olduğundan emin olun. Bir mağaza markası ya da el yapımı bir ürün gibi GTIN'i yoksa yerine marka ve MPN gönderin.
Kargo ve iade politikaları product schema'ya girmeli mi?
Google tüm mağaza için Search Console'da ya da Merchant Center'da tanımlanan veya Organization işaretlemenizin altında bir kez yazılan tek bir politika önerir. Ürün düzeyindeki politikalar farklı olan ürünler içindir. Merchant Center ve Search Console'daki ayarlar işaretlemenin önüne geçer.
Product ile ProductGroup arasındaki fark nedir?
Product tek bir ürünü anlatır. ProductGroup, beden ya da renk gibi varyantları olan bir ürünü, her varyantı içinde kendi Product'ı olarak anlatır. Google bir grup kimliği (productGroupID), varyant listesi ve varyantların neye göre değiştiğini söyleyen variesBy önerir; her varyantın da kendine ait benzersiz bir kimliği olmalıdır.