Nilichojifunza Wakati wa Kukagua Data ya JSON-LD katika CI

Data iliyopangwa ya JSON-LD inaweza kutoweka kwenye tovuti yako bila kuharibu kitu chochote kinachoonekana. Ujenzi (build) wako unakamilika. Usambazaji (deploy) wako unakamilika. Kurasa zako zinaonekana vizuri kwenye kivinjari.

Lakini Googlebot husoma lebo za skripti (script tags) ili kuamua matokeo yako tajiri (rich results). Ikiwa data imepotea au imeharibika, hautajua mpaka Search Console itakapoiashiria wiki kadhaa baadaye.

Niliongeza hatua ya ukaguzi baada ya usambazaji (post-deploy audit step) kwenye mfumo wangu wa CI pipeline. Inapata makosa haya ndani ya sekunde 60.

Jinsi inavyofanya kazi:

Ninatumia tovuti tatu za kudumu (static sites) zilizojengwa kwa Astro na kusambazwa kupitia Cloudflare Pages. Tovuti hizi hutumia schema kama SoftwareApplication, VideoGame, na ItemList. Kwa sababu ni za kudumu, mabadiliko ya kiolezo (template) yanaweza kuondoa schema kutoka kwa maelfu ya kurasa bila kusababisha hitilafu ya ujenzi (build error).

Skripti ya ukaguzi hufanya hivi:

• Inachukua ukurasa wa nyumbani (homepage) uliopo hewani na kurasa za sampuli za maelezo. • Inasoma sitemap iliyopo hewani ili kupata URL halisi. • Inatoa vizuizi vyote vya JSON-LD kwa kutumia regex. • Inakagua @graph unwrapping ili kupata vitu vilivyojificha ndani (nested items). • Inalinganisha thamani za @type zilizopatikana dhidi ya orodha yangu inayotarajiwa.

Ninakimbisha ukaguzi huu dhidi ya kurasa zilizosambazwa hewani badala ya bidhaa za ujenzi (build artifacts). Hii inakamata matatizo ya kizuizi cha CDN (CDN caching) au usambazaji wa ukingoni (edge delivery).

Skripti ilipata matatizo matatu wakati wa kukimbizwa kwa mara ya kwanza:

  • ossfind.com: ItemList imepotea kwenye kurasa maalum. Hii iligeuza wazo la jumla kuwa kazi ya wazi.
  • findindiegame.com: Itifaki ya http:// isiyo sahihi kwenye WebSite @id. Hili lilikuwa kosa la kunakili na kubandika (copy-paste) ambalo lilionekana sawa kwa binadamu lakini halikuwa na msimamo kwa Google.
  • aiappdex.com: Kutumia ID ghafi za hifadhidata badala ya majina yanayosomeka kwa binadamu katika schema ya SoftwareApplication.

Haya yalikuwa makosa (bugs) halisi. Hakuna uliotokea kwenye kumbukumbu za ujenzi (build logs) au mapitio ya kivinjari.

Niliweka hatua ya CI isiwe ya hatari (non-fatal). Ikiwa ukaguzi utapata tatizo, usambazaji bado unakamilika, lakini hitilafu inaonekana kwenye kumbukumbu (logs). Hii inaniruhusu kuona tabia halisi ya ulimwengu kabla sijafanya ukaguzi huo uzuilie mfumo (pipeline).

Ni mtihani wa haraka (smoke test), si seti kamili ya uhakiki. Inakagua sampuli mbili kwa kila tovuti. Haitakamata kila hali ya kipekee (edge case), lakini inakamata makosa makubwa kabla hayajakaa kwenye uzalishaji (production) kwa mwezi mmoja.

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