# Exposer un flux JSON-LD headless pensé pour les agents d’achat IA

> Ce qu'un flux de contenu structuré doit vraiment contenir pour rester exploitable par un agent automatisé, au-delà d'un simple rendu HTML pensé pour un lecteur humain.

- Auteur : WordPress Développement
- Publié le : 2023-04-23
- Mis à jour le : 2023-04-23
- Catégorie : Headless &amp; API
- URL : https://www.wpmoderne.fr/headless/flux-json-ld-headless-agents-achat-ia/

## L’essentiel

- Un agent automatisé ne lit pas la mise en page, il lit la structure des données exposées
- Un prix ou une disponibilité doit être une valeur typée, jamais un texte libre à interpréter
- Le flux JSON-LD doit rester accessible indépendamment du rendu visuel de la page

« Un agent qui compare des prix entre plusieurs boutiques ne lit jamais un bandeau promotionnel en rouge clignotant. » Cette phrase, glissée dans une réunion de cadrage d'un site e-commerce headless, résume assez bien la question de fond : un contenu pensé uniquement pour un rendu visuel humain devient largement illisible pour un programme qui doit en extraire une information fiable.

Avec la multiplication des agents automatisés capables de naviguer et de comparer des offres pour le compte d'un utilisateur, un site headless dispose d'un avantage structurel : son contenu existe déjà sous forme de données avant d'être transformé en HTML. Encore faut-il exposer ces données de façon exploitable, ce qui va bien au-delà d'ajouter quelques balises `<meta>` pensées pour le référencement classique.

## Ce qu'un rendu HTML pour humain ne dit pas à une machine

Un prix affiché « À partir de 49,90 € » dans une fiche produit contient, pour un humain, une information immédiatement compréhensible : un tarif de départ, potentiellement variable selon des options. Pour un programme qui analyse le DOM sans comprendre le contexte visuel environnant, cette chaîne de caractères reste ambiguë : s'agit-il d'un prix TTC ou HT, dans quelle devise, la mention « à partir de » modifie-t-elle la structure attendue d'un prix fixe ?

Le schéma `schema.org/Offer`, sérialisé en JSON-LD, répond précisément à ce problème en typant chaque valeur plutôt qu'en la décrivant en langage naturel.

## Structurer un flux qui reste exploitable sans le rendu visuel

Sur ce projet, le flux JSON-LD est généré côté WordPress à partir des mêmes données que celles servies par l'API REST au frontend, garantissant qu'aucune valeur ne diverge entre l'affichage humain et la donnée structurée :

> L'essentiel à retenir : Un agent automatisé ne lit pas la mise en page, il lit la structure des données exposées ; Un prix ou une disponibilité doit être une valeur typée, jamais un texte libre à interpréter ; Le flux JSON-LD doit rester accessible indépendamment du rendu visuel de la page

```
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Formation développement WordPress headless",
  "offers": {
    "@type": "Offer",
    "price": "490.00",
    "priceCurrency": "EUR",
    "availability": "https://schema.org/InStock",
    "priceValidUntil": "2023-12-31"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.6",
    "reviewCount": "87"
  }
}
```

Chaque champ porte un type explicite : `price` est une valeur numérique sous forme de chaîne normalisée, `availability` pointe vers une URL de référence plutôt qu'un texte libre comme « en stock », et `priceValidUntil` donne une date d'expiration exploitable sans ambiguïté de format.

## Trois erreurs qui rendent un flux inexploitable

- Mélanger dans un même champ une valeur et son unité (« 49,90 € » plutôt que `price: "49.90"` et `priceCurrency: "EUR"` séparément)
- Décrire une disponibilité en texte libre plutôt qu'avec les valeurs standardisées de `schema.org/ItemAvailability`
- Ne mettre à jour le flux structuré qu'au moment du déploiement, alors que le stock ou le prix change en temps réel côté back-office

## Rendre le flux accessible indépendamment du rendu

Un agent automatisé ne rend généralement pas le JavaScript d'une page comme le ferait un navigateur complet. Le flux JSON-LD doit donc être injecté côté serveur, dans le HTML initial de la page, et non ajouté dynamiquement après l'hydratation d'un composant côté client. Sur ce projet, la génération du bloc JSON-LD se fait directement dans le rendu serveur du frontend, à partir de la même réponse API que celle qui alimente l'affichage visuel.

Un flux JSON-LD exposé séparément, à une URL dédiée (par exemple `/produits.json`), permet en complément à un agent de récupérer l'ensemble du catalogue sans avoir à parcourir chaque page individuellement, ce qui réduit considérablement le nombre de requêtes nécessaires pour une comparaison à grande échelle.

## Ce que ce flux ne remplace pas

Cette approche ne se substitue en rien à une stratégie de référencement classique : elle concerne exclusivement la lisibilité du contenu par des programmes qui en extraient une information structurée, indépendamment de tout objectif de positionnement dans les résultats de recherche traditionnels.

## Notre verdict

Un site headless a la structure de données en interne dès l'origine ; le vrai travail consiste à ne pas la perdre en cours de route en la traduisant uniquement en présentation visuelle. Un flux JSON-LD rigoureusement typé, cohérent avec les données réelles de disponibilité et de prix, prépare un contenu à être compris aussi bien par un humain que par un programme, sans devoir maintenir deux sources de vérité distinctes.
