Yapısal veri, sayfanızdaki bilgiyi arama motorunun tahmin etmesine bırakmak yerine ona makine diliyle söylemektir: "bu bir ürün, fiyatı şu, stokta, satıcısı biziz." Doğru kurulduğunda arama sonucunda fiyat, puan, stok durumu ve kırıntı yolu gibi ek bilgiler görünebilir. Yanlış kurulduğunda ise en iyi ihtimalle hiçbir şey görünmez, kötü ihtimalle Search Console'a bir yapısal veri hatası ya da manuel işlem bildirimi düşer.

Hangi formatı kullanmalı?

Üç format var: JSON-LD, Microdata ve RDFa. Pratikte tek doğru cevap JSON-LD. Sebebi basit: işaretlemeyi HTML'in içine serpiştirmez, sayfaya tek bir script bloğu olarak eklenir. Tasarımı değiştirdiğinizde işaretleme bozulmaz; PHP tarafında dizi olarak üretip json_encode ile basmanız yeterlidir.

Şablon dosyanızda ürün verisini zaten çekiyorsunuz. Aynı değişkenlerden bir dizi kurup çıktıya eklemek, çoğu hazır script mimarisinde 20-30 satırlık bir iştir. Kritik kural şu: işaretlediğiniz her değer sayfada kullanıcıya da görünüyor olmalı. Görünmeyeni işaretlemek, kazanç değil ceza riski üretir.

Gerçekten işe yarayan tipler

Schema.org'da yüzlerce tip var ama arama sonucunda somut karşılığı olanların listesi kısadır. Zamanınızı buraya harcayın; gerisi teorik zenginliktir.

TipNerede kullanılırSonuçta ne kazandırır
Product + OfferÜrün detay sayfasıFiyat, para birimi, stok durumu, puan
BreadcrumbListTüm iç sayfalarHam URL yerine okunur kategori yolu
LocalBusinessİletişim ve şube sayfasıAdres, çalışma saatleri, harita eşleşmesi
ArticleBlog ve haber içerikleriYazar, yayın tarihi, görsel eşleşmesi
OrganizationAna sayfaLogo ve marka bilgisi sinyali
EventEtkinlik ve eğitim sayfasıTarih, konum, bilet bağlantısı

Beklentiyi doğru kurun

SSS (FAQ) ve nasıl yapılır (HowTo) işaretlemeleri uzun süre popülerdi; Google 2023'te bu görünümleri arama sonuçlarında büyük ölçüde sınırladı. Eklemekte sakınca yok, ancak "SSS koyalım tıklama patlasın" varsayımıyla iş planı yapmayın. Ayrıca yapısal veri bir sıralama garantisi değildir: sizi listede yukarı taşımaz, listede daha görünür yapar. Zengin sonucun çıkıp çıkmayacağına da nihai olarak Google karar verir; doğru işaretleme yalnızca uygunluk şartıdır.

Product işaretlemesinde hangi alanlar önemli?

En çok hata bu tipte yapılır, çünkü ürün verisi dinamiktir ve sayfayla senkron kalması gerekir. Aşağıdaki tablo, bir e-ticaret ürün sayfasında pratikte neyi doldurmanız gerektiğini özetler.

AlanDurumDikkat edilecek nokta
nameZorunluSayfadaki H1 ile aynı ürün adı olsun
imageZorunluTam URL verin; göreli yol kullanmayın
offers.priceZorunluNokta ondalık ayracı, para birimi simgesi yok
offers.priceCurrencyZorunluTRY yazın, TL değil
offers.availabilityZorunluInStock / OutOfStock stok tablosundan gelsin
sku, brandÖnerilirAynı ürünün farklı sitelerde eşleşmesini kolaylaştırır
aggregateRatingKoşulluSadece sayfada görünen gerçek yorum varsa
priceValidUntilÖnerilirKampanyalı fiyatta bitiş tarihi verin

Türkiye'ye özgü ayrıntılar

  • Fiyat KDV dahil olmalı ve vitrinde gösterdiğiniz tutarla birebir aynı olmalı. Sayfada 1.299 TL yazıp işaretlemede 1.099 yazmak, en sık görülen uyuşmazlık hatasıdır.
  • priceCurrency alanına TRY yazın. "TL" bir ISO para birimi kodu değildir ve doğrulayıcı bunu hata olarak işaretler.
  • Binlik ayracını temizleyin. Vitrinde 1.299,00 TL gösterirken işaretlemeye 1299.00 yazın; ham fiyat alanını biçimlendirilmiş çıktıdan değil, veritabanındaki sayısal değerden besleyin.
  • Adres alanlarını doğru eşleştirin: ilçe addressLocality, il addressRegion, posta kodu postalCode, ülke kodu TR.
  • Telefonu uluslararası biçimde verin: +90 ile başlayan tam numara, boşluk ve parantez olmadan.
  • Çalışma saatlerini gerçeğe göre yazın. Pazar kapalıysa openingHours listesinde Pazar hiç yer almasın; "her gün açık" görünen ama kapalı olan işletme, kullanıcı için kötü bir deneyimdir.

Kurulum sonrası doğrulama

  1. Sayfayı Google Zengin Sonuç Testi'nde çalıştırın. "Geçerli öğe bulundu" görmelisiniz; uyarılar isteğe bağlı alanları, hatalar zorunlu alanları gösterir. Önce hataları kapatın.
  2. Schema Markup Validator ile söz dizimini kontrol edin. Bu araç Google'ın desteklediği tiplerle sınırlı değildir, saf schema.org doğrulaması yapar.
  3. Aynı testi giriş yapmamış bir ziyaretçi gibi de yapın: canlı URL ile test edin, kaynak kodu yapıştırarak değil. Böylece işaretlemenin gerçekten yayında olduğunu doğrularsınız.
  4. Search Console'un "Gelişmeler" bölümünü 1-2 hafta izleyin. Google sayfaları yeniden tarayınca tipler burada ayrı raporlar hâlinde belirir; rapor hemen çıkmazsa panik yapmayın.
  5. İki hafta sonra site:alanadiniz.com aramasıyla sonuçların gerçekten zenginleşip zenginleşmediğine bakın ve fiyat gösterilen ürünlerin sayfadaki fiyatla aynı olduğunu doğrulayın.

Sık yapılan hatalar

  • Olmayan puanı işaretlemek. Sitede tek bir yorum yokken aggregateRating basmak, manuel işlem almanın en hızlı yoludur. Yorum yoksa alanı hiç koymayın.
  • Kategori sayfasına Product koymak. Ürün listesi tek bir ürün değildir; oraya ItemList uygundur.
  • Şablona sabit JSON gömmek. Tek bir örnek fiyatı tüm ürünlerde yayınlayan siteler az değil; her değer veritabanından gelmeli.
  • Kullanıcıya görünmeyen içeriği işaretlemek. Sekmenin arkasında da olsa bilgi sayfada bulunmalı; hiç olmayan bilgiyi işaretlemek politikaya aykırıdır.
  • Stok durumunu güncellememek. Tükenen üründe InStock kalırsa tıklayan kullanıcı boşa gelir; bu da uzun vadede sonuçtaki performansı düşürür.
  • Birden fazla kaynağın aynı anda işaretleme basması. Tema, SEO eklentisi ve özel kodun üçü birden Product üretirse çakışan veriler çıkar. İşaretlemeyi tek bir dosyada toplayın.
  • Test ortamı URL'lerini bırakmak. Taşınmış sitelerde image ve url alanlarının hâlâ eski alan adını gösterdiği çok olur; yayına almadan önce bir kez arayın.

Yayına alma sırası

  1. Ürün detay sayfasına Product ve Offer ekleyin; name, image, price, priceCurrency ve availability alanlarını gerçek veriden besleyin.
  2. Tüm iç sayfalara BreadcrumbList ekleyin. En az emekle en görünür kazancı bu verir, çünkü tek bir şablon dosyasında çözülür.
  3. Ana sayfaya Organization, iletişim sayfasına LocalBusiness koyun; ad, adres ve telefonun site genelindeki bilgilerle birebir aynı olmasını sağlayın.
  4. Blog şablonuna Article ekleyin; yazar ve yayın tarihini gerçek alanlardan doldurun, sabit metin yazmayın.
  5. Beş sayfa örneklemi seçip Zengin Sonuç Testi'nden geçirin: bir ürün, bir kategori, bir blog yazısı, iletişim ve ana sayfa.
  6. Yayından sonra iki hafta Search Console raporlarını takip edin, hataları kapatın ve işaretlemeyi tek bir kod noktasından yönetmeye devam edin.