logo hsb.horse

Architecture Decision Record

Politique d’optimisation SEO, métadonnées et AIO

Standardiser title/description, canonical/hreflang, OGP/Twitter et les données structurées pour améliorer la réutilisation dans les résultats de recherche et les résumés IA.

Accepté #seo #metadata #aio #structured-data #i18n

Politique d’optimisation SEO, métadonnées et AIO

Décision

  • Interdire les implémentations ad hoc des métadonnées par page et centraliser la génération du head dans une couche commune (responsabilité head dédiée sous Layout).
  • S’assurer que les pages indexables n’ont aucune contradiction entre title, description, canonical, hreflang et og:url.
  • Rendre obligatoires les métadonnées Open Graph et Twitter pour les pages partageables, avec des URL d’image absolues.
  • Utiliser noindex uniquement pour les pages volontairement exclues des résultats de recherche, en cohérence avec les règles d’inclusion dans la sitemap.
  • Pour l’AIO (AI Overview et systèmes similaires), ne pas introduire de hacks dédiés et privilégier des informations primaires claires et des données structurées valides.

Champs de métadonnées obligatoires et règles

ChampRègle
titleObligatoire sur toutes les pages. Format par défaut : `{Titre de page}
descriptionObligatoire sur toutes les pages ; texte brut, concis et cohérent avec le contenu affiché.
canonicalURL absolue obligatoire, sans query/hash, pointant vers l’URL canonique indexable souhaitée.
robotsValeur par défaut pour les pages publiques : index,follow,max-image-preview:large.
og:urlDoit correspondre exactement à canonical.

Exploitation canonical / hreflang

  • N’émettre hreflang que pour les pages traduites réellement existantes.
  • Utiliser l’URL représentative de la langue par défaut (ja) pour x-default.
  • Ne pas émettre hreflang pour les langues sans traduction.
  • Chaque page localisée doit canonicaliser vers elle-même (pas de canonical inter-langues).

Cartes OGP / Twitter

  • Les éléments suivants sont obligatoires pour les pages partageables :
    • og:type (website ou article selon le type de page)
    • og:title
    • og:description
    • og:url
    • og:image (URL absolue)
    • og:image:alt
    • twitter:card (summary_large_image)
    • twitter:title
    • twitter:description
    • twitter:image
  • Utiliser /brand/og.jpg comme image de repli globale quand une page ne fournit pas d’image sociale dédiée (le fichier sera ajouté dans une tâche suivante).

Alignement noindex / sitemap

  • Les pages avec noindex: true doivent émettre meta robots en noindex,nofollow et être exclues de la sitemap.
  • Conserver X-Robots-Tag: noindex sur les hôtes non productifs comme workers.dev.
  • Distinguer clairement draft et noindex :
    • draft : non publiable
    • noindex : publié mais volontairement exclu des résultats de recherche

Données structurées (noyau de la préparation AIO)

  • Conserver les sorties Person et BreadcrumbList existantes.
  • Ajouter des données structurées selon le type de page :
    • Pages de détail (blog, release notes, ADR) : Article (ou TechArticle si pertinent)
    • Pages d’index (changelog, tools, etc.) : CollectionPage
    • Page About : ProfilePage
  • Le JSON-LD ne doit refléter que des faits réellement affichés ; ne pas inclure d’évaluations, de chiffres ou d’affirmations inventés.

Principes de contenu pour la réutilisation AIO

  • Ne pas ajouter de texte caché « spécial IA ». Placer une introduction concise et informative en tête de page.
  • Garder une hiérarchie de titres valide et privilégier un sujet principal par page.
  • Rendre les termes, définitions et procédures autoportants dans la page, sans dépendre d’un contexte externe.

Contexte

L’implémentation actuelle couvre déjà en partie title, description, canonical et hreflang, mais les points suivants restent incohérents ou incomplets :

  • Politique unifiée de sortie Open Graph et Twitter
  • Règles opérationnelles reliant noindex et génération de sitemap
  • Politique de données structurées selon le type de page
  • Critères éditoriaux/structurels communs pour répondre à la fois aux snippets de recherche et aux résumés IA

Avec l’architecture multilingue actuelle (ja par défaut, autres langues en préfixe d’URL), une politique unique est nécessaire pour améliorer la lisibilité machine auprès des moteurs de recherche et des crawlers IA.

Options

  • Option A : Continuer les implémentations page par page
  • Option B : Se limiter aux tags minimaux (title/description/canonical)
  • Option C : Définir une politique commune et exploiter métadonnées + données structurées de façon centralisée (retenue)

Justification

  • Cohérence : évite les incohérences entre canonical/hreflang/og:url.
  • Sécurité opérationnelle : réduit les oublis de champs obligatoires lors de l’ajout de nouvelles pages.
  • Réutilisabilité : facilite la réutilisation d’une même information primaire dans la recherche, les cartes sociales et les résumés IA.
  • Extensibilité : permet d’introduire progressivement l’automatisation OGP et les vérifications de métadonnées.

Conséquences

  • Un travail d’implémentation est requis pour introduire une responsabilité SEO head commune (ou étendre les responsabilités de Layout).
  • Les schémas de Content Collection doivent définir de façon cohérente des champs SEO comme ogImage et noindex.
  • La CI doit détecter les balises requises manquantes, les contradictions canonical/hreflang et la présence de pages noindex dans la sitemap.
  • Critères de succès :
    • 100 % de couverture des métadonnées obligatoires sur les pages indexables
    • 100 % de correspondance entre canonical et og:url
    • 0 erreur de validation des données structurées