🐛 Sorun Analizi 25 Aralık 2025

Google Aramalarında Yanlış Ürün Görseli Sorunu

Variant ürünlerde Google Search Results'ta görsel eksikliği analizi ve çözümü

📝 Basit Anlatım (Herkes İçin)

Sorun nedir?
Google'da ürün aradığınızda, bazı ürünlerin görselleri yanlış çıkıyor veya hiç görsel gösterilmiyor. Özellikle farklı varyantları olan ürünlerde bu sorun görülüyor (mesela 1070mm çatal, 1150mm çatal gibi).

Neden oluyor?
Sistem şu şekilde çalışıyor: Her ürünün bir "ana ürün" ve onun "varyantları" var. Mesela "İXTİF CPD18TVL Forklift" ana ürün, onun "920mm çatal", "1070mm çatal" gibi varyantları var. Ana ürünün görseli var, ama varyantların kendi görseli yok.

🚨 Asıl Problem:
Google Shopping Feed'de (ürün katalog dosyası) varyant ürünler ana ürünün görselini kullanıyor ✅
AMA Google Search Results (arama sonuçları) için kullanılan Schema.org yapısında bu kontrol YOK ❌

Sonuç: Google arama sonuçlarında varyant ürünler "görselsiz" kalıyor ve Google rastgele bir görsel seçiyor veya hiç görsel göstermiyor.

Çözüm ne olacak?
Varyant ürünlerde kendi görseli yoksa, otomatik olarak ana ürünün görselini kullanacak. Bu sayede Google'da her ürün doğru görselle görünecek.

📊 Örnek Senaryo:
  • Ana Ürün: İXTİF CPD18FVL - 1.8 Ton Forklift (Görsel: ✅ Var)
  • Varyant 1: İXTİF CPD18FVL - 920mm Çatal (Görsel: ❌ Yok)
  • Varyant 2: İXTİF CPD18FVL - 1070mm Çatal (Görsel: ❌ Yok)
  • Varyant 3: İXTİF CPD18FVL - 1150mm Çatal (Görsel: ❌ Yok)

⚠️ Şu an: Varyantlar Google'da görselsiz → Düzeltme sonrası: Hepsi ana ürünün görselini kullanacak

🔧 Teknik Detaylar (Geliştiriciler İçin)

📂 İlgili Dosyalar:

  • Modules/Shop/app/Models/ShopProduct.php - Line 851-863 (getProductSchema)
  • Modules/Shop/app/Http/Controllers/GoogleShoppingFeedController.php - Line 148-201 (feed images)
  • public/productfeed.php - Line 153-206 (feed images)

🔍 Sorun Analizi:

❌ Mevcut Kod (Schema.org - Sorunlu):

// ShopProduct.php line 851-863
$images = [];
if ($this->hasMedia('hero')) {
    $images[] = $this->getFirstMediaUrl('hero');
}
foreach ($this->getMedia('gallery') as $media) {
    $images[] = $media->getUrl();
}

if (!empty($images)) {
    $productSchema['image'] = count($images) === 1 ? $images[0] : $images;
}
// ⚠️ Parent product fallback YOK!

✅ Feed Kodu (Doğru Çalışıyor):

// GoogleShoppingFeedController.php line 148-201
$imageUrls = [];

// 1. Kendi medyasını kontrol et
if ($productModel && $productModel->hasMedia('hero')) {
    $imageUrls[] = $productModel->getFirstMediaUrl('hero');
}
if ($productModel && $productModel->hasMedia('gallery')) {
    foreach ($productModel->getMedia('gallery') as $media) {
        $imageUrls[] = $media->getFullUrl();
    }
}

// 2. Eğer kendi medyası yoksa ve VARIANT ise: Ana ürünün medyasını kullan
if (empty($imageUrls) && $product->parent_product_id) {
    $parentProduct = ShopProduct::find($product->parent_product_id);

    if ($parentProduct && $parentProduct->hasMedia('hero')) {
        $imageUrls[] = $parentProduct->getFirstMediaUrl('hero');
    }
    if ($parentProduct && $parentProduct->hasMedia('gallery')) {
        foreach ($parentProduct->getMedia('gallery') as $media) {
            $imageUrls[] = $media->getFullUrl();
        }
    }
}
// ✅ Parent product fallback VAR!

🎯 Google Tarafında Ne Oluyor:

  • Google Shopping Feed: /productfeed endpoint'i kullanılıyor → Görsel fallback çalışıyor ✅
  • Google Search Results (SERP): Ürün sayfasındaki Schema.org markup kullanılıyor → Görsel fallback YOK ❌
  • Merchant Center: Feed'den veri alıyor → Görsel doğru ✅
  • Organic Search: Schema.org'dan veri alıyor → Görsel eksik ❌

🔧 Uygulanacak Düzeltme:

ShopProduct.php'deki getProductSchema() metoduna parent product image fallback logic eklenecek:

  1. Önce kendi hero ve gallery medyasını kontrol et
  2. Eğer image yoksa ve parent_product_id varsa:
  3. Parent product'ı yükle
  4. Parent'ın hero ve gallery medyasını kullan
  5. Hala görsel yoksa fallback logo kullan (mevcut sistem)

🎯 Beklenen Sonuç

❌ Şu An (Sorunlu)

  • Varyant ürünler Schema.org'da görselsiz
  • Google rastgele görsel seçiyor
  • Bazı ürünler hiç görsel göstermiyor
  • Kullanıcı deneyimi kötü

✅ Düzeltme Sonrası

  • Tüm varyantlar doğru görselle görünür
  • Google doğru görseli gösterir
  • Schema.org ve Feed tutarlı
  • Kullanıcı deneyimi mükemmel

⏱️ Google Tarafında Yansıma Süresi:
Schema.org değişiklikleri Google tarafından 1-14 gün içinde algılanır ve arama sonuçlarında güncellenir. Google Search Console'dan "URL İnceleme" ile hızlandırılabilir.