2013-03-08 7 views
6

मैं एक backbone.js/marionette वेबसाइट पर काम कर रहा हूं जिसे खोज इंजन अनुकूलित (एसईओ) होना चाहिए। हम जावा/वसंत रीस्टफुल बैकएंड और अपाचे 2.2 वेबसर्वर का उपयोग कर रहे हैं। मैं वर्तमान में अपने ऐप में पुशस्टेट को लागू करने की प्रक्रिया में हूं, जबकि यह अभी भी शुरुआती चरणों में है।apache सर्वर पर backbone.js ऐप के लिए एसईओ - phantom.js और node.js?

क्या मैं अब तक एक समाधान के रूप ले कर आए हैं:

  • जावास्क्रिप्ट सक्षम ब्राउज़रों के साथ सामान्य उपयोगकर्ताओं के लिए, एक विशुद्ध रूप से क्लाइंट साइड रीढ़ कार्यान्वयन का उपयोग करें।
  • अपाचे के mod_rewrite का उपयोग हमारे index.html पृष्ठ पर सभी पथों को रूट पथ के साथ रूट करने के लिए करें ताकि बैकबोन.जेएस सही पृष्ठ लौटा सकें, और यूआरएल अपना फॉर्म बरकरार रखे। मेरे पास यह बहुत सही काम कर रहा है (शून्य एक बग)।
  • अपाचे की httpd.conf फ़ाइल का उपयोग करके बॉट/क्रॉलर के लिए स्नीफ, और हमारे node.js सर्वर पर बॉट को दोबारा शुरू करने के लिए नियमों को फिर से लिखें।
  • phantomjs का उपयोग करके एचटीएमएल/सामग्री जेनरेट करें और इसे वेबक्रॉलर पर वापस कर दें।

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

क्या किसी के पास इस विषय पर कोई अनुभव या सलाह है? मेरे शोध से, अन्य थोड़ा सावधान हैं, खासकर this related question। मैं कुछ हद तक चिंतित हूं कि बॉट्स जावास्क्रिप्ट बनाम "क्लिक" में अनुरोध करते हैं। विचार और सलाह?

अग्रिम धन्यवाद।

+0

यहां सवाल क्या है? –

+0

क्या यह हमले की अच्छी योजना की तरह लगता है? क्या आपने पहले यह किया है, और यदि हां, तो क्या आपको कोई समस्या आती है? क्या आप एक वैकल्पिक समाधान सुझाएंगे जो हमारी बाधाओं को फिट करे? क्या प्रमुख क्रॉलर बनाम क्लिक करें। अनुरोध करें, और क्या इससे कोई समस्या आती है? क्षमा करें अगर यह एक और सामान्य सवाल है। – Andrew

उत्तर

3

बहुत बुरा विचार, माफ करना, मैं बहुत खुश हूं।

क्या आप क्या करना चाहते है निम्नलिखित:

अगर मैं एक सीधे ऊपर HTTP अनुरोध के माध्यम से http://yoursite.com/path/to/resource मारा तो अपने सर्वर है कि संसाधन पृष्ठ के लिए मुझे नीचे एचटीएमएल काम करना चाहिए और फिर अगर आप चाहते हैं, आप जावास्क्रिप्ट का उपयोग कर सकते उस बिंदु पर एकल पृष्ठ ऐप पहलू को "init" करने के लिए। वहां से अगर मैं AJAX और रीढ़ की हड्डी के मार्गों के माध्यम से नेविगेट कर रहा हूं तो वहां से सभी अच्छे हैं। यदि मैं फिर एक यूआरएल कॉपी करता हूं, अपना ब्राउज़र बंद करता हूं और फिर इसे फिर से खोलने पर पेस्ट करता हूं, तो मुझे एक ही एचटीएमएल देखने की उम्मीद करनी चाहिए।

यह दृष्टिकोण न केवल एसईओ के लिए सबसे अच्छा दृष्टिकोण साबित हुआ है, बल्कि यह भी आपके सिस्टम को अवधारणात्मक रूप से डिजाइन करने के साथ-साथ आपको सभी के लिए "काम" सुनिश्चित करने के लिए साबित हुआ है, न कि केवल जेएस सक्षम ब्राउज़र।

आप जो भी खर्च करना चाहते हैं, वह क्रॉलरों को धोखा देने और उन्हें उपयोगकर्ता की तुलना में अलग-अलग सामग्री को खिलाने की कोशिश कर रहा है ... यह एक ब्लैकलिस्ट के लिए एक नुस्खा है।

संक्षेप में, अपनी साइट बनाएं ताकि अगर आप http के माध्यम से यूआरएल दबाते हैं तो आपको पूर्ण HTML मिल जाता है, और यदि आप एक ही यूआरएल को एकल पेज ऐप मोड AJAX के माध्यम से दबाते हैं, तो आपको आंशिक मिलता है जिसे आपको इसे रखने की आवश्यकता होती है सिंक .... बेहतर वास्तुकला, कम एसईओ ब्लैकलिस्ट!

+5

Google एक हेडलेस ब्राउज़र के माध्यम से एचटीएमएल स्नैपशॉट का समर्थन करता है https://developers.google.com/webmasters/ajax-crawling/docs/html- स्नैपशॉट –

+1

वाह ... जिसे अगस्त 2012 में भी अपडेट किया गया था, ताकि उनका हो दिशा अब मुझे लगता है कि आप बेहद सावधान रहना चाहते हैं कि जिस एचटीएमएल को आप उन्हें खिलाते हैं "मैचों" क्योंकि उस प्रकार की स्पूफिंग आपको गंभीर पैडलिंग प्राप्त करने के लिए उपयोग की जाती है ... भले ही मैं एक आवेदन वास्तुशिल्प स्तर से अपने सुझाव से खड़ा रहूं, यह वास्तव में एक मजबूत ऐप के डिजाइन को बनाने में मदद मिलेगी। –

+0

इसका एकमात्र हिस्सा जो मुझे "बहुत बुरा विचार" जैसा लगता है वह बॉट/क्रॉलर स्नीफिंग है। क्या यह कार्यान्वयन तब तक ठीक नहीं होगा जब तक कि सभी अनुरोधों पर phantomJS स्नैपशॉट परोसा जाता है, न केवल बॉट्स? – twiz

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