2011-10-07 17 views
15

मैंने जावास्क्रिप्ट टेम्पलेटिंग और सर्च इंजन ऑप्टिमाइज़ेशन के बारे में बहुत सी चर्चाएं पढ़ी हैं। फिर भी, मुझे इस प्रश्न का संतोषजनक उत्तर नहीं मिला है (या तो खराब दस्तावेज या पुराना)।हैंडलबार्स.जेएस और एसईओ

वर्तमान में मैं क्लाइंट-साइड टेम्पलेट समाधान के रूप में handlebars.js में देख रहा हूं, क्योंकि मुझे सहायक कार्यों को बनाने की संभावना पसंद है। लेकिन खोज इंजन के लिए अनुक्रमण के बारे में क्या? क्या बॉट इंडेक्स जेनरेट की गई सामग्री (इच्छित के रूप में) या केवल बदसूरत जावास्क्रिप्ट छद्म-चर के साथ स्रोत है? मुझे पता है कि इस मामले के बारे में बहुत सारे धागे चल रहे हैं लेकिन मुझे लगता है कि कोई भी जवाब को बिल्कुल नहीं जानता है।

यदि Google जैसे इंजन इन टेम्पलेट्स को सही तरीके से इंडेक्स नहीं करेंगे, तो सार्वजनिक वेबसाइटों के लिए इसका उपयोग क्यों परेशान करेगा?

इस संदर्भ में एक और प्रश्न: क्या सर्वर पक्ष पर हैंडलबार.जेएस टेम्पलेट्स प्रस्तुत करना संभव है और फिर उन्हें क्लाइंट साइड पर प्रस्तुत करना संभव है? स्पष्ट रूप से इस एसईओ चर्चा से बचने के लिए।

उत्तर

22

डोम क्रंचिंग क्लाइंट पक्ष के लिए, अधिकांश वेब बॉट (यानी Google और अन्य) फ्लाई पर जेएस की व्याख्या नहीं करते हैं और इंडेक्सिंग के लिए नई रेंडर सामग्री का विश्लेषण नहीं करते हैं। इसके बजाए Google (और अब बिंग) 'Google अजाक्स क्रॉलिंग स्कीम'() का समर्थन करता है - जो मूल रूप से बताता है कि यदि आप जेएस को अनुक्रमित करने के लिए डोम सामग्री प्रदान करते हैं (यानी AJAX कॉल परिणाम प्रस्तुत करना), तो आप सक्षम होना चाहिए:

  1. उत्प्रेरक async js यूआरएल hashbangs #! का उपयोग कर के माध्यम से प्रतिपादन (यानी http://www.mysite.com/#!my-state), और
  2. अनुरोध पर js संशोधन के बाद आपकी साइट के एक पहले से रेंडर डोम स्नैपशॉट सेवा करने के लिए सक्षम हो।

तो Backbone.js, या स्पाइन की तरह एक ग्राहक के पक्ष MVC ढांचे का उपयोग कर - आप इस सेवा प्रदान करने के लिए आप अपने वेब एप्लिकेशन अनुक्रमित चाहते हैं की आवश्यकता होगी। (ऊपर के लिंक पर समझाया गया है)

आम तौर पर यह आप वेब बॉट द्वारा किए गए एक अनुरोध को बीच में रोकने का मतलब है, और एक बिना सिर ब्राउज़र (यानी क्यूटी + capybara-webkit, HtmlUnit, आदि) का उपयोग कर अपने पक्ष सर्वर साइड स्क्रैप, तो उत्पन्न देने अनुरोध बॉट पर वापस डोम।

मैं https://github.com/benkitzelman/google-ajax-crawler

पर गहरे लाल रंग का (अब पुल अनुरोध लेने) में यह करने के लिए एक मणि शुरू कर दिया है यह करता है इस capybara-वेबकिट (और जल्द ही phantomjs)

+0

अपडेट: मणि रूबीजम्स पर प्रकाशित किया गया है और किसी भी रैक ऐप द्वारा इसका उपयोग किया जा सकता है क्योंकि मिडलवेयर 'मणि इंस्टॉल google_ajax_crawler' निर्देश और उपयोग के लिए उदाहरण – Ben

+0

से ऊपर गिथब लिंक पर हैं, इसलिए यदि आप Backbone.js का उपयोग करना चाहते हैं तो आपको सुनिश्चित करें कि आप राउटर का उपयोग कर रहे हैं? – unclejam

+0

आप अपने जेएस ऐप को कैसे ढांचा बनाते हैं वह काफी हद तक महत्वहीन है। आप बैकबोन राउटर का उपयोग कर सकते हैं, या वैकल्पिक रूप से, आप किसी भी ढांचे का उपयोग किये बिना डोम में हेरफेर कर सकते हैं - मुश्किल बिट यह निर्धारित कर रहा है कि जब आप हेडलेस ब्राउज़र में एक रेंडर स्टेटस तक पहुंचे हैं तो आप सही समय पर एक स्नैपशॉट ले रहे हैं। अधिकांश स्नैपशॉटिंग फ्रेमवर्क आपके पृष्ठ पर कुछ प्रकार के सिग्नलिंग एफएन जोड़ते हैं, यह विचार यह है कि जब आप पृष्ठ लोडिंग/प्रतिपादन पूरा कर लेते हैं तो आप इसे कॉल करते हैं। – Ben

1

मुझे हैंडलबार.जेएस के बारे में पता नहीं है, लेकिन मेरी समझ के लिए एसईओ को जावास्क्रिप्ट में सामग्री के साथ कुछ समस्या है। सुनिश्चित करें कि आपकी सामग्री खोज इंजन के लिए दृश्यमान है (कुछ परीक्षण के लिए एक स्पाइडर सिम्युलेटर का उपयोग करें)। स्पाइडर जाल से बचें आम तौर पर जाने का रास्ता होगा। उम्मीद है कि यह आपकी मदद कर सकता है।

-2

क्या बॉट इंडेक्स जेनरेट की गई सामग्री (इच्छित के रूप में) या केवल बदसूरत जावास्क्रिप्ट छद्म-चर के साथ स्रोत है?

न तो, क्योंकि इंडेक्सर बॉट जावास्क्रिप्ट नहीं चलाते हैं और आप HTML दस्तावेज़ों के रूप में टेम्पलेट्स की सेवा नहीं करते हैं।

जावास्क्रिप्ट के बिना काम करने वाली साइट बनाएं, फिर build on top of it

+0

मैं मानता हूँ, जे एस jQuery की तरह ब्राउज़र में डोम संशोधित कि के साथ बेहतर काम करते हैं। तो आप दोनों में से सर्वश्रेष्ठ हो सकता है ... जेएस और अर्थपूर्ण एचटीएमएल सामग्री से बहुत अच्छा प्रभाव। – GibboK

+2

"बढ़ते सबूत हैं Googlebot जावास्क्रिप्ट को निष्पादित कर सकता है और अजाक्स कॉल द्वारा उत्पन्न सामग्री को पार्स कर सकता है" http://en.wikipedia.org/wiki/Googlebot –

+0

यह तब तक सच था जब तक एचटीएमएल 5 हमें दस्तावेजों से दस्तावेजों तक नहीं ले जाता। – Lodewijk

1

खोज इंजन जावास्क्रिप्ट नहीं चलाते हैं, इसलिए यदि आप अपनी सामग्री अनुक्रमित करना चाहते हैं तो आपको सर्वर पर भी अपने टेम्पलेट्स प्रस्तुत करना होगा। पृष्ठ अनुरोध एक मकड़ी से आता है जब आप अपने टेम्पलेट को प्रस्तुत करने के लिए नोड (सर्वर-साइड जेएस) में हैंडलबार का उपयोग कर सकते हैं। यह अधिक काम है लेकिन यह संभव है। गितूब, गूगल प्लस, और ट्विटर सब कुछ समान करते हैं।

-1

आप Distal templates का उपयोग कर सकते हैं जो टेम्पलेट को एसईओ के लिए HTML के हिस्से के रूप में रखता है।

-1

एक के लिए spiderable देखें का उपयोग कर रैक मध्यस्थ के रूप अस्थायी समाधान उल्का प्रोजेक्ट (जो हैंडलबार्स.जेएस का उपयोग करता है) एसईओ प्रयोजनों के लिए उपयोग करता है।

http://docs.meteor.com/#spiderable

संबंधित मुद्दे