CI ਵਿੱਚ JSON-LD ਡਾਟਾ ਦੀ ਆਡਿਟਿੰਗ ਤੋਂ ਮੈਂ ਕੀ ਸਿੱਖਿਆ

JSON-LD structured data ਤੁਹਾਡੀ ਸਾਈਟ ਤੋਂ ਬਿਨਾਂ ਕੁਝ ਵੀ ਦਿਖਾਈ ਦੇਣ ਵਾਲਾ ਤੋੜੇ ਗਾਇਬ ਹੋ ਸਕਦਾ ਹੈ। ਤੁਹਾਡੀ build ਸਫਲ ਹੁੰਦੀ ਹੈ। ਤੁਹਾਡਾ deploy ਪੂਰਾ ਹੋ ਜਾਂਦਾ ਹੈ। ਤੁਹਾਡੇ ਪੇਜ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਬਿਲਕੁਲ ਠੀਕ ਦਿਖਾਈ ਦਿੰਦੇ ਹਨ।

ਪਰ Googlebot ਤੁਹਾਡੇ rich results ਦਾ ਫੈਸਲਾ ਕਰਨ ਲਈ script tags ਨੂੰ ਪੜ੍ਹਦਾ ਹੈ। ਜੇਕਰ ਡਾਟਾ ਗਾਇਬ ਹੈ ਜਾਂ ਖਰਾਬ ਹੈ, ਤਾਂ ਤੁਹਾਨੂੰ ਉਦੋਂ ਤੱਕ ਪਤਾ ਨਹੀਂ ਲੱਗੇਗਾ ਜਦੋਂ ਤੱਕ Search Console ਹਫ਼ਤਿਆਂ ਬਾਅਦ ਇਸ ਵੱਲ ਇਸ਼ਾਰਾ ਨਹੀਂ ਕਰਦਾ।

ਮੈਂ ਆਪਣੇ CI pipeline ਵਿੱਚ ਇੱਕ post-deploy audit ਸਟੈਪ ਜੋੜਿਆ ਹੈ। ਇਹ 60 ਸਕਿੰਟਾਂ ਤੋਂ ਵੀ ਘੱਟ ਸਮੇਂ ਵਿੱਚ ਇਹਨਾਂ ਗਲਤੀਆਂ ਨੂੰ ਲੱਭ ਲੈਂਦਾ ਹੈ।

ਇਹ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ:

ਮੈਂ Astro ਨਾਲ ਬਣੀਆਂ ਅਤੇ Cloudflare Pages ਰਾਹੀਂ deploy ਕੀਤੀਆਂ ਗਈਆਂ ਤਿੰਨ static sites ਚਲਾਉਂਦਾ ਹਾਂ। ਇਹ ਸਾਈਟਾਂ SoftwareApplication, VideoGame, ਅਤੇ ItemList ਵਰਗੇ schema ਦੀ ਵਰਤੋਂ ਕਰਦੀਆਂ ਹਨ। ਕਿਉਂਕਿ ਇਹ static ਹਨ, ਇੱਕ template ਬਦਲਾਅ ਬਿਨਾਂ ਕਿਸੇ build error ਦੇ ਹਜ਼ਾਰਾਂ ਪੇਜਾਂ ਤੋਂ schema ਨੂੰ ਹਟਾ ਸਕਦਾ ਹੈ।

The audit script does this:

• ਲਾਈਵ homepage ਅਤੇ ਨਮੂਨਾ (sample) detail ਪੇਜਾਂ ਨੂੰ fetch ਕਰਦੀ ਹੈ। • ਅਸਲ URLs ਲੱਭਣ ਲਈ ਲਾਈਵ sitemap ਨੂੰ ਪੜ੍ਹਦੀ ਹੈ। • regex ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸਾਰੇ JSON-LD blocks ਨੂੰ ਕੱਢਦੀ ਹੈ। • nested items ਲੱਭਣ ਲਈ @graph unwrapping ਦੀ ਜਾਂਚ ਕਰਦੀ ਹੈ। • ਮੇਰੀ ਉਮੀਦ ਕੀਤੀ ਗਈ ਲਿਸਟ ਦੇ ਮੁਕਾਬਲੇ ਮਿਲੇ @type values ਦੀ ਤੁਲਨਾ ਕਰਦੀ ਹੈ।

ਮੈਂ ਇਸਨੂੰ build artifacts ਦੀ ਬਜਾਏ ਲਾਈਵ deploy ਕੀਤੇ ਪੇਜਾਂ 'ਤੇ ਚਲਾਉਂਦਾ ਹਾਂ। ਇਹ CDN caching ਜਾਂ edge delivery ਨਾਲ ਜੁੜੀਆਂ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਫੜ ਲੈਂਦਾ ਹੈ।

ਪਹਿਲੀ ਵਾਰ ਚਲਾਉਣ 'ਤੇ script ਨੂੰ ਤਿੰਨ ਸਮੱਸਿਆਵਾਂ ਮਿਲੀਆਂ:

  • ossfind.com: ਖਾਸ ਪੇਜਾਂ 'ਤੇ ItemList ਗਾਇਬ ਸੀ। ਇਸਨੇ ਇੱਕ ਅਸਪਸ਼ਟ ਵਿਚਾਰ ਨੂੰ ਇੱਕ ਠੋਸ ਕੰਮ ਵਿੱਚ ਬਦਲ ਦਿੱਤਾ।
  • findindiegame.com: WebSite @id ਵਿੱਚ ਇੱਕ ਗਲਤ http:// protocol। ਇਹ ਇੱਕ copy-paste ਗਲਤੀ ਸੀ ਜੋ ਇਨਸਾਨ ਨੂੰ ਤਾਂ ਠੀਕ ਲੱਗੀ ਪਰ Google ਲਈ ਅਸੰਗਤ ਸੀ।
  • aiappdex.com: SoftwareApplication schema ਵਿੱਚ ਮਨੁੱਖੀ-ਪੜ੍ਹਨਯੋਗ (human-readable) ਨਾਮਾਂ ਦੀ ਬਜਾਏ ਸਿੱਧੇ database IDs ਦੀ ਵਰਤੋਂ ਕਰਨਾ।

ਇਹ ਅਸਲ bugs ਸਨ। ਇਹ ਨਾ ਤਾਂ build logs ਵਿੱਚ ਦਿਖਾਈ ਦਿੱਤੇ ਅਤੇ ਨਾ ਹੀ browser reviews ਵਿੱਚ।

ਮੈਂ CI ਸਟੈਪ ਨੂੰ non-fatal ਰੱਖਿਆ ਹੈ। ਜੇਕਰ audit ਕੋਈ ਸਮੱਸਿਆ ਲੱਭਦਾ ਹੈ, ਤਾਂ deployment ਫਿਰ ਵੀ ਪੂਰੀ ਹੋ ਜਾਂਦੀ ਹੈ, ਪਰ ਗਲਤੀ logs ਵਿੱਚ ਦਿਖਾਈ ਦਿੰਦੀ ਹੈ। ਇਹ ਮੈਨੂੰ ਚੈੱਕ ਨੂੰ pipeline ਨੂੰ ਰੋਕਣ ਵਾਲਾ ਬਣਾਉਣ ਤੋਂ ਪਹਿਲਾਂ ਅਸਲ-ਦੁਨੀਆ ਦੇ ਵਿਵਹਾਰ ਨੂੰ ਦੇਖਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ।

ਇਹ ਇੱਕ smoke test ਹੈ, ਕੋਈ ਪੂਰਾ validation suite ਨਹੀਂ। ਇਹ ਹਰ ਸਾਈਟ ਲਈ ਦੋ ਨਮੂਨੇ (samples) ਚੈੱਕ ਕਰਦਾ ਹੈ। ਇਹ ਹਰ edge case ਨੂੰ ਨਹੀਂ ਫੜੇਗਾ, ਪਰ ਇਹ ਵੱਡੀਆਂ ਗਲਤੀਆਂ ਨੂੰ production ਵਿੱਚ ਇੱਕ ਮਹੀਨੇ ਤੱਕ ਰਹਿਣ ਤੋਂ ਪਹਿਲਾਂ ਹੀ ਫੜ ਲੈਂਦਾ ਹੈ।

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