# Elementor et Yoast SEO : quand l’aperçu de contenu ment sur la lisibilité

> L'analyse de lisibilité de Yoast note parfois un texte qui n'a plus rien à voir avec ce que la page affiche réellement. Voici pourquoi, et comment recaler les deux outils.

- Auteur : Clément Hadrot
- Publié le : 2024-03-11
- Mis à jour le : 2024-03-11
- Catégorie : Extensions
- URL : https://wpmoderne.dev.wordpress-developpement.fr/extensions/elementor-yoast-seo-analyse-lisibilite/

## L’essentiel

- post_content reste figé tant qu'Elementor n'a pas resynchronisé
- Les widgets dynamiques échappent totalement à l'analyse
- Un script WP-CLI répare tout un parc en une passe

« Score de lisibilité : faible » — alors que la page, à l'écran, se lit très bien. Ce diagnostic revient régulièrement chez les clients qui construisent leurs pages avec Elementor tout en gardant Yoast SEO actif pour le pilotage éditorial. Les deux extensions cohabitent, mais elles ne regardent pas le même contenu.

Ce billet ne traite que du couple Elementor/Yoast. Rank Math gère la synchronisation de façon différente et mériterait un article à part entière.

## Symptôme : deux lisibilités, deux décisions

Le symptôme se manifeste toujours de la même façon : l'éditeur Elementor est ouvert, le texte remplit visuellement la mise en page, mais le panneau Yoast, positionné dans l'éditeur WordPress classique en arrière-plan, calcule ses scores sur un contenu obsolète — parfois un simple champ vide, parfois une ancienne version du texte enregistrée avant le passage à Elementor.

## Diagnostic : Yoast ne lit que `post_content`

Yoast SEO analyse le champ `post_content` de la table `wp_posts`. Or, lorsqu'une page est construite avec Elementor, le contenu structuré (les widgets, leurs réglages, leur texte) est stocké dans le champ meta `_elementor_data`, sous forme de JSON. Le champ `post_content` n'est mis à jour qu'au moment de la sauvegarde, via une fonction de rendu qui convertit les données Elementor en HTML statique — et cette conversion ne se déclenche pas toujours quand on s'y attend.

```
// Ce que contient réellement post_content après un enregistrement Elementor
<div data-elementor-type="wp-page" data-elementor-id="482">
    <!-- Rendu HTML généré, pas le contenu vivant -->
</div>
```

Trois situations provoquent le décalage observé chez les clients :

- Une modification faite dans l'éditeur Elementor puis quittée sans clic explicite sur « Mettre à jour » (un simple aperçu ne suffit pas).
- Un cache de génération de page (souvent côté hébergeur) qui sert une version `post_content` antérieure à l'analyse Yoast lors d'un enregistrement rapide.
- Des widgets Elementor tiers qui injectent du texte via des shortcodes ou des requêtes dynamiques : ce texte n'existe tout simplement jamais dans `post_content`, car il n'est généré qu'à l'affichage.

> L'essentiel à retenir : post_content reste figé tant qu'Elementor n'a pas resynchronisé ; Les widgets dynamiques échappent totalement à l'analyse ; Un script WP-CLI répare tout un parc en une passe

## Correctif : forcer la resynchronisation

La correction la plus fiable consiste à déclencher manuellement la régénération du contenu HTML depuis les données Elementor, sans attendre un enregistrement complet dans l'éditeur visuel :

```
use Elementor\Plugin;

function wpm_resync_elementor_content( int $post_id ): void {
    $document = Plugin::$instance->documents->get( $post_id );

    if ( $document ) {
        $document->save( array(
            'settings' => $document->get_settings(),
        ) );
    }
}
```

Sur un parc de plusieurs dizaines de pages migrées vers Elementor, ce script exécuté une fois via WP-CLI (`wp eval-file`) a suffi à réaligner les scores Yoast sans repasser manuellement sur chaque page.

### Le cas des widgets dynamiques

Pour les widgets qui affichent un contenu généré à la volée (une boucle de posts récents, un shortcode d'avis clients), aucune resynchronisation ne fera apparaître ce texte dans `post_content` — et c'est normal : Yoast analyse le contenu éditorial statique, pas le rendu final de la page. Dans ce cas, mieux vaut évaluer la lisibilité sur le texte réellement rédigé (titres, introduction, sections fixes) et ignorer le score global.

## Prévention : un flux de travail qui évite le piège

1. Toujours cliquer sur « Mettre à jour » dans Elementor plutôt que de fermer l'onglet après un aperçu.
2. Désactiver, sur les sites à fort trafic, tout cache de page pendant les sessions de rédaction.
3. Former les rédacteurs à ignorer le score Yoast tant que la page n'a pas été explicitement publiée depuis Elementor, pas depuis l'éditeur classique.
4. Sur les widgets dynamiques, ajouter une note dans l'interface d'administration rappelant que ce contenu échappe à l'analyse.

> Un bon réflexe : après tout enregistrement Elementor suspect, ouvrir l'onglet « Voir le code source » du navigateur et chercher le texte modifié dans le HTML brut. S'il n'y est pas, Yoast ne le verra pas non plus.

## En résumé

Le décalage entre Elementor et Yoast n'est pas un bug au sens strict : ce sont deux systèmes de stockage de contenu qui coexistent sur la même table, avec une synchronisation à sens unique et différée. Comprendre ce mécanisme évite de perdre du temps à « réparer » un score de lisibilité qui, en réalité, analysait un texte fantôme.
