Shopify Canonical Kullanımı ve Doğrulaması Nasıl Yapılır?
Shopify canonical rehberi. Etiketin ne dediğini değil Google'ın onu dinleyip dinlemediğini, çok pazarlı bir mağazada hreflang kesişimiyle birlikte ölçtük.
Canonical etiketi hakkında yazılan neredeyse her rehber aynı soruyu cevaplıyor: etiket nasıl eklenir, kodu nereye yazılır.
İncelediğimiz dört rehberin dördü de bunu anlatıyor. Ama asıl sorun etiketi eklemek değil. Asıl sorun, eklediğiniz etiketin işe yarayıp yaramadığı.
Canonical, Google’ın uymak zorunda olduğu bir komut değil. Kendi dokümantasyonundaki ifade şu: “a strong signal”. Güçlü bir sinyal, direktif değil. Yani etiketi doğru yazmış olmanız, Google’ın o adresi seçtiği anlamına gelmiyor.
Bu yazıda canonical’ın nasıl yazılacağından çok nasıl doğrulanacağına bakıyoruz. Çok pazarlı bir Shopify kurulumunda ölçtüğümüz kopuk zincir de buradan çıktı.
Önemli Noktalar
- Canonical bir komut değil, Google’ın kendi ifadesiyle güçlü bir sinyal.
noindexile canonical’ı birlikte kullanmayı önermiyor.- Her pazar kendi adresini canonical göstermeli; diller birbirine canonical vermez.
- Karşılıklı olmayan hreflang etiketleri tamamen yok sayılıyor.
- Ölçtüğümüz mağazada 85 hreflang etiketi karşılıksız kaldığı için işlevsizdi.
- Shopify canonical’ı tek tırnakla basabiliyor; denetim betikleri bunu kaçırıyor.
Canonical etiketi Google için bağlayıcı mı?
Hayır. Google canonical’ı kendi dokümantasyonunda “a strong signal that the specified URL should become canonical” diye tanımlıyor. Güçlü bir sinyal, ama uyulması zorunlu bir direktif değil.
Google adres seçerken başka sinyallere de bakıyor: iç linklerin hangi adrese gittiği, site haritasında hangisinin listelendiği, yönlendirmelerin nereyi gösterdiği ve sayfaların birbirine ne kadar benzediği.
Bu sinyaller canonical etiketinizle çelişirse Google sizin gösterdiğinizden farklı bir adres seçebiliyor. Dokümantasyon bu konuda da uyarıyor:
“Don’t specify different URLs as canonical for the same page using different canonicalization techniques.”
Pratikte en sık görülen çelişki şu: site haritası bir adresi listeliyor, sayfa başka bir adresi canonical gösteriyor. İkisi aynı olmalı.
Canonical ile noindex birlikte kullanılabilir mi?
Google bunu önermiyor. Dokümantasyondaki gerekçe şu:
“We don’t recommend using
noindexto prevent selection of a canonical page within a single site, because it will completely block the page from Search.”
İki etiket birbirine zıt şey söylüyor. Canonical “bu sayfa şununla aynı, değeri
ona ver” derken, noindex “bu sayfayı hiç değerlendirme” diyor. Google
noindex sinyalini okuduğunda sayfayı tamamen dışarıda bırakıyor ve canonical
ile aktarmak istediğiniz değer de kayboluyor.
Site içindeki kopya adresler için doğru araç canonical. noindex etiketini ise
gerçekten arama sonuçlarında hiç görünmemesi gereken sayfalara saklayın;
örneğin sepet, hesap ve arama sonucu sayfalarına.
Canonical mı 301 yönlendirmesi mi kullanmalısınız?
Kararı tek soru belirliyor: eski adresin çalışmaya devam etmesi gerekiyor mu?
Gerekmiyorsa 301 kullanın. Yönlendirme kesin bir komuttur, Google’ın yorum payı yoktur ve ziyaretçiyi de doğru sayfaya taşır. Canonical ziyaretçiyi taşımaz, yalnızca arama motoruna bilgi verir.
Gerekiyorsa canonical kullanın. Bir ürün iki koleksiyondan da açılıyorsa ve ikisinin de çalışması gerekiyorsa yönlendirme yapamazsınız; canonical tam bu durum için var.
| Durum | Araç |
|---|---|
| Adres kalıcı olarak değişti | 301 yönlendirmesi |
| İki adres de erişilebilir kalmalı | Canonical |
| Sayfa hiç görünmemeli | noindex |
| Adres geçici olarak taşındı | 302 yönlendirmesi |
Yönlendirme kodlarının ayrımı için HTTP durum kodları yazımıza bakabilirsiniz.
Çok dilli Shopify mağazalarında canonical nasıl kurulmalı?
Her pazar kendi adresini canonical göstermeli. Bir dilin diğerine canonical vermesi, o dilin indeksten düşmesi demek.
Sebebi şu: canonical “bu sayfa şunun kopyası” bildirimidir. Oysa Fransızca bir ürün sayfası İngilizcesinin kopyası değil, alternatifidir. Alternatif ilişkiyi canonical değil hreflang anlatır.
Çok pazarlı bir Shopify kurulumunda dört alan adını ölçtük. Canonical tarafı doğruydu; dördü de kendi alan adını işaret ediyordu, çapraz alan adı canonical’ı yoktu.
Bir ayrıntı da şu: bir pazarda adres kısaltması farklı olabiliyor. Ölçtüğümüz
mağazada bir pazarda /collections/mens istendiğinde canonical
/collections/mens-shoes dönüyordu ve aynı sayfadaki hreflang etiketleri de
aynı adresi gösteriyordu. İkisi tutarlı olduğu sürece sorun yok.
Hreflang zinciri neden sessizce kopuyor?
Çünkü hreflang karşılıklı olmak zorunda ve bir taraf etiketi basmayı unuttuğunda hiçbir hata mesajı çıkmıyor. Google kuralı açıkça yazıyor:
“If two pages don’t both point to each other, the tags will be ignored.”
Ölçtüğümüz mağazada tam bu oldu. Dört pazarın ikisi hreflang basıyordu, ikisi hiç basmıyordu:
| Pazar | Canonical | Hreflang etiketi |
|---|---|---|
| 1. pazar | Kendine | 85 |
| 2. pazar | Kendine | 85 |
| 3. pazar | Kendine | 0 |
| 4. pazar | Kendine | 0 |
İlk iki pazar, diğer ikisinin adreslerini hreflang ile gösteriyordu. Ama karşı taraf geri link vermediği için zincir tek yönlü kaldı. Google’ın kuralına göre bu durumda 85 etiketin tamamı yok sayılıyor.
Ana sayfada da aynı tabloyu gördük, yani sorun tek bir sayfaya değil o alan adlarının geneline ait.
Bunun bedeli, Google’ın doğru pazarı doğru ülkeye göstermemesi. Avustralyalı bir ziyaretçi arama sonucunda Amerika mağazasını görüyor, fiyatı dolar cinsinden buluyor ve satın almadan çıkıyor.
Hreflang zincirini nasıl kontrol edersiniz?
Tek yönlü kopukluğu bulmanın yolu her iki taraftan da bakmak. Tek bir sayfanın kaynak kodunu incelemek yetmiyor, çünkü sorun o sayfada değil karşı tarafta.
Sırayla şunu yapın:
- Ana pazarınızın bir sayfasını açın ve hreflang etiketlerini listeleyin.
- Listedeki her adresi tek tek açın.
- Açtığınız her sayfanın hreflang listesinde ilk sayfanın adresi var mı bakın.
- Yoksa o çift kopuk demektir.
Bu kontrolü tek bir sayfa için yapmanız yeterli değil ama başlangıç noktası olarak iyi çalışıyor. Bir alan adı hiç hreflang basmıyorsa sorun zaten tema seviyesindedir ve o alan adının tamamını kapsar.
x-default etiketi ise zorunlu değil. Google bunu özellikle dil seçici olan ya
da otomatik yönlendirme yapan ana sayfalar için öneriyor.
Bu kontrolü mağazanızın tamamı için yürütmemizi isterseniz teknik SEO hizmetimiz kapsamında ele alıyoruz.
Canonical etiketini doğru okuduğunuzdan nasıl emin olursunuz?
Kaynak kodunda rel=canonical ararken tırnak işaretine dikkat edin. Shopify
temaları canonical’ı tek tırnakla basabiliyor:
<link rel="canonical" href="https://magaza.com/collections/erkek" />
Yalnızca çift tırnak arayan bir denetim betiği bu satırı bulamıyor ve “canonical yok” diye yanlış rapor veriyor. Kendi ölçümümüzde tam bu tuzağa düştük; ilk betik bir mağazada canonical bulamadı, oysa etiket oradaydı.
Doğru kontrol yöntemleri şunlar:
- Tarayıcıda sayfa kaynağını açıp
canonicalkelimesini arayın, tırnak yazmadan. - Search Console’daki Sayfalar raporunda “Alternatif sayfa, uygun canonical etiketi içeriyor” satırına bakın.
- URL İnceleme aracında Google’ın seçtiği canonical ile sizin belirttiğiniz canonical alanlarını karşılaştırın.
Üçüncüsü en değerlisi. Bu iki alan farklıysa, Google sizin sinyalinizi görmüş ama başka bir adresi tercih etmiş demektir. Çoğu zaman sebebi iç linklerinizin farklı bir adrese gitmesidir.
Shopify varsayılan canonical davranışı değiştirilmeli mi?
Çoğu mağaza için hayır. Shopify canonical_url nesnesiyle varsayılan davranışı
doğru kuruyor ve yanlış kurulmuş bir canonical doğru sayfanın indeksten
düşmesine yol açıyor.
Varsayılan davranışın parametreler karşısında ne yaptığını iki ayrı yazıda ölçtük: ürün sayfalarında varyant parametreleri canonical’ı değiştirmiyor, koleksiyon sayfalarında sıralama ve filtre parametreleri düşüyor ama sayfalama temaya göre değişiyor.
Varsayılanı değiştirmeniz gereken dar durumlar için Shopify metafield yöntemini
öneriyor. Bunun çalışan theme.liquid kodunu ve hangi metafield adlarının
kullanılacağını
Shopify SEO rehberimizde veriyoruz.
Canonical denetim listesi
Mağazanızda sırayla kontrol edin:
- Her sayfa kendi adresini mi canonical gösteriyor?
- Site haritasındaki adres ile canonical aynı mı?
- Canonical adresi 200 kodu dönüyor mu, yoksa yönlendirmeye mi giriyor?
- Canonical ile
noindexaynı sayfada birlikte mi duruyor? - Canonical adresleri mutlak mı, yoksa göreli mi yazılmış?
- Çok pazarlı kurulumda her pazar kendine mi canonical veriyor?
- Hreflang etiketleri karşılıklı mı?
- Hiç hreflang basmayan bir pazar alan adı var mı?
- Search Console’da Google’ın seçtiği canonical sizinkiyle aynı mı?
- İç linkleriniz canonical adrese mi gidiyor?
Sonuç
Canonical etiketini eklemek işin kolay kısmı. Zor kısmı, Google’ın o sinyali dinleyip dinlemediğini bilmek.
Etiket bir komut değil, güçlü bir sinyal. Site haritanız, iç linkleriniz ve yönlendirmeleriniz aynı adresi göstermiyorsa Google sizin işaret ettiğinizden başka bir sayfayı seçiyor.
Çok pazarlı kurulumlarda risk daha da büyük. Ölçtüğümüz mağazada canonical tarafı kusursuzdu ama hreflang zinciri tek yönlü koptuğu için 85 etiket işlevsiz kalmıştı. Hiçbir araç bunu hata olarak göstermiyor; ancak iki taraftan birden bakınca ortaya çıkıyor.
Önce Search Console’da Google’ın seçtiği canonical ile sizin belirttiğinizi karşılaştırın. İkisi farklıysa sorun etikette değil, onu çevreleyen sinyallerdedir.
Shopify mağazanızın teknik altyapısını baştan sona ele aldığımız Shopify SEO ajansı hizmetimizle bu denetimi sizin adınıza yürütüyoruz.
Mağazanızın mevcut durumunu konuşmak isterseniz ücretsiz ön analiz için bize yazabilirsiniz.
Bu yazı Emir Bengiserp tarafından yazıldı. Benji’s Digital kurucusu; 15+ yıldır e-ticaret markalarında SEO, performans pazarlaması ve ürün verisi tarafında çalışıyor.
Son güncelleme: 22 Eylül 2026. Canonical ve hreflang davranışları çok pazarlı bir canlı Shopify kurulumunda ölçüldü; tema davranışları değişebildiği için düzenli olarak yeniden kontrol ediliyor.
Sıkça Sorulan Sorular
Canonical etiketi Google için bağlayıcı bir komut mu?
Hayır, Google canonical'ı güçlü bir sinyal olarak tanımlıyor, direktif olarak değil. Dokümantasyondaki ifade a strong signal biçiminde. Google iç linkler, site haritası, yönlendirmeler ve sayfa benzerliği gibi başka sinyallere bakıp sizin gösterdiğinizden farklı bir adresi seçebiliyor. Search Console'daki Sayfalar raporu hangi adresi seçtiğini gösteriyor.
Canonical ve noindex etiketlerini birlikte kullanabilir miyim?
Google bunu önermiyor. Dokümantasyon noindex kullanmanın sayfayı aramadan tamamen çıkaracağını, bu yüzden site içindeki kopya adresler için canonical'ın tercih edilen çözüm olduğunu söylüyor. İkisini birlikte kullandığınızda çelişkili sinyal vermiş oluyorsunuz.
Çok dilli Shopify mağazalarında her dil kendine mi canonical vermeli?
Evet, her pazar kendi adresini canonical göstermeli. Ölçtüğümüz dört pazarlı mağazada dördü de kendi alan adını işaret ediyordu. Bir dilin diğerine canonical vermesi o dilin indeksten düşmesine yol açar, çünkü canonical alternatif dil değil kopya sayfa bildirimi anlamına geliyor.
Karşılıklı olmayan hreflang etiketleri ne oluyor?
Tamamen yok sayılıyor. Google'ın ifadesi net: iki sayfa birbirini göstermiyorsa etiketler yok sayılır. Ölçtüğümüz mağazada iki pazar 85 hreflang etiketi basıyordu ama karşı taraftaki iki alan adı sıfır etiket veriyordu, yani zincir tek yönlüydü ve 85 etiketin tamamı işlevsizdi.
Canonical mı 301 yönlendirmesi mi kullanmalıyım?
Eski adresin çalışmasına gerek yoksa 301 kullanın, çünkü yönlendirme kesin bir komuttur. İki adresin de erişilebilir kalması gerekiyorsa, örneğin bir ürün iki koleksiyondan da açılıyorsa, canonical kullanın. 301 ziyaretçiyi de taşır, canonical taşımaz.
Shopify'da canonical etiketini nasıl kontrol ederim?
Sayfanın kaynak kodunda rel=canonical satırını arayın, ancak arama yaparken tek tırnağı da hesaba katın. Shopify temaları canonical'ı tek tırnakla basabiliyor ve yalnızca çift tırnak arayan denetim betikleri canonical yok diye yanlış rapor veriyor. Bu tuzağa kendi ölçümümüzde de düştük.
Shopify varsayılan canonical davranışını değiştirmeli miyim?
Çoğu mağaza için hayır. Shopify varsayılan canonical'ı doğru kuruyor ve yanlış kurulmuş bir canonical doğru sayfanın indeksten düşmesine yol açıyor. Değiştirmeniz gereken dar durumlar için metafield yöntemi var, bunu Shopify SEO rehberimizde çalışan kodla anlatıyoruz.