बहुतेक डेव्हलपर्स एखादे फिचर ब्राउझरमध्ये अगदी परफेक्ट दिसते आणि त्यांचे कष्टाचे काम पूर्ण झाले असे समजतात. माझा Django फूड ब्लॉग बनवताना मी नेमकी हीच चूक केली. रेसिपीज व्यवस्थित रेंडर होत होत्या. डेटाबेसचे संबंध (relations) अचूक होते. मोबाईल आणि डेस्कटॉप दोन्हीवर टेम्पलेट्स उत्तम दिसत होते. पण मी सर्च इंजिन्सना सर्व काही स्वतःहून शोधण्यासाठी सोडले होते, आणि ते अंदाज लावण्यात फारसे कुशल नसतात.
माझ्या गेल्या काही डेव्हलपमेंट सेशन्समध्ये, मी ती चूक सुधारली. मी SEO चा मुख्य पाया (foundation) तयार केला. हे मला आठवण करून देणारे होते की, प्रोडक्शन-रेडी ॲप्लिकेशनसाठी केवळ त्रुटीमुक्त कोड असून चालत नाही, तर त्यापेक्षाही खूप काही आवश्यक असते.
'फिचर फॅक्टरी'च्या पलीकडे
कार्यरत सॉफ्टवेअर ही केवळ सुरुवात आहे. वापरकर्ते केवळ अशाच उत्पादनावर प्रेम करू शकतात जे त्यांना सहज सापडते, आणि बहुतेक कंटेंट-आधारित साइट्ससाठी सर्च इंजिन्स हाच मुख्य मार्ग असतो. एखादा रेसिपी ब्लॉग यावर अवलंबून असतो की "overnight sourdough bread" शोधणारा एखादा व्यक्ती योग्य वेळी योग्य पेजवर पोहोचतो की नाही.
ही शोधक्षमता (discoverability) आपोआप मिळत नाही. त्यासाठी प्रत्येक पेजमध्ये काय आहे हे सांगणाऱ्या मेटाडेटाची (metadata) आवश्यकता असते. त्यासाठी स्ट्रक्चर्ड डेटाची (structured data) गरज असते, जो HTML च्या साध्या कोडचे रूपांतर कुकिंग टाइम, साहित्य (ingredients) आणि रेटिंग्ससह एका निश्चित घटकात (entity) करतो. या घटकांशिवाय, सर्वोत्तम कंटेंट देखील विलग राहतो आणि जगाला काय दिसावे हे ठरवणाऱ्या क्रॉलर्सना (crawlers) तो दिसत नाही.
माझ्या Django प्रोजेक्टमध्ये सर्व कार्यात्मक भाग (functional pieces) होते. परंतु, माझा कोड आणि सर्च इंजिन लॉजिक यांच्यातील 'ट्रान्सलेशन लेयर'ची कमतरता होती. ही दरी भरून काढणे म्हणजे तांत्रिक SEO ला मार्केटिंगचा नंतरचा विचार न मानता, एक इंजिनिअरिंग आवश्यकता मानणे होय.
SEO चा मुख्य पाया प्रत्यक्षात कसा असतो
हे काम कीवर्ड स्टफिंग (keyword stuffing) किंवा क्लिकबेट टायटल्स लिहिण्याबद्दल नव्हते. Django ॲप्लिकेशनसाठी तांत्रिक SEO हे विशिष्ट, यांत्रिक आणि फ्रेमवर्क पेजेस कसे सर्व्ह करते याच्याशी खोलवर जोडलेले असते.
मी प्रत्येक डॉक्युमेंटच्या head मध्ये असणाऱ्या मूलभूत गोष्टींपासून सुरुवात केली. आता डायनॅमिक टायटल टॅग्स (title tags) आणि मेटा डिस्क्रिप्शन (meta descriptions) थेट मॉडेल फील्ड्समधून (model fields) घेतले जातात. जेव्हा एखादा वापरकर्ता रेसिपी पेजला भेट देतो, तेव्हा टायटल टॅगमध्ये केवळ साईटचे सामान्य हेडर न दिसता, प्रत्यक्ष रेसिपीचे नाव आणि श्रेणी दिसते. त्यांच्यासोबत Open Graph टॅग्स देखील असतात, ज्यामुळे शेअर केलेले लिंक्स रिकाम्या कार्डऐवजी योग्य इमेज, वर्णन आणि प्रिव्ह्यू टेक्स्टसह दिसतात.
त्यानंतर मी स्कीमा मार्कअपवर (schema markup) लक्ष केंद्रित केले. फूड ब्लॉग हा स्ट्रक्चर्ड डेटासाठी एक आदर्श पर्याय आहे कारण रेसिपींचे गुणधर्म जागतिक स्तरावर समजण्यासारखे असतात. प्रत्येक पेजमध्ये JSON-LD Recipe मार्कअप जोडल्यामुळे, ॲप्लिकेशन प्रेप टाइम, कुकिंग टाइम, साहित्याची यादी आणि रिव्ह्यू अॅग्रीगेट्स ही माहिती सर्च इंजिन्सना त्यांच्या मूळ भाषेत सांगू शकते. हे केवळ सजावटीसाठी नाही. हे एका साध्या निळ्या लिंकसारखे दिसणे आणि सर्च पेजवरच स्टार रेटिंग आणि स्वयंपाकाचा कालावधी दाखवणारे 'रिच रिझल्ट्स' (rich results) मिळवणे यातील फरक आहे.
मी Django मध्ये दुर्लक्षित केल्यास उद्भवणाऱ्या धोक्यांचेही निराकरण केले. Class-based views मुळे वेगवेगळ्या URL पॅटर्न अंतर्गत सारखाच कंटेंट सहज सर्व्ह होऊ शकतो, ज्यामुळे तुमच्या SEO अधिकाराचे (authority) डुप्लिकेट पेजेसमध्ये विभाजन होते. मी हे सर्व सिग्नल एकत्रित करण्यासाठी आणि सर्च इंजिन्सना प्रत्येक रिसोर्सच्या अधिकृत आवृत्तीकडे निर्देशित करण्यासाठी कॅनोनिकल URLs (canonical URLs) जोडले.
शेवटी, मी डिस्कव्हरी इन्फ्रास्ट्रक्चर कॉन्फिगर केले. Django मध्ये sitemap framework सोबत येतो, आणि ते सेट केल्यामुळे क्रॉलर्सना साइटवरील सर्वात महत्त्वाच्या गोष्टींचा स्पष्ट इंडेक्स मिळतो. त्यासोबतच योग्यरित्या कॉन्फिगर केलेली robots.txt असते, जी बॉट्सना मौल्यवान कंटेंटकडे नेते आणि युजर डॅशबोर्ड किंवा ॲडमिन रूट्स सारख्या सर्च रिझल्टमध्ये कधीही न दिसणाऱ्या पेजेसपासून दूर ठेवते.
या बदलांमुळे तीन ठोस परिणाम साध्य होतात:
- क्रॉलर्स वेगाने काम करतात. स्वच्छ साइटमॅप आणि योग्य अंतर्गत लिंक्ससह (internal linking) असलेली तार्किक साइट आर्किटेक्चरमुळे सर्च इंजिन बॉट्स कोठेही भटकण्याऐवजी त्यांचा वेळ आणि रिसोर्सेस कार्यक्षमतेने वापरतात.
- कंटेंट अचूकपणे इंडेक्स होतो. स्पष्ट मेटाडेटा आणि सिमेंटिक मार्कअपमुळे पेजमध्ये काय आहे याबद्दल कोणतीही संदिग्धता राहत नाही. सर्च इंजिनला एखादे पेज रेसिपी आहे हे ओळखण्यासाठी अंदाज लावण्याची गरज पडत नाही; ते त्याला माहित असते.
- पेजेसना खरी सर्च व्हिजिबिलिटी मिळते. रिच स्निपेट्स (Rich snippets) आणि सुधारित लिस्टिंग्स योगायोगाने घडत नाहीत. ते स्ट्रक्चर्ड डेटाद्वारे शक्य होतात, जे तुमच्या कंटेंटला सर्च रिझल्ट्समध्ये विशेष पद्धतीने सादर करण्यासाठी पात्र ठरवते.
अदृश्य इन्फ्रास्ट्रक्चर का महत्त्वाचे आहे
कोणताही व्हिझिटर तुमच्या कॅनोनिकल लिंक टॅग्सचे कौतुक करणार नाही. तुमच्या मेटा डिस्क्रिप्शन किंवा स्कीमा अंमलबजावणीचे (schema implementation) कौतुक करणारी कोणीही कमेंट लिहिणार नाही. हे बदल ज्या लोकांना फायदा पोहोचवतात त्यांच्यापासून पूर्णपणे लपलेले असतात आणि म्हणूनच ते व्यावसायिक (professional) ठरतात.
अदृश्य पायाभूत सुविधा उत्पादन-दर्जाच्या सॉफ्टवेअरची व्याख्या करतात. जोपर्यंत योग्य प्रमाणीकरण (authentication) त्यांचा डेटा वाचवत नाही, तोपर्यंत वापरकर्त्यांचे त्यावर क्वचितच लक्ष जाते. जोपर्यंत एखादी क्वेरी त्वरित लोड होत नाही, तोपर्यंत ते डेटाबेस इंडेक्सिंगबद्दल विचार करत नाहीत. हेच तत्व इथेही लागू होते. योग्य सोशल प्रिव्ह्यू आपोआप काम करतो. एखादी रेसिपी सर्चमध्ये योग्य थंबनेल आणि रेटिंगसह दिसते, कारण पडद्यामागे कोणीतरी Open Graph आणि schema markup जोडण्याचे कष्टाचे काम केले असते.
हे लपलेले स्तर प्रकल्पाला वास्तविक जगातील वापरासाठी तयार करतात. छंद म्हणून केलेले प्रकल्प फक्त फ्रंटएंड पॉलिश करतात आणि गुगल बाकी गोष्टी हाताळेल अशी आशा धरतात. गंभीर प्रकल्प डिस्कव्हरॅबिलिटीला सुरक्षा किंवा डेटा अखंडतेइतकेच महत्त्वाचे मुख्य वैशिष्ट्य मानतात. हा पाया पूर्ण करून, मी हे मान्य केले की जर वापरकर्त्यांना जोडणाऱ्या प्रणालींना ते काय पाहत आहेत हे समजू शकले नाही, तर उत्कृष्ट कोडचा फारसा उपयोग होत नाही.
पुढील वाटचाल
SEO चा पाया पक्का झाल्यामुळे, मी आता अशा कामाकडे वळत आहे जे वापरकर्ते प्रत्यक्षात पाहू आणि अनुभवू शकतील. माझी पुढील प्राथमिकता म्हणजे ब्लॉग अधिक उपयुक्त बनवणारी नवीन वैशिष्ट्ये तयार करणे, परफॉर्मन्स ऑप्टिमाइझ करणे जेणेकरून पेजेस विनासायास लोड होतील आणि प्रोडक्शन डिप्लॉयमेंटसाठी तयारी करणे ही आहे.
नवीन वैशिष्ट्ये केवळ स्थिर रेसिपी सादरीकरणापलीकडे साइटची क्षमता वाढवतील. परफॉर्मन्स ऑप्टिमायझेशनमध्ये क्वेरी कार्यक्षमता, इमेज हँडलिंग आणि स्थानिक पातळीवर चालणाऱ्या साइट आणि लोड असताना ट्रॅफिक हाताळणाऱ्या साइटमधील फरक यावर काम केले जाईल. प्रोडक्शन डिप्लॉयमेंट म्हणजे एन्व्हायरमेंट व्हेरिएबल्स सुरक्षित करणे, स्टॅटिक फाईल डिलिव्हरी कॉन्फिगर करणे, योग्य लॉगिंग सेट करणे आणि सुरक्षा चेकलिस्ट तपासणे, ज्याकडे दुर्लक्ष करणे वास्तविक डेटा आणि वापरकर्त्यांच्या बाबतीत महागात पडू शकते.
ही सर्व कामे आता एका भक्कम पायावर उभी आहेत. हे ॲप्लिकेशन सर्च इंजिनची भाषा बोलते. जेव्हा तुमचे तांत्रिक नियोजन व्यवस्थित असते, तेव्हाच येणाऱ्या ट्रॅफिकसाठी हे तयार आहे.
मुख्य निष्कर्ष: डेव्हलपर्स अनेकदा SEO ला डेव्हलपमेंट संपल्यानंतर करायचे दुसऱ्या कोणाचे तरी काम मानतात. हे विभाजन कृत्रिम आणि खर्चिक आहे. जर तुम्ही सुरुवातीपासूनच मेटाडेटा, स्ट्रक्चर्ड डेटा आणि क्रॉलर ॲक्सेसिबिलिटीला इंजिनिअरिंग टास्क म्हणून मानले, तर तुम्ही केवळ कार्यात्मक नसलेले, तर खऱ्या अर्थाने पूर्ण झालेले ॲप्लिकेशन्स तयार करता. या अदृश्य गोष्टी योग्य करा. हेच एका चालणाऱ्या प्रकल्पाला आणि महत्त्वाच्या प्रकल्पाला वेगळे करते.
