Mis à jour le 1er novembre 2026. Article réécrit : balises réellement produites par WordPress 7.1 et par les thèmes Hummingbird et Classic de PrestaShop 9.2 (lecture du code et pages générées), exigences publiées par Meta et LinkedIn, code testé pour compléter les balises, et méthode de génération assistée par IA avec relecture.
Quand un lien est partagé sur Facebook, LinkedIn, Mastodon ou une messagerie, la plateforme lit les balises <meta> de la page pour construire l’aperçu : titre, description, image. Sans elles, elle devine, souvent mal. Avant d’ajouter une extension ou un module, il faut savoir ce que votre CMS produit déjà. Nous avons vérifié les deux cas, et les résultats surprennent : WordPress ne produit rien, PrestaShop produit l’essentiel mais avec des trous.
Les balises qui comptent
Le protocole Open Graph, décrit sur ogp.me, impose quatre propriétés : og:title, og:type, og:image et og:url. Il recommande og:description, og:site_name et og:locale (au format fr_FR). L’image accepte des propriétés structurées : og:image:width, og:image:height, og:image:type et og:image:alt, à fournir dès qu’une og:image est déclarée. Si une propriété est répétée, la première rencontrée l’emporte.
Les types définis par ogp.me sont notamment website, article, profile et book. Le type product utilisé par PrestaShop n’en fait pas partie.
X lit d’abord ses propres balises, dont twitter:card (summary ou summary_large_image), et se rabat sur les balises og: pour le titre, la description et l’image.
| Plateforme | Balises lues | Image recommandée (documentation officielle) |
|---|---|---|
og:url, og:title, og:description, og:image, og:type, og:locale | Au moins 1 080 px de large ; formats JPEG, PNG ou GIF déclarés dans og:image:type | |
og:title, og:image, og:description, og:url | Au moins 1 200 × 627 px, ratio 1,91:1, moins de 5 Mo ; sous 401 px de large, l’image devient une vignette ; carrée, elle peut être recadrée | |
| X | twitter:card, puis repli sur og: | Selon le type de carte |
Facebook met les images en cache par adresse : pour changer l’image d’un contenu déjà partagé, changez l’URL du fichier. Déclarer la largeur et la hauteur permet aussi d’afficher l’image dès le premier partage.
WordPress : rien par défaut
Nous avons cherché la chaîne og: dans tout le dossier wp-includes de WordPress 7.1.3. Elle n’apparaît que dans le contrôleur REST qui lit les métadonnées des sites externes pour les aperçus de liens de l’éditeur. Le cœur ne produit aucune balise Open Graph ni Twitter sur vos pages. Trois solutions :
- Une extension SEO. Yoast SEO (version 28.8 du 27 octobre 2026) produit les balises Open Graph et Twitter ; dans son code, la carte par défaut est
summary_large_image. L’aperçu visuel des partages Facebook et X fait partie de l’offre Premium. Rank Math (1.0.280 du 6 octobre 2026) propose aussi des réglages de partage social. - L’extension ActivityPub, si vous l’utilisez, ajoute la balise
fediverse:creator(option « OpenGraph », activée par défaut), qui sert à attribuer un article à son auteur dans le fediverse. Voir notre guide ActivityPub. - Quelques lignes de code, si vous n’avez pas d’extension SEO. N’ajoutez jamais ce code à côté d’une extension SEO : les balises seraient en double, et c’est la première qui compte.
add_action( 'after_setup_theme', function () {
add_image_size( 'partage-social', 1200, 630, true );
} );
add_action( 'wp_head', 'genisoft_balises_partage', 5 );
function genisoft_balises_partage() {
if ( ! is_singular() ) {
return;
}
$id = get_queried_object_id();
$texte = has_excerpt( $id ) ? get_the_excerpt( $id ) : get_post_field( 'post_content', $id );
$desc = wp_trim_words( wp_strip_all_tags( strip_shortcodes( $texte ) ), 30, '…' );
$balises = array(
'og:type' => 'article',
'og:title' => get_the_title( $id ),
'og:description' => $desc,
'og:url' => get_permalink( $id ),
'og:site_name' => get_bloginfo( 'name' ),
'og:locale' => get_locale(),
);
$image_id = get_post_thumbnail_id( $id );
if ( $image_id ) {
$image = wp_get_attachment_image_src( $image_id, 'partage-social' );
if ( $image ) {
$balises['og:image'] = $image[0];
$balises['og:image:width'] = $image[1];
$balises['og:image:height'] = $image[2];
$balises['og:image:alt'] = get_post_meta( $image_id, '_wp_attachment_image_alt', true );
}
}
foreach ( $balises as $propriete => $valeur ) {
if ( '' !== (string) $valeur ) {
printf( '<meta property="%s" content="%s">' . "\n", esc_attr( $propriete ), esc_attr( $valeur ) );
}
}
echo '<meta name="twitter:card" content="' . ( $image_id ? 'summary_large_image' : 'summary' ) . '">' . "\n";
}
Placez-le dans une extension maison ou dans le functions.php d’un thème enfant. Exécuté sur notre site de test en WordPress 7.1.3, il produit le type, le titre, la description, l’URL, le nom du site, og:locale en fr_FR et une carte summary pour un article sans image mise en avant. La taille partage-social ne s’applique qu’aux images téléversées après son ajout : régénérez les miniatures existantes. Si votre site convertit ses images en WebP, vérifiez le format servi, car la documentation de Facebook ne cite que JPEG, PNG et GIF.
PrestaShop 9.2 : l’essentiel, avec des trous
Les thèmes Hummingbird (par défaut depuis PrestaShop 9.1) et Classic de PrestaShop 9.2.0 produisent les balises dans le bloc head_open_graph de templates/_partials/head.tpl, complété par templates/catalog/product.tpl sur les fiches produit. Nous avons lu ces fichiers et affiché les pages d’une boutique de test.
| Balise | Toutes les pages | Fiche produit |
|---|---|---|
og:title | Méta-titre de la page | Méta-titre du produit |
og:description | Méta-description, même vide | Méta-description du produit |
og:url | Adresse courante, paramètres compris | Adresse du produit |
og:site_name | Nom de la boutique | Nom de la boutique |
og:type | website | product |
og:image | Absente | Plus grande image du produit |
product:price:* et product:pretax_price:* (prix TTC et HT, devise) | — | Si le prix est affiché |
product:weight:value et units | — | Si un poids est renseigné |
og:image:width, height, alt, og:locale, twitter:* | Absentes | Absentes |
Quatre constats tirés de nos essais :
- Pas d’image hors fiches produit. La page d’accueil, les catégories et les pages CMS partagées n’ont aucune
og:image: la plateforme choisit seule. - L’image produit est carrée. Le code retient la plus grande déclinaison d’image du thème :
product_main_2xen 1 440 × 1 440 px sur Hummingbird,large_defaulten 800 × 800 px sur Classic. LinkedIn peut recadrer une image carrée. og:urlreprend les paramètres. Avec?utm_source=testdans l’adresse, la balise contenait le paramètre alors que la balise canonique restait propre. Les partages d’une même page se retrouvent répartis sur plusieurs adresses.- Une méta-description vide donne une
og:descriptionvide, comme sur la page d’accueil de notre boutique de test. Le thème Hummingbird contient aussi une balise<meta content="…">sans attributpropertysur les fiches produit, sans effet mais à ignorer lors d’un audit.
Compléter avec un thème enfant
Plutôt qu’un module qui ajouterait des balises en double, redéfinissez le bloc dans un thème enfant. Créez templates/_partials/head.tpl dans le thème enfant :
{extends file='parent:_partials/head.tpl'}
{block name='head_open_graph'}
<meta property="og:title" content="{$page.meta.title}">
{if $page.meta.description}
<meta property="og:description" content="{$page.meta.description}">
{/if}
<meta property="og:url" content="{if $page.canonical}{$page.canonical}{else}{$urls.current_url}{/if}">
<meta property="og:site_name" content="{$shop.name}">
<meta property="og:locale" content="{$language.locale|replace:'-':'_'}">
{if $page.page_name != 'product'}
<meta property="og:type" content="website">
<meta property="og:image" content="{$urls.base_url}img/partage-social.jpg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:alt" content="{$shop.name}">
{/if}
<meta name="twitter:card" content="summary_large_image">
{/block}
Déposez une image de 1 200 × 630 px dans le dossier img/ de la boutique sous ce nom, puis videz le cache Smarty. Le front de PrestaShop échappe automatiquement les variables (escape_html activé), d’où l’absence de filtre d’échappement. Nous avons compilé ce bloc avec le Smarty 4.5.7 livré avec PrestaShop 9.2 et des données fictives : guillemets et esperluettes du titre sont bien échappés, la description vide disparaît et og:url reprend la canonique sans paramètre. Pour l’image d’une catégorie, de son côté, il faudrait un module ou un champ dédié. Pour les données structurées, complémentaires, voir notre guide des données structurées PrestaShop.
Vérifier le rendu
- Code source : ouvrez la page avec Ctrl+U et cherchez
og:. Les balises doivent figurer dans le HTML reçu, sans dépendre de JavaScript, et chacune une seule fois. - Facebook Sharing Debugger : il affiche les balises lues, les avertissements, et relance la lecture de la page. Meta évoque une période de mise à jour standard de 24 heures, que l’outil permet d’éviter.
- LinkedIn Post Inspector : il montre l’aperçu tel que LinkedIn le construit.
- Une publication de test sur un compte secondaire, pour X et Mastodon.
💡 Outil en ligne pratique : Pour auditer immédiatement la présence et la conformité de vos balises sociales sans dépendre des outils tiers, testez directement votre page avec notre Vérificateur Open Graph. Si vous devez rédiger le bloc complet de balises pour votre code source, vous pouvez aussi le concevoir en quelques secondes grâce à notre Générateur Open Graph.
L’IA pour rédiger les textes, avec relecture
Un modèle de langage peut proposer des variantes de og:title et de og:description à partir du contenu d’une page. C’est utile pour un catalogue dont les méta-descriptions sont vides. Donnez-lui uniquement les données de la page et des contraintes explicites :
À partir des données ci-dessous, propose 3 couples titre / description
pour un aperçu de partage social.
Contraintes : titre de 60 caractères maximum, description de 155 caractères
maximum, en français, sans prix, délai, promotion ni caractéristique absents
des données, sans point d'exclamation.
Données : [nom du produit, catégorie, caractéristiques vérifiées]
Relisez chaque proposition : elle doit rester fidèle à la page et ne rien promettre qu’elle ne tient pas. La page de Google sur le contenu généré par IA, mise à jour le 5 octobre 2026, demande de vérifier les titres, descriptions et textes alternatifs produits avant publication. Pour les visuels, préférez la photo réelle : une image générée ne doit jamais représenter un produit de façon inexacte, et ses conditions d’utilisation commerciale doivent être vérifiées. La même méthode s’applique aux textes alternatifs, décrite dans notre guide des balises ALT sur PrestaShop.
Questions fréquentes
Les balises Open Graph influencent-elles le référencement ?
Elles servent à l’affichage des partages. Les moteurs de recherche s’appuient sur la balise <title>, la méta-description et le contenu. Un aperçu soigné peut en revanche améliorer le taux de clic sur les réseaux.
Pourquoi Facebook affiche-t-il encore l’ancienne image ?
Facebook met les images en cache par adresse. Changez le nom du fichier image, puis relancez la lecture dans le Sharing Debugger.
PrestaShop a-t-il besoin d’un module Open Graph ?
Pas pour les fiches produit, déjà couvertes par les thèmes Hummingbird et Classic. Il en faut un, ou un thème enfant, pour l’image des autres pages, og:locale, les cartes X et une og:url sans paramètres.
Faut-il des balises Twitter si Open Graph est en place ?
Seule twitter:card est vraiment utile : elle choisit le format de l’aperçu sur X. Le titre, la description et l’image peuvent venir des balises og:.
Sources
- The Open Graph protocol : https://ogp.me/
- Meta for Developers, A Guide to Sharing for Webmasters et Sharing Best Practices : https://developers.facebook.com/docs/sharing/webmasters/, https://developers.facebook.com/docs/sharing/best-practices/
- LinkedIn, Make your website shareable on LinkedIn : https://www.linkedin.com/help/linkedin/answer/a521928
- X Developer Platform, Cards markup : https://developer.x.com/cards/markup
- Code de WordPress 7.1.3, lu localement :
wp-includes/(recherche deog:),class-wp-rest-url-details-controller.php. - WordPress.org, Yoast SEO (28.8) et Rank Math SEO (1.0.280), relevés le 1er novembre 2026 : https://wordpress.org/plugins/wordpress-seo/, https://wordpress.org/plugins/seo-by-rank-math/
- Code de PrestaShop 9.2.0, lu localement :
themes/hummingbirdetthemes/classic(_partials/head.tpl,catalog/product.tpl,config/theme.yml),src/Adapter/Image/ImageRetriever.php,classes/controller/FrontController.php. - Google Search Central, Utiliser du contenu généré par l’IA (mise à jour du 5 octobre 2026) : https://developers.google.com/search/docs/fundamentals/using-gen-ai-content?hl=fr