Kısa cevap
Ürün detay sayfası SEO'su nasıl yapılır?
E-ticaret SEO'sunun büyük kısmı metin yazmak değil, ürün verisini düzeltmektir. Ürün sayfasında Product ve Offer işaretlemesi eksiksiz olmalı, fiyat ve para birimi sayfadakiyle birebir aynı olmalı, GTIN sayısal biçimde verilmelidir. Varyantlı ürünler ProductGroup ile bağlanır. Üretken motorlar ürün önerirken bu veriyi okur; eksik veri, ürünü fiyatıyla birlikte önerilemez hâle getirir.
Özet
- Google'ın satıcı listeleme deneyimleri için zorunlu tuttuğu alanlar azdır: Product tarafında name, image ve offers; Offer tarafında sıfırdan büyük bir price ve ISO 4217 biçiminde priceCurrency.
- GTIN sayısal biçimde verilmelidir; Google GTIN'in URL biçimini desteklemiyor.
- Yalnızca alışverişçinin ürünü satın alabildiği sayfalar satıcı listelemesine uygundur — ürünü başka sitelerde satan bağlantılar içeren sayfalar değil.
- Varyantlı ürünlerde ProductGroup kullanılır: varyantlar sku ya da gtin ile ayrışır, productGroupID hepsinde aynı kalır, variesBy tam schema.org adresiyle yazılır (https://schema.org/color gibi).
- Varyant işaretlemesinin çalışması için her varyantın URL sorgu parametresiyle doğrudan seçilebilmesi gerekir.
- Stokta olmayan ürünün sayfası silinmez; availability alanı OutOfStock olarak güncellenir ve sayfada alternatifler gösterilir.
E-ticaret SEO'su neden metin yazmakla başlamaz?
Bir e-ticaret sitesinde içerik, blog yazısı değil ürün verisidir. Arama motoru da üretken motor da bir ürünü önerirken aynı şeyleri sorar: adı ne, kim üretiyor, kaça satılıyor, hangi para biriminde, stokta mı, iadesi nasıl. Bu soruların cevabı sayfada yapılandırılmış biçimde yoksa ürün, hakkında ne kadar güzel yazılmış olursa olsun, önerilemez kalır.
Bu yüzden sıralama nettir: önce ürün verisi, sonra sayfa metni, en sonda kategori içeriği. Tersten başlayan projelerde tipik sonuç, güzel yazılmış ama fiyatı makineye görünmeyen bir katalogdur — ve fiyatı okunamayan ürün, karşılaştırma isteyen her soruda kapsam dışında kalır.
Ürün detay sayfasında hangi veri zorunlu?
Google'ın satıcı listeleme deneyimleri için zorunlu tuttuğu alan kümesi beklenenden küçüktür; asıl fark önerilen alanlarda açılır. Zorunlular olmadan ürün hiç listelenmez, önerilenler olmadan listelenir ama eksik listelenir.
Satıcı listelemesi için alanlar
name
- Durum
- Zorunlu
- Not
- Ürün adı, sayfadakiyle aynı
image
- Durum
- Zorunlu
- Not
- Ürün görseli
offers
- Durum
- Zorunlu
- Not
- İçinde Offer nesnesi
offers.price
- Durum
- Zorunlu
- Not
- Sıfırdan büyük olmalı
offers.priceCurrency
- Durum
- Zorunlu
- Not
- ISO 4217 biçiminde (TRY, EUR, USD)
gtin / gtin8 / gtin13
- Durum
- Önerilen
- Not
- Sayısal biçimde; URL biçimi desteklenmiyor
sku
- Durum
- Önerilen
- Not
- Satıcıya özel ürün kodu
brand.name
- Durum
- Önerilen
- Not
- Marka adı
availability
- Durum
- Önerilen
- Not
- InStock, OutOfStock, PreOrder
itemCondition
- Durum
- Önerilen
- Not
- Yeni, kullanılmış, yenilenmiş
shippingDetails
- Durum
- Önerilen
- Not
- Kargo bilgisi
hasMerchantReturnPolicy
- Durum
- Önerilen
- Not
- İade koşulları
aggregateRating
- Durum
- Önerilen
- Not
- Yalnızca sayfada görünen gerçek puan
| Alan | Durum | Not |
|---|---|---|
| name | Zorunlu | Ürün adı, sayfadakiyle aynı |
| image | Zorunlu | Ürün görseli |
| offers | Zorunlu | İçinde Offer nesnesi |
| offers.price | Zorunlu | Sıfırdan büyük olmalı |
| offers.priceCurrency | Zorunlu | ISO 4217 biçiminde (TRY, EUR, USD) |
| gtin / gtin8 / gtin13 | Önerilen | Sayısal biçimde; URL biçimi desteklenmiyor |
| sku | Önerilen | Satıcıya özel ürün kodu |
| brand.name | Önerilen | Marka adı |
| availability | Önerilen | InStock, OutOfStock, PreOrder |
| itemCondition | Önerilen | Yeni, kullanılmış, yenilenmiş |
| shippingDetails | Önerilen | Kargo bilgisi |
| hasMerchantReturnPolicy | Önerilen | İade koşulları |
| aggregateRating | Önerilen | Yalnızca sayfada görünen gerçek puan |
Google'ın kuralı açık: satıcı listeleme deneyimlerine yalnızca alışverişçinin ürünü satın alabildiği sayfalar uygundur, ürünü satan başka sitelere bağlantı veren sayfalar değil. Karşılaştırma sayfaları ve bağlı pazarlama listeleri bu yüzden kapsam dışında kalır.
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Ergo 300 ofis koltuğu",
"image": ["https://example.com/img/ergo-300.jpg"],
"description": "Ayarlanabilir bel desteği ve 4D kolçaklı ofis koltuğu.",
"sku": "ERG-300-BLK",
"gtin13": "8691234567895",
"brand": { "@type": "Brand", "name": "Kuzey" },
"offers": {
"@type": "Offer",
"url": "https://example.com/urun/ergo-300",
"price": "8450.00",
"priceCurrency": "TRY",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition",
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"applicableCountry": "TR",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"merchantReturnDays": 14,
"returnMethod": "https://schema.org/ReturnByMail",
"returnFees": "https://schema.org/FreeReturn"
}
}
}gtin13 değerinin tırnak içinde ve yalnızca rakamlardan oluştuğuna dikkat edin. Barkodu bir adres olarak yazmak (URL biçimi) desteklenmiyor ve alanın tamamen yok sayılmasına yol açıyor.
Varyantlı ürünler nasıl işaretlenir?
Renk ve beden seçenekleri olan bir mağazada en pahalı işaretleme hatası buradadır. Aynı koltuğun dört rengi dört ayrı Product olarak işaretlendiğinde motor dört farklı ürün görür ve hepsi birbirinin neredeyse kopyası olur; doğru yapıldığında ise bir üst ürün ve ona bağlı dört varyant görür.
- Üst düğüm ProductGroup tipindedir ve zorunlu tuttuğu tek alan name'dir.
- productGroupID, üst ürünün kodudur (ana sku) ve hem ProductGroup'ta hem her varyantta aynı yazılır.
- Varyantlar hasVariant altında listelenir ya da kendi sayfalarından isVariantOf ile üste bağlanır.
- Her varyantın kendine ait sku ya da gtin değeri olmalıdır; ayrım buradan kurulur.
- variesBy alanı, varyantları ayıran özellikleri tam schema.org adresiyle yazar: https://schema.org/color, https://schema.org/size. Desteklenen değerler renk, beden, önerilen yaş, önerilen cinsiyet, malzeme ve desendir.
{
"@context": "https://schema.org",
"@type": "ProductGroup",
"name": "Ergo 300 ofis koltuğu",
"productGroupID": "ERG-300",
"variesBy": ["https://schema.org/color"],
"hasVariant": [
{
"@type": "Product",
"sku": "ERG-300-BLK",
"color": "Siyah",
"gtin13": "8691234567895",
"offers": {
"@type": "Offer",
"url": "https://example.com/urun/ergo-300?renk=siyah",
"price": "8450.00",
"priceCurrency": "TRY",
"availability": "https://schema.org/InStock"
}
},
{
"@type": "Product",
"sku": "ERG-300-GRY",
"color": "Gri",
"gtin13": "8691234567901",
"offers": {
"@type": "Offer",
"url": "https://example.com/urun/ergo-300?renk=gri",
"price": "8450.00",
"priceCurrency": "TRY",
"availability": "https://schema.org/OutOfStock"
}
}
]
}Şart şudur: her varyant kendi URL sorgu parametresiyle doğrudan seçilebilmelidir. Renk seçimi yalnızca JavaScript ile değişiyor ve adres aynı kalıyorsa, işaretleme doğru yazılmış olsa bile varyantlar ayrı ayrı gösterilemez.
Varyantlar ayrı sayfalarda duruyorsa kural değişir: her sayfa kendi başına eksiksiz işaretleme taşımalıdır. ProductGroup tanımı her varyant sayfasında tekrarlanır ve diğer varyantlar yalnızca url alanı olan kısa girdilerle listelenir. Tek sayfalı yapıda ise ProductGroup için tek bir kanonik adres bulunmalıdır; varyant seçimi kanonik adresi değiştirmez.
Besleme ile sayfa neden aynı şeyi söylemeli?
Ürün besleme dosyası ile sayfadaki işaretleme aynı ürünü iki ayrı kanaldan anlatır ve ikisi çeliştiğinde kazanan taraf olmaz; ürün her iki kanalda da güvenilirliğini kaybeder. En sık görülen çelişki fiyattır: besleme gecelik güncellenirken sayfa anlık değişir, kampanya başlangıcında iki kayıt birbirini tutmaz.
- Fiyat ve para birimi, besleme ile sayfa işaretlemesinde aynı anda güncellenmelidir; ikisini aynı kaynaktan üretmek bunu yapısal olarak çözer.
- Stok durumu aynı kurala tabidir: sayfada 'tükendi' yazarken işaretlemede InStock kalması, listelemenin düşmesine yol açan en yaygın sebeplerden biridir.
- GTIN her iki kanalda da aynı ve sayısal olmalıdır; ürünün en özel GTIN'ini kullanmak önerilir.
- Marka adı beslemede 'Kuzey', sayfada 'Kuzey Mobilya' yazıyorsa iki ayrı üretici görünür; tek yazım seçilip her yerde korunmalıdır.
- Üreticiden kopyalanan açıklama hem beslemede hem sayfada aynı metni yüzlerce satıcıyla paylaşır; ürünü ayırt edilebilir kılan tek şey kendi yazdığınız kullanım ve ölçü bilgisidir.
Kategori sayfası mı, ürün sayfası mı?
Ayrım niyettedir. 'Ofis koltuğu' arayan kişi henüz karar vermemiştir ve seçenek görmek ister; buna kategori sayfası cevap verir. 'Ergo 300 fiyat' arayan kişi kararı vermiş, doğrulama yapmaktadır; buna ürün sayfası cevap verir. İkisini tek sayfada kovalamak, iki niyeti de yarım karşılamak demektir.
Üretken motorlarda bu ayrım daha da keskinleşiyor, çünkü 'hangi ofis koltuğunu almalıyım' tipi bir soruda motor karşılaştırma yapabileceği bir sayfa arıyor. Kategori sayfasına ölçü, malzeme ve kullanım senaryosunu karşılaştıran bir tablo koymak, o sayfayı alıntılanabilir hâle getiren en kısa yoldur.
Stokta olmayan ürünün sayfası silinmeli mi?
Hayır. Sayfa silindiğinde o adrese birikmiş bağlantı değeri ve arama geçmişi de gider; üstelik ürün geri geldiğinde sıfırdan başlanır. Doğru hamle, Offer işaretlemesindeki availability alanını OutOfStock olarak güncellemek, sayfada durumu açıkça yazmak ve alternatif ürünleri göstermektir.
Ürün kalıcı olarak kalktıysa karar değişir: sayfa en yakın muadiline 301 ile yönlendirilir. Yönlendirme kategori sayfasına değil muadil ürüne yapılmalıdır — kategoriye toplu yönlendirme, kullanıcıyı aradığı ürünün olmadığı bir listeye bırakır ve arama motoru tarafında da yumuşak 404 olarak değerlendirilir.
Ürün açıklaması nasıl yazılır ki alıntılanabilsin?
Üreticiden kopyalanan açıklama, aynı metni yüzlerce satıcıyla paylaştığı için hiçbir motorun tercih sebebi olmaz. Ayırt edici olan, üreticinin yazmadığı bilgidir: ürünün kimin için uygun olduğu, hangi ölçüde hangi kullanıma denk geldiği, neyle birlikte kullanıldığı, nerede yetersiz kaldığı.
- Sayfanın üstüne 40–75 kelimelik bir cevap pasajı koyun: ürünün ne olduğunu, kime uygun olduğunu ve ayırt edici özelliğini tek paragrafta söylesin.
- Teknik özellikleri düz metin değil tablo olarak yazın; motorlar tabloyu bütün hâlinde alıp cevapta yeniden biçimlendiriyor.
- Ölçüleri birimiyle ve tek bir sistemle verin; 'geniş' sıfatı hiçbir karşılaştırmaya girmez, '64 cm' girer.
- Sık sorulan üç soruyu ürün sayfasının içine yazın — kargo süresi, iade koşulu, uyumluluk. Bunlar karar öncesi son sorulardır.
- Kullanıcı yorumlarını sayfada gösterin; işaretlemede yer alan puanın sayfada da görünmesi zorunludur ve kendi ürettiğiniz puan yayımlanamaz.
Sık sorulanlar
Ürün açıklamasını üreticiden kopyalasam ne olur?
- Sayfa cezalandırılmaz ama ayırt edilemez hâle gelir. Aynı metni yayımlayan yüzlerce satıcı arasından bir motorun sizi seçmesi için bir sebep kalmaz; seçim o noktada fiyat, marka bilinirliği ve teknik verinin eksiksizliğine kayar. Kendi yazdığınız ölçü, kullanım ve uyumluluk bilgisi, bu sayfayı diğerlerinden ayıran tek şeydir.
Fiyatı işaretlemede göstermek zorunda mıyım?
- Satıcı listeleme deneyimlerine girmek istiyorsanız evet: fiyat ve para birimi zorunlu alanlardır ve fiyatın sıfırdan büyük olması gerekir. Fiyatı yayımlamayan bir modelde — teklif üzerine satış, bayi fiyatı — Product işaretlemesi yine yazılır ama satıcı listelemesi beklenmemelidir. Bu durumda ürün sayfasının işi, fiyat yerine teknik veriyle karşılaştırılabilir olmaktır.
Filtre sayfaları dizine girmeli mi?
- Çoğu girmemeli. Renk, beden ve fiyat aralığı filtrelerinin çarpımı binlerce adres üretir ve bunların neredeyse tamamı birbirinin ince farkla kopyasıdır. Kural şu: gerçek bir arama talebi olan filtre kombinasyonları — 'siyah ofis koltuğu' gibi — kendi sayfası olarak açılır ve dizine girer; geri kalanı canonical ile ana kategoriye bağlanır.
Kendi puanlama sistemimizi aggregateRating olarak yayımlayabilir miyiz?
- Hayır. İşaretlemede yer alan puanın sayfada da görünmesi ve gerçek kullanıcı değerlendirmelerinden gelmesi gerekir. Kurumun kendi ürününe verdiği puan doğrulanamaz bir iddiadır; bu tür işaretleme hem yaptırım riski taşır hem de üretken motorlar tarafında sayfanın tamamının güvenilirliğini düşürür.
Kaynaklar
- 01Merchant listing (Product) structured data — Google Search Central, 2026
- 02Product variant (ProductGroup) structured data — Google Search Central, 2026
- 03Product data specification (GTIN, brand, availability) — Google Merchant Center, 2026
- 04Structured data markup that Google Search supports — Google Search Central, 2026
- 05GEO: Generative Engine Optimization — Aggarwal, Murahari, Rajpurohit, Kalyan — KDD 2024, 2024
Bu sayfa şu aramalara cevap veriyor
- e ticaret seo
- e ticaret seo hizmeti
- e-ticaret seo nasıl yapılır
- ürün detay sayfası
- e-ticaret nasıl yapılır