𝗪𝗵𝗮𝘁 𝗜 𝗟𝗲𝗮𝗿𝗻𝗲𝗱 𝗔𝘂𝗱𝗶𝘁𝗶𝗻𝗴 𝗝𝗦𝗢𝗡-𝗟𝗗 𝗗𝗮𝘁𝗮 𝗶𝗻 𝗖𝗜
JSON-LD स्ट्रक्चर्ड डेटा तुमच्या साइटवरून काहीही दृश्यमान (visible) बदल न करता गायब होऊ शकतो. तुमचा बिल्ड (build) यशस्वी होतो. तुमचे डिप्लॉयमेंट (deploy) पूर्ण होते. ब्राउझरमध्ये तुमचे पेजेस व्यवस्थित दिसतात.
पण तुमचे रिच रिझल्ट्स (rich results) ठरवण्यासाठी Googlebot स्क्रिप्ट टॅग्स वाचतो. जर डेटा गहाळ असेल किंवा खराब झाला असेल, तर Search Console काही आठवड्यांनंतर तो दर्शवत नाही तोपर्यंत तुम्हाला ते समजणार नाही.
मी माझ्या CI पाइपलाइनमध्ये पोस्ट-डिप्लॉय ऑडिट स्टेप (post-deploy audit step) जोडली आहे. ती ६० सेकंदांच्या आत या त्रुटी शोधून काढते.
ते कसे कार्य करते:
मी Astro वापरून तयार केलेल्या आणि Cloudflare Pages द्वारे डिप्लॉय केलेल्या तीन स्टॅटिक साइट्स चालवतो. या साइट्स SoftwareApplication, VideoGame आणि ItemList सारखे स्कीमा (schema) वापरतात. त्या स्टॅटिक असल्यामुळे, टेम्पलेटमधील बदलामुळे बिल्ड एरर (build error) न येता हजारो पेजेसवरील स्कीमा गायब होऊ शकतो.
ऑडिट स्क्रिप्ट हे करते:
• लाइव्ह होमपेज आणि सॅम्पल डिटेल पेजेस मिळवते (fetches). • रिअल URLs शोधण्यासाठी लाइव्ह साइटमॅप वाचते. • regex वापरून सर्व JSON-LD ब्लॉक्स एक्सट्रॅक्ट करते. • नेस्टेड आयटम्स शोधण्यासाठी @graph unwrapping तपासते. • सापडलेल्या @type व्हॅल्यूजची माझ्या अपेक्षित यादीशी तुलना करते.
मी हे बिल्ड आर्टिफॅक्ट्सऐवजी (build artifacts) थेट लाइव्ह डिप्लॉय केलेल्या पेजेसवर चालवतो. यामुळे CDN कॅशिंग किंवा एज डिलिव्हरीमधील (edge delivery) समस्या पकडल्या जातात.
पहिल्या रनमध्ये स्क्रिप्टला तीन समस्या आढळल्या:
- ossfind.com: विशिष्ट पेजेसवर ItemList गहाळ आहे. यामुळे एका अस्पष्ट कल्पनेचे रूपांतर एका ठोस कामात झाले.
- findindiegame.com: WebSite @id मध्ये चुकीचा http:// प्रोटोकॉल. ही एक कॉपी-पेस्ट चूक होती जी माणसाला व्यवस्थित वाटली, पण Google साठी ती विसंगत (inconsistent) होती.
- aiappdex.com: SoftwareApplication स्कीमामध्ये मानवी-वाचनीय नावांच्या ऐवजी थेट डेटाबेस IDs वापरले जात होते.
या खऱ्या त्रुटी (bugs) होत्या. यापैकी कोणतीही गोष्ट बिल्ड लॉग्स किंवा ब्राउझर रिव्ह्यूमध्ये दिसली नाही.
मी CI स्टेप 'नॉन-फेटल' (non-fatal) ठेवली आहे. जर ऑडिटमध्ये काही समस्या आढळली, तरी डिप्लॉयमेंट पूर्ण होते, परंतु एरर लॉग्समध्ये दिसतो. यामुळे, ही तपासणी पाइपलाइन ब्लॉक करण्यापूर्वी मला प्रत्यक्ष व्यवहार (real-world behavior) पाहण्याची संधी मिळते.
ही एक 'स्मोक टेस्ट' (smoke test) आहे, पूर्ण व्हॅलिडेशन सूट (validation suite) नाही. ती प्रत्येक साइटसाठी दोन सॅम्पल्स तपासते. ती प्रत्येक 'एज केस' (edge case) पकडू शकणार नाही, पण मोठ्या चुका प्रोडक्शनमध्ये महिनाभर राहण्यापूर्वीच पकडते.