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.
| Tip | Nerede kullanılır | Sonuçta ne kazandırır |
|---|---|---|
| Product + Offer | Ürün detay sayfası | Fiyat, para birimi, stok durumu, puan |
| BreadcrumbList | Tüm iç sayfalar | Ham URL yerine okunur kategori yolu |
| LocalBusiness | İletişim ve şube sayfası | Adres, çalışma saatleri, harita eşleşmesi |
| Article | Blog ve haber içerikleri | Yazar, yayın tarihi, görsel eşleşmesi |
| Organization | Ana sayfa | Logo ve marka bilgisi sinyali |
| Event | Etkinlik 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.
| Alan | Durum | Dikkat edilecek nokta |
|---|---|---|
| name | Zorunlu | Sayfadaki H1 ile aynı ürün adı olsun |
| image | Zorunlu | Tam URL verin; göreli yol kullanmayın |
| offers.price | Zorunlu | Nokta ondalık ayracı, para birimi simgesi yok |
| offers.priceCurrency | Zorunlu | TRY yazın, TL değil |
| offers.availability | Zorunlu | InStock / OutOfStock stok tablosundan gelsin |
| sku, brand | Önerilir | Aynı ürünün farklı sitelerde eşleşmesini kolaylaştırır |
| aggregateRating | Koşullu | Sadece sayfada görünen gerçek yorum varsa |
| priceValidUntil | Önerilir | Kampanyalı 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
- 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.
- 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.
- 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.
- 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.
- İ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ı
- Ürün detay sayfasına Product ve Offer ekleyin; name, image, price, priceCurrency ve availability alanlarını gerçek veriden besleyin.
- 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.
- Ana sayfaya Organization, iletişim sayfasına LocalBusiness koyun; ad, adres ve telefonun site genelindeki bilgilerle birebir aynı olmasını sağlayın.
- Blog şablonuna Article ekleyin; yazar ve yayın tarihini gerçek alanlardan doldurun, sabit metin yazmayın.
- 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.
- 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.


