PushState और Precomposition का उपयोग करें
ऐसा करने का वर्तमान (2015) तरीका जावास्क्रिप्ट पुशस्टैट विधि का उपयोग कर रहा है।
पृष्ठ को पुनः लोड किए बिना शीर्ष ब्राउज़र बार में पुशस्टेट URL को बदल देता है। कहें कि आपके पास एक पृष्ठ है जिसमें टैब हैं। टैब छिपाते हैं और सामग्री दिखाते हैं, और सामग्री को गतिशील रूप से डाला जाता है, या तो AJAX का उपयोग करके या केवल प्रदर्शन सेट करके: कोई नहीं और प्रदर्शन: सही टैब सामग्री को छिपाने और दिखाने के लिए ब्लॉक करें।
जब टैब पर क्लिक किया जाता है, तो एड्रेस बार में url को अपडेट करने के लिए pushState का उपयोग करें। जब पृष्ठ प्रदान किया जाता है, तो पता पट्टी में मान का उपयोग करके निर्धारित करें कि कौन सा टैब दिखाना है। कोणीय मार्ग आपके लिए यह स्वचालित रूप से करेगा।
precomposition
PushState Single Page App (SPA) को हिट करने के दो तरीके हैं
- PushState, जहां उपयोगकर्ता PushState लिंक पर क्लिक करता है और सामग्री AJAXed होती है।
- सीधे यूआरएल को हिट करके।
साइट पर आरंभिक हिट में सीधे URL मारना शामिल होगा। इसके बाद की हिट सामग्री में केवल AJAX होगा क्योंकि PushState URL अपडेट करता है।
क्रॉलर एक पृष्ठ से लिंक की कटाई करते हैं और फिर बाद में प्रसंस्करण के लिए एक कतार में जोड़ते हैं। इसका मतलब है कि क्रॉलर के लिए, सर्वर पर प्रत्येक हिट एक सीधा हिट है, वे पुशस्टेट के माध्यम से नेविगेट नहीं करते हैं।
Precomposition सर्वर से पहली प्रतिक्रिया में प्रारंभिक पेलोड को बंडल करता है, संभवतः एक JSON ऑब्जेक्ट के रूप में। यह खोज इंजन को AJAX कॉल को निष्पादित किए बिना पृष्ठ को प्रस्तुत करने की अनुमति देता है।
यह सुझाव देने के लिए कुछ सबूत हैं कि Google AJAX अनुरोधों को निष्पादित नहीं कर सकता है। इस पर यहाँ और अधिक:
https://web.archive.org/web/20160318211223/http://www.analog-ni.co/precomposing-a-spa-may-become-the-holy-grail-to-seo
खोज इंजन जावास्क्रिप्ट को पढ़ और निष्पादित कर सकते हैं
Google कुछ समय के लिए जावास्क्रिप्ट को पार्स करने में सक्षम रहा है, यही कारण है कि उन्होंने मूल रूप से क्रोम विकसित किया है, ताकि Google मकड़ी के लिए पूर्ण विशेषताओं वाले हेडलेस ब्राउज़र के रूप में कार्य किया जा सके। यदि किसी लिंक में एक मान्य href विशेषता है, तो नया URL अनुक्रमित किया जा सकता है। ज्यादा कुछ नहीं करना है।
यदि इसके अलावा एक लिंक पर क्लिक करने से पुशस्टेट कॉल ट्रिगर हो जाता है, तो साइट को पुशस्टेट के माध्यम से उपयोगकर्ता द्वारा नेविगेट किया जा सकता है।
पुशस्टेट यूआरएल के लिए सर्च इंजन सपोर्ट
PushState वर्तमान में Google और बिंग द्वारा समर्थित है।
गूगल
यहां पॉल के लिए पुशस्टेट के बारे में पॉल आयरिश के सवाल का मैट कट्स जवाब दे रहा है:
http://youtu.be/yiAF9VdvRPw
यहाँ मकड़ी के लिए Google पूर्ण जावास्क्रिप्ट समर्थन की घोषणा कर रहा है:
http://googlewebmastercentral.blogspot.de/2014/05/understanding-web-pages-better.html
अपशॉट यह है कि Google PushState का समर्थन करता है और PushState URL को अनुक्रमणित करेगा।
Google वेबमास्टर टूल को Googlebot के रूप में भी देखें। आप देखेंगे कि आपका जावास्क्रिप्ट (कोणीय सहित) निष्पादित है।
बिंग
मार्च 2013 में सुंदर पुशस्टेट URL के लिए बिंग के समर्थन की घोषणा यहाँ की गई है:
http://blogs.bing.com/webmaster/2013/03/21/search-engine-optimization-best-practices-for-ajax-urls/
HashBangs # का उपयोग न करें!
हैशबैंग उरल्स एक बदसूरत स्टॉपगैप थे, जो डेवलपर को एक विशेष स्थान पर साइट का पूर्व-गाया संस्करण प्रदान करने की आवश्यकता थी। वे अभी भी काम करते हैं, लेकिन आपको उनका उपयोग करने की आवश्यकता नहीं है।
हैशबैंग URL इस तरह दिखते हैं:
domain.com/#!path/to/resource
इसे इस तरह से मेटाटैग के साथ जोड़ा जाएगा:
<meta name="fragment" content="!">
Google उन्हें इस रूप में अनुक्रमित नहीं करेगा, बल्कि इसके स्थान पर _escaped_fragments_ URL और उस अनुक्रमणिका से साइट का स्थैतिक संस्करण खींचेगा।
Pushstate URL किसी साधारण URL की तरह दिखाई देते हैं:
domain.com/path/to/resource
अंतर यह है कि एंगुलर ने आपके लिए जावास्क्रिप्ट में इसे डील करने वाले डॉक्यूमेंट.लोकेशन में बदलाव को रोकते हुए उन्हें आपके लिए हैंडल किया है।
यदि आप PushState URL (और आप शायद करते हैं) का उपयोग करना चाहते हैं, तो पुराने सभी हैश शैली के URL और मेटाटैग ले लें और बस अपने कॉन्फ़िगर ब्लॉक में HTML5 मोड को सक्षम करें।
अपनी साइट का परीक्षण करना
Google वेबमास्टर टूल में अब एक टूल शामिल है जो आपको Google के रूप में एक URL लाने की अनुमति देगा, और जावास्क्रिप्ट को प्रस्तुत करेगा क्योंकि Google इसे प्रस्तुत करता है।
https://www.google.com/webmasters/tools/googlebot-fetch
कोणीय में PushState URL उत्पन्न करना
# उपसर्गों के बजाय कोणीय में वास्तविक URL उत्पन्न करने के लिए, अपने $ स्थान पर HTML5 मोड सेट करें।
$locationProvider.html5Mode(true);
सर्वर साइड
चूंकि आप वास्तविक URL का उपयोग कर रहे हैं, इसलिए आपको सभी मान्य URL के लिए अपने सर्वर द्वारा समान टेम्पलेट (साथ ही कुछ पूर्व-निर्धारित सामग्री) सुनिश्चित करने की आवश्यकता होगी। आप यह कैसे करते हैं यह आपके सर्वर आर्किटेक्चर के आधार पर अलग-अलग होगा।
साइटमैप
आपका ऐप नेविगेशन के असामान्य रूपों का उपयोग कर सकता है, उदाहरण के लिए होवर या स्क्रॉल। यह सुनिश्चित करने के लिए कि Google आपके ऐप को चलाने में सक्षम है, मैं संभवतः साइटमैप बनाने का सुझाव दूंगा, जो आपके ऐप से संबंधित सभी url की एक सरल सूची है। आप इसे डिफ़ॉल्ट स्थान (/ sitemap या /sitemap.xml) पर रख सकते हैं, या Google को इसके बारे में बता सकते हैं।
वैसे भी साइटमैप रखना एक अच्छा विचार है।
ब्राउज़र का समर्थन
IE10 में पुशस्ट काम करता है। पुराने ब्राउज़रों में, कोणीय स्वचालित रूप से हैश शैली के URL पर वापस आ जाएगा
एक डेमो पेज
निम्नलिखित सामग्री को पूर्व-स्थिति के साथ एक पुशस्टेट URL का उपयोग करके प्रदान किया गया है:
http://html5.gingerhost.com/london
जैसा कि सत्यापित किया जा सकता है, इस लिंक पर , सामग्री अनुक्रमित है और Google में दिखाई दे रही है।
404 और 301 हैडर स्थिति कोड की सेवा
क्योंकि खोज इंजन आपके अनुरोध के लिए हमेशा आपके सर्वर से टकराएगा, आप अपने सर्वर से हेडर स्टेटस कोड की सेवा कर सकते हैं और Google से उन्हें देखने की उम्मीद कर सकते हैं।