Una documentazione di aiuto migliore
Scritta e mantenuta per i brand e le agenzie che stanno affrontando una migrazione di sito. Soprattutto se siete un team piccolo che deve far rendere ogni ora. Questa guida ti aiuta a costruire una strategia per completare i reindirizzamenti 301 in modo accurato se stai migrando su Shopify. Nello specifico, questo documento può esserti utile se stai:
- Migrando da Wordpress
- Migrando da Magento
- Migrando da Salesforce
- Migrando da Sitecore
- Migrando da BigCommerce
- Migrando da Webflow
- Migrando da un sito PHP fatto in casa
Se stai affrontando un progetto che comprende mappature complesse di reindirizzamenti 301 e ti serve un team che vive e respira questo tipo specifico di lavoro, contattaci.
La logica dei reindirizzamenti URL di Shopify: panoramica
La documentazione di aiuto ufficiale di Shopify sui reindirizzamenti URL si trova qui. È un documento snello, con linee guida generali che chi gestisce un negozio Shopify può consultare per aggiungere reindirizzamenti 301 singoli e massivi. Mancano i dettagli sui tipi di URL che un negozio Shopify supporta in modo nativo, e questo report vuole colmare quelle lacune.
Riepilogo dei risultati sulle funzionalità di reindirizzamento URL di Shopify
- La logica dei reindirizzamenti URL di Shopify è molto solida.
- Dal nostro test su 100 formati di stringa URL diversi, Shopify ha supportato a livello funzionale 99 tipi su 100.
- Una rotta reale della vetrina batte sempre un reindirizzamento, in silenzio.
- Il sistema nativo non supporta i caratteri jolly per i reindirizzamenti URL.
- Aggiornare i percorsi di reindirizzamento esistenti è stato facile con lo strumento di importazione, purché si seguano le regole non documentate di Shopify
- Esistono limiti al numero totale di reindirizzamenti che i negozi Shopify e Shopify Plus gestiscono.
- Esistono limiti al numero totale di caratteri di una stringa di reindirizzamento URL.
- La prevenzione delle catene è parziale. Shopify blocca una sola direzione, e l’ordine di creazione può comunque lasciare una catena viva.
- Esistono molte eccezioni e molte regole per gli URL con parametri.
- L’interfaccia per la gestione dei reindirizzamenti URL è semplice da usare, ma trarrebbe beneficio da più dettagli.
- I test non hanno esaminato le opzioni di reindirizzamento disponibili per Hydrogen e Oxygen.
- Diamo all’attuale sistema di reindirizzamenti URL di Shopify un punteggio di utilità dell'85%.
Il punteggio è stato abbassato del 5% per l’assenza di supporto ai caratteri jolly, dell'1% per l’unico tipo di stringa URL che non ha supportato, del 2% per i limiti di lunghezza in caratteri degli URL, del 3% per il comportamento strano con gli URL parametrizzati e del 4% per le informazioni essenziali di gestione dei dati che mancano nella UX dei reindirizzamenti.
Testato per la prima volta il 19 giugno 2024. Ritestato il 27 luglio 2026 contro un negozio Shopify reale con piano standard, tramite la Admin GraphQL API e contro richieste reali alla vetrina. Che cosa è cambiato tra le due tornate è elencato nel changelog.
La nostra metodologia di test dei reindirizzamenti
Volevamo rispondere ad alcune domande con i nostri test, per aiutare a evitare le trappole delle regole dei reindirizzamenti 301 di Shopify:
- Quali caratteri o combinazioni di stringhe non sono supportati dal sistema di reindirizzamenti URL?
- Esistono limiti alla lunghezza della stringa URL?
- Esiste un numero massimo di record per le importazioni massive?
- Il sistema supporta i reindirizzamenti con carattere jolly?
- Esiste una formattazione o una conversione automatica delle stringhe dopo l’importazione che cambia i dati originali?
Come riferimento, ecco la nostra lista completa di URL che abbiamo usato per testare queste diverse condizioni. I test sono stati condotti su un piano standard di Shopify (non su Shopify Plus).
11 risultati che ti aiutano con i reindirizzamenti di Shopify
Shopify non va d’accordo con questi tipi di stringa URL
Un solo formato di stringa sui cento che abbiamo testato non si può reindirizzare in modo affidabile. Shopify accetta il record e lo salva, ma un browser che lo richiede riceve un 404. È una stringa che porta un punto e virgola dopo l’operatore uguale, come:
/page?param=;semicolon
Quello che è degno di nota in questa stringa è che il sistema di Shopify converte il carattere speciale punto e virgola nel suo valore codificato per URL, come segue nella tabella dei reindirizzamenti:
/page?param=%3Bsemicolon
Quando inserisci la stringa URL non codificata nella barra degli indirizzi di un browser, restituisce un errore 404.
/page?param=;semicolon
/page?param=%3Bsemicolon
Questo comportamento si discosta dalla gestione degli altri caratteri speciali. Se una stringa URL con caratteri non codificati viene inserita nella barra degli indirizzi, per esempio il carattere parentesi graffa chiusa:
/page?param=}
Shopify la codifica automaticamente quando riceve la richiesta dell’URL e non si verifica alcun errore 404.
/page%7Drightbrace
Ancora degno di nota, altre varianti di una stringa URL con un punto e virgola non codificato vengono validate dal sistema di reindirizzamenti di Shopify, come:
/page;semicolon
Il 404 scatta solo quando un punto e virgola non codificato compare dopo l’operatore uguale, e l’errore si verifica al momento della richiesta e non durante l’importazione. Shopify salva il record con il punto e virgola codificato come %3b, e un URL in arrivo che porta il punto e virgola grezzo non corrisponde mai al record codificato. Richiedere la forma codificata restituisce un 301 come sempre, quindi dove controlli i link in entrata la codifica del punto e virgola risolve il problema. Dove il punto e virgola grezzo arriva da link esterni che non controlli, questo formato non si può reindirizzare in modo affidabile.
Nessun supporto ai reindirizzamenti con carattere jolly da parte di Shopify
I reindirizzamenti con carattere jolly sono ancora nella lista dei desideri di molti utenti Shopify. I forum di supporto sono pieni di richieste per questa funzione. A oggi Shopify è rimasta in silenzio su dove questa si collocherebbe nella roadmap di prodotto.
Per il momento, chi possiede un sito e sta pianificando uno spostamento su Shopify dovrebbe sapere che Shopify e Shopify Plus nativi non offrono questa opzione.
Che cosa sono i reindirizzamenti con carattere jolly?
I reindirizzamenti con carattere jolly sono un tipo di reindirizzamento URL che ti permette di reindirizzare più URL corrispondenti a uno schema preciso verso un’unica destinazione. È particolarmente utile quando migri un sito, riorganizzi i contenuti o gestisci grandi quantità di URL simili. Invece di impostare reindirizzamenti singoli per ogni URL, usi un carattere jolly (di solito *) per rappresentare qualsiasi sequenza di caratteri.
Supponiamo che tu stia ristrutturando il tuo blog e spostando tutti i post dalla directory /blog/ a /articles/. Invece di impostare reindirizzamenti singoli per ogni articolo, puoi usare un reindirizzamento con carattere jolly:
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
Questo semplifica il processo di reindirizzamento e garantisce che tutti gli URL sotto /blog/ vengano reindirizzati senza intoppi alla loro nuova posizione sotto /articles/. I negozi predefiniti Shopify e Shopify Plus non includono questa capacità senza il supporto di un’app.
La parte che costa traffico è che Shopify accetta la sintassi con carattere jolly senza protestare. Un record creato come /old-blog/* viene salvato, compare nella tabella dei reindirizzamenti e non riporta alcun errore. L’asterisco viene memorizzato come carattere letterale, quindi l’unico URL con cui corrisponderà è uno che contiene letteralmente un asterisco. È peggio di un rifiuto netto, perché niente segnala l’errore finché il traffico reale non inizia a restituire 404. Espandi in percorsi espliciti tutti i caratteri jolly presenti nel tuo file di reindirizzamenti prima di importarlo.
Shopify fa del suo meglio per evitare di creare catene di reindirizzamenti
Shopify ha una protezione contro le catene, e conviene capirne i limiti prima di fidarsene. Rifiuta un reindirizzamento la cui destinazione è già l’origine di un altro reindirizzamento, con Target can't redirect to another redirect. Rifiuta un reindirizzamento che punta a sé stesso, con Target can't be the same as path, e blocca i loop diretti fra due URL.
In questo test i record URL che abbiamo provato a creare erano i seguenti, e non sono stati permessi:
/BOTH redirects to /SHORT/SHORT redirects to /homepage
Quello che la protezione non fa è controllare il verso opposto. Crea /a verso /b mentre su /b non esiste nulla, poi più tardi crea /b verso /c, e vengono accettati entrambi. Shopify non rivede mai il primo record, e ti ritrovi con una catena viva:
GET /a
301 to /b
301 to /
final: 200, 2 hops
È solo l’ordine di creazione a decidere se si forma una catena. Le importazioni massive applicano le righe nell’ordine del file, e i file di migrazione sono raramente ordinati per evitarlo, quindi la protezione non è qualcosa su cui costruire un piano. Dopo ogni grande importazione, campiona i tuoi reindirizzamenti e conta i salti:
curl -sIL https://yourstore.com/old-path -o /dev/null -w "hops: %{num_redirects}
"
Qualsiasi valore superiore a 1 è una catena.
Che cosa sono le catene di reindirizzamenti?
Le catene di reindirizzamenti si verificano quando un URL viene reindirizzato a un altro URL, che a sua volta reindirizza a un altro URL ancora, creando una sequenza o “catena” di reindirizzamenti. Può succedere involontariamente quando si impostano più reindirizzamenti nel tempo senza una gestione adeguata.
Le catene di reindirizzamenti sono problematiche perché possono rallentare i tempi di caricamento delle pagine, incidere negativamente sulla SEO e creare un’esperienza utente scadente. Ogni reindirizzamento aggiuntivo aggiunge latenza, perché il browser deve seguire ogni passaggio della catena prima di arrivare alla destinazione finale.
Per esempio, se hai impostato questi reindirizzamenti:
/old-page redirects to /new-page
/new-page redirects to /latest-page
Quando una persona visita /old-page, viene prima reindirizzata a /new-page e subito dopo di nuovo a /latest-page, con il risultato di una catena di reindirizzamenti.
Nuove regole da seguire quando imposti i reindirizzamenti su Shopify
La nostra scoperta più grande nei test è che la documentazione di Shopify non è aggiornata, e che la regola sottostante è più semplice della lista documentata di prefissi riservati.
Una rotta reale della vetrina batte sempre un reindirizzamento. Dove una pagina esiste davvero a un URL, Shopify serve la pagina e ignora il reindirizzamento. Il record viene accettato, resta nella tua tabella dei reindirizzamenti e non fa nulla. Nessun errore, nessun avviso. La variabile non è il prefisso. È l’esistenza di una rotta:
/products/ai-skillset-package-001 -> 200, the product page
/products/zz20260727 -> 301, the redirect fires
Stesso prefisso, esito opposto. Questo riguarda ogni prodotto, collezione, pagina e articolo del blog vivo sul tuo negozio, non solo i quattro percorsi documentati da Shopify. Un reindirizzamento su un URL di prodotto pubblicato è inerte finché quel prodotto non smette di rispondere, il che rende importante la sequenza durante una migrazione: prima togli dalla pubblicazione o cancella la vecchia risorsa, poi conferma che il reindirizzamento scatta.
Secondo Shopify, se provi a reindirizzare qualcosa che inizia con questi prefissi riservati, le tue regole di reindirizzamento non verranno create:
/apps
/application
/cart
/carts
/orders
/services
/products
/collections
/collections/all
Abbiamo scoperto che non è vero.
/apps/application/carts/orders/services/cart/people
Cart è stata l'eccezione. È riservato da solo, e funziona quando lo segue una sottodirectory.
/cart/products/collections/collections/all
/cart/people/carts/people/products/people/collections/people
/cart/products/collections/collections/all
/services è l’eccezione di questo gruppo, e si comporta al contrario rispetto agli altri. Un reindirizzamento su /services stesso restituisce un 301. Un reindirizzamento su qualsiasi cosa sotto di esso, come /services/consulting, restituisce un 404 anche se il record viene salvato senza proteste. Lo abbiamo ritestato quattro volte nell’arco di circa 45 secondi per escludere un ritardo di propagazione, con il record presente nella tabella per tutto il tempo. Ogni altro prefisso di questo gruppo ha funzionato con le sottodirectory.
La causa probabile è che Shopify instradi /services/* internamente per i proxy delle app e per gli endpoint di sistema, così quelle richieste non arrivano mai alla tabella dei reindirizzamenti, anche se non abbiamo verificato il meccanismo in modo diretto. Se stai migrando un sito con una sezione /services/, nessuno di quei reindirizzamenti scatterà. Rimappali su una struttura di percorsi diversa, oppure gestiscili a livello di DNS o di proxy.
Creare e aggiornare i reindirizzamenti URL è facile su Shopify
La creazione di un nuovo reindirizzamento è semplice su Shopify. Offrono due opzioni:
- Creazione di reindirizzamenti URL singoli, uno alla volta
- Creazione massiva di reindirizzamenti, tramite un file CSV: ecco l’ultimo modello per quell’importazione.
Quando si aggiungono URL al sistema di Shopify, si possono inserire percorsi URL relativi, senza dominio di primo livello, per l’origine (from) e percorsi URL assoluti o relativi nella destinazione (to). Esempio:
/example_product.php
Creare reindirizzamenti URL singoli
Le regole di reindirizzamento che Shopify ha in piedi non ti permettono di creare due volte lo stesso reindirizzamento URL quando usi l’interfaccia per il reindirizzamento singolo.
Una volta che un URL è nell’elenco della tabella ‘Redirect from’, se provi ad aggiungerlo di nuovo ricevi un errore.
Se vuoi aggiornare il singolo record URL, devi trovarlo nella tabella dei reindirizzamenti, oppure usare il metodo dell’importazione massiva. Se un URL che esiste già viene incluso in un file di importazione massiva, il campo ‘Redirect to’ del record verrà aggiornato con il valore del file CSV.
Il nostro consiglio è di importare sempre i reindirizzamenti in lotti gestibili ed efficienti. Per esempio, se hai 10.000 reindirizzamenti URL, importane 1.000 alla volta e controllali se hai tempo. È meglio scovare gli errori in insiemi di dati piccoli che andarli a caccia in quelli grandi.
Sii attento con i reindirizzamenti URL massivi su Shopify
Per creare reindirizzamenti massivi, popola il file CSV con le intestazioni che Shopify richiede, crea le mappature 1:1 e assicurati che tutti gli URL siano formattati come percorsi relativi. Se crei un file con percorsi assoluti nel campo ‘Redirect from’ o in quello ‘Redirect to’, Shopify prenderà l’iniziativa da sola. Ecco alcuni scenari:
https://www.wislr.com/path/to/resource%20with
/path/to/resource%20with
www.wislr.com/unicode/test?value=%E2%9C%93%20co.wislr.com/mix/of%20encoded
/www.wislr.com/unicode/test?value=%E2%9C%93%20/co.wislr.com/mix/of%20encoded
wislr.com/nested/directory/structure?param1=value1
/wislr.com/nested/directory/structure?param1=value1
La lezione è di ricontrollare il tuo file di importazione prima di usarlo. Altrimenti creerai regole di reindirizzamento URL che non funzionano come ti serve.
Se un record di reindirizzamento esiste già nella tabella e gli stessi valori sono inclusi nel file di importazione, Shopify aggiornerà il record con i dati più recenti del file di importazione. A nostro parere è estremamente utile, purché tu voglia che quel record si aggiorni. Un motivo in più per ricontrollare i dati.
Shopify non impone un tetto di righe per file. Una singola importazione da 1.051 righe è andata a buon fine senza alcun errore in 48 secondi, che corrispondono a circa 1.300 righe al minuto.
I lotti da circa 1.000 restano comunque utili, per una ragione diversa da un limite rigido. I file più piccoli falliscono in modo più leggibile. Se un’importazione da 20.000 righe va storta hai molta meno idea di quali righe l’abbiano causata rispetto a quando hai lanciato venti file e osservato i conteggi. Leggi createdCount, updatedCount e failedCount dopo ogni importazione, perché un failedCount diverso da zero è l’unico segnale che ricevi del fatto che alcune righe sono state scartate.
Un percorso già presente nella tabella dei reindirizzamenti si vede sovrascrivere la destinazione e viene riportato sotto updatedCount, mantenendo l’id originale del record. Questo rende sicuro rilanciare un’importazione CSV, il che è utile a metà migrazione. Significa anche che un file datato sovrascriverà in silenzio le correzioni fatte a mano dopo l’ultima importazione.
Facci costruire la mappa dei reindirizzamenti.
Abbiamo mappato reindirizzamenti in più di 100 migrazioni, compreso uno spostamento di 27.000 URL su Shopify Plus. Costruiamo il file e lo validiamo contro ogni limite di questa pagina prima che venga importato. Dopo il passaggio leggiamo noi stessi le risposte reali invece di fidarci di quello che dice la tabella dei reindirizzamenti.
Il limite di Shopify sui record di reindirizzamento URL
Tutte le cose belle hanno il loro limite, e le regole di reindirizzamento di Shopify non fanno eccezione. Ci sono due soglie per i reindirizzamenti URL.
Piani Shopify (non Plus):
Massimo 100.000 reindirizzamenti URL
Piani Shopify Plus:
Massimo 20.000.000 di reindirizzamenti
Non abbiamo testato questi limiti, sarebbe stato folle! Sono le specifiche attualmente documentate per la piattaforma. Tienile a mente mentre pianifichi i tuoi reindirizzamenti e dai priorità agli URL migliori per traffico e fatturato. Per quanto ne sappiamo Shopify non alza questi limiti, nonostante le suppliche costanti sui forum di supporto.
Il limite di Shopify sui caratteri negli URL
È qui che le cose si fanno interessanti con il sistema di reindirizzamenti di Shopify. Le linee guida ufficiali di Shopify non specificano limiti rigidi di caratteri.
Per validare i limiti di caratteri di un URL per un reindirizzamento abbiamo prima costruito e provato a importare stringhe molto lunghe. Abbiamo iniziato con un URL lungo 2.000 caratteri, dato che i browser gestiscono richieste URI fino a 2.083 caratteri di lunghezza. Eccola qui in tutta la sua bellezza:
/2000aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBcccccccccccccccccccccccccccccccccccccccccccccccccccDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
Il nostro metodo iniziale è stato importare un URL da 2.000 caratteri usando il modello di reindirizzamento massivo, ed è lì che sono scattati gli allarmi di Shopify. La soglia che abbiamo scoperto ufficialmente è un limite di 1.024 caratteri per le stringhe di reindirizzamento URL, compreso il prefisso della barra ‘/’.
- Passed URL da 300 caratteri
- Passed URL da 600 caratteri
- Passed URL da 1.000 caratteri
- Failed URL da 2.000 caratteri
Alcune regole di reindirizzamento importanti e non documentate da capire su Shopify
Shopify normalizza i caratteri alfabetici nelle tue stringhe URL. Significa che, che tu inserisca una lettera maiuscola o minuscola, servirà allo stesso modo la richiesta URL per quei diversi schemi. Gli URL seguenti andranno tutti alla stessa pagina, anche se esistono record singoli:
/CASE/TEST.html
/case/test.html
/Case/Test.html
La stringa in minuscolo avrà la priorità sulle altre:
/case/test.html
Nei nostri test, anche se esistono due record univoci per “Redirect from” con valori diversi per “Redirect to”, la pagina /about.html verrà sempre servita per entrambi i record:
#1
/Case/Test.html [redirect to] /homepage
#2
/case/test.html [redirect to] /about.html
È curioso e potenzialmente irritante che Shopify ti permetta di inserire tutti questi valori univoci nella tabella dei reindirizzamenti e ne serva solo uno. Ti consigliamo di rivedere i tuoi dati con attenzione, se pensi che la tua tassonomia di URL possa rientrare in questi schemi, prima di importarli su Shopify.
Puoi usare percorsi URL assoluti per i reindirizzamenti di Shopify
I percorsi URL assoluti per i tuoi reindirizzamenti vanno bene, ha rilevato il nostro test, se sono nel campo “Redirects to”. Possono puntare a qualsiasi URL tu voglia. Ecco un esempio in cui un percorso URL reindirizza a un profilo LinkedIn quando viene richiesto:
[Redirect from]
/Case/Test.html
[Redirect to]
https://www.linkedin.com/wislr
Inoltre, nel campo “Redirect to” Shopify non rimuove i domini di primo livello, nemmeno se sono del tuo stesso negozio Shopify.
URL con parametri
Nei nostri test Shopify ha preservato gli URL con parametri, con qualche eccezione. Se hai URL che sono stati indicizzati con molte stringhe URL parametrizzate univoche, quelle stringhe univoche si possono aggiungere alle tabelle dei reindirizzamenti di Shopify e portare a destinazioni univoche. Abbiamo fatto questo test con una tassonomia comune per questo tipo di URL, i parametri UTM. Per esempio:
Questa stringa URL è nel campo “Redirect from” della tabella dei reindirizzamenti ed è arrivata alla destinazione prevista:
/how-is-pkl?utm_campaign=301s+in+2024&utm_content=blue&utm_id=3012024&utm_medium=display&utm_source=google&utm_term=redirects
Abbiamo modificato la stringa URL e rimosso l’ultimo parametro ‘&utm_term=redirects’, il che ha prodotto un 404:
/how-is-pkl?utm_campaign=301s+in+2024&utm_content=blue&utm_id=3012024&utm_medium=display&utm_source=google
Questo comportamento è stato riprodotto in altri test con parametri diversi come valori, il che ha confermato che Shopify tratta gli URL parametrizzati come stringhe letterali. Non riducono l’URL fino all’URL di base se togli un parametro da un URL di reindirizzamento, purché l’URL non esista sul sito Shopify.
Per confermarlo ulteriormente abbiamo puntato un URL a sé stesso, cosa che Shopify per impostazione predefinita non permette. Ricevi questo messaggio:
Questa voce è permessa quando i parametri sono nel campo “Redirect from”. Non costituisce un loop di reindirizzamento, ma in base al comportamento nel browser il nostro test ha mostrato che Shopify ignora questo record. Quando l’URL di “Redirect from” viene richiesto, Shopify serve la stringa URL parametrizzata completa, non la pagina radice come ci si aspetterebbe dalla tabella:
Questa voce è permessa ma Shopify non accoderà i parametri alla pagina che si carica, come la regola prevede. Verrà caricato solo l’URL radice.
Questo vale per i percorsi di origine parametrizzati. Dove il percorso di origine del reindirizzamento non porta parametri propri, tutto quello che arriva con la richiesta viene portato fino alla destinazione:
GET /old-page -> 301 to /new-page
GET /old-page?utm_source=x -> 301 to /new-page?utm_source=x
I reindirizzamenti non toglieranno i parametri al posto tuo. La loro rimozione deve avvenire in uno strato sopra Shopify.
Nemmeno la corrispondenza è un confronto letterale fra stringhe. Shopify normalizza sia il record salvato sia la richiesta in arrivo prima di confrontarli, quindi maiuscole e ordine dei parametri non contano. Contro un record salvato come /page?doe&name=john, tutte le forme ?name=John&Doe, ?Doe&name=John e ?name=john&doe restituiscono un 301. Quello che conta è quali parametri sono presenti: ogni parametro del percorso salvato deve comparire nella richiesta, e togliendone uno si ottiene un 404 invece di una corrispondenza parziale.
La nostra ultima osservazione sugli URL con parametri è che Shopify riscrive i dati che gli dai in alcuni casi. Sì, Shopify riscriverà i dati URL che gli dai per alcuni parametri.
Ecco esempi in cui i nostri test hanno trovato questo schema.
Dati di reindirizzamento originali acquisiti da Shopify:
/test?name=John&Doe
Shopify ha riscritto la stringa mettendo ‘doe’ per primo e portandolo in minuscolo:
/test?doe&name=john
I valori vengono portati in minuscolo insieme alle chiavi, quindi una tabella dei reindirizzamenti confrontata con il file da cui proviene sembrerà che l’importazione abbia corrotto i dati.
Dati di reindirizzamento originali acquisiti da Shopify:
/user?name=John&age=30&active=true
Shopify ha riscritto la stringa dando un nuovo ordine ai parametri elencati:
/user?active=true&age=30&name=John
I test che abbiamo eseguito suggeriscono che Shopify stia cercando di mettere i parametri in ordine alfabetico. Ci siamo chiesti se fosse un bug, dato che abbiamo stabilito che Shopify tratta gli URL parametrizzati come stringhe letterali, quindi perché minare quella regola riscrivendo l’ordine dei parametri. Oggi non riuscirai mai a far conservare la struttura alle stringhe URL con più valori di parametro. Questo può avere grosse implicazioni per alcuni sistemi di gestione dei contenuti.
Serve un aggiornamento alla UX dei reindirizzamenti URL di Shopify
Durante il nostro uso intensivo dello strumento di reindirizzamento di Shopify, ci siamo trovati ad apprezzare alcuni elementi e a sentirne mancare altri.
Apprezziamo queste funzioni:
- Pulsanti e funzionalità per l’importazione massiva dei reindirizzamenti
- Filtri e ricerca veloce per la tassonomia degli URL
- Esportazione degli URL
- Facilità nel creare un singolo URL
Abbiamo trovato che allo strumento mancano questi dati e queste funzionalità:
- Conteggio totale degli URL importati
- Un modo più semplice di copiare e incollare più di un URL nel sistema. Se aggiungi più di un URL alla volta, devi usare il documento di importazione. Un caso d’uso in cui il copia e incolla sarebbe utile è quando un insieme di URL deve puntare tutto alla stessa destinazione.
Importare è veloce, disfare un’importazione no
Creare reindirizzamenti in blocco è rapido. Rimuoverli in blocco no, e la differenza è ampia abbastanza da cambiare il modo in cui pianifichi un’importazione.
| Operazione | Metodo | Osservato |
|---|---|---|
| Creare 1.051 reindirizzamenti | Importazione CSV, file singolo | 48 secondi |
| Cancellare 1.051 reindirizzamenti | urlRedirectDelete, uno alla volta |
226 secondi |
Le mutazioni veloci di cancellazione massiva sono ad accesso ristretto. urlRedirectBulkDeleteBySearch, urlRedirectBulkDeleteByIds e urlRedirectBulkDeleteAll richiedono tutte lo scope write_online_store_navigation e una sessione utente attiva. Un’app che si autentica con credenziali client, che è il modo in cui gira la maggior parte degli script di migrazione, non può chiamarle e si ritrova a cancellare un record alla volta.
Pianifica le tue importazioni come se fossero difficili da annullare, perché lo sono. Valida il file su un development store prima, oppure importa in tranche che sei disposto a disfare a mano. Non lanciare un file da 50.000 righe che non hai testato dando per scontato di poterlo annullare in fretta.
L’importazione CSV e la Admin API trattano i duplicati in modo diverso
Questa guida è scritta attorno al flusso CSV, dove un percorso duplicato aggiorna il record esistente. La API fa il contrario:
create /existing-path -> /pages/about
(where /existing-path already redirects to /)
REJECTED: "Path has already been taken"
Chi porta un flusso CSV sulla Admin API deve interrogare il record esistente e chiamare urlRedirectUpdate, oppure cancellare e ricreare. Un porting diretto della logica di importazione fallirà su ogni percorso che esiste già.
Come testare i tuoi reindirizzamenti Shopify dopo il lancio
Tutto quello che c’è sopra descrive che cosa Shopify accetta. Niente di tutto ciò ti dice se i reindirizzamenti che hai importato stanno davvero funzionando sul negozio in produzione, ed è una domanda diversa. Un reindirizzamento può importarsi senza problemi, comparire nell’admin e comunque non fare quello che ti aspettavi una volta che un tema, un’app o un proxy si trovano sul percorso.
Testa da fuori dal negozio invece che cliccando in giro in un browser, perché il browser ti nasconde proprio la cosa che devi vedere: il codice di stato. Richiedi il vecchio URL e leggi le intestazioni della risposta.
curl -sIL https://yourstore.example/old-product-url
Leggi tre cose nell’output:
- Il codice di stato del primo salto. Vuoi
301. Un302è temporaneo e passa il valore in modo diverso, il che conta quando lo scopo di tutto è uno spostamento permanente. - Il numero di salti. Ogni riga
HTTP/nell’output è un salto. Due o più significano che hai costruito una catena, e la soluzione è ripuntare l’origine iniziale sulla destinazione finale invece di lasciare al suo posto il passaggio intermedio. - Lo stato finale. L’ultima riga dovrebbe essere
200. Un reindirizzamento che finisce in un404è peggio di nessun reindirizzamento, perché nel tuo foglio di calcolo sembra risolto.
Poi testa le forme che è facile dimenticare. Esegui lo stesso controllo su un URL che porta un parametro di tracciamento per confermare che la stringa di query sopravvive fino alla destinazione, sul dominio apex oltre che su www, e sul semplice http e non solo su https. Abbiamo testato esattamente questo su un negozio reale e il parametro è arrivato intatto alla destinazione, ma il punto è verificarlo sul tuo negozio invece di fidarsi di una risposta generale, perché un tema o un’app possono cambiare l’esito.
Un comportamento che conviene conoscere prima di farsi prendere dal panico: dopo che cambi o cancelli un reindirizzamento, un nodo edge di Shopify può continuare a servire la vecchia risposta per una trentina di secondi mentre una versione dello stesso URL con la cache aggirata restituisce già quella nuova. Dagli un minuto e ripeti il test con una stringa di query univoca in coda prima di concludere che il reindirizzamento non è passato.
Per la sequenza completa attorno a una migrazione e non a un singolo reindirizzamento, lavora sulla checklist di migrazione del sito, che copre la mappatura, il giorno del lancio e il monitoraggio successivo in cui tutto questo si inserisce.
In conclusione
Il sistema che Shopify ha per gestire i reindirizzamenti 301 va bene per la maggior parte delle attività, ma non è ancora di livello Enterprise. Con il tempo speriamo che evolva fino a includere i reindirizzamenti con carattere jolly e più record di reindirizzamento per i piani standard e plus. La possibilità di usare il loro sistema di reindirizzamenti e i vari tipi di formato URL che supporta ci porta a dargli un solido punteggio di utilità.
Se stai affrontando un progetto che comprende mappature complesse di reindirizzamenti 301 e ti serve un team che vive e respira questo tipo specifico di lavoro, contattaci.
Changelog
Questa guida è stata pubblicata la prima volta partendo dai test del 19 giugno 2024 ed è stata ritestata il 27 luglio 2026 contro un negozio Shopify reale con piano standard, tramite la Admin GraphQL API e contro richieste reali alla vetrina. La maggior parte dei risultati originali ha retto. Nove no. Il corpo qui sopra dice che cosa fa Shopify oggi, e questo è ciò che si è mosso.
2024 Shopify ti impedisce di creare catene di reindirizzamenti.
2026 La protezione controlla una sola direzione. Rifiuta un reindirizzamento la cui destinazione è già l'origine di un altro, ma non il verso opposto, quindi creare /a verso /b e più tardi /b verso /c lascia una catena viva di due salti. È solo l'ordine di creazione a decidere se se ne forma una.
/services2024 /services funziona come reindirizzamento, al pari di /apps, /carts e /orders.
2026 /services funziona da solo e fallisce con qualsiasi sottodirectory. /services/consulting restituisce un 404 anche se il record viene salvato. Ogni altro prefisso di quel gruppo funziona con le sottodirectory.
2024 Quattro prefissi riservati vengono ignorati se usati da soli: /cart, /products, /collections, /collections/all.
2026 Le osservazioni reggono, la spiegazione no. Una rotta reale della vetrina batte sempre un reindirizzamento, e questo riguarda ogni prodotto, collezione, pagina e articolo del blog vivo, non una lista di quattro percorsi.
2024 I parametri non vengono mai aggiunti all'URL che si carica.
2026 Vero solo per i percorsi di origine parametrizzati. Dove il percorso di origine non ha parametri propri, i parametri presenti sulla richiesta vengono portati fino alla destinazione.
2024 Shopify tratta gli URL parametrizzati come stringhe letterali.
2026 Entrambi i lati vengono normalizzati prima del confronto, quindi maiuscole e ordine non contano. È rigido solo l'insieme dei parametri, e togliendone uno si ottiene un 404.
2024 I parametri vengono messi in ordine alfabetico, con /test?name=John&Doe salvato come /test?Doe&name=John.
2026 Ordine alfabetico confermato, e le maiuscole non vengono conservate. Lo stesso percorso viene salvato come /test?doe&name=john, con i valori portati in minuscolo insieme alle chiavi.
2024 Shopify non riusciva ad acquisire una stringa con un punto e virgola non codificato dopo l'operatore uguale.
2026 L'acquisizione va bene e il punto e virgola viene salvato come %3b. L'errore si verifica al momento della richiesta, e richiedere la forma codificata restituisce un 301.
2024 Importa 1.000 righe alla volta.
2026 Non è un tetto. Un singolo file da 1.051 righe è stato importato senza alcun errore in 48 secondi. I lotti restano una buona pratica perché i file più piccoli falliscono in modo più leggibile.
2024 Shopify non supporta i reindirizzamenti con carattere jolly.
2026 Ancora vero, e la sintassi viene accettata senza alcun errore. L'asterisco viene salvato come carattere letterale, quindi niente segnala il problema finché il traffico non inizia a restituire 404.
2026 Creare 1.051 reindirizzamenti ha richiesto 48 secondi. Cancellare gli stessi 1.051 ne ha richiesti 226, perché le mutazioni di cancellazione massiva richiedono una sessione utente attiva e un token usato da uno script non può chiamarle.
2026 L'importazione CSV aggiorna un percorso che esiste già. La Admin API lo rifiuta con Path has already been taken, quindi un porting diretto della logica di importazione fallisce su ogni percorso esistente.
Ogni reindirizzamento restituisce un 301. Il limite di 1.024 caratteri per il percorso include la barra iniziale, con 1.027 rifiutati e 1.015 accettati. Le maiuscole vengono normalizzate e il minuscolo ha la priorità. L'importazione massiva toglie il protocollo e il dominio per lasciare un percorso relativo, mentre il campo di destinazione conserva intatto un URL esterno assoluto. Un nodo edge può servire una risposta obsoleta per una trentina di secondi dopo una modifica.
I limiti di record, 100.000 sui piani standard e 20.000.000 su Plus, non sono stati rieseguiti. Raggiungerli è meccanicamente possibile ora che la pipeline di importazione è misurata, ma la cancellazione va a circa 280 record al minuto senza un annullamento massivo via script, quindi confermare una cifra documentata lascerebbe un negozio in produzione carico di reindirizzamenti spazzatura per sei ore o più.
Domande frequenti
A chi è rivolta la knowledge base di WISLR sui reindirizzamenti URL di Shopify?
La nostra knowledge base aiuta soprattutto i brand e le agenzie che stanno facendo migrazioni di sito verso Shopify. È particolarmente utile per i team piccoli che devono far rendere ogni ora, e aiuta i clienti a mappare e completare fino a 100.000 reindirizzamenti URL in modo efficiente.
Shopify ha un documento di supporto ufficiale sui reindirizzamenti URL?
Sì, Shopify mantiene un documento di aiuto ufficiale sui reindirizzamenti URL su help.shopify.com. Pur offrendo linee guida generali per aggiungere reindirizzamenti 301 singoli e massivi, la nostra guida lo completa con specifiche dettagliate sui tipi di URL e sui limiti della piattaforma.
Quali stringhe di URL non sono supportate da Shopify?
Shopify ha un solo formato di stringa URL non supportato: le stringhe con un carattere punto e virgola non codificato dopo l’operatore uguale (per esempio /page?param=;semicolon). Tutti gli altri formati di URL, compresi i punti e virgola codificati e i punti e virgola in altre posizioni, sono supportati.
Shopify supporta i reindirizzamenti con caratteri jolly o regex?
No, Shopify oggi non supporta i reindirizzamenti con carattere jolly né gli schemi regex nel suo sistema nativo di reindirizzamenti. Questo limite vale sia per i negozi Shopify standard sia per quelli Shopify Plus.
Che cosa sono i reindirizzamenti con carattere jolly?
I reindirizzamenti con carattere jolly ti permettono di reindirizzare più URL che corrispondono a uno schema preciso verso un’unica destinazione. Per esempio, reindirizzare tutti gli URL sotto /blog/* verso /articles/*. Anche se è una funzione molto richiesta, oggi non è disponibile nelle funzionalità native di Shopify.
Shopify riesce a evitare la creazione di catene di reindirizzamenti?
Sì, Shopify ha protezioni integrate per evitare le catene di reindirizzamenti. Il sistema non ti permette di creare un reindirizzamento verso un URL che è già reindirizzato altrove.
Che cosa sono le catene di reindirizzamenti?
Le catene di reindirizzamenti si verificano quando gli URL reindirizzano attraverso più passaggi prima di arrivare alla destinazione finale (per esempio A→B→C). Queste catene possono rallentare il caricamento delle pagine e incidere sulle prestazioni SEO. Il sistema di Shopify aiuta a evitarle per come è progettato.
È facile creare e aggiornare i reindirizzamenti URL su Shopify?
Sì, Shopify offre due metodi semplici: la creazione di reindirizzamenti URL singoli dalla sua interfaccia e l’importazione massiva tramite file CSV. Entrambi i metodi supportano percorsi URL relativi e assoluti.
Come si creano reindirizzamenti URL massivi su Shopify?
I reindirizzamenti massivi si possono creare con lo strumento di importazione CSV di Shopify. Consigliamo di importare in lotti da 1.000 per controllare e gestire gli errori più facilmente. Un modello per l’importazione è disponibile qui.
Shopify ha un limite massimo di record di reindirizzamento URL?
Sì. I piani Shopify standard sono limitati a 100.000 reindirizzamenti URL, mentre i negozi Shopify Plus possono gestire fino a 20.000.000 di reindirizzamenti. Questi limiti sono fissi e non si possono aumentare.
Shopify ha limiti sul numero di caratteri dei reindirizzamenti?
Sì, Shopify impone un limite di 1.024 caratteri per le stringhe di reindirizzamento URL, inclusa la barra iniziale (’/’). Gli URL che superano questa lunghezza non vengono accettati dal sistema.
Esiste uno strumento per validare gli URL compatibili con Shopify?
Anche se Shopify non offre uno strumento di validazione ufficiale, i nostri test approfonditi hanno dimostrato che il 99% dei formati di URL standard è supportato. La cosa principale da considerare è il limite di 1.024 caratteri e l’evitare punti e virgola non codificati dopo gli operatori uguale.