पढ़ने में 12 मिनट
URL रीडायरेक्ट कैसे चेक करें (और रीडायरेक्ट चेन कैसे पढ़ें)
TrueURL, curl और DevTools से URL रीडायरेक्ट चेक करने का तरीका: रीडायरेक्ट चेन का हर हॉप पढ़ें और लूप, लंबी चेन व मिले-जुले 301/302 ठीक करें।
लेख पढ़ेंमुफ़्त रीडायरेक्ट टूल
हर रीडायरेक्ट HTTP स्टेटस कोड नहीं होता। TrueURL चेन के हर पेज का HTML पढ़ता है और मेटा रिफ़्रेश टैग और JavaScript रीडायरेक्ट को उनके टारगेट URL और देरी के साथ ढूंढता है।
जांचने के लिए Enter दबाएं
Cloudflare का एज नेटवर्क सर्टिफ़िकेट हमेशा वैलिडेट करता है, इसलिए इस विकल्प से यह जांच छोड़ी नहीं जा सकती। सर्टिफ़िकेट की समस्याएं नतीजे में दिखाई जाती हैं।
पहली रिक्वेस्ट के साथ भेजी जाती है, ज़्यादा से ज़्यादा 16 KB। JSON बॉडी application/json के रूप में और बाकी बॉडी फ़ॉर्म के रूप में भेजी जाती है, जब तक आप Content-Type हेडर सेट न करें।
1 से 50 तक। ब्राउज़र 20 के बाद रुक जाते हैं।
साइटें फ़ोन, क्रॉलर और लिंक प्रीव्यू बॉट को अलग-अलग जगह रीडायरेक्ट कर सकती हैं।
चेन की हर रिक्वेस्ट के साथ भेजे जाते हैं।
कोई कस्टम हेडर नहीं।
यह हेडर भेजने के लिए वैल्यू डालें। हेडर की वैल्यू कभी सेव नहीं होती।
HTML पेजों में मिलने वाले <meta http-equiv="refresh"> टैग और Refresh हेडर फ़ॉलो करें।
पेज की स्क्रिप्ट में location.href = "…" जैसे सीधे, बिना शर्त वाले रीडायरेक्ट फ़ॉलो करें।
सेटिंग्स इसी ब्राउज़र में याद रखी जाती हैं। कुकीज़, हेडर की वैल्यू और POST बॉडी कभी सेव नहीं होतीं।
मेटा रिफ़्रेश एक HTML टैग है, जो ब्राउज़र को कुछ सेकंड की देरी के बाद कोई दूसरा URL लोड करने को कहता है:
<meta http-equiv="refresh" content="0; url=https://example.com/new-page">
0 की देरी पर यह सामान्य रीडायरेक्ट की तरह काम करता है। लंबी देरी होने पर विज़िटर को पहले पेज दिखता है, जैसा पुराने “आपको रीडायरेक्ट किया जा रहा है” वाले पेजों पर होता था। JavaScript रीडायरेक्ट यही काम location.href = '...' या location.replace('...') जैसे कोड से करते हैं। दोनों क्लाइंट-साइड रीडायरेक्ट हैं: सर्वर 200 OK जवाब देता है और रीडायरेक्ट ब्राउज़र करता है।
2xx स्टेटस वाले हर HTML रिस्पॉन्स के लिए TrueURL पेज के शुरुआती 256 KB में मेटा रिफ़्रेश टैग और सामान्य, बिना शर्त वाले JavaScript रीडायरेक्ट ढूंढता है। Refresh HTTP हेडर भी पकड़ा जाता है, जो मेटा रिफ़्रेश की तरह ही काम करता है। ऐसा कुछ मिलने पर यह टैग या स्क्रिप्ट का हिस्सा, पूरा (रिज़ॉल्व किया हुआ) टारगेट URL और देरी दिखाता है, हॉप पर मेटा रिफ़्रेश या JavaScript का लेबल लगाता है, और टारगेट से चेन आगे बढ़ाता है। जो रिफ़्रेश सिर्फ़ उसी पेज को दोबारा लोड करता है, वह रीडायरेक्ट नहीं है और उसे अनदेखा किया जाता है।
पेज को खुद देखने के लिए आप एडवांस सेटिंग्स में दोनों में से किसी भी तरह के रीडायरेक्ट को फ़ॉलो करना बंद कर सकते हैं। TrueURL JavaScript चलाता नहीं है: यह पेज की स्क्रिप्ट पढ़ता है और ऐसे रीडायरेक्ट पहचानता है जो किसी तय URL पर जाते हैं और पेज लोड होते ही हमेशा चलते हैं, चाहे तुरंत या किसी टॉप-लेवल setTimeout में। जो रीडायरेक्ट किसी शर्त पर निर्भर करते हैं, जैसे क्लिक, कंसेंट का चुनाव या स्क्रीन साइज़, या जो टारगेट URL कोड में बनाते हैं, वे नहीं पकड़े जाते। HEAD के बजाय GET इस्तेमाल करें, क्योंकि HEAD रिस्पॉन्स में स्कैन करने के लिए कोई बॉडी नहीं होती।
Google सलाह देता है कि जहां भी आप सर्वर-साइड रीडायरेक्ट कॉन्फ़िगर कर सकें, वहां वही इस्तेमाल करें, और मेटा रिफ़्रेश को सिर्फ़ बैकअप (fallback) के तौर पर रखें, जैसे ऐसी स्टैटिक होस्टिंग पर जो 301 नहीं भेज सकती।
टाइमर वाले रीडायरेक्ट ऐक्सेसिबिलिटी की समस्या हैं: स्क्रीन रीडर इस्तेमाल करने वाले या धीरे पढ़ने वाले लोग पेज के अचानक बदलने पर भूल जाते हैं कि वे कहां तक पढ़ चुके थे। WCAG टाइमर वाले मेटा रिफ़्रेश को एक विफलता (F40) के रूप में दर्ज करता है, जबकि 0 देरी वाला तुरंत रीडायरेक्ट एक मान्य तकनीक (H76) है।
अगर आपको HTML में ही रीडायरेक्ट करना है, तो 0 की देरी रखें, नए URL की ओर इशारा करने वाला कैननिकल टैग जोड़ें, और पेज में उसका एक साफ़ दिखने वाला लिंक भी दें, उन विज़िटर के लिए जिनका ब्राउज़र रिफ़्रेश को फ़ॉलो नहीं करता।
पढ़ने में 12 मिनट
TrueURL, curl और DevTools से URL रीडायरेक्ट चेक करने का तरीका: रीडायरेक्ट चेन का हर हॉप पढ़ें और लूप, लंबी चेन व मिले-जुले 301/302 ठीक करें।
लेख पढ़ेंपढ़ने में 13 मिनट
हर 3xx स्टेटस कोड का मतलब: 301, 302, 303, 307 और 308 की तुलना स्थायी/अस्थायी, मेथड, कैशिंग और SEO पर, nginx, Apache और PHP उदाहरणों के साथ।
लेख पढ़ेंGoogle तुरंत होने वाले मेटा रिफ़्रेश (देरी 0) को स्थायी रीडायरेक्ट मानता है, इसलिए व्यवहार में यह काफ़ी हद तक 301 जैसा काम करता है। देरी वाला रिफ़्रेश अस्थायी गिना जाता है। दूसरे क्रॉलर मेटा रिफ़्रेश को उतने भरोसेमंद तरीके से शायद न संभालें, इसलिए जब भी आपकी होस्टिंग अनुमति दे, सर्वर-साइड 301 इस्तेमाल करें।
रीडायरेक्ट HTTP रिस्पॉन्स में नहीं, बल्कि पेज के HTML या JavaScript में होता है। सिर्फ़ स्टेटस कोड फ़ॉलो करने वाले टूल, जैसे curl -L, 200 वाले पेज पर ही रुक जाते हैं। TrueURL पेज का कॉन्टेंट स्कैन करता है और क्लाइंट-साइड रीडायरेक्ट को एक अलग हॉप के रूप में दिखाता है।
अगर मकसद रीडायरेक्ट करना है, तो 0। कोई भी देरी Google के लिए इसे अस्थायी रीडायरेक्ट बना देती है, विज़िटर को इंतज़ार कराती है और ऐक्सेसिबिलिटी की समस्याएं पैदा करती है। देरी सिर्फ़ ऐसे पेज पर समझ में आती है जिसे पहले कोई मैसेज दिखाना हो, और उस पेज पर आगे बढ़ने का एक साफ़ लिंक भी होना चाहिए।
नहीं, सिर्फ़ ऐसे सामान्य, बिना शर्त वाले रीडायरेक्ट जिनका टारगेट URL पेज के HTML में तय हो, जैसे location.href = '...', window.location = '...' या location.replace('...'), किसी टॉप-लेवल setTimeout के अंदर भी। बाहरी स्क्रिप्ट फ़ाइलों में मौजूद, किसी शर्त पर टिके, यूज़र के किसी एक्शन से चलने वाले या कोड में बनाए गए URL वाले रीडायरेक्ट को चलाने के लिए असली ब्राउज़र चाहिए। अगर चेन किसी ऐसे पेज पर रुक जाती है जिसके बारे में आप जानते हैं कि वह रीडायरेक्ट करता है, तो शायद यही वजह है।
आम तौर पर इसलिए कि वह HTTP रीडायरेक्ट भेज ही नहीं सकती: रीडायरेक्ट नियमों के बिना स्टैटिक होस्टिंग, कोई पेज बिल्डर या पुराना CMS। कुछ लिंक शॉर्टनर और क्लिक ट्रैकर भी HTML रीडायरेक्ट इस्तेमाल करते हैं, ताकि पहले एनालिटिक्स स्क्रिप्ट चला सकें या यह तय कर सकें कि डेस्टिनेशन को कौन-सा रेफ़रर दिखे।
नहीं। HEAD रिस्पॉन्स में हेडर होते हैं, बॉडी नहीं, इसलिए स्कैन करने के लिए कोई HTML ही नहीं होता। HEAD से जांच करने पर TrueURL आपको चेतावनी देता है; इस टूल के लिए GET इस्तेमाल करें।