Bir ürünün Türkiye'de 899 TL, Almanya'da 79 EUR, İngiltere'de 69 GBP görünmesi ticari açıdan sıradan bir karar. Kur farkı, yerel vergi oranı, rekabet konumu, lojistik maliyeti; her biri fiyatı ayrı ayrı etkiliyor ve sonuçta aynı ürün için üç farklı sayı ortaya çıkıyor. SEO tarafında bu kadar sıradan görünmüyor: aynı ürün açıklaması, aynı görsel, aynı başlık yapısı taşıyan sayfalarda tek değişen alan fiyatsa, bu durum arama motorunun gözünde nasıl bir sinyal üretiyor?
Soru genellikle yanlış çerçevede soruluyor. Ekipler "farklı fiyat duplicate content sayılır mı" diye merak ediyor, oysa asıl risk metin benzerliğinde değil, fiyatın nasıl sunulduğunda ve yapısal veriye nasıl aktarıldığında saklı. IP'ye göre otomatik fiyat değiştirme, tek URL üzerinde JavaScript ile kur çevirme, ülke başına ayrı sayfa açma; her yaklaşım farklı bir risk profili taşıyor ve her biri Offer şemasıyla farklı biçimde etkileşiyor.
Üç katman burada ayrı ayrı ele alınıyor: fiyat farklılaştırmasının içerik benzerliğiyle ilişkisi, otomatik fiyat gösteriminin cloaking sınırına yaklaştığı noktalar ve yapısal veride fiyat alanlarının ülke sürümlerine göre nasıl kurulması gerektiği.
Fiyat farklılaştırmasının kökeni: kur, vergi ve pazar stratejisi aynı anda çalışıyor
Ülke bazlı fiyat farkı üç ayrı kaynaktan geliyor ve bu kaynakları birbirinden ayırmadan kurulan sistem erken çürüyor. Birincisi kur çevrimi: kaynak fiyat sabit, hedef para birimine anlık veya periyodik kur oranıyla çevriliyor. İkincisi vergi farkı: KDV, GST, sales tax oranları ülkeden ülkeye değişiyor ve bazı pazarlarda fiyat vergi dahil, bazılarında vergi hariç gösteriliyor. Üçüncüsü ise stratejik fiyatlandırma: satın alma gücü, rekabet yoğunluğu veya pazara giriş kararına göre bilinçli olarak farklı fiyat belirleniyor; bu durumda kur çevrimiyle hiçbir ilgisi yok, doğrudan ticari karar.
Bu üç kaynağın SEO etkisi farklı. Kur çevrimi ve vergi farkı meşru ve beklenen bir davranış; arama motoru bunu sorun olarak görmüyor, çünkü kullanıcı hangi ülkeden erişirse erişsin fiyat tutarlı bir mantıkla değişiyor. Stratejik fiyatlandırma ise, özellikle aynı dilin farklı ülke sürümlerinde uygulandığında, aynı dilde farklı ülkeleri hedefleme konusunda ele alınan içerik farklılaştırma eşiğini de gündeme getiriyor: sadece fiyat değişmişse içerik farklılaştırma yeterli sayılmayabilir, ama fiyatla birlikte teslimat koşulu, stok durumu veya kampanya bilgisi de değişiyorsa sayfa gerçek anlamda farklı bir varlığı temsil etmeye başlıyor.
Hangi kaynaktan geldiği net değilse, fiyat farkının nedenini açıklayacak hiçbir sinyal de kurulamıyor. Uygulamaya geçmeden önce üç kaynağın hangi oranda karıştığını netleştirmek, sonraki tüm teknik kararların temelini oluşturuyor.
Aynı ürün, farklı fiyat: Google bunu duplicate content olarak okur mu?
Google'ın duplicate content değerlendirmesi büyük ölçüde metin benzerliğine dayanıyor: başlık, açıklama, gövde metni. Fiyat bu değerlendirmenin doğrudan girdisi değil; çünkü fiyat çoğunlukla ayrı bir veri alanı olarak taşınıyor, düz metin akışının parçası değil. Bu yüzden "sadece fiyat farklı, metin aynı" senaryosunda klasik anlamda bir duplicate content cezası beklenmiyor.
Ama bu, sorunun tamamen ortadan kalktığı anlamına gelmiyor. Google'ın kalite değerlendirmesi metin benzerliğinin ötesine geçiyor: bir sayfa kümesi kullanıcıya gerçek bir farklılaşma sunmuyorsa, yalnızca teknik olarak ayrı URL'ler olmaları o kümeye değer katmıyor. On ülke için açılmış, aynı açıklama metnini taşıyan, sadece para birimi sembolü değişen sayfalar teknik olarak tekil sayılabilir ama editoryal olarak ince kalıyor. Bu ince içerik riski, doğrudan bir ceza mekanizması değil; dolaylı olarak sıralama gücünün dağılmasına yol açıyor, çünkü on sayfa arasında hangisinin "asıl" sürüm olduğuna dair güçlü bir sinyal yok.
Pratik ayrım şurada: fiyat farkı hreflang ile doğru şekilde ilişkilendirilmiş, her sürüm kendi canonical'ına sahip ve ürün sayfası içeriği o pazara göre en azından kısmen uyarlanmışsa, fiyat farkı yapısal bir zenginleştirme unsuru olarak kalıyor. Fiyat farkı tek değişken olarak bırakılıp geri kalan her şey birebir kopyalanmışsa, sorun fiyattan değil, o kopyalama alışkanlığından doğuyor.
IP tabanlı otomatik fiyat gösterimi cloaking sınırına nerede yaklaşıyor?
Kullanıcının konumuna göre otomatik fiyat veya para birimi göstermek, kendi başına cloaking değil. Google bu davranışı bekliyor ve tolere ediyor; tıpkı bir havayolu sitesinin farklı ülkelerden gelen kullanıcılara farklı para birimiyle bilet fiyatı göstermesi gibi. Sorun, bu otomasyonun Googlebot'un gördüğü sürümle kullanıcının gördüğü sürüm arasında sistematik bir fark yaratmasında başlıyor.
Googlebot'un tarama trafiği büyük ölçüde belirli veri merkezlerinden, genellikle ABD IP aralıklarından geliyor. Sistem IP'ye göre fiyat gösteriyorsa, bot her zaman ABD fiyatını görüyor, sayfanın kaynak kodunda ve yapısal verisinde hep o fiyat sabitleniyor; ama Almanya'dan gelen gerçek kullanıcı farklı bir fiyatla karşılaşıyor. Bu fark kötü niyetli bir manipülasyon olmasa da, Google'ın indekslediği veriyle kullanıcının gördüğü veri arasında sürekli bir sapma üretiyor. Rich snippet'lerde gösterilen fiyat, gerçek sayfa fiyatıyla tutarsız kaldığında Google Search Console fiyat tutarsızlığı uyarısı üretiyor ve bu sayfalar zengin sonuç biçiminden düşürülebiliyor.
Edge fonksiyonlarıyla IP'ye göre içerik değiştirme konusunda ele alınan cloaking sınırı burada da geçerli: asıl kriter niyet değil, tutarlılık. Bot ile kullanıcı arasındaki farkın kasıtlı bir manipülasyon amacı taşımadığını gösteren en güçlü kanıt, botun gördüğü sürümün en azından bir fiyat aralığını veya "bölgeye göre değişir" notunu şeffafça sunmasıdır. Sabit tek bir fiyatı sanki evrensel gerçekmiş gibi bot'a sunup gerçek kullanıcıyı başka bir sayıyla karşılaştırmak, zamanla güven sinyalini zayıflatıyor.
Pratik çözüm, IP tespitini tamamen ortadan kaldırmak değil, botun gördüğü snapshot ile gerçek kullanıcı deneyimi arasındaki farkı en aza indirmek. Bu genellikle ülke başına ayrı URL açmak ve o URL'nin sabit, sunucu tarafında render edilmiş bir fiyatla gelmesiyle sağlanıyor; tek URL üzerinde istemci tarafı fiyat değişimi, botun neyi gördüğünü kontrol etmeyi zorlaştırıyor.
Offer şemasında priceCurrency ve price alanları ülke sürümüne göre nasıl ayrışır?
Çok dilli yapısal veri tartışmasında ele alınan "hangi alan yerelleşmeli, hangisi sabit kalmalı" sorusu, fiyat alanlarında en somut karşılığını buluyor. Product şemasının içindeki Offer nesnesi, price ve priceCurrency alanlarını taşıyor; bu iki alan hiçbir koşulda ülke sürümleri arasında paylaşılamaz, çünkü doğrudan sayısal ve para birimi bilgisi taşıyor.
Sık yapılan hata, şablonun tek bir yerde kurulup her locale için aynı JSON-LD bloğunun kopyalanması; sonuçta Almanca sayfanın schema'sında hâlâ "priceCurrency": "USD" görülüyor, oysa sayfada görünen fiyat euro cinsinden. Bu tutarsızlık Merchant Center onay sürecinde doğrudan reddediyor, organik rich result'larda ise "price mismatch" olarak işaretleniyor; sayfa zengin sonuç formatını tamamen kaybedebiliyor.
priceValidUntil alanı da benzer bir hassasiyet taşıyor. Fiyat kampanya süresince geçerliyse veya kur bazlı hesaplanıyorsa bu alanın güncel tutulması, Google'ın fiyatı "taze" kabul etmesi için önemli. Alan boş bırakılırsa veya çok uzak bir tarihe sabitlenirse, arama motoru fiyat bilgisinin güvenilirliğini düşük değerlendirebiliyor.
- price: her ülke sürümü için ayrı, sunucu tarafında hesaplanmış sayısal değer
- priceCurrency: ISO 4217 koduna göre (EUR, GBP, TRY) locale'e sabitlenmiş, asla şablon genelinde sabit bırakılmamalı
- availability: stok durumu ülkeye göre değişiyorsa bu alan da locale bazında güncellenmeli
- priceValidUntil: kampanya veya kur bazlı fiyatlarda düzenli olarak yenilenmeli
URL yapısı ile fiyat farklılaştırması hangi noktada hizalanmalı?
Tek URL üzerinde JavaScript ile fiyat değiştirmek ile her ülke için ayrı URL açmak arasındaki seçim, yalnızca teknik bir tercih değil; SEO'nun fiyatı nasıl okuyacağını doğrudan belirliyor. Tek URL yaklaşımı, düşük katalog boyutunda ve az sayıda pazar için cazip görünüyor; ama Googlebot'un render sırasında hangi fiyatı yakaladığı büyük ölçüde botun geldiği konuma bağlı kalıyor ve bu durum önceki bölümde anlatılan tutarsızlık riskini büyütüyor.
Ayrı URL yaklaşımı (ülke kodu içeren alt dizin veya ülkeye özel domain) her sürümün kendi canonical'ına, kendi hreflang girişine ve kendi sabit fiyatına sahip olmasını sağlıyor. Bu durumda fiyat farkı bir cloaking riski değil, hreflang setinin doğal bir parçası haline geliyor: Fransa sürümü EUR gösteriyor ve kendini işaret ediyor, İngiltere sürümü GBP gösteriyor ve kendini işaret ediyor. Botun hangi konumdan geldiği önemini kaybediyor, çünkü her URL zaten sabit bir fiyatla geliyor.
Orta yol olarak bazı ekipler tek URL'de sunucu tarafında ülke tespiti yapıp fiyatı ilk yüklemede sabitliyor, sonrasında kullanıcı manuel olarak ülke değiştirebiliyor. Bu model, botun tutarlı bir varsayılan fiyat görmesini sağladığı için tamamen istemci tarafı çözüme göre daha güvenli; ama yine de büyüyen katalog ve çok pazarlı senaryolarda ayrı URL yapısının sağladığı netliğe erişemiyor.
Fiyat güncelleme sıklığı ile schema tazeliği arasındaki bağlantı
Kur bazlı fiyatlandırma günlük, hatta saatlik değişebiliyor; kampanya fiyatları haftalık döngülerle güncelleniyor. Sayfa üzerinde görünen fiyat ile dateModified ve schema içindeki fiyat alanının güncellenme sıklığı birbirini tutmuyorsa, Google'ın cache'lediği sürüm ile canlı sayfa arasında fark açılıyor. Bu fark özellikle Merchant Center feed'i ile organik schema arasında senkronizasyon bozulduğunda büyüyor; feed günlük güncelleniyor ama sayfa şablonu haftalık deploy alıyorsa iki kaynak birbirinden ayrışıyor.
Otomatik kur çevrimi kullanan sistemlerde en güvenli yaklaşım, fiyatı statik bir sayı olarak değil, günlük yenilenen bir kaynaktan çekmek ve schema'yı da aynı kaynaktan üretmek. Böylece sayfa metni, görsel arayüz ve JSON-LD her zaman aynı anlık veriyi yansıtıyor. Fiyat kaynağı ile schema kaynağı ayrı sistemlerde tutulduğunda, ikisinin senkron kalması insan hatasına bağlı kalıyor ve bu genellikle uzun sürmüyor.
Büyük kataloglarda bu senkronizasyonu manuel kontrol etmek pratik değil; bu yüzden fiyat güncelleme işlemi ile schema üretimi aynı build veya render adımına bağlanmalı, ayrı ayrı yönetilen iki süreç olarak kalmamalı.
Ülke bazlı fiyatlandırma başlı başına bir SEO tehdidi değil. Riski büyüten şey, fiyatın hangi katmanda üretildiği ile hangi katmanda sunulduğu arasındaki tutarsızlık ve bu tutarsızlığın bot'un gördüğü ile kullanıcının gördüğü arasında sessizce büyümesi. Fiyat kaynağı, URL yapısı ve schema alanları aynı mantıkla hizalandığında, çok dilli katalog kur farkını bir risk değil, doğal bir yerelleştirme sinyaline dönüştürüyor.
Bu hizalamayı kurmak tek seferlik bir görev değil; kur değiştikçe, yeni pazar eklendikçe, kampanya döngüleri değiştikçe tekrar doğrulanması gereken bir disiplin. Katalog büyüdükçe bu doğrulamayı manuel değil, sistemik hale getirmek, ölçek büyüdüğünde asıl farkı yaratan adım oluyor.