Blog Importer registreert automatisch de ingebouwde 301-redirects van Shopify bij het migreren van uw blogposts. Dit zorgt voor een soepele overdracht van uw positie in zoekmachines (SEO) van uw oude site naar uw nieuwe Shopify-winkel zonder ingewikkelde handmatige configuratie.
Er zijn echter specifieke URL-patronen die de ingebouwde functie van Shopify niet aankan.
Niet-ondersteund patroon: URL’s met queryparameters
De standaard redirectfunctie van Shopify heeft een structurele beperking: het kan URL’s met een ”?” (queryparameters) niet nauwkeurig identificeren.
- Ondersteund voorbeeld:
example.com/old-post - Ondersteund voorbeeld (parameters op het 2e niveau of dieper):
example.com/news/?pid=123 - Niet-ondersteund voorbeeld:
example.com/?pid=123(Geparametriseerde URL’s direct onder het hoofddomein)
Dit soort URL’s kan niet worden omgeleid met Blog Importer of de standaard redirect-instellingen van Shopify.
De oplossing
Om pagina’s met deze verouderde URL-structuren met succes te migreren, moet u client-side JavaScript gebruiken om bezoekers handmatig naar de juiste pagina in hun browser te leiden.
Waarom is JavaScript nodig?
De ingebouwde redirects van Shopify worden aan de serverkant verwerkt. Systematisch verwijdert Shopify alle informatie na een ”?” in de URL, waardoor het onmogelijk is om verkeer voorwaardelijk te routeren op basis van parameterverschillen.
Om dit op te lossen, hebben we “slimme routering” nodig: JavaScript leest direct de volledige URL bij het laden van de pagina in de browser van de bezoeker en leidt ze dynamisch om naar de juiste bestemming.
Hoe te implementeren via JavaScript (voorbeeldcode)
Plaats de volgende code in het theme.liquid-bestand van uw Shopify-thema, direct voor de afsluitende </head>-tag. Werk de redirectMap-variabele bij zodat deze overeenkomt met uw oude URL-parameters en de bijbehorende nieuwe paden.
<script>
(function() {
// Redirect map: Oude URL-parameters naar nieuwe paden
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>