Le schema Article (ou BlogPosting) est celui que tu utilises sur chaque article de blog. La plupart des sites le mettent en place avec 4-5 champs de base et s’arretent la. En realite, 8 proprietes supplementaires peuvent doubler ton impact. Voici lesquelles, et comment les implementer.
Les champs de base (que tout le monde fait)
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "Titre de l'article",
"datePublished": "2026-04-11",
"author": {
"@type": "Person",
"name": "Auteur"
},
"publisher": {
"@type": "Organization",
"name": "Pulsari"
}
}
C’est suffisant pour passer le Rich Results Test de Google. Mais c’est juste le minimum syndical.
Les 8 proprietes qui changent tout
1. dateModified
"datePublished": "2026-04-11",
"dateModified": "2026-04-15"
Le champ le plus important apres author. Il indique quand ton article a ete mis a jour pour la derniere fois. Les LLM privilegient les contenus frais. Un article sans dateModified est suppose obsolete.
Regle : change dateModified a chaque update (meme mineur). Ne le laisse pas egal a datePublished si tu as edite.
2. mainEntityOfPage
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://getpulsari.com/blog/article-slug"
}
Declare que cet article est l’element principal de la page, pas une ressource secondaire. Aide les IA a prioriser ce contenu sur une page qui peut avoir du secondaire.
3. wordCount
"wordCount": 1250
Declare la longueur de l’article. Les IA utilisent ce nombre pour juger la profondeur du contenu (articles longs = plus de confiance sur les sujets complexes).
4. articleBody
"articleBody": "Le contenu complet de l'article en texte brut..."
Le texte de l’article en plein text, sans HTML. Les LLM peuvent le lire directement sans parser ton HTML. Utile si ton HTML est complexe ou genere par JS.
Attention : ne duplique pas si ton article est deja en clair dans le HTML. Ne sert que si ton HTML est complique.
5. about
"about": [
{
"@type": "Thing",
"name": "Generative Engine Optimization"
},
{
"@type": "Thing",
"name": "Audit de visibilite IA"
}
]
Liste des entites principales dont parle l’article. Les IA utilisent ce champ pour decider “cet article est pertinent pour ma question”.
Tu peux aussi utiliser des entites Wikipedia pour plus de precision :
"about": [
{
"@type": "Thing",
"name": "Search engine optimization",
"sameAs": "https://en.wikipedia.org/wiki/Search_engine_optimization"
}
]
6. keywords
"keywords": "geo, seo, visibilite ia, chatgpt"
Liste de mots-cles separes par des virgules. Semblable au <meta keywords> classique mais structure. Les IA les utilisent comme hint pour le contenu.
7. image
"image": {
"@type": "ImageObject",
"url": "https://getpulsari.com/images/article-hero.jpg",
"width": 1200,
"height": 630,
"caption": "Illustration du GEO"
}
Utilise un objet ImageObject complet avec width, height et caption. Les IA peuvent utiliser ta caption comme contexte pour les images dans leurs reponses multimodales.
8. inLanguage
"inLanguage": "fr-FR"
Declare explicitement la langue de l’article. Important quand ton site a des articles multilingues ou quand tu veux etre sur que les IA servent ton contenu aux utilisateurs francophones.
Un schema Article complet
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"@id": "https://getpulsari.com/blog/article-slug#article",
"headline": "GEO vs SEO : quelles differences et pourquoi c'est urgent en 2026",
"description": "Le SEO classique vacille, le GEO prend le relais. Decouvre les differences concretes.",
"inLanguage": "fr-FR",
"keywords": "geo, seo, difference geo seo, generative engine optimization, visibilite ia",
"wordCount": 1250,
"datePublished": "2026-04-11",
"dateModified": "2026-04-11",
"author": {
"@type": "Person",
"name": "Claire Aubert",
"url": "https://getpulsari.com/team/claire-aubert"
},
"publisher": {
"@type": "Organization",
"name": "Pulsari",
"@id": "https://getpulsari.com#organization",
"logo": {
"@type": "ImageObject",
"url": "https://getpulsari.com/logo.svg"
}
},
"image": {
"@type": "ImageObject",
"url": "https://getpulsari.com/images/geo-vs-seo-hero.jpg",
"width": 1200,
"height": 630
},
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://getpulsari.com/blog/geo-vs-seo"
},
"about": [
{
"@type": "Thing",
"name": "Generative Engine Optimization"
},
{
"@type": "Thing",
"name": "Search engine optimization"
}
]
}
C’est 20 minutes de travail par article, mais l’impact est tres reel.
L’automatisation
Tu ne vas pas ecrire ce JSON a la main pour chaque article. Automatise via ton CMS :
WordPress
Plugin Rank Math : genere automatiquement les champs de base + permet d’ajouter manuellement les champs avances par article.
Plugin Yoast SEO Premium : idem.
Astro
Plugin @astrojs/seo + composant custom BlogPostingSchema.astro qui lit les frontmatters des articles.
---
const { post } = Astro.props;
const schema = {
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": post.data.title,
"datePublished": post.data.date.toISOString(),
"dateModified": (post.data.dateModified || post.data.date).toISOString(),
"author": {
"@type": "Person",
"name": post.data.author
},
// ...
};
---
<script type="application/ld+json" set:html={JSON.stringify(schema)} />
Next.js
Package next-seo ou composant custom.
Tester tes schemas
Apres deploiement, teste chaque nouvel article :
- Google Rich Results Test : colle l’URL, verifie les erreurs
- Schema.org Validator : plus strict, recommande apres correction des erreurs Google
- Observation live : demande a Perplexity “parle-moi de [sujet de ton article]”. Si Perplexity cite ton site, ton schema est bien lu.
En resume
Un schema Article complet, avec les 8 proprietes supplementaires, transforme un article “juste valide” en article “facilement citable par les IA”. Le travail supplementaire est minime (5 minutes par article avec une automation CMS), l’impact est mesurable en semaines.
Pour aller plus loin : Schema.org pour GEO, Organization schema marques, audit Pulsari.