Blog Importer, blog yazılarınızı taşırken Shopify’ın yerel 301 yönlendirmelerini otomatik olarak kaydeder. Bu, arama motoru sıralamalarınızın (SEO) herhangi bir karmaşık manuel yapılandırma olmadan eski sitenizden yeni Shopify mağazanıza sorunsuz bir şekilde aktarılmasını sağlar.
Ancak, Shopify’ın yerel özelliğinin işleyemediği belirli URL kalıpları vardır.
Desteklenmeyen Kalıp: Sorgu Parametreli URL’ler
Shopify’ın standart yönlendirme özelliğinin yapısal bir sınırlaması vardır: ”?” (sorgu parametreleri) içeren URL’leri doğru bir şekilde tanımlayamaz.
- Desteklenen Örnek:
example.com/old-post - Desteklenen Örnek (2. seviye veya daha derin parametreler):
example.com/news/?pid=123 - Desteklenmeyen Örnek:
example.com/?pid=123(Doğrudan kök alan adı altındaki parametreli URL’ler)
Bu tür URL’ler Blog Importer veya Shopify’ın varsayılan yönlendirme ayarları kullanılarak yönlendirilemez.
Çözüm
Bu eski URL yapılarına sahip sayfaları başarılı bir şekilde taşımak için, ziyaretçileri tarayıcılarında doğru sayfaya manuel olarak yönlendirmek amacıyla istemci tarafı JavaScript kullanmalısınız.
Neden JavaScript Gerekli?
Shopify’ın yerel yönlendirmeleri sunucu tarafında işlenir. Sistematik olarak Shopify, URL’de ”?” işaretinden sonra gelen tüm bilgileri atar ve bu da trafiği parametre farklılıklarına göre koşullu olarak yönlendirmeyi imkansız hale getirir.
Bunu çözmek için “akıllı yönlendirmeye” ihtiyacımız var: JavaScript, ziyaretçinin tarayıcısında sayfa yüklendiğinde tam URL’yi anında okur ve onları dinamik olarak uygun hedefe yönlendirir.
JavaScript ile Nasıl Uygulanır (Örnek Kod)
Aşağıdaki kodu Shopify temanızın theme.liquid dosyasında, kapanış </head> etiketinden hemen önceye yerleştirin. redirectMap değişkenini eski URL parametrelerinizle ve bunlara karşılık gelen yeni yollarla eşleşecek şekilde güncelleyin.
<script>
(function() {
// Yönlendirme haritası: Eski URL parametrelerinden yeni yollara
var redirectMap = {
"?pid=123": "/blogs/news/article-a",
"?pid=456": "/blogs/news/article-b",
"?p=789": "/pages/contact"
};
var currentQuery = window.location.search;
if (currentQuery && redirectMap[currentQuery]) {
window.location.href = redirectMap[currentQuery];
}
})();
</script>