CI માં JSON-LD ડેટાનું ઓડિટ કરવાથી મેં શું શીખ્યું
JSON-LD સ્ટ્રક્ચર્ડ ડેટા તમારી સાઇટ પરથી કંઈપણ દેખીતી રીતે બગાડ્યા વગર ગાયબ થઈ શકે છે. તમારું બિલ્ડ સફળ થાય છે. તમારું ડિપ્લોય પૂર્ણ થાય છે. તમારા પેજ બ્રાઉઝરમાં બરાબર દેખાય છે.
પરંતુ Googlebot તમારા રિચ રિઝલ્ટ્સ નક્કી કરવા માટે સ્ક્રિપ્ટ ટેગ્સ વાંચે છે. જો ડેટા ખૂટતો હોય અથવા બગડેલો હોય, તો જ્યાં સુધી Search Console અઠવાડિયા પછી તેના પર ધ્યાન ન દોરશે ત્યાં સુધી તમને ખબર નહીં પડે.
મેં મારા CI પાઇપલાઇનમાં પોસ્ટ-ડિપ્લોય ઓડિટ સ્ટેપ ઉમેર્યું છે. તે 60 સેકન્ડથી ઓછા સમયમાં આ ભૂલો શોધી કાઢે છે.
તે કેવી રીતે કામ કરે છે:
હું Astro દ્વારા બનાવેલી અને Cloudflare Pages દ્વારા ડિપ્લોય કરેલી ત્રણ સ્ટેટિક સાઇટ્સ ચલાવું છું. આ સાઇટ્સ SoftwareApplication, VideoGame, અને ItemList જેવા schema નો ઉપયોગ કરે છે. તે સ્ટેટિક હોવાને કારણે, ટેમ્પલેટમાં ફેરફાર કરવાથી બિલ્ડ એરર આપ્યા વગર હજારો પેજ પરથી schema નીકળી શકે છે.
ઓડિટ સ્ક્રિપ્ટ આ કામ કરે છે:
• લાઈવ હોમપેજ અને સેમ્પલ ડિટેલ પેજ મેળવે છે. • સાચા URLs શોધવા માટે લાઈવ સાઇટમેપ વાંચે છે. • regex નો ઉપયોગ કરીને તમામ JSON-LD બ્લોક્સ કાઢે છે. • નેસ્ટેડ આઇટમ્સ શોધવા માટે @graph unwrapping તપાસે છે. • મળેલા @type વેલ્યુઝની મારી અપેક્ષિત યાદી સાથે સરખામણી કરે છે.
હું આ બિલ્ડ આર્ટિફેક્ટ્સને બદલે લાઈવ ડિપ્લોય કરેલા પેજ પર ચલાવું છું. આનાથી CDN caching અથવા edge delivery સાથેની સમસ્યાઓ પકડાઈ જાય છે.
પ્રથમ રન પર સ્ક્રિપ્ટે ત્રણ સમસ્યાઓ શોધી કાઢી:
- ossfind.com: ચોક્કસ પેજ પર ItemList ખૂટે છે. આનાથી એક અસ્પષ્ટ વિચાર એક ચોક્કસ કાર્યમાં ફેરવાઈ ગયો.
- findindiegame.com: WebSite @id માં ખોટો http:// પ્રોટોકોલ. આ એક કોપી-પેસ્ટ ભૂલ હતી જે માણસને બરાબર લાગતી હતી પરંતુ Google માટે અસંગત હતી.
- aiappdex.com: SoftwareApplication schema માં માનવ-વાંચનક્ષમ (human-readable) નામોને બદલે ડેટાબેઝ ID નો ઉપયોગ.
આ વાસ્તવિક બગ્સ હતા. તે બિલ્ડ લોગ્સ અથવા બ્રાઉઝર રિવ્યુમાં દેખાતા નહોતા.
મેં CI સ્ટેપને non-fatal સેટ કર્યું છે. જો ઓડિટમાં કોઈ સમસ્યા મળે, તો પણ ડિપ્લોયમેન્ટ પૂર્ણ થાય છે, પરંતુ ભૂલ લોગ્સમાં દેખાય છે. આનાથી મને ચેકને પાઇપલાઇન બ્લોક કરવા માટે સેટ કરતા પહેલા વાસ્તવિક દુનિયાના વર્તનને અવલોકન કરવાની મંજૂરી મળે છે.
તે એક smoke test છે, સંપૂર્ણ વેલિડેશન સૂટ નથી. તે દરેક સાઇટ દીઠ બે સેમ્પલ તપાસે છે. તે દરેક edge case પકડી શકશે નહીં, પરંતુ તે મોટી ભૂલોને પ્રોડક્શનમાં એક મહિના સુધી રહેતા પહેલા પકડી લે છે.