Blog Importer automatycznie rejestruje natywne przekierowania 301 Shopify podczas migracji postów na blogu. Zapewnia to płynne przeniesienie rankingów w wyszukiwarkach (SEO) ze starej witryny do nowego sklepu Shopify bez skomplikowanej ręcznej konfiguracji.
Istnieją jednak określone wzorce adresów URL, z którymi natywna funkcja Shopify nie może sobie poradzić.
Nieobsługiwany wzorzec: adresy URL z parametrami zapytania
Standardowa funkcja przekierowań Shopify ma strukturalne ograniczenie: nie potrafi dokładnie identyfikować adresów URL zawierających znak „?” (parametry zapytania).
- Obsługiwany przykład:
example.com/old-post - Obsługiwany przykład (parametry na 2. poziomie lub głębiej):
example.com/news/?pid=123 - Nieobsługiwany przykład:
example.com/?pid=123(Sparametryzowane adresy URL bezpośrednio w domenie głównej)
Tego typu adresów URL nie można przekierować za pomocą Blog Importer ani domyślnych ustawień przekierowań Shopify.
Rozwiązanie
Aby pomyślnie zmigrować strony z tymi starszymi strukturami adresów URL, musisz użyć JavaScriptu po stronie klienta, aby ręcznie skierować odwiedzających do właściwej strony w ich przeglądarce.
Dlaczego JavaScript jest niezbędny?
Natywne przekierowania Shopify są przetwarzane po stronie serwera. Systemowo Shopify odrzuca wszelkie informacje po znaku „?” w adresie URL, co uniemożliwia warunkowe kierowanie ruchem na podstawie różnic w parametrach.
Aby to rozwiązać, potrzebujemy „inteligentnego routingu”: JavaScript natychmiast odczytuje pełny adres URL po załadowaniu strony w przeglądarce odwiedzającego i dynamicznie przekierowuje go do właściwego miejsca docelowego.
Jak wdrożyć za pomocą JavaScript (przykładowy kod)
Umieść poniższy kod w pliku theme.liquid swojego motywu Shopify, bezpośrednio przed zamykającym tagiem </head>. Zaktualizuj zmienną redirectMap, aby dopasować stare parametry adresu URL i odpowiadające im nowe ścieżki.
<script>
(function() {
// Redirect map: Stare parametry URL na nowe ścieżki
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>