Skip to main content

Shopify URL रीडायरेक्ट: सीमाएँ, टेस्ट की गईं।

Shopify URL रीडायरेक्ट क्या करते हैं और क्या नहीं, यह डॉक्युमेंटेशन पढ़कर नहीं बल्कि टेस्ट करके तय किया गया। Wildcard और regex का समर्थन, query string और parameter का व्यवहार, रीडायरेक्ट चेन, कैरेक्टर और रिकॉर्ड की सीमाएँ, वे URL फ़ॉर्मैट जो चुपचाप 404 देते हैं, और bulk CSV import के नियम। साथ ही, launch के बाद यह कैसे जाँचें कि आपके रीडायरेक्ट सचमुच काम कर रहे हैं।

मिट्टी की सुनहरी सड़क एक खाई पर आकर ख़त्म होती है, और मिट्टी का गहरा हरा तीर उसके ऊपर से मुड़कर आगे चलती सड़क पर जाता है, जहाँ मिट्टी का नीला शॉपिंग बैग खड़ा है
संक्षेप में
  1. किसी भी plan पर न wildcard, न regex। हर रिकॉर्ड एक URL है जो एक गंतव्य पर जाता है, standard plans पर भी और Plus पर भी। पैटर्न वाले नियम Shopify के आगे किसी परत में रखने पड़ते हैं, जैसे किसी CDN या edge proxy में।
  2. एक string फ़ॉर्मैट टूटता है: equals operator के बाद बिना encode किया semicolon। Shopify रिकॉर्ड स्वीकार कर लेता है और semicolon को %3b के रूप में encode करके सहेजता है, इसलिए विफलता import के समय नहीं बल्कि request के समय होती है: आने वाले URL का कच्चा semicolon उस encode किए गए रिकॉर्ड से कभी मेल नहीं खाता और 404 लौटाता है। Encode किए गए रूप का request 301 लौटाता है। हमने जितने भी दूसरे फ़ॉर्मैट टेस्ट किए, वे सब लिए गए और चले, string में कहीं और आए semicolon भी शामिल।
  3. सीमाएँ तय हैं: 100,000 रिकॉर्ड, Plus पर 20,000,000, और प्रति string 1,024 कैरेक्टर। कैरेक्टर की गिनती में शुरुआत का slash भी शामिल है, और support इनमें से कोई भी रिकॉर्ड सीमा नहीं बढ़ा सकता। इतना बड़ा catalog कि इन सीमाओं के पास पहुँचे, उसके लिए रीडायरेक्ट फ़ाइल हाथ से जोड़ने के बजाय generate करके batches में import करनी होती है।
  4. चेन से बचाने वाली जाँच एक ही दिशा देखती है, इसलिए बनाने का क्रम तय करता है कि चेन बनेगी या नहीं। Shopify ऐसे रीडायरेक्ट को रोक देता है जिसका गंतव्य पहले से किसी दूसरे रीडायरेक्ट का स्रोत हो। उल्टी दिशा वह नहीं जाँचता, इसलिए पहले /a से /b और बाद में /b से /c स्वीकार हो जाता है और दो hop की एक जीवित चेन छोड़ जाता है। Bulk import पंक्तियों को फ़ाइल के क्रम में लागू करते हैं, और ठीक इसी तरह यह होता है। Import के बाद अपने रीडायरेक्ट का नमूना लें और hops गिनें।
  5. जो आप import करते हैं, Shopify उसे सहेजने से पहले बदल देता है। वह string को lowercase कर देता है, protocol और domain हटा देता है, शुरुआत का slash न हो तो जोड़ देता है, और query parameters का क्रम बदल सकता है। Admin में सही दिखने वाला रिकॉर्ड भी उस request से चूक सकता है जो लोग असल में भेज रहे हैं, इसलिए live URL पर curl -sIL से जाँचें: एक 301 hop, जो 200 पर उतरे। दोबारा टेस्ट करने से पहले एक मिनट रुकें, क्योंकि कोई edge node लगभग तीस सेकंड तक पुराना जवाब दे सकता है।

एक बेहतर हेल्प डॉक

यह उन ब्रैंड और एजेंसियों के लिए लिखा और सँभाला जाता है जो साइट माइग्रेशन कर रही हैं। ख़ास तौर पर तब, जब आप एक छोटी टीम हैं जिसे हर घंटे का हिसाब रखना पड़ता है। यह गाइड आपको ऐसी रणनीति बनाने में मदद करती है जिससे Shopify पर माइग्रेट करते समय 301 रीडायरेक्ट सटीकता से पूरे हों। ख़ास तौर पर, यह दस्तावेज़ आपके काम आएगा अगर आप:

  • Wordpress से माइग्रेट कर रहे हैं
  • Magento से माइग्रेट कर रहे हैं
  • Salesforce से माइग्रेट कर रहे हैं
  • Sitecore से माइग्रेट कर रहे हैं
  • BigCommerce से माइग्रेट कर रहे हैं
  • Webflow से माइग्रेट कर रहे हैं
  • अपने ही बनाए किसी PHP साइट से माइग्रेट कर रहे हैं

अगर आप ऐसा प्रोजेक्ट ले रहे हैं जिसमें जटिल 301 रीडायरेक्ट मैपिंग शामिल है और आपको ऐसी टीम चाहिए जो ठीक इसी तरह के काम में डूबी रहती है, तो हमसे संपर्क करें


Shopify की URL रीडायरेक्ट लॉजिक: एक नज़र में

URL रीडायरेक्ट के लिए Shopify का आधिकारिक हेल्प डॉक यहाँ मिलता है। यह एक सुगठित दस्तावेज़ है जिसमें सामान्य दिशानिर्देश हैं और कोई Shopify स्टोर मैनेजर अलग-अलग तथा bulk 301 रीडायरेक्ट जोड़ते समय उसका सहारा ले सकता है। उसमें इसका ब्योरा नहीं है कि कोई Shopify स्टोर किस तरह के URL को natively सपोर्ट करता है, और यह रिपोर्ट उन्हीं खाली जगहों को भरने के लिए है।

Shopify की URL रीडायरेक्ट कार्यक्षमता पर हमारे निष्कर्ष, संक्षेप में

  • Shopify की URL रीडायरेक्ट लॉजिक बहुत मज़बूत है।
  • 100 अलग-अलग URL string फ़ॉर्मैट के हमारे टेस्ट में Shopify ने 100 में से 99 प्रकारों को कार्यात्मक रूप से सपोर्ट किया।
  • Native सिस्टम URL रीडायरेक्ट के लिए wildcards सपोर्ट नहीं करता।
  • मौजूदा URL रीडायरेक्ट paths अपडेट करना import टूल से आसान था, बशर्ते आप Shopify के अलिखित नियमों का पालन करें।
  • Shopify और ShopifyPlus स्टोर कुल कितने रीडायरेक्ट सँभालेंगे, इस पर सीमाएँ हैं।
  • किसी URL रीडायरेक्ट string में कुल कितने कैरेक्टर हो सकते हैं, इस पर भी सीमाएँ हैं।
  • शुक्र है कि आप 301 रीडायरेक्ट चेन नहीं बना सकते। (2026 के दोबारा टेस्ट में सुधारा गया। सुरक्षा जाँच सिर्फ़ एक दिशा देखती है।)
  • Parameters वाले URL के लिए बहुत सारे अपवाद और नियम हैं।
  • URL रीडायरेक्ट प्रबंधन का इंटरफ़ेस उपयोगकर्ता के अनुकूल है, पर उसमें और ब्योरा जुड़ सकता है।
  • टेस्ट में Hydrogen और Oxygen के लिए उपलब्ध रीडायरेक्ट विकल्प नहीं देखे गए।
  • हम Shopify के मौजूदा URL रीडायरेक्ट सिस्टम को 85% का उपयोगिता स्कोर देते हैं।

Wildcard सपोर्ट न होने पर रेटिंग 5% घटाई गई, जिस एक URL string प्रकार को यह सपोर्ट नहीं करता उसके लिए 1%, URL कैरेक्टर लंबाई की सीमाओं के लिए 2%, parameters वाले URL के अजीब व्यवहार के लिए 3%, और रीडायरेक्ट UX में सूचना प्रबंधन के ज़रूरी ब्योरों की कमी के लिए 4%।

टेस्टिंग 19 जून 2024 को की गई थी।

27 जुलाई 2026 को दोबारा टेस्ट किया गया

यहाँ का हर दावा एक live Shopify standard plan स्टोर पर, Admin GraphQL API के ज़रिए और असली storefront requests के सामने दोबारा जाँचा गया। 2024 के ज़्यादातर निष्कर्ष टिके रहे। नौ नहीं टिके, और उनमें से दो हमारे प्रकाशित दावे को उलट देते हैं: चेन से बचाने वाली जाँच सिर्फ़ एक ही दिशा देखती है और आप रिकॉर्ड किस क्रम में बनाते हैं यही तय करता है कि चेन बनेगी या नहीं, और /services पर रखा रीडायरेक्ट चलता है जबकि उसके नीचे की हर चीज़ 404 लौटाती है।

2024 के निष्कर्ष जहाँ थे वहीं रहेंगे। हर सुधार उसी दावे के पास दर्ज है जिस पर वह लागू होता है, ताकि जिसने भी मूल दावे पर काम किया हो, वह देख सके कि क्या बदला।

रीडायरेक्ट टेस्ट करने की हमारी पद्धति

Shopify के 301 रीडायरेक्ट नियमों से जुड़ी दिक्कतों से बचने में मदद के लिए, हम अपने टेस्ट से कुछ सवालों के जवाब चाहते थे:

  • URL रीडायरेक्ट सिस्टम किन कैरेक्टर या string संयोजनों को सपोर्ट नहीं करता?
  • URL string की लंबाई पर कोई सीमा है?
  • Bulk import के लिए रिकॉर्ड की कोई अधिकतम संख्या है?
  • क्या सिस्टम wildcard रीडायरेक्ट सपोर्ट करता है?
  • Import के बाद strings की कोई ऑटो फ़ॉर्मैटिंग या रूपांतरण होता है जो मूल डेटा बदल देता है?

संदर्भ के लिए, यहाँ हमारी पूरी URL सूची है जिससे हमने ये अलग-अलग स्थितियाँ टेस्ट कीं। टेस्ट एक Shopify standard plan पर किए गए, ShopifyPlus पर नहीं।


Shopify रीडायरेक्ट में मदद करने वाले 11 निष्कर्ष

इन URL string प्रकारों के साथ Shopify ठीक से नहीं चलता

जिन URL string फ़ॉर्मैट को Shopify सपोर्ट नहीं कर सका, उनकी सूची छोटी है: सिर्फ़ एक ही प्रकार का string था जिसे वह ले नहीं सका। Equals operator के बाद semicolon कैरेक्टर वाले strings, जैसे:

/page?param=;semicolon

इस string में ध्यान देने लायक बात यह है कि Shopify का सिस्टम रीडायरेक्ट टेबल में semicolon विशेष कैरेक्टर को URL encoded मान में इस तरह बदल देता है:

/page?param=%3Bsemicolon

जब आप बिना encode किया URL string ब्राउज़र के पते वाले बॉक्स में डालते हैं, तो वह 404 त्रुटि लौटाता है।

404 यह syntax Shopify के सर्वर पर 404 त्रुटि पैदा करता है। Equals operator के बाद बिना encode किया semicolon:
  • /page?param=;semicolon
301 जबकि यह Shopify के सर्वर पर सही तरीक़े से रीडायरेक्ट करता है। Equals operator के बाद encode किया semicolon:
  • /page?param=%3Bsemicolon

यह व्यवहार बाक़ी विशेष कैरेक्टर के बर्ताव से अलग है। अगर बिना encode किए कैरेक्टर वाला कोई URL string पते वाले बॉक्स में डाला जाए, जैसे दाईं ओर वाला ब्रेस कैरेक्टर:

/page?param=}

तो URL request मिलते ही Shopify उसे अपने आप encode कर देगा और कोई 404 त्रुटि नहीं होगी।

/page%7Drightbrace

यह भी ध्यान देने लायक है कि बिना encode किए semicolon वाले URL string के दूसरे रूप Shopify के रीडायरेक्ट सिस्टम में मान्य हो जाते हैं, जैसे:

301 Shopify के सर्वर पर सही तरीक़े से रीडायरेक्ट करता है। String में बिना encode किया semicolon कैरेक्टर, equals operator नहीं।
  • /page;semicolon

डेटा से लगता है कि 404 त्रुटि सिर्फ़ तभी होती है जब बिना encode किया semicolon equals operator के बाद आता है।

27 जुलाई 2026 को दोबारा टेस्ट किया गया

404 की पुष्टि हुई, पर हुआ यह नहीं कि Shopify रिकॉर्ड ले ही नहीं सका। Shopify रिकॉर्ड स्वीकार करता है और semicolon को %3b के रूप में percent encode करके सहेजता है। बेमेल request के समय होता है, क्योंकि कच्चा semicolon लेकर आने वाला URL उस encode किए गए रिकॉर्ड से कभी मेल नहीं खाता।

Encode किए गए रूप का request सामान्य रूप से 301 लौटाता है। जहाँ आने वाले लिंक आपके नियंत्रण में हैं, वहाँ semicolon को percent encode कर देने से बात बन जाती है। जहाँ कच्चा semicolon ऐसे बाहरी लिंक से आता है जो आपके नियंत्रण में नहीं हैं, वहाँ इस फ़ॉर्मैट को भरोसे के साथ रीडायरेक्ट नहीं किया जा सकता।

Shopify में wildcard रीडायरेक्ट का कोई सपोर्ट नहीं

Wildcard रीडायरेक्ट अब भी बहुत सारे Shopify उपयोगकर्ताओं की इच्छा सूची में हैं। उनके सपोर्ट फ़ोरम इस सुविधा की माँगों से भरे पड़े हैं। आज तक Shopify ने इस पर चुप्पी साधी है कि यह प्रोडक्ट रोडमैप में कहाँ आएगी।

फ़िलहाल, Shopify पर जाने की योजना बना रहे वेबसाइट मालिकों को समझ लेना चाहिए कि native Shopify और ShopifyPlus यह विकल्प नहीं देते।

Wildcard रीडायरेक्ट क्या होते हैं?

Wildcard रीडायरेक्ट URL रीडायरेक्शन का एक प्रकार है जिससे आप एक ख़ास पैटर्न से मेल खाते कई URL को एक ही गंतव्य पर भेज सकते हैं। यह ख़ास तौर पर तब काम आता है जब आप वेबसाइट माइग्रेट कर रहे हों, कंटेंट का ढाँचा बदल रहे हों, या बड़ी संख्या में मिलते-जुलते URL सँभाल रहे हों। हर URL के लिए अलग रीडायरेक्ट बनाने के बजाय आप एक wildcard कैरेक्टर (आमतौर पर *) इस्तेमाल करते हैं, जो कैरेक्टर की किसी भी शृंखला का प्रतिनिधित्व करता है।

मान लीजिए आप अपना ब्लॉग फिर से गढ़ रहे हैं और सारी पोस्ट /blog/ डायरेक्टरी से /articles/ में ले जा रहे हैं। हर ब्लॉग पोस्ट के लिए अलग रीडायरेक्ट बनाने के बजाय आप एक wildcard रीडायरेक्ट इस्तेमाल कर सकते हैं:

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

इससे रीडायरेक्शन की प्रक्रिया सरल हो जाती है और यह पक्का होता है कि /blog/ के नीचे के सारे URL बिना अटके /articles/ के नीचे अपनी नई जगह पर पहुँचते हैं। इस लेख की तारीख़ तक, Shopify और ShopifyPlus के डिफ़ॉल्ट स्टोर बिना किसी ऐप की मदद के यह क्षमता नहीं देते।

27 जुलाई 2026 को दोबारा टेस्ट किया गया

Wildcard सपोर्ट अब भी नहीं है, और दोबारा टेस्ट में वह हिस्सा सामने आया जो लोगों को असली ट्रैफ़िक में पड़ता है। Shopify wildcard syntax बिना शिकायत के स्वीकार कर लेता है। /old-blog/* के रूप में बनाया गया रिकॉर्ड सहेजा जाता है, रीडायरेक्ट टेबल में दिखता है, और कोई त्रुटि नहीं बताता। Asterisk एक literal कैरेक्टर के रूप में सहेजा जाता है, इसलिए वह सिर्फ़ उसी URL से मेल खाएगा जिसमें सचमुच asterisk हो।

यह सीधे अस्वीकार कर देने से बुरा है, क्योंकि जब तक असली ट्रैफ़िक 404 लौटाने नहीं लगता, विफलता का कोई संकेत नहीं मिलता। Import करने से पहले अपनी रीडायरेक्ट स्प्रेडशीट के सारे wildcards को स्पष्ट paths में खोल लें।

Shopify रीडायरेक्ट चेन बनने से रोकने की पूरी कोशिश करता है

Shopify की रीडायरेक्ट टेबल में एक अच्छी सुरक्षा जाँच है जो आपको रीडायरेक्ट चेन बनाने से रोकती है। अगर आप ऐसे पेज पर रीडायरेक्ट बनाने की कोशिश करते हैं जो पहले से “Redirect from” फ़ील्ड में एक मान है, तो आपको त्रुटि मिलेगी।

इस टेस्ट में हमने जो URL रिकॉर्ड बनाने की कोशिश की, वे ये थे, और इसकी अनुमति नहीं मिली:

404
  • /BOTH redirects to /SHORT
  • /SHORT redirects to /homepage
27 जुलाई 2026 को सुधारा गया

सुरक्षा जाँच मौजूद है, और वह हमारे बताए से ज़्यादा संकरी है। वह एक दिशा देखती है, और दोबारा टेस्ट के दौरान उससे बचकर दो hop की एक जीवित चेन बन गई।

Shopify ऐसे रीडायरेक्ट को अस्वीकार करता है जिसका गंतव्य पहले से किसी दूसरे रीडायरेक्ट का स्रोत हो, संदेश के साथ Target can't redirect to another redirect। ख़ुद अपनी ओर इशारा करने वाले रीडायरेक्ट को वह Target can't be the same as path के साथ अस्वीकार करता है, और सीधे दो तरफ़ा लूप भी रोकता है।

उल्टी दिशा वह नहीं जाँचता। /b पर कुछ न होते हुए /a से /b बनाएँ, और बाद में /b से /c बनाएँ, तो दोनों स्वीकार हो जाते हैं। Shopify पहले रिकॉर्ड को फिर कभी नहीं देखता, और अब आपके पास एक जीवित चेन है:

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

सिर्फ़ बनाने का क्रम तय करता है कि चेन बनेगी या नहीं। Bulk import पंक्तियों को फ़ाइल के क्रम में लागू करते हैं, और माइग्रेशन स्प्रेडशीट इससे बचने के लिए शायद ही कभी क्रम में लगाई जाती हैं, इसलिए इस सुरक्षा जाँच के भरोसे योजना नहीं बनानी चाहिए। किसी भी बड़े import के बाद अपने रीडायरेक्ट का नमूना लें और hops गिनें:

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

1 से ऊपर कुछ भी एक चेन है।

रीडायरेक्ट चेन क्या होती हैं?

रीडायरेक्ट चेन तब बनती है जब एक URL किसी दूसरे URL पर जाता है, जो आगे किसी और URL पर जाता है, और इस तरह रीडायरेक्ट का एक क्रम या चेन बन जाती है। यह अनजाने में तब हो सकता है जब समय के साथ बिना उचित प्रबंधन के कई रीडायरेक्ट बनाए जाएँ।

रीडायरेक्ट चेन इसलिए दिक्कत की चीज़ हैं कि वे पेज लोड होने का समय बढ़ा सकती हैं, SEO पर बुरा असर डाल सकती हैं और उपयोगकर्ता के अनुभव को ख़राब कर सकती हैं। हर अतिरिक्त रीडायरेक्ट देरी जोड़ता है, क्योंकि ब्राउज़र को आख़िरी गंतव्य तक पहुँचने से पहले चेन का हर क़दम चलना पड़ता है।

मिसाल के लिए, अगर आपके पास ये रीडायरेक्ट लगे हैं:

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

जब कोई उपयोगकर्ता /old-page पर जाता है, तो उसे पहले /new-page पर भेजा जाता है और तुरंत उसके बाद फिर /latest-page पर, जिससे एक रीडायरेक्ट चेन बन जाती है।

Shopify पर रीडायरेक्ट लगाते समय मानने लायक नए नियम

हमारे टेस्ट की सबसे बड़ी खोज यह है कि Shopify का दस्तावेज़ पुराना पड़ चुका है। Shopify के अनुसार, अगर आप इन आरक्षित प्रीफ़िक्स से शुरू होने वाली किसी चीज़ को रीडायरेक्ट करने की कोशिश करते हैं, तो आपके रीडायरेक्ट नियम बनेंगे ही नहीं:

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

हमने पाया कि यह सही नहीं है।

301 ये "Redirect from" मान अनुमति पाएँगे और सही काम करेंगे, भले ही दस्तावेज़ कहता हो कि ऐसा नहीं होना चाहिए:
  • /apps
  • /application
  • /carts
  • /orders
  • /services
  • /cart/people

Cart अपवाद था। अकेले में वह आरक्षित है, और उसके बाद कोई सबडायरेक्टरी आते ही वह काम करने लगता है।

404 ये "Redirect from" मान टेबल में बन तो जाएँगे, पर चलेंगे नहीं:
  • /cart
  • /products
  • /collections
  • /collections/all
301 अगर आरक्षित प्रीफ़िक्स के बाद सबडायरेक्टरी आती है, तो Shopify उन्हें अनुमति देगा और चलाएगा भी, जैसे:
  • /cart/people
  • /carts/people
  • /products/people
  • /collections/people
404 हमारे टेस्ट डेटा से पता चला कि अकेले डालने पर सिर्फ़ ये URL प्रीफ़िक्स पूरी तरह अनदेखे किए जाएँगे:
  • /cart
  • /products
  • /collections
  • /collections/all
27 जुलाई 2026 को सुधारा गया

ऊपर की जाँच टिकी रहती है। व्याख्या नहीं टिकती, और असली नियम चार प्रीफ़िक्स की सूची से कहीं ज़्यादा को छूता है।

असली storefront route हमेशा रीडायरेक्ट पर भारी पड़ता है। जहाँ किसी URL पर सचमुच कोई पेज मौजूद है, वहाँ Shopify वह पेज भेजता है और रीडायरेक्ट को अनदेखा कर देता है। रिकॉर्ड स्वीकार हो जाता है, वह आपकी रीडायरेक्ट टेबल में बैठा रहता है, और कुछ नहीं करता। न कोई त्रुटि, न कोई चेतावनी।

प्रीफ़िक्स वह चीज़ नहीं है जो बदलती है। Route का मौजूद होना है। किसी live product URL पर रखा रीडायरेक्ट स्वीकार हुआ और चुपचाप अनदेखा कर दिया गया, जबकि वही प्रीफ़िक्स ऐसे handle के साथ जो मौजूद ही नहीं है, 301 लौटा रहा था:

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

इसलिए ऊपर की सूची को नियम नहीं, उदाहरण मानें। यह आपके स्टोर के हर live product, collection, page और blog article पर भी लागू होती है। किसी प्रकाशित product URL पर रखा रीडायरेक्ट तब तक निष्क्रिय रहता है जब तक वह product हल होना बंद न कर दे।

माइग्रेशन के लिए इसका मतलब यह है कि क्रम मायने रखता है। पहले पुराने संसाधन को अप्रकाशित करें या हटाएँ, फिर पक्का करें कि रीडायरेक्ट चलता है। पेज के live रहते हुए उसे बनाएँगे तो लगेगा कि कुछ हुआ ही नहीं।

/services अपवाद है, और वहाँ मामला उल्टा चलता है। ख़ुद /services पर रखा रीडायरेक्ट 301 लौटाता है। उसके नीचे की किसी भी चीज़ पर रखा रीडायरेक्ट, जैसे /services/consulting, 404 लौटाता है, जबकि रिकॉर्ड बिना किसी शिकायत के सहेजा जाता है। प्रसार में देरी की संभावना ख़ारिज करने के लिए यह लगभग 45 सेकंड के भीतर चार बार दोबारा टेस्ट किया गया, और रिकॉर्ड पूरे समय मौजूद रहा। इस समूह का बाक़ी हर प्रीफ़िक्स सबडायरेक्टरी के साथ काम करता रहा। संभावित कारण यह है कि Shopify /services/* को app proxies और सिस्टम endpoints के लिए भीतर ही route करता है, इसलिए वे requests रीडायरेक्ट टेबल तक पहुँचते ही नहीं, हालाँकि हमने इस तंत्र की सीधी पुष्टि नहीं की।

जो कोई /services/ वाले हिस्से के साथ साइट माइग्रेट कर रहा है, उसे जान लेना चाहिए कि उनमें से कोई रीडायरेक्ट नहीं चलेगा। उन्हें किसी दूसरे path ढाँचे पर मैप करें, या अपनी DNS या proxy परत पर सँभालें।

Shopify पर URL रीडायरेक्ट बनाना और अपडेट करना आसान है

Shopify पर नया रीडायरेक्ट बनाना सीधा काम है। वे उपयोगकर्ताओं को दो विकल्प देते हैं:

Shopify के सिस्टम में URL जोड़ते समय उपयोगकर्ता स्रोत (from) के लिए relative URL paths डाल सकते हैं, बिना top level domain के, और गंतव्य (to) के लिए absolute या relative URL paths। उदाहरण:

/example_product.php
एक-एक URL रीडायरेक्ट बनाना

Shopify के रीडायरेक्ट नियम आपको अलग रीडायरेक्ट वाले इंटरफ़ेस से एक ही URL रीडायरेक्ट दो बार नहीं बनाने देंगे।

एक बार कोई URL ‘Redirect from’ टेबल की सूची में आ जाए, तो उसे दोबारा जोड़ने की कोशिश पर आपको त्रुटि मिलेगी।

अगर आपको वह अलग URL रिकॉर्ड अपडेट करना है, तो उसे रीडायरेक्ट टेबल में ढूँढना होगा, या bulk import का तरीक़ा अपनाना होगा। पहले से मौजूद कोई URL अगर bulk import फ़ाइल में शामिल है, तो उस रिकॉर्ड का ‘Redirect to’ फ़ील्ड CSV फ़ाइल के मान से अपडेट हो जाएगा।

हमारी सलाह है कि रीडायरेक्ट हमेशा सँभालने लायक, कुशल batches में import करें। जैसे, अगर आपके पास 10,000 URL रीडायरेक्ट हैं, तो एक बार में 1,000 import करें और समय हो तो उन्हें जाँच लें। छोटे डेटासेट में गड़बड़ियाँ पकड़ लेना बड़े डेटासेट में उन्हें ढूँढते फिरने से बेहतर है।

Shopify में bulk URL रीडायरेक्ट सोच समझकर करें

Bulk रीडायरेक्ट बनाने के लिए CSV फ़ाइल में Shopify की माँगी हुई हेडिंग भरें, 1:1 मैपिंग बनाएँ, और पक्का करें कि सारे URL relative paths के रूप में लिखे हों। अगर आप ‘Redirect from’ या ‘Redirect to’ में से किसी भी फ़ील्ड में absolute paths वाली फ़ाइल बनाते हैं, तो Shopify मामला अपने हाथ में ले लेगा। यहाँ कुछ स्थितियाँ हैं:

404 जिसे Shopify 'http-protocol+top-level-domain' मानता है, उसे वह हटा देगा और अपना पसंदीदा relative path बना देगा:
  • https://www.wislr.com/path/to/resource%20with
301
  • /path/to/resource%20with
404 URL path में HTTP protocol नहीं है पर top level domain या subdomain है, इसलिए Shopify अपना पसंदीदा relative path बनाने के लिए आगे '/' जोड़ देता है:
  • 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 URL path में न HTTP protocol है न subdomain, पर top level domain है, इसलिए Shopify अपना पसंदीदा relative path बनाने के लिए आगे '/' जोड़ देता है:
  • wislr.com/nested/directory/structure?param1=value1
301
  • /wislr.com/nested/directory/structure?param1=value1

सीख यह है कि import फ़ाइल इस्तेमाल करने से पहले उसे दो बार जाँच लें। वरना आप ऐसे URL रीडायरेक्ट नियम बना बैठेंगे जो उस तरह काम नहीं करते जैसे आपको चाहिए।

अगर कोई रीडायरेक्ट रिकॉर्ड टेबल में पहले से है और वही मान import फ़ाइल में भी हैं, तो Shopify उस रिकॉर्ड को import फ़ाइल के सबसे नए डेटा से अपडेट कर देगा। हमारी राय में यह बहुत काम की बात है, बशर्ते आप उस रिकॉर्ड को अपडेट करना ही चाहते हों। डेटा दो बार जाँचने की एक और वजह।

हमारी सलाह है कि रीडायरेक्ट हमेशा सँभालने लायक, कुशल batches में import करें। जैसे, अगर आपके पास 10,000 URL रीडायरेक्ट हैं, तो एक बार में 1,000 import करें और समय हो तो उन्हें जाँच लें। छोटे डेटासेट में गड़बड़ियाँ पकड़ लेना बड़े डेटासेट में उन्हें ढूँढते फिरने से बेहतर है।

27 जुलाई 2026 को दोबारा टेस्ट किया गया

Shopify प्रति फ़ाइल 1,000 पंक्तियों की कोई सीमा लागू नहीं करता। 1,051 पंक्तियों का एक ही import 48 सेकंड में बिना किसी विफलता के पूरा हुआ, जो लगभग 1,300 पंक्तियाँ प्रति मिनट बैठता है।

लगभग 1,000 के batches फिर भी समझदारी हैं, पर किसी कड़ी सीमा की वजह से नहीं। छोटी फ़ाइलें ज़्यादा साफ़ तरीक़े से विफल होती हैं। अगर 20,000 पंक्तियों का import बिगड़ जाए, तो आपको कहीं कम पता चलेगा कि किन पंक्तियों ने वह किया, बनिस्बत इसके कि आपने बीस फ़ाइलें चलाई होतीं और हर बार गिनती देखी होती।

हर import के बाद createdCount, updatedCount और failedCount पढ़ें। शून्य से अधिक failedCount ही एकमात्र संकेत है जो आपको मिलता है कि पंक्तियाँ छूट गईं।

ऊपर बताया गया डुप्लिकेट वाला व्यवहार ठीक वैसा ही पाया गया जैसा लिखा है। रीडायरेक्ट टेबल में पहले से मौजूद किसी path का गंतव्य बदल दिया जाता है और उसे updatedCount के तहत गिना जाता है, जबकि उसका मूल रिकॉर्ड id वही रहता है। इससे CSV import दोबारा चलाना सुरक्षित हो जाता है, जो माइग्रेशन के बीच सचमुच काम आता है। इसका यह भी मतलब है कि कोई पुरानी स्प्रेडशीट पिछले import के बाद आपके हाथ से किए सुधारों को चुपचाप मिटा देगी।

WISLR के साथ काम करें

रीडायरेक्ट मैप हमसे बनवाएँ।

हमने 100 से ज़्यादा माइग्रेशन में रीडायरेक्ट मैप किए हैं, जिनमें Shopify Plus पर 27,000 URL का एक स्थानांतरण भी शामिल है। हम फ़ाइल बनाते हैं और import से पहले उसे इस पेज की हर सीमा के सामने जाँचते हैं। कटओवर के बाद हम रीडायरेक्ट टेबल पर भरोसा करने के बजाय live जवाब ख़ुद पढ़ते हैं।

27,000 URL वाला माइग्रेशन देखें →

URL रीडायरेक्ट रिकॉर्ड पर Shopify की सीमा

हर अच्छी चीज़ की एक सीमा होती है, और Shopify के रीडायरेक्ट नियम इससे अलग नहीं हैं। URL रीडायरेक्ट के लिए दो सीमाएँ हैं।

Shopify plans (Plus नहीं):

अधिकतम 100,000 URL रीडायरेक्ट

ShopifyPlus plans:

अधिकतम 20,000,000 रीडायरेक्ट

हमने इन सीमाओं को टेस्ट नहीं किया, वह तो पागलपन होता! ये प्लैटफ़ॉर्म के मौजूदा दस्तावेज़ी विनिर्देश हैं। अपने रीडायरेक्ट की योजना बनाते समय इन्हें ध्यान में रखें और ट्रैफ़िक तथा राजस्व वाले सबसे ऊपर के URL को प्राथमिकता दें। हमारी जानकारी में Shopify ये सीमाएँ नहीं बढ़ाता, चाहे सपोर्ट फ़ोरम से लगातार मिन्नतें होती रहें।

URL में कैरेक्टर पर Shopify की सीमा

Shopify के रीडायरेक्ट सिस्टम में मामला यहाँ दिलचस्प होता है। Shopify के आधिकारिक दिशानिर्देश कोई सख़्त कैरेक्टर सीमा नहीं बताते।

रीडायरेक्ट के लिए URL कैरेक्टर की सीमाएँ जाँचने के लिए हमने पहले बहुत लंबे strings बनाए और import करने की कोशिश की। हमने 2,000 कैरेक्टर लंबे URL से शुरुआत की, क्योंकि ब्राउज़र 2,083 कैरेक्टर तक के URI requests सँभाल लेते हैं। यह रही वह सुंदरी अपनी पूरी शान में:

/2000aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBcccccccccccccccccccccccccccccccccccccccccccccccccccDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee

हमारा शुरुआती तरीक़ा यह था कि bulk रीडायरेक्ट टेम्पलेट से 2,000 कैरेक्टर वाला URL import करें, और तभी Shopify के अलार्म बजे। जो सीमा हमने आधिकारिक रूप से खोजी, वह है URL रीडायरेक्ट strings के लिए 1,024 कैरेक्टर की सीमा, जिसमें शुरुआत का forward slash ‘/’ भी शामिल है।

  • Passed 300 कैरेक्टर वाला URL
  • Passed 600 कैरेक्टर वाला URL
  • Passed 1,000 कैरेक्टर वाला URL
  • Failed 2,000 कैरेक्टर वाला URL

Shopify के बारे में कुछ ज़रूरी और अलिखित रीडायरेक्ट नियम

Shopify आपके URL strings के अक्षरों को normalize कर देगा। इसका मतलब यह है कि आप बड़ा अक्षर डालें या छोटा, वह इन अलग-अलग रूपों के URL requests एक ही तरह से पूरे करेगा। नीचे दिए सारे URL एक ही पेज पर जाएँगे, भले ही अलग-अलग रिकॉर्ड मौजूद हों:

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

छोटे अक्षरों वाला string बाक़ी पर भारी पड़ेगा:

/case/test.html

हमारे टेस्ट में, “Redirect from” के लिए दो अलग रिकॉर्ड होने और “Redirect to” के मान अलग होने के बावजूद, दोनों रिकॉर्ड के लिए हमेशा /about.html पेज ही भेजा गया:

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

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

यह दिलचस्प भी है और परेशान करने वाला भी कि Shopify आपको ये सारे अलग मान रीडायरेक्ट टेबल में डालने देता है और भेजता सिर्फ़ एक को है। हमारी सलाह है कि अगर आपको लगे कि आपकी URL व्यवस्था इन रूपों में आ सकती है, तो Shopify में import करने से पहले अपना डेटा ध्यान से देख लें।

Shopify रीडायरेक्ट के लिए आप absolute URL paths इस्तेमाल कर सकते हैं

हमारे टेस्ट में पाया गया कि रीडायरेक्ट के लिए absolute URL paths ठीक हैं, बशर्ते वे “Redirects to” फ़ील्ड में हों। वे आपकी चाही किसी भी URL पर जा सकते हैं। यहाँ एक उदाहरण है जिसमें माँगे जाने पर एक URL path किसी LinkedIn प्रोफ़ाइल पर रीडायरेक्ट करेगा:

[Redirect from]
/Case/Test.html

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

साथ ही, “Redirect to” फ़ील्ड में Shopify top level domains नहीं हटाता, चाहे वह आपका अपना Shopify स्टोर ही क्यों न हो।

Parameters वाले URL

हमारे टेस्ट में Shopify ने parameters वाले URL को बनाए रखा, कुछ अपवादों के साथ। अगर आपके पास ऐसे URL हैं जो कई अलग parameters वाले strings के साथ इंडेक्स हुए हैं, तो वे अलग strings Shopify की रीडायरेक्ट टेबल में जोड़े जा सकते हैं और अलग गंतव्यों पर जा सकते हैं। हमने यह टेस्ट इस तरह के URL की एक आम व्यवस्था, यानी UTM parameters, के साथ किया। जैसे:

यह URL string रीडायरेक्ट टेबल के “Redirect from” फ़ील्ड में है और अपने इच्छित गंतव्य पर गया:

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

हमने URL string बदला और आख़िरी parameter ‘&utm_term=redirects’ हटा दिया, जिससे 404 आया:

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

यह व्यवहार दूसरे टेस्ट में अलग parameters को मान बनाकर भी दोहराया गया, जिससे पुष्टि हुई कि Shopify parameters वाले URL को literal strings की तरह लेता है। अगर आप रीडायरेक्ट URL से कोई parameter हटा दें तो वे URL को घटाकर मूल URL तक नहीं ले जाते, बशर्ते वह URL Shopify साइट पर मौजूद न हो।

इसकी और पुष्टि के लिए हमने एक URL को उसी की ओर इशारा कराया, जिसकी Shopify डिफ़ॉल्ट रूप से अनुमति नहीं देता। आपको यह संदेश मिलेगा:

Parameters “Redirect from” फ़ील्ड में हों तो यह प्रविष्टि अनुमति पाती है। यह रीडायरेक्ट लूप नहीं बनती, पर ब्राउज़र में दिखे व्यवहार के आधार पर हमारे टेस्ट ने दिखाया कि Shopify इस रिकॉर्ड को अनदेखा कर देता है। जब “Redirect from” वाला URL माँगा जाता है, तो Shopify टेबल में अपेक्षित मूल पेज नहीं बल्कि parameters वाला पूरा URL string भेजता है:

यह प्रविष्टि अनुमति पाती है, पर Shopify लोड होने वाले पेज पर parameters नहीं जोड़ेगा, जैसा नियम से अपेक्षित है। सिर्फ़ मूल URL ही लोड होगा। लोड होने वाले URL में parameters कभी नहीं जुड़ते:

Parameters वाले URL पर हमारी आख़िरी टिप्पणी यह है कि Shopify कुछ मामलों में आपके दिए डेटा को फिर से लिख देगा। हाँ, Shopify कुछ parameters के लिए आपके दिए URL डेटा को फिर से लिख देगा।

यहाँ वे उदाहरण हैं जहाँ हमारे टेस्ट को यह पैटर्न मिला।

Shopify ने जो मूल रीडायरेक्ट डेटा लिया:

/test?name=John&Doe

Shopify ने string को फिर से लिखा ताकि ‘Doe’ string में पहला parameter गुण बन जाए:

/test?Doe&name=John

Shopify ने जो मूल रीडायरेक्ट डेटा लिया:

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

Shopify ने string को फिर से लिखा ताकि parameters का क्रम नया हो जाए:

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

हमारे चलाए टेस्ट से लगता है कि Shopify parameters को वर्णमाला के क्रम में लगाने की कोशिश कर रहा है। हमें लगा कि कहीं यह कोई बग तो नहीं, क्योंकि हम तय कर चुके थे कि Shopify parameters वाले URL को literal strings मानता है, तो फिर parameter का क्रम बदलकर उसी नियम को क्यों कमज़ोर करना। फ़िलहाल, कई parameter मानों वाले URL strings अपनी संरचना कभी बनाए नहीं रखेंगे। कुछ कंटेंट मैनेजमेंट सिस्टम के लिए इसके बड़े नतीजे हो सकते हैं।

27 जुलाई 2026 को दोबारा टेस्ट किया गया

इस हिस्से में तीन सुधार।

आने वाले request के parameters गंतव्य तक पहुँचाए जाते हैं। मूल शब्दों में कहा गया है कि वे लोड होने वाले URL में कभी नहीं जुड़ते, और यह सिर्फ़ ऊपर बताए parameters वाले स्रोत paths के लिए सच है। जहाँ रीडायरेक्ट के स्रोत path पर ख़ुद कोई parameter नहीं है, वहाँ request पर जो भी आता है वह जोड़ दिया जाता है:

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

रीडायरेक्ट आपके लिए parameters नहीं हटाएँगे। उन्हें हटाने का काम Shopify के ऊपर की किसी परत में करना होगा।

यह फिर से लिखना क्रम बदलने के साथ lowercase भी करता है। ऊपर का हल किया हुआ उदाहरण अपने बड़े अक्षर बनाए रखता है, Shopify नहीं रखता। /test?name=John&Doe के रूप में भेजा गया path /test?doe&name=john के रूप में सहेजा जाता है। Keys के साथ मान भी lowercase हो जाते हैं, इसलिए स्रोत स्प्रेडशीट से मिलाने पर रीडायरेक्ट टेबल ऐसी लगेगी मानो import ने डेटा बिगाड़ दिया हो।

मिलान literal string तुलना नहीं है। Shopify तुलना से पहले सहेजे गए रिकॉर्ड और आने वाले request दोनों को normalize करता है, इसलिए बड़े छोटे अक्षर और parameters का क्रम मायने नहीं रखते। /page?doe&name=john के रूप में सहेजे रिकॉर्ड के सामने ?name=John&Doe, ?Doe&name=John और ?name=john&doe, तीनों 301 लौटाते हैं।

जो मायने रखता है वह यह है कि कौन से parameters मौजूद हैं। सहेजे गए path का हर parameter request में आना चाहिए। एक भी छूटा तो आंशिक मिलान के बजाय 404 मिलता है, इसलिए मूल बात क़ायम रहती है: parameters वाला रीडायरेक्ट सिर्फ़ parameters के उसी सटीक संयोजन पर चलता है।

Shopify की URL रीडायरेक्ट UX में सुधार चाहिए

Shopify के रीडायरेक्ट टूल का लंबा इस्तेमाल करते हुए हमने कुछ चीज़ों को सराहा और कुछ की कमी महसूस की।

ये सुविधाएँ हमें अच्छी लगीं:

  • Bulk रीडायरेक्ट import के बटन और कार्यक्षमता
  • URL व्यवस्था में फ़िल्टर और तेज़ खोज
  • URL का export
  • एक URL बनाने में आसानी

टूल में हमें इन आँकड़ों और सुविधाओं की कमी लगी:

  • Import हुए URL की कुल गिनती
  • सिस्टम में एक से ज़्यादा URL कॉपी पेस्ट करने का आसान तरीक़ा। अगर आप एक बार में एक से ज़्यादा URL जोड़ना चाहते हैं, तो import दस्तावेज़ ही इस्तेमाल करना पड़ता है। कॉपी पेस्ट जहाँ काम आता, ऐसी एक स्थिति यह है कि URL का एक समूह सबका सब एक ही गंतव्य पर भेजा जाना हो।

Import तेज़ है, उसे पलटना नहीं

27 जुलाई 2026 के दोबारा टेस्ट से जोड़ा गया।

बड़ी संख्या में रीडायरेक्ट बनाना तेज़ है। उन्हें बड़ी संख्या में हटाना नहीं, और यह फ़र्क़ इतना बड़ा है कि import की योजना ही बदल जाए।

कार्य तरीक़ा जो मापा गया
1,051 रीडायरेक्ट बनाना CSV import, एक ही फ़ाइल 48 सेकंड
1,051 रीडायरेक्ट हटाना urlRedirectDelete, एक बार में एक 226 सेकंड

तेज़ bulk delete mutations पर रोक लगी है। urlRedirectBulkDeleteBySearch, urlRedirectBulkDeleteByIds और urlRedirectBulkDeleteAll, तीनों के लिए write_online_store_navigation scope और एक सक्रिय user session चाहिए। Client credentials से authenticate करने वाला ऐप, और ज़्यादातर माइग्रेशन स्क्रिप्ट ऐसे ही चलती हैं, इन्हें कॉल नहीं कर सकता और एक बार में एक रिकॉर्ड हटाता रह जाता है।

अपने import की योजना यह मानकर बनाएँ कि उन्हें पलटना मुश्किल है, क्योंकि सचमुच मुश्किल है। फ़ाइल पहले किसी development स्टोर पर जाँचें, या उतने हिस्सों में import करें जितने आप हाथ से वापस लेने को तैयार हों। 50,000 पंक्तियों की ऐसी फ़ाइल इस भरोसे मत चढ़ाइए कि आप उसे जल्दी वापस ले लेंगे, जिसे आपने टेस्ट ही नहीं किया।

CSV import और Admin API डुप्लिकेट को अलग तरह से लेते हैं

27 जुलाई 2026 के दोबारा टेस्ट से जोड़ा गया।

यह गाइड CSV वाले तरीक़े के इर्द गिर्द लिखी गई है, जिसमें दोहराया गया path मौजूदा रिकॉर्ड को अपडेट कर देता है। API इसका उलटा करता है:

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

REJECTED: "Path has already been taken"

जो कोई CSV वाला तरीक़ा Admin API पर ले जा रहा है, उसे मौजूदा रिकॉर्ड की query करके urlRedirectUpdate कॉल करना होगा, या रिकॉर्ड हटाकर दोबारा बनाना होगा। Import की लॉजिक सीधे उठाकर रख देंगे तो वह हर उस path पर विफल होगी जो पहले से मौजूद है।

Launch के बाद अपने Shopify रीडायरेक्ट कैसे टेस्ट करें

ऊपर की हर बात बताती है कि Shopify क्या स्वीकार करेगा। उसमें से कुछ भी यह नहीं बताता कि आपने जो रीडायरेक्ट import किए वे live स्टोर पर सचमुच काम कर रहे हैं या नहीं, और वह अलग सवाल है। कोई रीडायरेक्ट साफ़ सुथरा import हो सकता है, admin में दिख सकता है, और फिर भी वह न करे जिसकी आपने उम्मीद की थी, अगर रास्ते में कोई theme, कोई ऐप या कोई proxy आ जाए।

ब्राउज़र में इधर उधर क्लिक करने के बजाय स्टोर के बाहर से टेस्ट करें, क्योंकि ब्राउज़र वही चीज़ छिपा देता है जो आपको देखनी है: status code। पुराना URL माँगें और response headers पढ़ें।

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

आउटपुट में तीन चीज़ें पढ़ें:

  • पहले hop का status code। आपको 301 चाहिए। 302 अस्थायी होता है और मूल्य अलग तरह से पहुँचाता है, जो तब मायने रखता है जब पूरी बात ही स्थायी स्थानांतरण की हो।
  • Hops की संख्या। आउटपुट की हर HTTP/ पंक्ति एक hop है। दो या उससे ज़्यादा का मतलब है कि आपने चेन बना दी, और इसका इलाज यह है कि बीच वाला क़दम बनाए रखने के बजाय मूल स्रोत को सीधे आख़िरी गंतव्य पर भेज दें।
  • आख़िरी status। आख़िरी पंक्ति 200 होनी चाहिए। जो रीडायरेक्ट 404 पर ख़त्म होता है, वह रीडायरेक्ट न होने से भी बुरा है, क्योंकि आपकी स्प्रेडशीट में वह निपटा हुआ दिखता है।

फिर उन रूपों को टेस्ट करें जिन्हें भूलना आसान है। वही जाँच tracking parameter वाले किसी URL पर चलाएँ ताकि पक्का हो कि query string गंतव्य तक बची रहती है, www के साथ apex domain पर भी चलाएँ, और सिर्फ़ https के बजाय सादे http पर भी। हमने ठीक यही एक live स्टोर पर टेस्ट किया और parameter ज्यों का त्यों target तक पहुँचा, पर बात यह है कि किसी आम जवाब पर भरोसा करने के बजाय इसे अपने स्टोर पर जाँचें, क्योंकि कोई theme या ऐप नतीजा बदल सकता है।

घबराने से पहले एक व्यवहार जान लेना ठीक रहेगा: रीडायरेक्ट बदलने या हटाने के बाद कोई Shopify edge node लगभग तीस सेकंड तक पुराना जवाब देता रह सकता है, जबकि उसी URL का cache से बचा हुआ रूप पहले ही नया जवाब लौटा रहा होता है। एक मिनट दें और अंत में एक अलग query string जोड़कर दोबारा टेस्ट करें, तभी यह निष्कर्ष निकालें कि रीडायरेक्ट लगा ही नहीं।

एक अकेले रीडायरेक्ट के बजाय पूरे माइग्रेशन का क्रम देखने के लिए website migration checklist पर काम करें, जिसमें मैपिंग, launch वाला दिन और launch के बाद की निगरानी शामिल है, और यह सब उसी का हिस्सा है।


निष्कर्ष

301 रीडायरेक्ट सँभालने के लिए Shopify के पास जो सिस्टम है वह ज़्यादातर कारोबारों के लिए अच्छा है, पर अभी Enterprise स्तर का नहीं है। हमें उम्मीद है कि समय के साथ वह विकसित होकर wildcard रीडायरेक्ट और अपने standard तथा plus plans के लिए ज़्यादा रीडायरेक्ट रिकॉर्ड शामिल करेगा। उनका रीडायरेक्ट सिस्टम इस्तेमाल कर पाना और वह जितने तरह के URL फ़ॉर्मैट सपोर्ट करता है, उसके चलते हम उन्हें एक मज़बूत उपयोगिता स्कोर देते हैं।

अगर आप ऐसा प्रोजेक्ट ले रहे हैं जिसमें जटिल 301 रीडायरेक्ट मैपिंग शामिल है और आपको ऐसी टीम चाहिए जो ठीक इसी तरह के काम में डूबी रहती है, तो हमसे संपर्क करें


अक्सर पूछे जाने वाले सवाल

WISLR का Shopify URL रीडायरेक्ट नॉलेज बेस किसके लिए है?

हमारा नॉलेज बेस मुख्य रूप से उन ब्रैंड और एजेंसियों के काम आता है जो Shopify पर साइट माइग्रेशन कर रही हैं। यह ख़ास तौर पर उन छोटी टीमों के लिए मूल्यवान है जिन्हें हर घंटे का हिसाब रखना पड़ता है, क्योंकि यह क्लाइंट को 100,000 तक URL रीडायरेक्ट कुशलता से मिलाने और पूरा करने में मदद करता है।

क्या Shopify के पास URL रीडायरेक्ट का कोई आधिकारिक सपोर्ट डॉक्युमेंट है?

हाँ, Shopify help.shopify.com पर URL रीडायरेक्ट के लिए एक आधिकारिक हेल्प डॉक्युमेंट रखता है। उसमें अलग-अलग और bulk 301 रीडायरेक्ट जोड़ने के सामान्य दिशानिर्देश हैं, और हमारी गाइड उसमें URL के प्रकारों और प्लैटफ़ॉर्म की सीमाओं का विस्तृत ब्योरा जोड़ती है।

Shopify किन URL strings को सपोर्ट नहीं करता?

Shopify में सिर्फ़ एक URL string फ़ॉर्मैट असमर्थित है: equals operator के बाद बिना encode किए semicolon कैरेक्टर वाले strings (जैसे /page?param=;semicolon)। बाक़ी सभी URL फ़ॉर्मैट सपोर्ट होते हैं, encode किए गए semicolon और दूसरी जगहों पर आए semicolon भी शामिल।

क्या Shopify wildcard या regex वाले रीडायरेक्ट सपोर्ट करता है?

नहीं, Shopify फ़िलहाल अपने native रीडायरेक्ट सिस्टम में न wildcard रीडायरेक्ट सपोर्ट करता है न regex पैटर्न। यह सीमा standard Shopify और Shopify Plus, दोनों तरह के स्टोर पर लागू है।

Wildcard रीडायरेक्ट क्या होते हैं?

Wildcard रीडायरेक्ट से आप एक ख़ास पैटर्न से मेल खाते कई URL को एक ही गंतव्य पर भेज सकते हैं। जैसे, /blog/* के नीचे के सारे URL को /articles/* पर भेजना। यह सुविधा अक्सर माँगी जाती है, पर फ़िलहाल Shopify की native कार्यक्षमता में उपलब्ध नहीं है।

क्या Shopify रीडायरेक्ट चेन बनने से रोक सकता है?

हाँ, Shopify में रीडायरेक्ट चेन रोकने के लिए अंदरूनी सुरक्षा जाँच हैं। सिस्टम आपको ऐसे URL पर रीडायरेक्ट बनाने नहीं देगा जिसे पहले से कहीं और भेजा जा रहा है।

रीडायरेक्ट चेन क्या होती हैं?

रीडायरेक्ट चेन तब बनती है जब URL आख़िरी गंतव्य तक पहुँचने से पहले कई चरणों से होकर जाते हैं (जैसे A→B→C)। ऐसी चेन पेज लोड धीमा कर सकती हैं और SEO प्रदर्शन पर असर डाल सकती हैं। Shopify का सिस्टम अपनी बनावट से इन्हें रोकने में मदद करता है।

क्या Shopify पर URL रीडायरेक्ट बनाना और अपडेट करना आसान है?

हाँ, Shopify दो सीधे तरीक़े देता है: अपने इंटरफ़ेस में एक-एक URL रीडायरेक्ट बनाना, और CSV फ़ाइल से bulk import। दोनों तरीक़े relative और absolute दोनों URL paths सपोर्ट करते हैं।

Shopify में bulk URL रीडायरेक्ट कैसे बनाएँ?

Bulk रीडायरेक्ट Shopify के CSV import टूल से बनाए जा सकते हैं। हम 1,000 के batches में import करने की सलाह देते हैं, क्योंकि इससे गड़बड़ियाँ जाँचना और सँभालना आसान रहता है। Import के लिए एक टेम्पलेट यहाँ उपलब्ध है।

क्या Shopify में URL रीडायरेक्ट रिकॉर्ड की कोई अधिकतम सीमा है?

हाँ। Standard Shopify plans 100,000 URL रीडायरेक्ट तक सीमित हैं, जबकि Shopify Plus स्टोर 20,000,000 तक रीडायरेक्ट संभाल सकते हैं। ये सीमाएँ तय हैं और बढ़ाई नहीं जा सकतीं।

क्या Shopify में रीडायरेक्ट के कैरेक्टर की कोई सीमा है?

हाँ, Shopify URL रीडायरेक्ट strings पर 1,024 कैरेक्टर की सीमा लागू करता है, जिसमें शुरुआत का forward slash (’/’) भी गिना जाता है। इससे लंबे URL सिस्टम स्वीकार नहीं करेगा।

क्या Shopify अनुकूलता के लिए URL जाँचने का कोई टूल है?

Shopify कोई आधिकारिक जाँच टूल नहीं देता, पर हमारे विस्तृत टेस्ट ने दिखाया कि 99% सामान्य URL फ़ॉर्मैट सपोर्ट होते हैं। ध्यान देने लायक मुख्य बातें 1,024 कैरेक्टर की सीमा और equals operator के बाद बिना encode किए semicolon से बचना हैं।