Skip to main content

URL-redirects in Shopify: de limieten, getest.

Wat URL-redirects in Shopify wel en niet doen, vastgesteld door te testen in plaats van door de documentatie te lezen. Ondersteuning voor wildcards en regex, de omgang met querystrings en parameters, redirectketens, limieten voor tekens en records, de URL-formaten die stilletjes een 404 geven, en de regels voor de bulkimport via CSV. Plus hoe je na de livegang controleert of je redirects echt werken.

Een goudkleurige kleiweg eindigt bij een gat, en een bosgroene kleipijl buigt eroverheen naar de weg die doorloopt, waar een blauwe kleitas staat
De korte versie
  1. Geen wildcards en geen regex, op geen enkel plan. Elk record is één URL die naar één bestemming wijst, op de standaardplannen net zo goed als op Plus. Regels op basis van patronen moeten in een laag vóór Shopify draaien, zoals een CDN of een edge proxy.
  2. Eén stringformaat gaat mis: een niet-gecodeerde puntkomma na de is-gelijk-operator. Shopify accepteert het record en slaat het op met de puntkomma gecodeerd als %3b, dus de fout ontstaat bij de aanvraag en niet bij de import: een rauwe puntkomma in de binnenkomende URL komt nooit overeen met het gecodeerde record en levert een 404 op. De gecodeerde vorm opvragen levert een 301 op. Elk ander formaat dat wij testten werd ingelezen en gevolgd, puntkomma's elders in de string inbegrepen.
  3. De plafonds liggen vast op 100.000 records, 20.000.000 op Plus en 1.024 tekens per string. Het aantal tekens telt de schuine streep vooraan mee, en de support kan geen van beide recordlimieten verhogen. Een catalogus die groot genoeg is om er in de buurt te komen, heeft een redirectbestand nodig dat gegenereerd en in batches geïmporteerd wordt in plaats van met de hand samengesteld.
  4. De bescherming tegen ketens controleert één richting, dus de volgorde van aanmaken bepaalt of er een keten ontstaat. Shopify blokkeert een redirect waarvan de bestemming al de bron van een andere redirect is. De omgekeerde richting controleert het niet, dus /a naar /b en later /b naar /c wordt geaccepteerd en laat een levende keten van twee stappen achter. Bulkimports passen rijen toe in de volgorde van het bestand, en precies zo gebeurt dit. Neem na een import een steekproef van je redirects en tel de stappen.
  5. Shopify herschrijft wat je importeert voordat het het opslaat. Het zet de string om naar kleine letters, haalt het protocol en het domein weg, voegt een schuine streep vooraan toe waar die ontbreekt, en kan queryparameters van volgorde wisselen. Een record dat er in de admin goed uitziet, kan alsnog de aanvraag missen die mensen daadwerkelijk versturen, dus verifieer het met curl -sIL tegen de live URL: één 301-stap die op een 200 uitkomt. Wacht een minuut voordat je opnieuw test, want een edge node kan het oude antwoord ongeveer dertig seconden lang blijven serveren.

Een betere helpdocumentatie

Geschreven en onderhouden voor de merken en bureaus die een sitemigratie uitvoeren. Zeker als je een klein team bent dat elk uur moet laten tellen. Deze gids helpt je een strategie op te bouwen om 301-redirects nauwkeurig af te ronden als je naar Shopify migreert. Dit document helpt je specifiek als je:

  • Migreert vanaf Wordpress
  • Migreert vanaf Magento
  • Migreert vanaf Salesforce
  • Migreert vanaf Sitecore
  • Migreert vanaf BigCommerce
  • Migreert vanaf Webflow
  • Migreert vanaf een zelfgebouwde PHP-site

Als je een project aanpakt met complexe 301-redirectmappings en een team nodig hebt dat dit specifieke werk dag in dag uit doet, neem contact met ons op.


De URL-redirectlogica van Shopify: overzicht

De officiële Shopify-helpdocumentatie voor URL-redirects vind je hier. Het is een compact document met algemene richtlijnen die een Shopify-winkelbeheerder kan raadplegen om losse en bulk-301-redirects toe te voegen. Het mist details over de soorten URL die een Shopify-winkel native kan ondersteunen, en dit rapport is bedoeld om die gaten te vullen.

Samengevatte bevindingen over de URL-redirectfunctionaliteit van Shopify

  • De URL-redirectlogica van Shopify is zeer robuust.
  • Van onze test met 100 verschillende URL-stringformaten ondersteunde Shopify er functioneel 99 van de 100.
  • Een echte storefrontroute wint altijd van een redirect, in stilte.
  • Het native systeem ondersteunt geen wildcards voor URL-redirects.
  • Bestaande URL-redirectpaden bijwerken ging makkelijk met de importtool, zolang je de ongedocumenteerde regels van Shopify volgt
  • Er gelden limieten aan het totale aantal redirects dat Shopify- en ShopifyPlus-winkels beheren.
  • Er gelden limieten aan het totale aantal tekens van een URL-redirectstring.
  • De bescherming tegen ketens is gedeeltelijk. Shopify blokkeert één richting, en de volgorde van aanmaken kan alsnog een levende keten achterlaten.
  • Voor URLs met parameters gelden veel uitzonderingen en regels.
  • De interface voor het beheer van URL-redirects is gebruiksvriendelijk, maar kan meer details gebruiken.
  • De tests keken niet naar de redirectopties die beschikbaar zijn voor Hydrogen en Oxygen.
  • Wij geven het huidige URL-redirectsysteem van Shopify een hulpzaamheidsscore van 85%.

De beoordeling ging 5% omlaag omdat wildcards niet worden ondersteund, 1% vanwege het enige URL-stringtype dat niet werd ondersteund, 2% vanwege de limieten aan de tekenlengte van een URL, 3% vanwege het vreemde gedrag bij URLs met parameters, en 4% vanwege essentiële informatie voor gegevensbeheer die in de redirect-UX ontbreekt.

Voor het eerst getest op 19 juni 2024. Opnieuw getest op 27 juli 2026 tegen een live Shopify-winkel met standaardplan, via de Admin GraphQL API en tegen live storefrontaanvragen. Wat er tussen die twee rondes veranderde staat in de changelog.

Onze testmethode voor redirects

Met onze tests wilden we een aantal vragen beantwoorden, om valkuilen in de 301-redirectregels van Shopify te vermijden:

  • Welke tekens of stringcombinaties ondersteunt het URL-redirectsysteem niet?
  • Gelden er limieten aan de lengte van een URL-string?
  • Bestaat er een maximumaantal records voor bulkimports?
  • Ondersteunt het systeem wildcardredirects?
  • Wordt er na de import automatisch geformatteerd of geconverteerd, waardoor de oorspronkelijke gegevens veranderen?

Ter referentie: hier is onze volledige lijst met URLs waarmee we deze verschillende situaties hebben getest. De tests zijn uitgevoerd op een Shopify-standaardplan (niet ShopifyPlus).


11 bevindingen die helpen bij Shopify-redirects

Shopify kan niet goed overweg met deze URL-stringtypen

Eén stringformaat van de honderd die we testten is niet betrouwbaar te redirecten. Shopify accepteert het record en slaat het op, maar een browser die het opvraagt krijgt een 404. Het gaat om een string met een puntkomma na de is-gelijk-operator, zoals:

/page?param=;semicolon

Wat aan deze string opvalt, is dat het systeem van Shopify het speciale teken puntkomma omzet naar de URL-gecodeerde waarde, zo in de redirecttabel:

/page?param=%3Bsemicolon

Als je de niet-gecodeerde URL-string in de adresbalk van een browser invoert, krijg je een 404-fout.

404 Deze syntaxis veroorzaakt een 404-fout op de servers van Shopify. Een niet-gecodeerde puntkomma na de is-gelijk-operator:
  • /page?param=;semicolon
301 Terwijl dit correct doorverwijst op de servers van Shopify. Een gecodeerde puntkomma na de is-gelijk-operator:
  • /page?param=%3Bsemicolon

Dit gedrag wijkt af van de omgang met andere speciale tekens. Als er een URL-string met niet-gecodeerde tekens in de adresbalk wordt ingevoerd, bijvoorbeeld het rechteraccolade-teken:

/page?param=}

dan codeert Shopify het automatisch zodra de URL-aanvraag binnenkomt, en volgt er geen 404-fout.

/page%7Drightbrace

Verder is het opvallend dat andere varianten van een URL-string met een niet-gecodeerde puntkomma wél geldig zijn in het redirectsysteem van Shopify, zoals:

301 Verwijst correct door op de servers van Shopify. Niet-gecodeerde puntkomma in de string, zonder is-gelijk-operator.
  • /page;semicolon

De 404 treedt alleen op wanneer een niet-gecodeerde puntkomma na de is-gelijk-operator staat, en de fout ontstaat bij de aanvraag en niet bij de import. Shopify slaat het record op met de puntkomma percent-gecodeerd als %3b, en een binnenkomende URL met de rauwe puntkomma komt nooit overeen met het gecodeerde record. De gecodeerde vorm opvragen geeft gewoon een 301, dus waar je de inkomende links zelf beheert, lost percent-codering van de puntkomma het op. Waar de rauwe puntkomma binnenkomt via externe links die je niet beheert, is dit formaat niet betrouwbaar te redirecten.

Geen ondersteuning voor wildcardredirects bij Shopify

Wildcardredirects staan nog steeds op het verlanglijstje van veel Shopify-gebruikers. De supportfora staan vol met verzoeken om deze functie. Tot nu toe heeft Shopify niets losgelaten over waar dit op de productroadmap zou vallen.

Voorlopig moeten website-eigenaren die een overstap naar Shopify plannen begrijpen dat native Shopify en ShopifyPlus deze optie niet bieden.

Wat zijn wildcardredirects?

Wildcardredirects zijn een vorm van URL-omleiding waarmee je meerdere URLs die aan een bepaald patroon voldoen naar één bestemming kunt sturen. Dat is vooral handig bij het migreren van een website, het herindelen van content of het beheren van grote aantallen vergelijkbare URLs. In plaats van voor elke URL een aparte redirect in te richten, gebruik je een wildcardteken (meestal *) dat voor een willekeurige reeks tekens staat.

Stel dat je je blog herstructureert en alle berichten van de map /blog/ naar /articles/ verhuist. In plaats van voor elk blogbericht een aparte redirect aan te maken, kun je een wildcardredirect gebruiken:

From: /blog/*
To: /articles/*

This wildcard redirect will automatically map:

/blog/post1 to /articles/post1
/blog/post2 to /articles/post2
/blog/post3 to /articles/post3

Dat vereenvoudigt het omleiden en zorgt ervoor dat alle URLs onder /blog/ naadloos naar hun nieuwe plek onder /articles/ gaan. Standaardwinkels van Shopify en ShopifyPlus bieden deze mogelijkheid niet zonder een app.

Het deel dat mensen verkeer kost, is dat Shopify wildcardsyntaxis zonder klagen accepteert. Een record dat je aanmaakt als /old-blog/* wordt opgeslagen, verschijnt in de redirecttabel en meldt geen fout. Het sterretje wordt als letterlijk teken opgeslagen, dus de enige URL waar het ooit op zal matchen is een URL die letterlijk een sterretje bevat. Dat is erger dan een regelrechte weigering, want niets wijst op de fout tot echt verkeer 404s begint terug te geven. Werk alle wildcards in je redirectbestand uit tot expliciete paden voordat je het importeert.

Shopify doet zijn best om redirectketens te vermijden

Shopify heeft een bescherming tegen ketens, en het is verstandig de grenzen daarvan te kennen voordat je erop vertrouwt. Het weigert een redirect waarvan de bestemming al de bron van een andere redirect is, met Target can't redirect to another redirect. Het weigert een redirect die naar zichzelf wijst, met Target can't be the same as path, en het blokkeert directe lussen in twee richtingen.

In deze test probeerden we de volgende URL-records aan te maken, wat niet werd toegestaan:

404
  • /BOTH redirects to /SHORT
  • /SHORT redirects to /homepage

Wat de bescherming niet doet, is de omgekeerde richting controleren. Maak /a naar /b aan terwijl er niets op /b bestaat, maak later /b naar /c aan, en beide worden geaccepteerd. Shopify kijkt het eerste record nooit opnieuw na, en je hebt een levende keten:

GET /a
  301 to /b
  301 to /
  final: 200, 2 hops

Alleen de volgorde van aanmaken bepaalt of er een keten ontstaat. Bulkimports passen rijen toe in de volgorde van het bestand, en migratiebestanden zijn zelden zo gesorteerd dat dit wordt voorkomen, dus de bescherming is niets om op te plannen. Neem na elke grote import een steekproef van je redirects en tel de stappen:

curl -sIL https://yourstore.com/old-path -o /dev/null -w "hops: %{num_redirects}
"

Alles boven 1 is een keten.

Wat zijn redirectketens?

Redirectketens ontstaan wanneer een URL wordt doorverwezen naar een andere URL, die op zijn beurt weer doorverwijst naar nog een URL, waardoor er een reeks of keten van redirects ontstaat. Dat kan onbedoeld gebeuren als er in de loop van de tijd meerdere redirects worden ingericht zonder goed beheer.

Redirectketens zijn problematisch omdat ze het laden van pagina’s kunnen vertragen, de SEO kunnen schaden en een slechte gebruikerservaring opleveren. Elke extra redirect voegt vertraging toe, want de browser moet elke stap in de keten volgen voordat de uiteindelijke bestemming in beeld komt.

Als je bijvoorbeeld de volgende redirects hebt ingericht:

/old-page redirects to /new-page
/new-page redirects to /latest-page

Wanneer iemand /old-page bezoekt, wordt die eerst doorgestuurd naar /new-page en meteen daarna nog eens naar /latest-page, wat een redirectketen oplevert.

Nieuwe regels om te volgen bij het instellen van redirects op Shopify

Onze grootste ontdekking in de tests is dat de documentatie van Shopify verouderd is, en dat de regel eronder eenvoudiger is dan de gedocumenteerde lijst met gereserveerde prefixen.

Een echte storefrontroute wint altijd van een redirect. Waar op een URL echt een pagina bestaat, serveert Shopify de pagina en negeert het de redirect. Het record wordt geaccepteerd, het staat in je redirecttabel, en het doet niets. Geen fout, geen waarschuwing. De prefix is niet de variabele. Het bestaan van een route wel:

/products/ai-skillset-package-001  ->  200, the product page
/products/zz20260727               ->  301, the redirect fires

Dezelfde prefix, de tegenovergestelde uitkomst. Dat geldt voor elk live product, elke collectie, elke pagina en elk blogartikel in je winkel, niet alleen voor de vier paden die Shopify documenteert. Een redirect op de URL van een gepubliceerd product doet niets zolang dat product blijft laden, waardoor de volgorde tijdens een migratie ertoe doet: haal de oude bron eerst offline of verwijder hem, en bevestig daarna dat de redirect afgaat.

Volgens Shopify worden je redirectregels niet aangemaakt als je iets probeert door te verwijzen dat met deze gereserveerde prefixen begint:

/apps
/application
/cart
/carts
/orders
/services
/products
/collections
/collections/all

Wij ontdekten dat dat niet klopt.

301 Deze waarden voor "Redirect from" WORDEN WEL toegestaan en werken correct, ook al zegt de documentatie van niet:
  • /apps
  • /application
  • /carts
  • /orders
  • /services
  • /cart/people

Cart was de uitzondering. Die is op zichzelf gereserveerd en werkt zodra er een submap achter staat.

404 Deze waarden voor "Redirect from" worden wel in de tabel aangemaakt, maar niet gevolgd:
  • /cart
  • /products
  • /collections
  • /collections/all
301 Als er submappen achter de gereserveerde prefixen staan, staat Shopify ze toe en volgt het ze, bijvoorbeeld:
  • /cart/people
  • /carts/people
  • /products/people
  • /collections/people
404 Uit onze testgegevens bleek dat alleen deze URL-prefixen volledig worden genegeerd als ze op zichzelf worden ingevoerd:
  • /cart
  • /products
  • /collections
  • /collections/all

/services is de uitzondering in deze groep, en gedraagt zich precies andersom dan de rest. Een redirect op /services zelf geeft een 301. Een redirect op iets daaronder, zoals /services/consulting, geeft een 404, ook al wordt het record zonder klagen opgeslagen. We hebben dat vier keer opnieuw getest over ongeveer 45 seconden om vertraging in de propagatie uit te sluiten, met het record de hele tijd aanwezig in de tabel. Elke andere prefix in deze groep werkte wel met submappen.

De waarschijnlijke oorzaak is dat Shopify /services/* intern routeert voor app proxies en systeemendpoints, waardoor die aanvragen de redirecttabel nooit bereiken, al hebben we het mechanisme niet rechtstreeks geverifieerd. Migreer je een site met een /services/-sectie, dan gaat geen van die redirects af. Zet ze om naar een andere padstructuur, of handel ze af in je DNS- of proxylaag.

URL-redirects aanmaken en bijwerken is makkelijk op Shopify

Een nieuwe redirect aanmaken is eenvoudig op Shopify. Gebruikers krijgen twee opties:

Bij het toevoegen van URLs aan het systeem van Shopify kunnen gebruikers voor de oorsprong (from) relatieve URL-paden invoeren, zonder topleveldomein, en voor de bestemming (to) absolute of relatieve URL-paden. Bijvoorbeeld:

/example_product.php
Losse URL-redirects aanmaken

De redirectregels van Shopify staan niet toe dat je dezelfde URL-redirect twee keer aanmaakt via de interface voor losse redirects.

Zodra een URL in de kolom ‘Redirect from’ van de tabel staat, krijg je een foutmelding als je hem opnieuw probeert toe te voegen.

Wil je het losse URL-record bijwerken, dan moet je het in de redirecttabel opzoeken, of de bulkimportmethode gebruiken. Staat een URL die al bestaat in een bulkimportbestand, dan wordt het veld ‘Redirect to’ van dat record bijgewerkt met de waarde uit het CSV-bestand.

Ons advies is om redirects altijd in behapbare, efficiënte batches te importeren. Heb je bijvoorbeeld 10.000 URL-redirects, importeer er dan 1.000 tegelijk en controleer ze als je de tijd hebt. Het is beter om fouten in kleinere datasets te vinden dan ze in grotere op te moeten jagen.

Wees weloverwogen met URL-redirects in bulk in Shopify

Om redirects in bulk aan te maken vul je het CSV-bestand met de headers die Shopify verlangt, maak je de 1-op-1-koppelingen en zorg je dat alle URLs als relatieve paden zijn opgemaakt. Maak je een bestand met absolute paden in het veld ‘Redirect from’ of ‘Redirect to’, dan neemt Shopify het heft in eigen handen. Een paar scenario’s:

404 Shopify verwijdert wat het herkent als 'http-protocol+topleveldomein' en maakt het gewenste relatieve pad aan:
  • https://www.wislr.com/path/to/resource%20with
301
  • /path/to/resource%20with
404 Het URL-pad heeft geen HTTP-protocol maar bevat wel een topleveldomein of subdomein, dus zet Shopify er een '/' voor om het gewenste relatieve pad te maken:
  • www.wislr.com/unicode/test?value=%E2%9C%93%20
  • co.wislr.com/mix/of%20encoded
301
  • /www.wislr.com/unicode/test?value=%E2%9C%93%20
  • /co.wislr.com/mix/of%20encoded
404 Het URL-pad heeft geen HTTP-protocol en geen subdomein maar bevat wel een topleveldomein, dus zet Shopify er een '/' voor om het gewenste relatieve pad te maken:
  • wislr.com/nested/directory/structure?param1=value1
301
  • /wislr.com/nested/directory/structure?param1=value1

De les is om je importbestand goed na te lopen voordat je het gebruikt. Anders maak je URL-redirectregels die niet doen wat je nodig hebt.

Als er al een redirectrecord in de tabel staat en dezelfde waarden staan in het importbestand, dan werkt Shopify het record bij met de meest actuele gegevens uit het importbestand. Wat ons betreft is dat bijzonder handig, zolang je wilt dat dat record wordt bijgewerkt. Reden te meer om de gegevens goed na te lopen.

Shopify hanteert geen plafond aan het aantal rijen per bestand. Eén import van 1.051 rijen liep zonder enige mislukking door in 48 seconden, wat neerkomt op ruwweg 1.300 rijen per minuut.

Batches van rond de 1.000 blijven de moeite waard, om een andere reden dan een harde limiet. Kleinere bestanden mislukken leesbaarder. Gaat een import van 20.000 rijen mis, dan weet je veel minder goed welke rijen het veroorzaakten dan wanneer je twintig bestanden had gedraaid en de tellingen had bekeken. Lees na elke import createdCount, updatedCount en failedCount, want een failedCount boven nul is het enige signaal dat je krijgt dat er rijen zijn weggevallen.

Een pad dat al in de redirecttabel staat, krijgt zijn bestemming overschreven en wordt onder updatedCount gemeld, met behoud van het oorspronkelijke record-id. Daardoor is een CSV-import veilig opnieuw te draaien, wat halverwege een migratie handig is. Het betekent ook dat een verouderd bestand stilletjes de correcties overschrijft die je sinds de vorige import met de hand hebt aangebracht.

Werk met WISLR

Laat ons de redirectmap bouwen.

We hebben redirects gekoppeld voor meer dan 100 migraties, waaronder een verhuizing van 27.000 URLs naar Shopify Plus. Wij bouwen het bestand en toetsen het aan elke limiet op deze pagina voordat het wordt geïmporteerd. Na de overgang lezen we de live antwoorden zelf uit in plaats van te vertrouwen op wat de redirecttabel zegt.

Bekijk de migratie van 27.000 URLs →

De limiet van Shopify aan het aantal URL-redirectrecords

Aan alle goede dingen komt een eind, en de redirectregels van Shopify vormen daarop geen uitzondering. Er zijn twee drempels voor URL-redirects.

Shopify-plannen (niet Plus):

Maximaal 100.000 URL-redirects

ShopifyPlus-plannen:

Maximaal 20.000.000 redirects

Deze limieten hebben we niet getest, dat zou te gek voor woorden zijn! Dit zijn de huidige gedocumenteerde specificaties van het platform. Houd ze in gedachten bij het plannen van je redirects en geef voorrang aan de URLs met het meeste verkeer en de meeste omzet. Voor zover wij weten verhoogt Shopify deze limieten niet, ondanks het aanhoudende smeken op de supportfora.

De limiet van Shopify aan het aantal tekens in URLs

Hier wordt het pittig met het redirectsysteem van Shopify. De officiële richtlijnen van Shopify noemen geen strikte tekenlimieten.

Om de limieten aan het aantal URL-tekens voor een redirect vast te stellen, bouwden we eerst hele lange strings en probeerden we die te importeren. We begonnen met een URL van 2.000 tekens, omdat browsers URI-aanvragen tot 2.083 tekens aankunnen. Hier is de schoonheid in vol ornaat:

/2000aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBcccccccccccccccccccccccccccccccccccccccccccccccccccDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee

Onze eerste methode was om een URL van 2.000 tekens te importeren met het bulkredirectsjabloon, en toen gingen de alarmbellen bij Shopify af. De drempel die we officieel ontdekten was een limiet van 1.024 tekens voor URL-redirectstrings, inclusief de schuine streep ‘/’ vooraan.

  • Passed URL van 300 tekens
  • Passed URL van 600 tekens
  • Passed URL van 1.000 tekens
  • Failed URL van 2.000 tekens

Een paar belangrijke en ongedocumenteerde redirectregels om te kennen bij Shopify

Shopify normaliseert de letters in je URL-strings. Dat betekent dat het, of je nu een hoofdletter of een kleine letter invoert, de URL-aanvraag voor die verschillende patronen op dezelfde manier afhandelt. De volgende URLs gaan allemaal naar dezelfde pagina, zelfs als er losse records voor bestaan:

/CASE/TEST.html
/case/test.html
/Case/Test.html

De string in kleine letters krijgt voorrang op de andere:

/case/test.html

In onze tests werd, hoewel er twee unieke records voor “Redirect from” zijn met verschillende waarden voor “Redirect to”, voor beide records altijd de pagina /about.html geserveerd:

#1
/Case/Test.html [redirect to] /homepage

#2
/case/test.html [redirect to] /about.html

Het is intrigerend en mogelijk irritant dat Shopify je al deze unieke waarden in de redirecttabel laat invoeren en er maar één van serveert. Ons advies is om je gegevens zorgvuldig na te lopen als je vermoedt dat je URL-taxonomie in deze patronen kan vallen, voordat je in Shopify importeert.

Je kunt absolute URL-paden gebruiken voor Shopify-redirects

Absolute URL-paden voor je redirects zijn prima, zo bleek uit onze test, als ze in het veld “Redirects to” staan. Ze mogen naar elke gewenste URL wijzen. Hier is een voorbeeld waarin een URL-pad bij een aanvraag doorverwijst naar een LinkedIn-profiel:

[Redirect from]
/Case/Test.html

[Redirect to]
https://www.linkedin.com/wislr

Verder verwijdert Shopify in het veld “Redirect to” geen topleveldomeinen, ook niet als het om je eigen Shopify-winkel gaat.

URLs met parameters

In onze tests bewaarde Shopify URLs met parameters, met een paar uitzonderingen. Heb je URLs die met veel unieke parameterstrings zijn geïndexeerd, dan kunnen die unieke strings aan de redirecttabellen van Shopify worden toegevoegd en naar unieke bestemmingen gaan. We deden deze test met een veelvoorkomende taxonomie voor dit soort URLs: UTM-parameters. Bijvoorbeeld:

Deze URL-string staat in het veld “Redirect from” van de redirecttabel en kwam op de bedoelde bestemming uit:

/how-is-pkl?utm_campaign=301s+in+2024&utm_content=blue&utm_id=3012024&utm_medium=display&utm_source=google&utm_term=redirects

We pasten de URL-string aan en haalden de laatste parameter ‘&utm_term=redirects’ weg, wat een 404 opleverde:

/how-is-pkl?utm_campaign=301s+in+2024&utm_content=blue&utm_id=3012024&utm_medium=display&utm_source=google

Dit gedrag werd in andere tests met andere parameters als waarden gereproduceerd, wat bevestigde dat Shopify URLs met parameters als letterlijke strings behandelt. Ze knippen de URL niet terug naar de basis-URL als je een parameter uit een redirect-URL haalt, zolang de URL niet op de Shopify-site bestaat.

Om dat verder te bevestigen lieten we een URL naar zichzelf wijzen, wat Shopify standaard niet toestaat. Je krijgt dan deze melding:

Deze invoer is wel toegestaan als de parameters in het veld “Redirect from” staan. Het vormt geen redirectlus, maar op basis van het gedrag in de browser liet onze test zien dat Shopify dit record negeert. Wanneer de URL in “Redirect from” wordt opgevraagd, serveert Shopify de volledige URL-string met parameters, niet de hoofdpagina zoals de tabel doet verwachten:

Deze invoer is toegestaan, maar Shopify zet de parameters niet achter de pagina die laadt, zoals de regel verwacht. Alleen de basis-URL laadt.

Dat geldt voor bronpaden met parameters. Waar het bronpad van de redirect zelf geen parameters heeft, wordt alles wat bij de aanvraag binnenkomt doorgegeven aan de bestemming:

GET /old-page              ->  301 to /new-page
GET /old-page?utm_source=x ->  301 to /new-page?utm_source=x

Redirects halen de parameters niet voor je weg. Dat weghalen moet in een laag boven Shopify gebeuren.

Ook het matchen is geen letterlijke stringvergelijking. Shopify normaliseert zowel het opgeslagen record als de binnenkomende aanvraag voordat het ze vergelijkt, dus hoofdletters en de volgorde van de parameters doen er niet toe. Tegen een record dat is opgeslagen als /page?doe&name=john geven ?name=John&Doe, ?Doe&name=John en ?name=john&doe allemaal een 301. Wat wél uitmaakt is welke parameters aanwezig zijn: elke parameter in het opgeslagen pad moet in de aanvraag voorkomen, en er één weglaten geeft een 404 in plaats van een gedeeltelijke match.

Onze laatste waarneming over URLs met parameters is dat Shopify de gegevens die je aanlevert in sommige gevallen herschrijft. Ja, Shopify herschrijft de URL-gegevens die je aanlevert voor sommige parameters.

Hier zijn voorbeelden waarin onze tests dit patroon vonden.

Oorspronkelijke redirectgegevens die Shopify inlas:

/test?name=John&Doe

Shopify herschreef de string zodat ‘doe’ vooraan kwam, en zette het in kleine letters:

/test?doe&name=john

Waarden gaan samen met de sleutels naar kleine letters, dus een redirecttabel die je vergelijkt met het bestand waaruit hij komt, ziet eruit alsof de import de gegevens heeft beschadigd.

Oorspronkelijke redirectgegevens die Shopify inlas:

/user?name=John&age=30&active=true

Shopify herschreef de string zodat de parameters een nieuwe volgorde kregen:

/user?active=true&age=30&name=John

Onze tests wijzen erop dat Shopify de parameters alfabetisch probeert te ordenen. We vroegen ons af of dit een bug was, want we hadden vastgesteld dat Shopify URLs met parameters als letterlijke strings behandelt, dus waarom die regel dan ondermijnen door de parametervolgorde te herschrijven. Op dit moment krijg je URL-strings met meerdere parameterwaarden nooit zover dat ze hun structuur behouden. Dat kan grote gevolgen hebben voor sommige contentmanagementsystemen.

De UX van de URL-redirects van Shopify heeft een update nodig

Tijdens ons intensieve gebruik van de redirecttool van Shopify merkten we dat we sommige onderdelen waardeerden en andere misten.

Deze functies waarderen we:

  • De knoppen en functionaliteit voor bulkimport van redirects
  • Filteren en snel zoeken in de URL-taxonomie
  • Export van URLs
  • Het gemak waarmee je één URL aanmaakt

Deze gegevens en functionaliteit misten we in de tool:

  • Het totale aantal geïmporteerde URLs
  • Een makkelijkere manier om meer dan één URL in het systeem te plakken. Voeg je meer dan één URL tegelijk toe, dan moet je het importdocument gebruiken. Kopiëren en plakken zou bijvoorbeeld handig zijn als een reeks URLs allemaal naar dezelfde bestemming moet wijzen.

Importeren gaat snel, een import terugdraaien niet

Redirects in bulk aanmaken gaat snel. Ze in bulk verwijderen niet, en het verschil is groot genoeg om je planning van een import te veranderen.

Handeling Methode Gemeten
1.051 redirects aanmaken CSV-import, één bestand 48 seconden
1.051 redirects verwijderen urlRedirectDelete, één voor één 226 seconden

De snelle mutaties voor bulkverwijdering zijn afgeschermd. urlRedirectBulkDeleteBySearch, urlRedirectBulkDeleteByIds en urlRedirectBulkDeleteAll vereisen allemaal de scope write_online_store_navigation en een actieve gebruikerssessie. Een app die zich met client credentials authenticeert, en zo draaien de meeste migratiescripts, kan ze niet aanroepen en moet record voor record verwijderen.

Plan je imports alsof ze moeilijk terug te draaien zijn, want dat zijn ze. Valideer het bestand eerst op een developmentwinkel, of importeer in tranches die je bereid bent met de hand af te wikkelen. Duw geen bestand van 50.000 rijen door dat je niet hebt getest, in de veronderstelling dat je het snel kunt terugdraaien.

CSV-import en de Admin API gaan verschillend om met duplicaten

Deze gids is geschreven rond de CSV-workflow, waarin een dubbel pad het bestaande record bijwerkt. De API doet het omgekeerde:

create /existing-path -> /pages/about
(where /existing-path already redirects to /)

REJECTED: "Path has already been taken"

Wie een CSV-workflow overzet naar de Admin API moet het bestaande record opvragen en urlRedirectUpdate aanroepen, of verwijderen en opnieuw aanmaken. Een rechtstreekse overzetting van de importlogica mislukt op elk pad dat al bestaat.

Hoe je je Shopify-redirects test na de livegang

Alles hierboven beschrijft wat Shopify accepteert. Niets daarvan vertelt je of de redirects die je hebt geïmporteerd op de live winkel ook echt werken, en dat is een andere vraag. Een redirect kan schoon importeren, in de admin verschijnen en toch niet doen wat je verwachtte zodra een thema, een app of een proxy in het pad zit.

Test van buiten de winkel in plaats van in een browser rond te klikken, want een browser verbergt precies wat je moet zien: de statuscode. Vraag de oude URL op en lees de responseheaders.

curl -sIL https://yourstore.example/old-product-url

Lees drie dingen in de uitvoer:

  • De statuscode van de eerste stap. Je wilt 301. Een 302 is tijdelijk en geeft waarde anders door, wat uitmaakt als het hele punt een permanente verhuizing is.
  • Het aantal stappen. Elke HTTP/-regel in de uitvoer is één stap. Twee of meer betekent dat je een keten hebt gebouwd, en de oplossing is om de oorspronkelijke bron rechtstreeks op de eindbestemming te richten in plaats van de tussenstap te laten staan.
  • De uiteindelijke status. De laatste regel hoort 200 te zijn. Een redirect die op een 404 eindigt is erger dan helemaal geen redirect, want in je spreadsheet ziet hij er afgehandeld uit.

Test daarna de vormen die je makkelijk vergeet. Draai dezelfde controle op een URL met een trackingparameter om te bevestigen dat de querystring de bestemming haalt, op het hoofddomein naast www, en over gewoon http in plaats van alleen https. Wij hebben precies dit op een live winkel getest en de parameter kwam intact bij het doel aan, maar het punt is dat je het op jouw winkel verifieert in plaats van op een algemeen antwoord te vertrouwen, want een thema of een app kan de uitkomst veranderen.

Eén gedrag dat je moet kennen voordat je in paniek raakt: nadat je een redirect wijzigt of verwijdert, kan een edge node van Shopify het oude antwoord nog ongeveer dertig seconden blijven serveren, terwijl een cachevrije versie van dezelfde URL al het nieuwe teruggeeft. Geef het een minuut en test opnieuw met een unieke querystring erachter voordat je concludeert dat de redirect niet is doorgekomen.

Voor de volledige volgorde rond een migratie in plaats van een enkele redirect, werk je de checklist voor websitemigratie door, die de mapping, de dag van de livegang en de monitoring erna behandelt waar dit in past.


Tot slot

Het systeem dat Shopify heeft voor het beheren van 301-redirects is goed genoeg voor de meeste bedrijven, maar nog niet van enterpriseniveau. We hopen dat ze het na verloop van tijd uitbreiden met wildcardredirects en meer redirectrecords voor hun standaard- en plusplannen. Dat je hun redirectsysteem kunt gebruiken en dat het zoveel URL-formaten ondersteunt, levert ze bij ons een sterke hulpzaamheidsscore op.

Als je een project aanpakt met complexe 301-redirectmappings en een team nodig hebt dat dit specifieke werk dag in dag uit doet, neem contact met ons op.


Changelog

Deze gids werd voor het eerst gepubliceerd op basis van tests van 19 juni 2024 en opnieuw getest op 27 juli 2026 tegen een live Shopify-winkel met standaardplan, via de Admin GraphQL API en tegen live storefrontaanvragen. De meeste oorspronkelijke bevindingen hielden stand. Negen niet. De tekst hierboven beschrijft wat Shopify nu doet, en dit is wat er verschoven is.

Omgekeerd Redirectketens

2024 Shopify voorkomt dat je redirectketens aanmaakt.

2026 De bescherming controleert maar één richting. Het weigert een redirect waarvan de bestemming al de bron van een andere is, maar niet omgekeerd, dus /a naar /b aanmaken en later /b naar /c laat een levende keten van twee stappen achter. Alleen de volgorde van aanmaken bepaalt of er een keten ontstaat.

Omgekeerd De prefix /services

2024 /services werkt als redirect, net als /apps, /carts en /orders.

2026 /services werkt op zichzelf en faalt met elke submap. /services/consulting geeft een 404, ook al wordt het record opgeslagen. Elke andere prefix in die groep werkt wel met submappen.

Gecorrigeerd Waarom sommige redirects worden genegeerd

2024 Vier gereserveerde prefixen worden genegeerd als ze op zichzelf worden gebruikt: /cart, /products, /collections, /collections/all.

2026 De waarnemingen kloppen, de verklaring niet. Een echte storefrontroute wint altijd van een redirect, en dat geldt voor elk live product, elke collectie, elke pagina en elk blogartikel, niet voor een lijstje van vier paden.

Gecorrigeerd Queryparameters

2024 Parameters worden nooit toegevoegd aan de URL die laadt.

2026 Dat geldt alleen voor bronpaden met parameters. Waar het bronpad zelf geen parameters heeft, worden de parameters van de aanvraag doorgegeven aan de bestemming.

Gecorrigeerd Het matchen van parameters

2024 Shopify behandelt URLs met parameters als letterlijke strings.

2026 Beide kanten worden voor de vergelijking genormaliseerd, dus hoofdletters en volgorde doen er niet toe. Alleen de verzameling parameters is strikt, en er één weglaten geeft een 404.

Gecorrigeerd Het herschrijven van parameters

2024 Parameters worden alfabetisch geordend, waarbij /test?name=John&Doe wordt opgeslagen als /test?Doe&name=John.

2026 De alfabetische ordening is bevestigd, en hoofdlettergebruik blijft niet behouden. Hetzelfde pad wordt opgeslagen als /test?doe&name=john, met de waarden samen met de sleutels in kleine letters.

Gecorrigeerd Het puntkommaformaat

2024 Shopify kon een string met een niet-gecodeerde puntkomma na de is-gelijk-operator niet inlezen.

2026 Het leest prima in en slaat de puntkomma op als %3b. De fout ontstaat bij de aanvraag, en de gecodeerde vorm opvragen geeft een 301.

Gecorrigeerd De grootte van een importbatch

2024 Importeer 1.000 rijen tegelijk.

2026 Dat is geen plafond. Eén bestand van 1.051 rijen werd zonder enige mislukking in 48 seconden geïmporteerd. Batches blijven goede praktijk, omdat kleinere bestanden leesbaarder mislukken.

Uitgebreid Wildcards

2024 Shopify ondersteunt geen wildcardredirects.

2026 Nog steeds waar, en het accepteert de syntaxis zonder enige foutmelding. Het sterretje wordt als letterlijk teken opgeslagen, dus niets wijst op de fout tot het verkeer 404s begint te geven.

Toegevoegd Een import terugdraaien

2026 1.051 redirects aanmaken kostte 48 seconden. Diezelfde 1.051 verwijderen kostte 226 seconden, omdat de mutaties voor bulkverwijdering een actieve gebruikerssessie vereisen en een token uit een script ze niet kan aanroepen.

Toegevoegd Duplicaten in de API en in CSV

2026 Een CSV-import werkt een pad bij dat al bestaat. De Admin API weigert het met Path has already been taken, dus een rechtstreekse overzetting van importlogica mislukt op elk bestaand pad.

Standgehouden Opnieuw getest en ongewijzigd

Elke redirect geeft een 301 terug. De padlimiet van 1.024 tekens is inclusief de schuine streep vooraan, met 1.027 geweigerd en 1.015 geaccepteerd. Hoofdlettergebruik wordt genormaliseerd en kleine letters krijgen voorrang. De bulkimport haalt het protocol en het domein weg zodat er een relatief pad overblijft, terwijl het bestemmingsveld een absolute externe URL intact laat. Een edge node kan na een wijziging nog ongeveer dertig seconden een verouderd antwoord serveren.

De recordlimieten, 100.000 op standaardplannen en 20.000.000 op Plus, zijn niet opnieuw gedraaid. Ze bereiken is mechanisch mogelijk nu de importpijplijn gemeten is, maar verwijderen gaat met ongeveer 280 records per minuut zonder scriptbare bulkactie om het terug te draaien, dus het bevestigen van een gedocumenteerd getal zou een live winkel zes uur of langer met rommelredirects laten zitten.

Veelgestelde vragen

Voor wie is de kennisbank van WISLR over URL-redirects in Shopify bedoeld?

Onze kennisbank helpt vooral merken en bureaus die een sitemigratie naar Shopify uitvoeren. Hij is extra waardevol voor kleine teams die elk uur moeten laten tellen, en helpt klanten om tot 100.000 URL-redirects efficiënt te koppelen en af te ronden.

Heeft Shopify een officieel supportdocument voor URL-redirects?

Ja, Shopify onderhoudt een officieel helpdocument voor URL-redirects op help.shopify.com. Het geeft algemene richtlijnen voor het toevoegen van losse en bulk-301-redirects, en onze gids vult dat aan met gedetailleerde specificaties over URL-typen en platformlimieten.

Welke URL-strings ondersteunt Shopify niet?

Shopify kent maar één URL-stringformaat dat niet werkt: strings met een niet-gecodeerde puntkomma na de is-gelijk-operator (bijvoorbeeld /page?param=;semicolon). Alle andere URL-formaten, inclusief gecodeerde puntkomma’s en puntkomma’s op andere posities, worden ondersteund.

Ondersteunt Shopify redirects met wildcards of regex?

Nee, Shopify ondersteunt op dit moment geen wildcardredirects of regexpatronen in het native redirectsysteem. Die beperking geldt zowel voor standaard Shopify- als voor Shopify Plus-winkels.

Wat zijn wildcardredirects?

Met wildcardredirects kun je meerdere URLs die aan een bepaald patroon voldoen naar één bestemming sturen. Bijvoorbeeld alle URLs onder /blog/* naar /articles/*. Deze functie wordt vaak gevraagd, maar zit op dit moment niet in de native functionaliteit van Shopify.

Kan Shopify het ontstaan van redirectketens voorkomen?

Ja, Shopify heeft ingebouwde beschermingen tegen redirectketens. Het systeem staat je niet toe een redirect te maken naar een URL die al ergens anders naartoe wordt doorverwezen.

Wat zijn redirectketens?

Redirectketens ontstaan wanneer URLs via meerdere stappen doorverwijzen voordat ze de uiteindelijke bestemming bereiken (bijvoorbeeld A→B→C). Zulke ketens kunnen het laden van pagina’s vertragen en de SEO-prestaties schaden. Het systeem van Shopify helpt ze van nature te voorkomen.

Is het makkelijk om URL-redirects aan te maken en bij te werken op Shopify?

Ja, Shopify biedt twee eenvoudige methodes: losse redirects aanmaken via de interface en bulkimport via een CSV-bestand. Beide methodes ondersteunen relatieve en absolute URL-paden.

Hoe maak je URL-redirects in bulk aan in Shopify?

Redirects in bulk maak je aan met de CSV-importtool van Shopify. We raden batches van 1.000 aan, omdat het controleren en beheren van fouten dan makkelijker gaat. Een sjabloon voor de import vind je hier.

Kent Shopify een maximum aan het aantal URL-redirectrecords?

Ja. Standaardplannen van Shopify zijn beperkt tot 100.000 URL-redirects, terwijl Shopify Plus-winkels tot 20.000.000 redirects aankunnen. Deze limieten liggen vast en kunnen niet worden verhoogd.

Kent Shopify limieten aan het aantal tekens in een redirect?

Ja, Shopify hanteert een limiet van 1.024 tekens voor redirectstrings, inclusief de schuine streep vooraan (’/’). URLs die langer zijn worden door het systeem niet geaccepteerd.

Bestaat er een tool om URLs op compatibiliteit met Shopify te valideren?

Shopify biedt geen officiële validatietool, maar uit onze uitgebreide tests blijkt dat 99% van de standaard URL-formaten wordt ondersteund. Het belangrijkste aandachtspunt is de limiet van 1.024 tekens en het vermijden van niet-gecodeerde puntkomma’s na de is-gelijk-operator.

FAQs

Hoe test je URL-redirects na een migratie naar Shopify?

Test van buiten de winkel met een aanvraag die je de statuscode laat zien, niet door in een browser rond te klikken. Voer curl -sIL uit tegen de oude URL en controleer drie dingen: dat de eerste stap een 301 teruggeeft en geen 302, dat er maar één stap is en geen keten, en dat het laatste antwoord een 200 is en geen 404. Herhaal de controle daarna op de vormen die mensen vergeten: een URL met een trackingparameter om te bevestigen dat de querystring overleeft, het hoofddomein naast www, en gewoon http naast https. Een eigenaardigheid die het weten waard is: nadat je een redirect wijzigt of verwijdert, kan een edge node van Shopify het oude antwoord nog ongeveer dertig seconden serveren, dus wacht een minuut en test opnieuw met een unieke querystring erachter voordat je concludeert dat het mislukt is.

Voor wie is de kennisbank van WISLR over URL-redirects in Shopify bedoeld?

Onze kennisbank helpt vooral merken en bureaus die een sitemigratie naar Shopify uitvoeren. Hij is extra waardevol voor kleine teams die elk uur moeten laten tellen, en helpt klanten om tot 100.000 URL-redirects efficiënt te koppelen en af te ronden.

Heeft Shopify een officieel supportdocument voor URL-redirects?

Ja, Shopify onderhoudt een officieel helpdocument voor URL-redirects op help.shopify.com. Het geeft algemene richtlijnen voor het toevoegen van losse en bulk-301-redirects, en onze gids vult dat aan met gedetailleerde specificaties over URL-typen en platformlimieten.

Welke URL-strings ondersteunt Shopify niet?

Eén, en de fout zit aan de aanvraagkant en niet aan de importkant. Een pad met een niet-gecodeerde puntkomma na de is-gelijk-operator, zoals /page?param=;semicolon, wordt geaccepteerd en opgeslagen met de puntkomma percent-gecodeerd als %3b. Een binnenkomende URL met de rauwe puntkomma komt nooit overeen met dat opgeslagen record en geeft dus een 404, terwijl een aanvraag voor de gecodeerde vorm gewoon een 301 teruggeeft. Waar je de inkomende links zelf beheert, lost percent-codering van de puntkomma het op. Waar de rauwe puntkomma binnenkomt via links die je niet beheert, is dit formaat niet betrouwbaar te redirecten. Alle andere URL-formaten, ook puntkomma's op andere posities, worden ondersteund.

Ondersteunt Shopify redirects met wildcards of regex?

Nee, niet op standaard Shopify en niet op Shopify Plus, en het detail dat mensen verkeer kost is dat Shopify wildcardsyntaxis zonder enige foutmelding accepteert. Een record dat je aanmaakt als /old-blog/* wordt opgeslagen, verschijnt in de redirecttabel en meldt niets verkeerds. Het sterretje wordt als letterlijk teken opgeslagen, dus de enige URL waar het ooit op zal matchen is een URL die letterlijk een sterretje bevat. Niets wijst op de fout tot echt verkeer 404s begint terug te geven, dus werk wildcards uit tot expliciete paden voordat je importeert.

Wat zijn wildcardredirects?

Met wildcardredirects kun je meerdere URLs die aan een bepaald patroon voldoen naar één bestemming sturen. Bijvoorbeeld alle URLs onder /blog/* naar /articles/*. Deze functie wordt vaak gevraagd, maar zit op dit moment niet in de native functionaliteit van Shopify.

Kan Shopify het ontstaan van redirectketens voorkomen?

Deels, en de grens daarvan doet ertoe. Shopify weigert een redirect waarvan de bestemming al de bron van een andere redirect is, en het weigert een redirect die naar zichzelf wijst. De omgekeerde richting controleert het niet. Maak /a naar /b aan terwijl er niets op /b bestaat, maak later /b naar /c aan, en beide worden geaccepteerd, wat een levende keten van twee stappen achterlaat die Shopify nooit opnieuw bekijkt. Alleen de volgorde van aanmaken bepaalt of er een keten ontstaat, en bulkimports passen rijen toe in de volgorde van het bestand. Vraag na een grote import een steekproef van je redirects op en tel de stappen met curl -sIL in plaats van aan te nemen dat de bescherming alles heeft opgevangen.

Wat zijn redirectketens?

Redirectketens ontstaan wanneer URLs via meerdere stappen doorverwijzen voordat ze de uiteindelijke bestemming bereiken (bijvoorbeeld A→B→C). Zulke ketens kunnen het laden van pagina's vertragen en de SEO-prestaties schaden. Het systeem van Shopify helpt ze van nature te voorkomen.

Is het makkelijk om URL-redirects aan te maken en bij te werken op Shopify?

Ja, Shopify biedt twee eenvoudige methodes: losse redirects aanmaken via de interface en bulkimport via een CSV-bestand. Beide methodes ondersteunen relatieve en absolute URL-paden.

Hoe maak je URL-redirects in bulk aan in Shopify?

Via de CSV-importtool van Shopify. Er is geen plafond van 1.000 rijen: één bestand van 1.051 rijen werd zonder enige mislukking in 48 seconden geïmporteerd, ruwweg 1.300 rijen per minuut. Batches van rond de 1.000 blijven de moeite waard, omdat kleinere bestanden leesbaarder mislukken en je na elk bestand createdCount, updatedCount en failedCount kunt nalezen. Een failedCount boven nul is het enige signaal dat er rijen zijn weggevallen. Shopify biedt een sjabloon voor de import.

Kent Shopify een maximum aan het aantal URL-redirectrecords?

Ja. Standaardplannen van Shopify zijn beperkt tot 100.000 URL-redirects, terwijl Shopify Plus-winkels tot 20.000.000 redirects aankunnen. Deze limieten liggen vast en kunnen niet worden verhoogd.

Kent Shopify limieten aan het aantal tekens in een redirect?

Ja, Shopify hanteert een limiet van 1.024 tekens voor redirectstrings, inclusief de schuine streep vooraan ('/'). URLs die langer zijn worden door het systeem niet geaccepteerd.

Bestaat er een tool om URLs op compatibiliteit met Shopify te valideren?

Shopify biedt geen officiële validatietool, maar uit onze uitgebreide tests blijkt dat 99% van de standaard URL-formaten wordt ondersteund. Het belangrijkste aandachtspunt is de limiet van 1.024 tekens en het vermijden van niet-gecodeerde puntkomma's na de is-gelijk-operator.