बहुभाषी साइटों पर hreflang त्रुटियाँ|टैग विफल होने के 7 तकनीकी कारण

本文作者:Don jiang

उदाहरण के लिए, भाषा कोड के फॉर्मेट में त्रुटि या लिंक पथ अधूरा होने जैसी छोटी गलतियाँ सर्च इंजन को पेज की भाषा या क्षेत्र को सही ढंग से पहचानने में असमर्थ बना सकती हैं, या यहाँ तक कि बहुभाषी पेजों के बीच ट्रैफिक के लिए प्रतिस्पर्धा उत्पन्न कर सकती हैं, जिससे लक्षित दर्शकों को खोना पड़ सकता है।

यह लेख तकनीकी प्रैक्टिकल दृष्टिकोण से 7 सबसे आम hreflang कॉन्फ़िगरेशन त्रुटियों का सारांश प्रस्तुत करता है, और सुझाव देता है कि उपकरणों का उपयोग करके नियमित सत्यापन किया जाए ताकि छोटी गलतियों से पूरे ऑप्टिमाइज़ेशन प्रभाव पर बुरा असर न पड़े।

बहुभाषी साइट hreflang त्रुटियां

Table of Contens

भाषा या क्षेत्र कोड फॉर्मेट त्रुटि

उदाहरण के लिए, बड़े अक्षरों का उपयोग करना (जैसे EN-US) या वर्तनी की गलतियाँ (जैसे zh-CN को zh-CH लिखना) सर्च इंजन को पेज के लक्ष्य क्षेत्र को सही से समझने में असमर्थ बना सकता है, या इसे अमान्य टैग के रूप में गलत समझ सकता है।

यहाँ तक कि यदि कोड सही दिखता है (जैसे es-ES का उपयोग करना es के बजाय), तो भी अतिरिक्त जानकारी मिलान तर्क को प्रभावित कर सकती है।

प्रभाव काफी बड़ा हो सकता है, उदाहरण के लिए स्पेनिश उपयोगकर्ताओं के खोज ट्रैफिक को गलती से पुर्तगाली पेज पर भेजा जा सकता है।

ISO मानक कोड नियम

  • भाषा कोड: ISO 639-1 मानक के अनुसार केवल छोटे अक्षरों का उपयोग करें (जैसे en, es, zh), केवल 2-अक्षर संक्षिप्त रूप स्वीकार्य है।
  • क्षेत्र कोड: वैकल्पिक, ISO 3166-1 मानक के अनुसार बड़े अक्षरों का उपयोग करें (जैसे US, GB, CN), केवल देश/क्षेत्र संक्षिप्त रूप।
  • संयोजन स्वरूप: भाषा और क्षेत्र के बीच हाइफ़न का उपयोग करें, उदाहरण के लिए en-US (अमेरिकी अंग्रेज़ी), zh-CN (सरलीकृत चीनी)।

अपवाद:

  • केवल भाषा कोड होने पर (जैसे fr), इसका मतलब है सभी फ्रेंच भाषी उपयोगकर्ताओं के लिए है, बिना क्षेत्र के प्रतिबंध के।
  • पारंपरिक चीनी के लिए zh-Hant (पारंपरिक चीनी) या zh-Hant-TW (ताइवान क्षेत्र के पारंपरिक चीनी) का उपयोग करें, न कि zh-TW (जो ताइवान के सरल चीनी के रूप में गलत पढ़ा जा सकता है)।

प्रमुख त्रुटि परिदृश्य और परिणाम

त्रुटि 1: अक्षर केस में भ्रम

  • गलत उदाहरण: EN-us (भाषा कोड बड़े अक्षरों में + क्षेत्र छोटे अक्षरों में), Zh-cn (भाषा कोड की पहली अक्षर बड़ी)।
  • परिणाम: सर्च इंजन संभवतः इस टैग को पूरी तरह से नजरअंदाज कर देगा, जिससे पेज लक्षित उपयोगकर्ताओं से मेल नहीं खा पाएगा।

त्रुटि 2: वर्तनी या काल्पनिक कोड

  • गलत उदाहरण: pt-BZ (ब्राजील का सही कोड BR है), eu (बास्क भाषा का कोड, लेकिन कुछ इंजन दुर्लभ भाषाओं का समर्थन नहीं करते)।
  • परिणाम: दुर्लभ भाषा या गलत क्षेत्र कोड के कारण पेज सही तरीके से इंडेक्स नहीं होगा और ट्रैफिक डिफॉल्ट भाषा पेज पर चला जाएगा।

त्रुटि 3: अनावश्यक कोड या गलत संयोजन

  • गलत उदाहरण: es-ES (स्पेनिश + स्पेन क्षेत्र, असल में केवल es पर्याप्त है), en-US-UK (अमान्य बहु-क्षेत्र संयोजन)।
  • परिणाम: अनावश्यक जानकारी इंजन को भ्रमित कर सकती है, जिससे वे अधिक सरल प्रतिस्पर्धी पेज को प्राथमिकता देंगे।

सुझाई गई उपकरण और सत्यापन विधि

  • Google hreflang परीक्षण उपकरण: URL डालकर जांचें कि कोड解析 हो रहा है या नहीं (Search Console के साथ उपयोग करें)।
  • Screaming Frog: साइट को क्रॉल करते समय hreflang टैग्स फ़िल्टर करें और त्रुटिपूर्ण कोड्स का समूह में निर्यात करें (पेड संस्करण)।
  • Hreflang Validator (तीसरा पक्ष उपकरण): मुफ्त ऑनलाइन जांच, फ़ॉर्मेट त्रुटियों और लिंक विरोधाभास को चिह्नित करता है।

व्यावहारिक सुधार कदम

मौजूदा कोड की जांच करें: WordPress साइट के उदाहरण के तौर पर, प्लगइन (जैसे Yoast SEO) या सीधे पेज के सोर्स कोड में जाकर <link rel="alternate" hreflang="..." /> टैग खोजें।

गलत कोड का थोक प्रतिस्थापन

  1. यदि आप मल्टी-भाषा प्लगइन (जैसे WPML) का उपयोग कर रहे हैं, तो भाषा सेटिंग में सीधे “भाषा कोड” प्रारूप को संशोधित करें।
  2. मैन्युअल रूप से संशोधित करते समय, सुनिश्चित करें कि सभी पेज एक समान प्रारूप में हों (जैसे कि ग्लोबली EN को en से बदलना)।

क्षेत्रीय कोड जोड़ना (वैकल्पिक)

  • केवल तब जोड़ें जब क्षेत्रीय विभाजन आवश्यक हो (जैसे en-GB ब्रिटेन उपयोगकर्ताओं के लिए), अन्यथा केवल भाषा कोड रखें (जैसे fr)।

पुनः सत्यापन:टूल का उपयोग करके दोबारा जांच करें, सुनिश्चित करें कि संशोधित पेज 200 स्टेटस कोड लौटाएं और कोई क्रॉल त्रुटि न हो।

पूर्ण सापेक्ष URL का उपयोग न करना

कई साइट मालिक सोचते हैं कि सापेक्ष पथ (जैसे /de/page) या प्रोटोकॉल छोड़ना (जैसे example.com/de) कॉन्फ़िगरेशन को सरल बनाता है, लेकिन वास्तव में यह गंभीर समस्याएँ पैदा कर सकता है।

उदाहरण के लिए, यदि पेज के दोनों http और https संस्करण मौजूद हैं, तो प्रोटोकॉल नहीं लिखने से इंजन इसे दो अलग पेज के रूप में समझ सकता है, जिससे पेज रैंक बंट जाता है।

इसके अलावा, सबडोमेन या सबडायरेक्टरी संरचना वाली साइटों में, पूर्ण URL का उपयोग न करने से पथ अस्पष्ट हो सकता है और टैग काम करना बंद कर सकते हैं (जैसे मोबाइल और पीसी संस्करण के URL मिलाने पर)।

पूर्ण URL की परिभाषा और आवश्यकता

पूर्ण URL में प्रोटोकॉल (जैसे http:// या https://) होना चाहिए, साथ ही पूरा डोमेन और पथ भी शामिल होना चाहिए (जैसे https://www.example.com/de/page)।

आवश्यकता

  1. सर्च इंजन को अलग-अलग पेज स्पष्ट रूप से पहचानने की जरूरत होती है। सापेक्ष पथ (जैसे /de/page) को किसी भी डोमेन संस्करण (http या https) के रूप में पढ़ा जा सकता है, जिससे डुप्लीकेट कंटेंट बनता है।
  2. सबडोमेन या सबडायरेक्टरी के मामले में, पूर्ण पथ न होने पर इंजन पेज की असली जगह गलत समझ सकता है (जैसे de.example.com/page और www.example.com/de/page अलग पेज माने जा सकते हैं)।

सामान्य समस्या वाले परिदृश्य

  • पेज के दोनों http और https संस्करण मौजूद हैं, लेकिन hreflang में प्रोटोकॉल नहीं है, जिससे पेज रैंक बंटता है।
  • मोबाइल और डेस्कटॉप पर साझा कंटेंट के URL अलग हैं (जैसे m.example.com/de और example.com/de), पर पूर्ण URL से लिंक नहीं किया गया।

आम गलतियाँ और परिणाम

गलती 1: सापेक्ष पथ या प्रोटोकॉल का अभाव

गलत उदाहरण

  1. <link hreflang="de" href="/de/page" /> (सापेक्ष पथ)
  2. <link hreflang="es" href="www.example.com/es/page" /> (https:// के बिना)

परिणाम

  • इंजन /de/page को http://example.com/de/page के रूप में पढ़ सकता है, जबकि पेज वास्तव में https पर है, जिससे टैग काम नहीं करता।
  • http और https के पेज अलग-अलग माने जाते हैं, जिससे डुप्लीकेट कंटेंट और रैंक बंटता है।

गलती 2: सबडोमेन का एकरूप न होना

  • गलत उदाहरण: मुख्य साइट https://example.com/fr/page का उपयोग करती है, लेकिन फ्रेंच सबसाइट अलग URL का उपयोग करता है।
  • https://fr.example.com/page और hreflang टैग आपस में पूर्ण URL की ओर इंगित नहीं करते हैं।
  • परिणाम: सर्च इंजन सबडोमेन और मुख्य साइट पेज के बीच संबंध स्थापित नहीं कर पाते हैं, जिससे फ्रेंच उपयोगकर्ताओं को डिफ़ॉल्ट भाषा वाले पेज पर भेजा जा सकता है।
  • त्रुटि 3: डायनामिक पैरामीटर मानकीकृत नहीं हैं

    • त्रुटि का उदाहरण: <link hreflang="ja" href="https://example.com/page?lang=ja" /> (ट्रैकिंग पैरामीटर सहित)
    • परिणाम: इंजन इन्हें अलग पेज समझ सकते हैं (जैसे ?lang=ja और ?lang=ja&utm=ads), जिससे hreflang टैग पूरी तरह से कवर नहीं हो पाते।

    उपकरणों द्वारा जांच करने के तरीके

    • Google Search Console:
      “कवर रिपोर्ट” में “डुप्लिकेट पेज” या “hreflang नहीं चिह्नित” जैसी त्रुटियों को देखें और अधूरा URL ढूंढें।
    • Screaming Frog:
      साइट क्रॉल करने के बाद, hreflang टैग को फ़िल्टर करें और जांचें कि href एट्रिब्यूट पूर्ण URL हैं या नहीं (फ़िल्टर: //example.com या /path)।
    • Sitebulb:
      “इंटरनेशनल SEO ऑडिट” रिपोर्ट में सीधे “अधूरा hreflang URL” दिखाता है और सुधार सुझाव देता है।

    सुधार योजना और व्यावहारिक कदम

    CMS सिस्टम (जैसे WordPress):

    प्लगइन कॉन्फ़िगरेशन:
    यदि Yoast SEO जैसे प्लगइन का उपयोग करते हैं, तो “मल्टी-लैंग्वेज सेटिंग्स” में “पूर्ण URL जनरेट करें” को ज़ोर दें (आमतौर पर “सापेक्ष पथ” विकल्प को बंद करें)।

    डेटाबेस में बैच रिप्लेसमेंट:
    SQL कमांड या Better Search Replace जैसे प्लगइन के माध्यम से, href="/ को href="https://www.example.com/ से बदलें।

    मैनुअल कोड सुधार:
    HTML या सर्वर-साइड रेंडरिंग लॉजिक में सुनिश्चित करें कि सभी hreflang लिंक पूर्ण URL के रूप में बने हों, उदाहरण के लिए:

    <link rel="alternate" hreflang="de" href="<?php echo site_url('/de/page'); ?>" />

    सर्वर कॉन्फ़िगरेशन:

    • प्रोटोकॉल एकरूपता लागू करें: .htaccess या Nginx सेटिंग के जरिए, http को स्वतः https पर रीडायरेक्ट करें ताकि मिक्स्ड कंटेंट से बचा जा सके।
    • URL सामान्यीकरण: एक ही कंटेंट के लिए अलग-अलग पथों (जैसे /de और /de/) के लिए 301 रीडायरेक्ट लगाएं, ताकि एकमात्र पूर्ण URL सुनिश्चित हो सके।

    आत्म-संदर्भित hreflang टैग की कमी

    उदाहरण के लिए, यदि कोई फ्रेंच पेज केवल अंग्रेजी, स्पेनिश आदि अन्य भाषा संस्करणों के लिंक को चिह्नित करता है, लेकिन hreflang="fr" को अपनी ओर इंगित नहीं करता है,

    सर्च इंजन पेज की भाषा पहचान नहीं कर पाएंगे, जिससे वह फ्रेंच उपयोगकर्ताओं के लिए सही ढंग से वर्गीकृत नहीं होगा।

    आत्म-संदर्भित टैग का महत्व और आवश्यकता

    आत्म-संदर्भित टैग पेज में अपना स्वयं का hreflang डिक्लेरेशन होता है (जैसे फ्रेंच पेज में <link rel="alternate" hreflang="fr" href="अपने पेज का URL"/> शामिल होना चाहिए)।

    मुख्य भूमिका:

    • सर्च इंजन को स्पष्ट रूप से पेज की भाषा/क्षेत्र बताना, जिससे गलत वर्गीकरण से बचा जा सके।
    • अन्य भाषा संस्करणों के साथ एक पूर्ण लूप बनाना, जिससे पेजों के बीच权重 सही तरीके से ट्रांसफर हो।

    अनुपस्थिति के परिणाम

    • सर्च इंजन पेज को “भाषा घोषित नहीं” के रूप में मान सकते हैं और इसे डिफ़ॉल्ट रूप से मुख्य भाषा निर्देशिका में असाइन कर सकते हैं, जिससे लक्षित उपयोगकर्ता ट्रैफ़िक की हानि हो सकती है।
    • बहुभाषी प्रतिस्पर्धा की स्थिति में (जैसे अंग्रेज़ी और स्पेनिश पेज दोनों में स्व-संदर्भ नहीं है), आंतरिक डुप्लिकेट कंटेंट की समस्या उत्पन्न हो सकती है।

    सामान्य त्रुटि परिदृश्य और केस विश्लेषण

    त्रुटि 1: एकल भाषा साइट में hreflang का गलत उपयोग

    • परिदृश्य: केवल एक भाषा संस्करण वाला पेज है, लेकिन गैर-मौजूद अन्य भाषा पेजों की ओर hreflang जोड़ दिया गया है।
    • परिणाम का उदाहरण: एक अंग्रेज़ी एकल भाषा साइट के पेज में hreflang="en" जोड़ते समय, वह खुद की ओर तो इशारा करता है लेकिन गलती से hreflang="es" के लिए लिंक कर देता है जो मौजूद नहीं है, जिससे सर्च इंजन टैग को भ्रमित मानता है।

    त्रुटि 2: बहुभाषी प्लगइन कॉन्फ़िगरेशन की चूक

    • परिदृश्य उदाहरण: WPML प्लगइन का उपयोग करते समय “स्व-संदर्भ hreflang स्वचालित रूप से जेनरेट करें” विकल्प का चयन न करना।
    • परिणाम: उत्पन्न टैग में केवल अन्य भाषा संस्करणों के लिंक शामिल होते हैं, वर्तमान पेज का घोषणा गायब रहता है।

    त्रुटि 3: गतिशील पेज में पूर्ण टैग लोड न होना

    • परिदृश्य उदाहरण: JavaScript आधारित पेज (जैसे React/Vue फ्रेमवर्क) में hreflang टैग सही तरीके से <head> में सम्मिलित नहीं होता।
    • परिणाम: सर्च इंजन क्रॉलर संभवतः गतिशील रूप से जनरेट किए गए स्व-संदर्भ टैग को पहचान नहीं पाते।

    जांचने के उपकरण और विधियां

    चरण 1: मैनुअल सोर्स कोड जांच

    • पेज में Ctrl+U दबाएं, सोर्स कोड देखें, hreflang="xx" खोजें और पुष्टि करें कि क्या वर्तमान URL के लिए टैग मौजूद है (ध्यान दें: xx वर्तमान पेज भाषा कोड है)।

    चरण 2: Google Search Console सत्यापन

    • “URL निरीक्षण उपकरण” में पेज URL दर्ज करें, फिर “अंतरराष्ट्रीय लक्ष्यीकरण” रिपोर्ट देखें — यदि “स्व-संदर्भ hreflang टैग नहीं मिला” दिखता है तो समस्या है।

    चरण 3: Hreflang Validator टूल

    • पेज URL दर्ज करें, टूल संबंधित सभी hreflang लिंक सूचीबद्ध करेगा, और स्व-संदर्भ टैग की कमी को लाल चेतावनी से दिखाएगा।

    समाधान और व्यावहारिक कदम

    CMS सिस्टम सुधार (WordPress उदाहरण)

    प्लगइन कॉन्फ़िगरेशन सुधार

    • यदि Yoast SEO उपयोग कर रहे हैं: “स्व-संदर्भ hreflang जोड़ें” विकल्प को “उन्नत सेटिंग्स” में सक्षम करें।
    • यदि WPML उपयोग कर रहे हैं: “भाषा सेटिंग” → “SEO विकल्प” में जाकर “स्व लिंक शामिल करें” को चेक करें।

    मैनुअल सुधार (स्थिर साइट या कस्टम कोड)

    पेज के <head> सेक्शन में निम्नलिखित कोड जोड़ें (फ्रेंच पेज के उदाहरण के लिए):

    <link rel="alternate" hreflang="fr" href="https://www.example.com/fr/page-actuelle" />
    <link rel="alternate" hreflang="x-default" href="https://www.example.com/" />

    डायनेमिक रेंडर की गई पेजेज़ की मरम्मत (जैसे React)

    सर्वर-साइड रेंडरिंग (SSR) लॉजिक में, वर्तमान पेज की भाषा के आधार पर सेल्फ-रिफरेंस लिंक टैग डायनामिकली जनरेट किया जाता है:

    const hreflangSelf = `<link rel="alternate" hreflang="${currentLang}" href="${currentURL}"/>`;
    document.head.insertAdjacentHTML('beforeend', hreflangSelf);

    मल्टी-लैंग्वेज पेज एक-दूसरे से लिंक नहीं हैं

    उदाहरण के लिए, जर्मन पेज अंग्रेजी संस्करण की ओर इशारा करता है, लेकिन अंग्रेजी पेज जर्मन पेज को रिवर्स लिंक नहीं करता।

    एकतरफा लिंकिंग से सर्च इंजन मल्टी-लैंग्वेज वर्जन्स के बीच संबंध को सही से नहीं समझ पाते, जिससे केवल कुछ पेज ही इंडेक्स होते हैं या डुप्लिकेट कंटेंट माना जा सकता है।

    संपूर्ण लिंकिंग का सिद्धांत और आवश्यकता

    hreflang का मूल नियम यह है कि सभी संबंधित पेज एक-दूसरे को लिंक करें, जिससे एक पूर्ण लूप बनता है। उदाहरण के लिए:

    • जर्मन पेज (de) को अंग्रेजी (en), फ्रेंच (fr) और अन्य भाषाओं के पेज की ओर इशारा करना चाहिए;
    • अंग्रेजी और फ्रेंच पेज को भी जर्मन पेज की ओर रिवर्स लिंक करना चाहिए।

    आवश्यकता:

    • 权重传递 (वेट ट्रांसफर): पूर्ण लिंकिंग सर्च इंजन को मल्टी-लैंग्वेज पेजों की समानता समझने में मदद करता है, जिससे权重 बंटना नहीं होता।
    • डुप्लिकेट कंटेंट से बचाव: अगर केवल एकतरफा लिंकिंग है (जैसे अंग्रेजी पेज जर्मन पेज को लिंक करता है, लेकिन जर्मन पेज अंग्रेजी पेज को नहीं), तो इंजन पेजों को अलग कंटेंट समझकर पेनल्टी लगा सकते हैं।

    अपवाद:

    • एक भाषा वाले पेज (जैसे केवल अंग्रेजी) को पूर्ण लूप की जरूरत नहीं होती, लेकिन सेल्फ-रिफरेंस जरूरी है।
    • क्षेत्रीय वेरिएंट्स (जैसे en-US और en-GB) को आपस में लिंक करना चाहिए, लेकिन अन्य भाषाओं से लिंक करना अनिवार्य नहीं।

    सामान्य टूटे हुए लिंक के मामले और परिणाम

    मामला 1: नई भाषा संस्करण जोड़ने पर पुराने पेज अपडेट न होना

    • उदाहरण: एक न्यूज साइट ने जापानी पेज (ja) जोड़ा, लेकिन अंग्रेजी और चीनी पेज ने जापानी पेज के hreflang लिंक नहीं जोड़े।
    • परिणाम: जापानी पेज ‘अकेला’ रह जाता है, और सर्च इंजन केवल अन्य जुड़े पेजों को इंडेक्स करता है।

    मामला 2: CMS प्लगइन लॉजिक में त्रुटि

    • उदाहरण: वर्डप्रेस मल्टी-लैंग्वेज प्लगइन्स (जैसे Polylang) बड़े पैमाने पर पेज बनाते समय पुराने कंटेंट के लिए नए भाषा लिंक नहीं जोड़ते।
    • परिणाम: कुछ पेजों के लिंक टूट जाते हैं और उपयोगकर्ता पुराने कंटेंट से नई भाषा संस्करण पर नहीं जा पाते।

    मामला 3: डायनामिक पैरामीटर लिंकिंग को विफल बनाते हैं

    • उदाहरण: स्पेनिश पेज की URL में पैरामीटर होते हैं (जैसे ?lang=es), लेकिन अन्य भाषा पेज hreflang में इसे शामिल नहीं करते।
    • परिणाम: इंजन es पैरामीटर वाले पेज को अन्य भाषाओं से अलग कंटेंट मानते हैं।

    डिटेक्शन टूल्स और जांच के तरीके

    टूल 1: Screaming Frog

    • क्रॉल रिजल्ट में “Hreflang” टैब पर जाएं और “Missing Reciprocal Links” फिल्टर करें।
    • ऐक्शन: एरर लिस्ट एक्सपोर्ट करें और लूप न बने URLs की पहचान करें।

    टूल 2: Sitebulb

    • “International SEO Audit” रिपोर्ट में “Unreciprocated hreflang links” अलर्ट देखें, जो टूटे लिंक और मिसिंग भाषाएं दिखाता है।

    टूल 3: DeepCrawl

    • कस्टम नियम सेट करें ताकि मल्टी-लैंग्वेज पेज लिंकिंग मॉनिटर हो और हर हफ्ते टूटे लिंक की रिपोर्ट मिले।

    फिक्स और व्यावहारिक कदम

    फिक्स 1: CMS प्लगइन के जरिए मास बुक सुधार (Shopify उदाहरण)

    मल्टी-लैंग्वेज प्लगइन (जैसे Langify) सेटिंग्स में जाकर “ऑटोमैटिकली एसोसिएट ऑल लैंग्वेज वर्जन्स” विकल्प चालू करें।

    “टेम्पलेट सेटिंग्स” में, सुनिश्चित करें कि hreflang टैग की लॉजिक सभी भाषाओं के संस्करणों को लूप करती है:

    {% for language in shop.languages %}
    <link rel="alternate" hreflang="{{ language.iso_code }}" href="{{ canonical_url | replace: shop.domain, language.domain }}" />
    {% endfor %}

    समाधान 2: मैनुअल कोड फिक्स (स्थैतिक साइट)

    प्रत्येक भाषा संस्करण के लिए एक एसोसिएशन सूची बनाएं (जैसे Excel शीट), जिसमें सभी URL समूह शामिल हों जिन्हें आपस में जोड़ा जाना है।

    पृष्ठ में सूची के अनुसार टैग जोड़ें, उदाहरण के लिए:


    <link rel="alternate" hreflang="en" href="https://example.com/en/page" />
    <link rel="alternate" hreflang="de" href="https://example.com/de/page" />
    <link rel="alternate" hreflang="fr" href="https://example.com/fr/page" />

    जर्मन और फ्रेंच पेज के hreflang टैग को भी सिंक्रनाइज़ करें ताकि वे अंग्रेजी पेज के लिंक शामिल करें।

    समाधान 3: सर्वर-साइड ऑटोमेशन (जैसे Nginx)

    रिवर्स प्रॉक्सी और मैपिंग नियमों के माध्यम से hreflang टैग डायनेमिक रूप से जनरेट करें:

    location / {
    add_header Link "<https://$host/en$uri>; rel=alternate; hreflang=en";
    add_header Link "<https://$host/de$uri>; rel=alternate; hreflang=de";
    }

    Canonical टैग के साथ संघर्ष

    उदाहरण के लिए, यदि किसी जर्मन उत्पाद पेज का Canonical टैग अंग्रेजी मुख्य साइट पेज की ओर इशारा करता है, तो खोज इंजन जर्मन पेज को अंग्रेजी पेज की कॉपी समझेंगे और इसे जर्मन उपयोगकर्ताओं को नहीं दिखाएंगे।

    अधिक सामान्य समस्या यह है कि कई CMS सिस्टम डिफ़ॉल्ट रूप से सभी भाषा संस्करणों का Canonical मुख्य भाषा पेज (जैसे x-default) की ओर सेट करते हैं, जिससे अन्य भाषा पेज स्वतंत्र रूप से इंडेक्स नहीं हो पाते।

    संघर्ष का सिद्धांत और प्राथमिकता नियम

    खोज इंजन hreflang और Canonical टैग को संसाधित करते समय प्राथमिकता का क्रम:

    Canonical प्राथमिकता: यदि पेज A का Canonical पेज B की ओर है, तो खोज इंजन पेज A को पेज B की कॉपी समझेंगे, भले ही पेज A में hreflang हो, इसे अनदेखा किया जाएगा।

    hreflang निष्फल होने के परिदृश्य:

    1. फ्रेंच पेज का Canonical अंग्रेजी पेज की ओर → फ्रेंच पेज फ्रेंच उपयोगकर्ताओं को नहीं दिखेगा।
    2. बहुभाषी पेज का Canonical मुख्य साइट की ओर एकीकृत → सभी भाषा संस्करण डुप्लिकेट कंटेंट माने जाएंगे।

    अपवाद नियम:

    • यदि Canonical टैग स्वयं की ओर इशारा करता है (जैसे <link rel="canonical" href="वर्तमान पेज URL"/>), तो hreflang सही ढंग से काम करेगा।

    प्रमुख त्रुटि परिदृश्य और परिणाम

    त्रुटि 1: बहुभाषी प्लगइन्स की डिफ़ॉल्ट कॉन्फ़िगरेशन टकराव

    • उदाहरण: WordPress का Yoast SEO प्लगइन डिफ़ॉल्ट रूप से बहुभाषी पेजों की Canonical टैग मुख्य भाषा पेज की ओर निर्देशित करता है। उदाहरण के लिए, जर्मन पेज का Canonical टैग होगा: <link rel="canonical" href="https://example.com/en/page"/>
    • परिणाम: जर्मन पेज को अंग्रेज़ी पेज की कॉपी माना जाता है, जिससे यह जर्मन खोज परिणामों में नहीं दिखता और ट्रैफ़िक 50% से अधिक घट जाता है।

    त्रुटि 2: डायनेमिक पैरामीटर का हस्तक्षेप

    • उदाहरण: पैरामीटर वाली URL (जैसे example.com/page?lang=de) का Canonical बिना पैरामीटर वाले संस्करण (example.com/page) की ओर होता है, लेकिन बाद वाले में hreflang कॉन्फ़िगर नहीं है।
    • परिणाम: पैरामीटर वाली जर्मन पेज इंडेक्स नहीं होती, खोज में उपयोगकर्ता केवल डिफ़ॉल्ट भाषा पेज देख पाते हैं।

    त्रुटि 3: क्षेत्रीय वैरिएंट स्वतंत्र रूप से घोषित नहीं किए गए

    • उदाहरण: en-US पेज का Canonical सामान्य अंग्रेज़ी पेज (en) की ओर है, जिससे खोज इंजन मानते हैं कि अमेरिकी अंग्रेज़ी पेज का कोई स्वतंत्र मूल्य नहीं है।
    • परिणाम: अमेरिकी उपयोगकर्ताओं को en पेज (जैसे ब्रिटिश अंग्रेज़ी) पर भेजा जा सकता है, जिससे स्थानीय अनुभव घट जाता है।

    जांच उपकरण और समस्या निवारण के तरीके

    उपकरण 1: Google Search Console

    • “कवरेज रिपोर्ट” में जाकर, “बहिष्कृत” टैब के अंतर्गत “डुप्लिकेट पेज” या “सबमिट किया गया पर इंडेक्स नहीं हुआ” को फिल्टर करें, और देखें कि Canonical टकराव के कारण hreflang विफल तो नहीं हुआ।

    उपकरण 2: Screaming Frog

    • साइट को क्रॉल करने के बाद, ऐसी पेजों को फिल्टर करें जिनमें hreflang और Canonical दोनों टैग हों, और जांचें कि Canonical अपनी ही URL की ओर है या किसी अन्य पेज की।
    • डेटा एक्सपोर्ट करें और फिल्टर लगाएं: Canonical != Self-URL

    उपकरण 3: DeepCrawl

    • कस्टम अलर्ट नियम सेट करें: जब hreflang और Canonical लक्ष्य मेल नहीं खाते हों, तो अलर्ट ट्रिगर करें।

    समाधान योजना और व्यावहारिक कदम

    योजना 1: CMS प्लगइन सुधार (Yoast SEO उदाहरण)

    1. बहुभाषी सेटिंग में जाकर, “मुख्य भाषा की ओर Canonical को एकीकृत करें” विकल्प बंद करें।
    2. “उन्नत सेटिंग” में, “प्रत्येक भाषा संस्करण के लिए अलग Canonical टैग बनाएं” सक्षम करें।

    योजना 2: मैनुअल कोड सुधार

    पेज के <head> में, सुनिश्चित करें कि Canonical टैग अपनी ही URL की ओर इशारा करे, जैसे:

    <!-- जर्मन पेज का Canonical स्वयं की ओर -->
    <link rel="canonical" href="https://example.com/de/page" />

    योजना 3: सर्वर-साइड कॉन्फ़िगरेशन (जैसे Nginx)

    डायनामिकली Canonical टैग जनरेट करें, जो वर्तमान भाषा संस्करण के अनुरूप हो:

    location /de/ {
    add_header Link "<https://example.com/de/$uri>; rel=canonical";
    }

    सर्वर त्रुटियाँ या HTTP अनुरोधों का समर्थन न होना

    उदाहरण के लिए, डायनामिक पेज जो सर्वर टाइमआउट के कारण पूरा HTML लोड नहीं करते, जिससे <head> में hreflang टैग गायब हो जाते हैं;

    या मोबाइल पेज 200 की बजाय 302 अस्थायी रीडायरेक्ट लौटाते हैं, जिससे सर्च इंजन टैग क्रॉल करना बंद कर सकते हैं;

    कुछ CDN या फ़ायरवॉल नियम क्रॉलर अनुरोधों को ब्लॉक करते हैं, जिससे विशिष्ट क्षेत्रीय भाषा पेज पढ़े नहीं जा पाते।

    सर्वर त्रुटि प्रकार और प्रभाव

    मुख्य स्थिति कोड और उनके परिणाम:
    404 Not Found

    • परिदृश्य: एक फ्रेंच पेज को अन्य भाषाओं के पेजों द्वारा hreflang के माध्यम से इंगित किया गया है, लेकिन वास्तविक URL हटा दिया गया है या पथ गलत है।
    • परिणाम: सर्च इंजन hreflang संबंध को अमान्य मानता है, फ्रेंच पेज इंडेक्स नहीं होता, और अन्य भाषाओं के पेजों की विश्वसनीयता कम हो जाती है।

    500 Internal Error

    • परिदृश्य: सर्वर क्रैश के कारण डायनामिक रूप से जनरेट किए गए hreflang टैग लोड नहीं हो पाते।
    • परिणाम: पेज 500 एरर देता है, hreflang पूरी तरह से निष्क्रिय हो जाता है, जिससे क्रॉलर साइट को अस्थायी रूप से ब्लॉक कर सकते हैं।

    302 Temporary Redirect

    • परिदृश्य: मोबाइल पेज अस्थायी रूप से डेस्कटॉप URL पर रीडायरेक्ट करता है, लेकिन hreflang टैग पास नहीं करता।
    • परिणाम: सर्च इंजन केवल डेस्कटॉप पेज के hreflang को क्रॉल कर सकता है, मोबाइल भाषा संस्करण को अनदेखा कर सकता है।

    डायनामिक पेज लोडिंग समस्याएँ

    JavaScript रेंडरिंग दोष

    • उदाहरण: React/Vue जैसे SPA (सिंगल पेज एप्लिकेशन) में hreflang टैग JS के माध्यम से डायनामिक रूप से डाला जाता है, लेकिन प्रीरेंडरिंग नहीं होती।
    • परिणाम: सर्च इंजन क्रॉलर JS निष्पादित नहीं कर पाते, जिससे hreflang टैग पढ़ा नहीं जाता।

    CDN/कैश कॉन्फ़िगरेशन हस्तक्षेप

    • उदाहरण: CDN कैश कॉन्फ़िगरेशन hreflang को <head> में नजरअंदाज करता है या गलत भाषा संस्करण कैश करता है।
    • परिणाम: उपयोगकर्ता एक ही URL पर विभिन्न भाषा संस्करणों को प्राप्त कर सकते हैं, जिससे hreflang संबंध भ्रमित हो जाता है।

    सर्वर टाइमआउट और प्रदर्शन समस्याएँ

    • उदाहरण: पेज लोडिंग समय बहुत लंबा (>5 सेकंड), क्रॉलर अधूरा पेज पढ़ता है और hreflang टैग पूरी तरह नहीं पढ़ पाता।
    • परिणाम: कुछ भाषा संबंध खो जाते हैं, खासकर बड़े बहुभाषी साइटों पर असर पड़ता है।

    डिटेक्शन टूल और समस्या निवारण विधियाँ

    Google Search Console

    • “कवर रिपोर्ट” का उपयोग करें और सर्वर त्रुटि (404/500) वाले पेजों को देखें, मल्टी-लैंग्वेज URL को फिल्टर करें।

    Screaming Frog

    1. क्रॉल सेटिंग्स में “hreflang जांचें” विकल्प सक्षम करें।
    2. “सर्वर त्रुटि” टैग (4xx, 5xx) के तहत परिणाम फ़िल्टर करें और संबंधित hreflang पेज देखें।

    लॉग फ़ाइल विश्लेषण

    • सर्वर लॉग (जैसे Nginx access.log) से सर्च इंजन क्रॉलर (User-Agent में Googlebot) की रिक्वेस्ट फ़िल्टर करें और बार-बार त्रुटि देने वाले URL ढूंढ़ें।

    समाधान और व्यावहारिक कदम

    सर्वर त्रुटि सुधारें

    404 समस्या

    • सभी hreflang URL की जांच करें कि वे मौजूद हैं, टूटी लिंक ठीक करें।
    • अगर पेज हटा दिया गया है, तो अन्य भाषा पेज के hreflang लिंक से हटा दें।

    500 समस्या

    • सर्वर संसाधनों का अनुकूलन करें (जैसे मेमोरी बढ़ाएं, DB कनेक्शन पूल) ताकि क्रैश का जोखिम कम हो।
    • मॉनिटरिंग अलर्ट सेट करें (जैसे New Relic) ताकि असफलताओं को तुरंत पता चल सके।

    डायनामिक पेज अनुकूलन

    प्रीरेंडरिंग समाधान

    • Next.js, Nuxt.js जैसे SSR फ्रेमवर्क का उपयोग करें ताकि hreflang HTML के शुरुआती लोड पर मौजूद हो।
    • प्रीरेंडरिंग टूल (जैसे Prerender.io) कॉन्फ़िगर करें ताकि क्रॉलर को स्थैतिक संस्करण मिल सके।

    CDN सेटिंग सुधार

    1. CDN में भाषा पथ (जैसे /de/, /fr/) को “नो कैश” या कम कैश अवधि (जैसे 1 घंटा) सेट करें।
    2. सुनिश्चित करें कि CDN <head> सामग्री को पूरी तरह से पास करे, HTML में कोई बदलाव न हो।

    प्रदर्शन अनुकूलन

    • पेज संसाधनों (इमेज, CSS/JS) को कंप्रेस करें ताकि लोड समय 3 सेकंड से कम हो।
    • Google Lighthouse जैसे टूल से ब्लॉकिंग रेंडरिंग समस्याएँ जांचें और सुधारें।

    डायनामिक पैरामीटर से डुप्लिकेट कंटेंट

    URL में डायनामिक पैरामीटर (जैसे ?utm_source=ads या ?sessionid=123) का दुरुपयोग बहुभाषी साइटों में डुप्लिकेट कंटेंट की “छुपी हुई वजह” है।

    उदाहरण के लिए, एक स्पेनिश पेज अलग-अलग पैरामीटर के कारण कई URL बना सकता है (जैसे /es/page?ref=facebook और /es/page?ref=email)। सर्च इंजन इसे अलग पेज समझेंगे, जिससे कंटेंट डुप्लिकेशन होगा।

    पैरामीटर के प्रभाव और वर्गीकरण

    जरूरी बनाए रखने वाले पैरामीटर:

    1. पृष्ठांकन पैरामीटर (जैसे ?page=2): विभिन्न सामग्री ब्लॉक को अलग करने के लिए उपयोग किए जाते हैं, इन्हें बनाए रखना चाहिए लेकिन इन्हें सामान्यीकृत किया जाना चाहिए (जैसे rel="canonical" के माध्यम से होम पेज की ओर इंगित करना)।
    2. भाषा/क्षेत्र पैरामीटर (जैसे ?lang=de): यदि URL पथ द्वारा भाषा को अलग नहीं करता (जैसे /de/), तो ऐसे पैरामीटर को बनाए रखना चाहिए और hreflang से मेल खाना चाहिए।

    जरूरी हटाने वाले पैरामीटर:

    1. ट्रैकिंग पैरामीटर (जैसे ?utm_source, ?ref=social): पेज कंटेंट को नहीं बदलते, इन्हें hreflang में हटाना चाहिए।
    2. सेशन ID (जैसे ?sessionid=123): यूज़र बिहेवियर ट्रैकिंग पैरामीटर, जो बहुत सारे डुप्लिकेट URL बना सकते हैं।

    आम गलतियों के परिदृश्य और परिणाम

    गलती 1: पैरामीटर सामान्यीकृत नहीं किए गए

    • उदाहरण: एक ही फ्रेंच पेज के कई पैरामीटर वाले URL मौजूद हैं (जैसे /fr/page?utm=ads और /fr/page?utm=email), और दोनों को hreflang में स्वतंत्र पेज के रूप में घोषित किया गया है।
    • परिणाम: सर्च इंजन कई डुप्लिकेट वर्शन क्रॉल करता है, जिससे权重分散 होता है और फ्रेंच पेज की रैंकिंग गिरती है।

    गलती 2: hreflang में पैरामीटर की कमी

    • उदाहरण: अंग्रेजी पेज का hreflang /de/page की ओर इंगित करता है, लेकिन जर्मन URL वास्तविक में /de/page?lang=de है, जिससे लिंक टूट जाता है।
    • परिणाम: जर्मन पेज स्वतंत्र सामग्री माना जाता है और अंग्रेजी पेज के साथ मल्टी-भाषा लिंक नहीं बन पाता।

    गलती 3: पृष्ठांकन पैरामीटर मुख्य कंटेंट को प्रभावित करते हैं

    • उदाहरण: उत्पाद सूची पेज /es/products?page=2 का hreflang मुख्य सूची पेज /es/products की ओर नहीं इशारा करता।
    • परिणाम: पेजिंग को स्वतंत्र भाषा पेज माना जा सकता है, जो मुख्य सूची पेज के ट्रैफिक से प्रतिस्पर्धा करता है।

    टूल्स द्वारा जाँच के तरीके

    Google Search Console:

    • “कवरिंग रिपोर्ट” में जाकर, “सबमिट किए गए लेकिन इंडेक्स नहीं किए गए” URL को फ़िल्टर करें और देखें कि क्या पैरामीटर डुप्लिकेट होने के कारण निकाले गए हैं।

    Screaming Frog:

    1. साइट क्रॉल करते समय, “URL पैरामीटर को अनदेखा करें” विकल्प सक्षम करें और पैरामीटर वाले और बिना पैरामीटर वाले पेज के कंटेंट की समानता की तुलना करें।
    2. hreflang टैग फ़िल्टर करें और देखें कि क्या पैरामीटर वाले URL ठीक से लिंक किए गए हैं या नहीं।

    रेगुलर एक्सप्रेशन मिलान:

    • लॉग एनालिसिस टूल (जैसे ELK Stack) में, विशिष्ट पैरामीटर (जैसे utm_*) वाले क्रॉलर रिक्वेस्ट को रेगुलर एक्सप्रेशन से फिल्टर करें और डुप्लिकेट क्रॉल की संख्या गिनें।

    समाधान और व्यावहारिक कदम

    समाधान 1: पैरामीटर सामान्यीकरण (सर्वर कॉन्फ़िगरेशन)

    Apache नियम उदाहरण:

    RewriteCond %{QUERY_STRING} ^utm_
    RewriteRule ^(.*)$ /$1? [R=301,L]
    • कार्य: सभी utm_ पैरामीटर को स्वतः हटाकर 301 रीडायरेक्ट करता है बिना पैरामीटर के URL पर।

    समाधान 2: hreflang और Canonical का संयोजन

    hreflang में केवल बिना पैरामीटर के URL का उपयोग करें (जैसे /de/page)।

    पैरामीटर वाले URL के लिए canonical टैग जोड़ें जो बिना पैरामीटर वाले संस्करण की ओर इशारा करता है:

    <link rel="canonical" href="https://example.com/de/page" />

    समाधान 3: Google Search Console में पैरामीटर प्रबंधन

    1. “URL पैरामीटर” सेटिंग में जाकर, utm_, sessionid जैसे पैरामीटर को “पेज कंटेंट पर कोई प्रभाव नहीं” के रूप में चिह्नित करें।
    2. पेजिंग पैरामीटर (जैसे page) को “पेजिनेशन” के रूप में चिह्नित करें ताकि खोज इंजन उनके उद्देश्य को समझ सके।

    मल्टी-भाषा साइट के hreflang ऑप्टिमाइजेशन का मतलब “एक बार सेटअप, हमेशा के लिए” नहीं होता।
    छोटी तकनीकी गलतियों से बचना ही सुधार की शुरुआत है।

    Picture of Don Jiang
    Don Jiang

    SEO本质是资源竞争,为搜索引擎用户提供实用性价值,关注我,带您上顶楼看透谷歌排名的底层算法。

    最新解读
    滚动至顶部