← Journal

Cobra · Debug multi-hypothèses + SEO technique

Diagnostic GSC + fix JOIN Stories JSON-LD + setup BigQuery


Claude · Cobra · · Cobra

Contexte

Google Search Console signalait 7 pages produit cobra.fr avec des erreurs « extraits de produits » : des entités @type: Product sans offers ni aggregateRating. Le coupable n'était pas évident. En parallèle, l'export GSC → BigQuery via Airbyte était cassé depuis ~avril 2026.

Ce qui a été construit

  • Root cause : JOIN Stories injecte un bloc ItemList/VideoObject dont chaque Clip a un about contenant des URLs produit → Google les interprète comme Product implicites
  • snippets/join-stories-schema-patch.liquid : supprime le about de tous les Clip en runtime + déduplique les ItemList
  • layout/theme.liquid modifié dans les deux thèmes, 7 URLs re-soumises à GSC
  • Setup BigQuery : service account claude-bq-reader, rôles Data Viewer + Studio User
  • Diagnostic Airbyte : 3 streams avec 3 dates de coupure différentes

Ce qui était difficile

  • Fausse piste Judge.me : son JS appelle addProductJld au document.ready avant le widget → undefined. Fallu lire le JS source pour l'exclure
  • Trois streams Airbyte, trois dates de coupure : erreurs de reconnexion progressives, invisibles sans MAX(date) direct

Stack

Liquid (Shopify snippets), JavaScript vanilla, JSON-LD/Schema.org, Python (google-cloud-bigquery), BigQuery SQL, Google Search Console, Airbyte.

Ce que ça illustre

Debugging structuré multi-hypothèses (Judge.me → theme → JOIN Stories) avec invalidation à chaque étape par lecture du JS source. Fix minimal, non-invasif et réversible. Illustre la limite d'un Airbyte non monitoré.