# Porter un blog Blogger vers Gutenberg : recatégoriser les libellés hérités

> Transformer l'export XML d'un blog Blogger en contenu de blocs propre, plutôt qu'en un unique bloc HTML personnalisé qui fige tout dans une balise.

- Auteur : WordPress Développement
- Publié le : 2021-05-22
- Mis à jour le : 2021-05-22
- Catégorie : Blocs Gutenberg
- URL : https://www.wpmoderne.fr/blocs/porter-blog-blogger-vers-gutenberg/

## L’essentiel

- L'export Blogger produit un flux Atom, pas un export WordPress classique
- Convertir chaque billet en vrais blocs plutôt qu'en un bloc HTML brut
- Recatégoriser les libellés Blogger en catégories WordPress

Combien de temps un blog tenu huit années durant sur Blogger peut-il survivre à un simple copier-coller vers WordPress ? La réponse, en général : très mal. L'export natif de Blogger produit un flux au format Atom, très différent d'un export WordPress classique, et l'importateur générique le convertit le plus souvent en un bloc unique `core/html` par billet, ce qui fige tout le contenu dans une seule balise sans aucune structure de blocs exploitable ensuite.

Ce billet détaille comment transformer cet import brut en contenu de blocs propre, avec une vraie recatégorisation des libellés hérités de Blogger. Le référencement de la version migrée, sujet à part entière, n'est pas traité ici.

## Le problème du bloc HTML unique

L'importateur Blogger disponible dans WordPress s'appuie sur le flux Atom exposé par la plateforme. Une fois l'import terminé, chaque billet se retrouve dans l'éditeur sous la forme d'un seul bloc `core/html` contenant tout le balisage d'origine : titres en `<b>` plutôt qu'en `<h2>`, citations mises en forme à la main, images encore hébergées sur les serveurs de Google. Ce contenu s'affiche correctement au premier coup d'œil, mais reste totalement opaque pour l'éditeur de blocs : aucune modification structurée n'est possible sans tout retaper.

## Étape 1 : récupérer et analyser le flux Atom

Avant toute conversion, il faut télécharger l'export complet depuis les réglages de Blogger, puis l'analyser avec un script PHP autonome, indépendant de WordPress, pour extraire titre, contenu, date et libellés de chaque billet.

```
$flux = simplexml_load_file( 'export-blogger.xml' );
$flux->registerXPathNamespace( 'atom', 'http://www.w3.org/2005/Atom' );
$entrees = $flux->xpath( "//atom:entry[atom:category/@term='http://schemas.google.com/blogger/2008/kind#post']" );
```

## Étape 2 : convertir le balisage brut en vrais blocs

Chaque entrée récupérée passe ensuite par une fonction de conversion qui remplace les balises brutes par leurs équivalents en commentaires de blocs Gutenberg, avant l'insertion en base :

```
function convertir_en_blocs( $html ) {
    $html = preg_replace( '/<b>(.*?)<\/b>/', '<!-- wp:heading --><h2>$1</h2><!-- /wp:heading -->', $html );
    $paragraphes = preg_split( '/<\/p>/', $html );
    $sortie = '';
    foreach ( $paragraphes as $p ) {
        $texte = trim( strip_tags( $p, '<strong><em><a>' ) );
        if ( $texte !== '' ) {
            $sortie .= "<!-- wp:paragraph --><p>{$texte}</p><!-- /wp:paragraph -->\n";
        }
    }
    return $sortie;
}
```

> L'essentiel à retenir : L'export Blogger produit un flux Atom, pas un export WordPress classique ; Convertir chaque billet en vrais blocs plutôt qu'en un bloc HTML brut ; Recatégoriser les libellés Blogger en catégories WordPress

## Étape 3 : recatégoriser les libellés hérités

Blogger utilise des « libellés » à plat, sans hiérarchie, souvent utilisés à la fois comme des catégories et comme des étiquettes au fil des années. Plutôt que d'importer chacun de ces libellés tel quel en catégorie WordPress, une table de correspondance manuelle a permis de les regrouper en un nombre restreint de catégories cohérentes, avec les libellés trop spécifiques basculés en étiquettes.

```
$correspondance = array(
    'cuisine-du-dimanche' => 'Cuisine',
    'recette-rapide'      => 'Cuisine',
    'voyage-2019'         => 'Voyages',
    'italie'              => array( 'categorie' => 'Voyages', 'etiquette' => 'Italie' ),
);
```

### Étape 4 : rapatrier les images hébergées ailleurs

Les images d'un blog Blogger restent hébergées sur l'infrastructure de Google. Chaque image référencée dans le contenu doit être téléchargée puis réimportée dans la médiathèque WordPress avec `media_sideload_image()`, faute de quoi le blog migré resterait dépendant d'un service externe susceptible de couper l'accès à tout moment.

## Ce qui a le plus surpris pendant cette migration

- Le flux Atom limite parfois le nombre d'entrées exportées par page, ce qui impose une pagination lors de l'export
- Certains billets anciens contenaient du balisage HTML invalide, non fermé, qu'il a fallu corriger avant conversion
- Les commentaires des lecteurs, très nombreux sur ce blog, ne font pas partie de l'export Atom standard

> Sur une migration de contenu ancien, on préfère toujours écrire un script de conversion dédié plutôt que de se fier à un importateur générique : le résultat reste imprévisible sur un contenu accumulé pendant plusieurs années.

## En résumé

Migrer huit ans de billets Blogger vers WordPress sans les figer dans un unique bloc HTML demande un script de conversion sur mesure, mais garantit un contenu réellement éditable ensuite. La recatégorisation des libellés hérités, souvent négligée, conditionne directement la lisibilité du blog une fois republié.
