𝗪𝗵𝗮𝘁 𝗜 𝗟𝗲𝗮𝗿𝗻𝗲𝗱 𝗔𝘂𝗱𝗶𝘁𝗶𝗻𝗴 𝗝𝗦𝗢𝗡-𝗟𝗗 𝗗𝗮𝘁𝗮 𝗶𝗻 𝗖𝗜

JSON-LD स्ट्रक्चर्ड डेटा आपकी साइट से बिना कुछ भी दृश्यमान (visible) तोड़े गायब हो सकता है। आपका बिल्ड सफल हो जाता है। आपका डिप्लॉय पूरा हो जाता है। आपके पेज ब्राउज़र में बिल्कुल ठीक दिखते हैं।

लेकिन Googlebot आपके रिच रिज़ल्ट्स (rich results) तय करने के लिए स्क्रिप्ट टैग्स को पढ़ता है। यदि डेटा गायब है या टूटा हुआ है, तो आपको तब तक पता नहीं चलेगा जब तक Search Console हफ्तों बाद इसे फ्लैग न कर दे।

मैंने अपने CI पाइपलाइन में एक पोस्ट-डिप्लॉय ऑडिट स्टेप जोड़ा है। यह 60 सेकंड से भी कम समय में इन त्रुटियों को ढूंढ लेता है।

यह कैसे काम करता है:

मैं Astro के साथ बनी और Cloudflare Pages के माध्यम से डिप्लॉय की गई तीन स्टैटिक साइट्स चलाता हूँ। ये साइट्स SoftwareApplication, VideoGame, और ItemList जैसे स्कीमा का उपयोग करती हैं। क्योंकि ये स्टैटिक हैं, इसलिए एक टेम्पलेट बदलाव बिना किसी बिल्ड एरर के हजारों पेजों से स्कीमा को हटा सकता है।

ऑडिट स्क्रिप्ट यह करती है:

• लाइव होमपेज और सैंपल डिटेल पेजों को फेच (fetch) करती है। • असली URL खोजने के लिए लाइव साइटमैप को पढ़ती है। • regex का उपयोग करके सभी JSON-LD ब्लॉक्स को निकालती है। • नेस्टेड आइटम्स खोजने के लिए @graph unwrapping की जाँच करती है। • पाए गए @type वैल्यूज़ की तुलना मेरी अपेक्षित सूची (expected list) से करती है।

मैं इसे बिल्ड आर्टिफैक्ट्स (build artifacts) के बजाय लाइव डिप्लॉयड पेजों पर चलाता हूँ। इससे CDN कैशिंग या एज डिलीवरी (edge delivery) से जुड़ी समस्याएँ पकड़ में आ जाती हैं।

पहली बार चलाने पर स्क्रिप्ट ने तीन समस्याएँ पाईं:

  • ossfind.com: विशिष्ट पेजों पर ItemList गायब है। इसने एक अस्पष्ट विचार को एक ठोस कार्य में बदल दिया।
  • findindiegame.com: WebSite @id में एक गलत http:// प्रोटोकॉल। यह एक कॉपी-पेस्ट त्रुटि थी जो इंसान को ठीक लगी लेकिन Google के लिए असंगत (inconsistent) थी।
  • aiappdex.com: SoftwareApplication स्कीमा में मानव-पठनीय (human-readable) नामों के बजाय रॉ डेटाबेस ID का उपयोग करना।

ये वास्तविक बग्स थे। इनमें से कोई भी बिल्ड लॉग्स या ब्राउज़र रिव्यू में नहीं दिखा।

मैंने CI स्टेप को 'non-fatal' पर सेट किया है। यदि ऑडिट में कोई समस्या मिलती है, तो डिप्लॉयमेंट फिर भी पूरा हो जाता है, लेकिन एरर लॉग्स में दिखाई देता है। यह मुझे चेक को पाइपलाइन ब्लॉक करने के लिए सेट करने से पहले वास्तविक दुनिया के व्यवहार को देखने की अनुमति देता है।

यह एक स्मोक टेस्ट (smoke test) है, पूर्ण वैलिडेशन सुइट (validation suite) नहीं। यह प्रति साइट दो सैंपल की जाँच करता है। यह हर एज केस (edge case) को नहीं पकड़ पाएगा, लेकिन यह बड़ी गलतियों को प्रोडक्शन में एक महीने तक रहने से पहले ही पकड़ लेता है।

Source: https://dev.to/morinaga/what-i-learned-wiring-json-ld-structured-data-audits-into-a-post-deploy-ci-step-5jc