Migration de WordPress vers Craft CMS : préserver votre contenu, votre design et votre référencement

Migration de WordPress vers Craft CMS : préserver votre contenu, votre design et votre référencement

Alex Rollin
Alex Rollin
October 28, 2025
Dernière mise à jour : February 15, 2026
October 28, 2025

Passer de WordPress à Craft CMS peut sembler être un projet d'envergure, mais avec la bonne approche, vous pouvez effectuer la transition sans perdre votre contenu durement acquis, votre travail de design ou votre classement dans les moteurs de recherche. Ce guide vous accompagne à travers tout le processus de migration, de la planification initiale au suivi post-lancement, avec des exemples de code pratiques et des étapes spécifiques à suivre.

Pourquoi les équipes choisissent de migrer de WordPress vers Craft CMS

WordPress alimente des millions de sites web, mais lorsque les sites grandissent et que les exigences deviennent plus complexes, ses limites commencent à se faire sentir. Les conflits entre extensions, les préoccupations de sécurité et les problèmes de performance poussent plusieurs équipes à chercher des alternatives.

Craft CMS offre une approche différente. Au lieu de dépendre de dizaines d'extensions, Craft fournit une flexibilité intégrée pour les structures de contenu personnalisées. Vous obtenez du code plus propre, de meilleures performances et plus de contrôle sur le fonctionnement de votre site. Le compromis? La migration nécessite une planification et une exécution minutieuses.

Prérequis avant de commencer votre migration de WordPress vers Craft

Avant de commencer à déplacer le contenu, vous aurez besoin de plusieurs éléments en place :

Exigences techniques :

  • Accès à votre panneau d'administration WordPress et à la base de données
  • Un serveur de préproduction avec PHP 8.2 et MySQL 5.7.8 ou PostgreSQL 13 
  • Composer installé pour gérer les dépendances de Craft
  • Connaissance de base des opérations en ligne de commande

Préparation du site WordPress :

  • Sauvegarde complète de vos fichiers WordPress et de la base de données
  • Liste de toutes les extensions actives et leurs fonctions
  • Documentation de votre structure d'URL actuelle
  • Exportation de vos redirections actuelles (le cas échéant)
  • Capture d'écran ou documentation des types de publications personnalisés et des taxonomies

Configuration de Craft CMS :

  • Installation fraîche de Craft CMS 5 sur votre serveur de préproduction
  • Compte administrateur créé et configuré
  • Configuration de base du projet complétée

Processus de migration étape par étape de WordPress vers Craft CMS

Étape 1 : Vérifier et cartographier votre structure de contenu

Commencez par créer un inventaire détaillé de votre contenu WordPress. Ouvrez un chiffrier et documentez :

  • Tous les types de publications (articles standards, pages, types de publications personnalisés)
  • Taxonomies (catégories, étiquettes, taxonomies personnalisées)
  • Champs personnalisés (surtout si vous utilisez ACF ou des extensions similaires)
  • Fichiers médias et leur organisation
  • Rôles et permissions des utilisateurs

Ensuite, associez chaque élément WordPress à son équivalent Craft :

| Composant WordPress | Équivalent Craft CMS | Notes |
|-------------------|---------------------|-------|
| Articles | Entrées de canal | Créer un canal "Blogue" |
| Pages | Singles ou entrées de structure | Selon les besoins hiérarchiques |
| Types de publications personnalisés | Entrées de canal | Un canal par type de publication |
| Catégories | Groupes de catégories | Correspondance directe possible |
| Étiquettes | Groupes d'étiquettes | Correspondance directe possible |
| Médiathèque | Ressources | Nécessite la configuration de volumes |
| Champs personnalisés | Types de champs | Peut nécessiter une conversion de type de champ |

Étape 2 : Exporter votre contenu WordPress

WordPress offre plusieurs méthodes d'exportation. Pour la plupart des migrations, vous voudrez combiner les approches :

Utiliser l'exportation intégrée de WordPress :

# Depuis l'administration WordPress :
# Outils > Exporter > Tout le contenu > Télécharger le fichier d'exportation
# Cela crée un fichier XML avec votre contenu

Pour les champs personnalisés et les données complexes, utilisez WP All Export ou créez un script d'exportation personnalisé :

 'any',
        'posts_per_page' => -1,
        'post_status' => 'any'
    ]);
    
    $export_data = [];
    
    foreach($posts as $post) {
        $export_data[] = [
            'title' => $post->post_title,
            'slug' => $post->post_name,
            'content' => $post->post_content,
            'excerpt' => $post->post_excerpt,
            'date' => $post->post_date,
            'author' => get_the_author_meta('user_login', $post->post_author),
            'categories' => wp_get_post_categories($post->ID, ['fields' => 'names']),
            'tags' => wp_get_post_tags($post->ID, ['fields' => 'names']),
            'meta' => get_post_meta($post->ID),
            'featured_image' => get_the_post_thumbnail_url($post->ID, 'full')
        ];
    }
    
    // Sauvegarder en JSON pour faciliter l'importation
    file_put_contents('wordpress-export.json', json_encode($export_data));
}

Étape 3 : Importer le contenu dans Craft CMS

Nous avons constaté que l'outil CLI wp-import gère bien la plupart des migrations WordPress standards, mais les sites complexes nécessitent souvent du travail supplémentaire. Voici comment l'utiliser :

# Installer wp-import via Composer
composer require craftcms/wp-import

# Exécuter l'importation
php craft wp-import /path/to/wordpress-export.xml

# L'outil va :
# - Analyser votre structure WordPress
# - Créer des sections et champs correspondants dans Craft
# - Importer tout le contenu avec les relations intactes

Pour plus de contrôle sur le processus d'importation, utilisez l'extension Feed Me avec une correspondance personnalisée :

# feed-me-config.yaml
elementType: craft\elements\Entry
siteId: 1
section: blogue
entryType: article

fieldMapping:
  title:
    field: title
    node: wp:title
  slug:
    field: slug
    node: wp:post_name
  postDate:
    field: postDate
    node: wp:post_date
  body:
    field: body
    node: content:encoded
  categories:
    field: categoriesBlogue
    node: category
    options:
      create: true

Étape 4 : Reconstruire vos gabarits dans Craft

Craft utilise le système de gabarits Twig au lieu de PHP. Vous devrez convertir vos fichiers de thème WordPress :

Exemple de header.php WordPress :

>

    <?php wp_title('|', true, 'right'); ?>
    

Devient ceci dans Craft (_layout.twig) :

    {{ siteName }} | {{ title ?? entry.title ?? '' }}
    {{ head() }}

Boucle WordPress :

    

    


Devient ceci dans Craft :

{% for entry in craft.entries.section('blogue').all() %}
    

{{ entry.title }}

{{ entry.body }} {% endfor %}

Étape 5 : Configurer le routage d'URL et les redirections

Maintenir votre structure d'URL est essentiel pour le référencement. Configurez les routes de Craft pour correspondre à vos permaliens WordPress :

// config/routes.php
return [
    // Correspondre à la structure du blogue WordPress
    'blogue///' => ['template' => 'blogue/_entry'],
    
    // Archives de catégories
    'categorie/' => ['template' => 'blogue/_categorie'],
    
    // Archives d'étiquettes  
    'etiquette/' => ['template' => 'blogue/_etiquette'],
];

Pour les URL qui doivent changer, configurez des redirections 301 en utilisant l'extension Retour :

// Configuration des redirections par programmation
use nystudio107\retour\Retour;

Retour::$plugin->redirects->saveRedirect([
    'sourceUrl' => '/ancien-modele-url/.*',
    'destinationUrl' => '/nouveau-modele-url/$1',
    'matchType' => 'regex',
    'redirectHttpCode' => 301
]);

Étape 6 : Migrer les métadonnées SEO

Le travail avec les équipes nous a appris que la préservation du référencement détermine souvent le succès de la migration. Installez et configurez SEOmatic pour Craft :

{# Dans vos gabarits, intégrez les données SEO existantes #}
{% do seomatic.meta.seoTitle(entry.seoTitle ?? entry.title) %}
{% do seomatic.meta.seoDescription(entry.seoDescription ?? entry.excerpt) %}
{% do seomatic.meta.seoImage(entry.featuredImage.one() ?? null) %}

{# Configurer les données structurées #}
{% do seomatic.jsonLd.create({
    'type': 'Article',
    'headline': entry.title,
    'datePublished': entry.postDate|atom,
    'dateModified': entry.dateUpdated|atom,
    'author': {
        'type': 'Person',
        'name': entry.author.fullName
    }
}) %}

Erreurs courantes à éviter lors de la migration de WordPress vers Craft

1. Oublier les permissions des fichiers médias

Lors de la migration des médias, assurez-vous que votre volume de ressources Craft a les bonnes permissions d'écriture :

chmod -R 775 web/uploads
chown -R www-data:www-data web/uploads

2. Manquer les mises à jour des liens internes

Les liens internes WordPress utilisent souvent des URL absolues. Mettez-les à jour pendant la migration :

// Script de migration pour mettre à jour les liens internes
$content = $entry->body;
$content = str_replace('https://ancien-domaine.com', '@web', $content);
$content = str_replace('/wp-content/uploads/', '/uploads/', $content);
$entry->body = $content;

3. Ignorer la complexité des champs personnalisés

Les champs répéteurs ACF et le contenu flexible nécessitent une manipulation spéciale :

// Conversion d'un répéteur ACF vers une matrice Craft
foreach($acf_repeater as $row) {
    $matrixBlock = new MatrixBlock();
    $matrixBlock->type = 'typeBloc';
    $matrixBlock->setFieldValues([
        'handleChamp' => $row['valeur_champ']
    ]);
    $blocks[] = $matrixBlock;
}

4. Ne pas planifier les remplacements d'extensions

Documentez quelles extensions Craft remplacent les fonctionnalités WordPress :

  • Contact Form 7 → Formie ou Contact Form
  • Yoast SEO → SEOmatic
  • WP Super Cache → Cache intégré de Craft
  • Custom Post Type UI → Sections natives de Craft

Étapes de test et de vérification

Liste de vérification du contenu

Effectuez ces vérifications sur votre site de préproduction :

# Vérifier les images brisées
wget --spider -r -nd -nv -l 2 https://site-preproduction.com 2>&1 | grep -B1 "404"

# Vérifier que toutes les entrées sont importées
php craft shell
>>> \craft\elements\Entry::find()->count()
>>> // Comparer avec le nombre d'articles WordPress

# Vérifier les catégories/étiquettes manquantes
>>> \craft\elements\Category::find()->count()
>>> \craft\elements\Tag::find()->count()

Processus d'audit SEO

1. Référence pré-migration : Exporter toutes les URL, titres et descriptions méta de WordPress

2. Vérification post-migration : Utiliser Screaming Frog pour explorer le site de préproduction

3. Comparer les résultats : Rechercher les pages manquantes, les URL modifiées ou les métadonnées perdues

4. Vérifier les redirections : Tester un échantillon d'anciennes URL pour confirmer que les redirections 301 fonctionnent

Tests de performance

# Tester les temps de chargement des pages
lighthouse https://site-preproduction.com --output json --output-path ./rapport-lighthouse.json

# Vérifier le Time to First Byte (TTFB)
curl -w "@curl-format.txt" -o /dev/null -s https://site-preproduction.com

Tests d'acceptation utilisateur

Créez des scénarios de test pour les éditeurs de contenu :

1. Peuvent-ils créer de nouvelles entrées facilement?
2. Les téléversements d'images fonctionnent-ils correctement?
3. Les fonctions d'aperçu fonctionnent-elles?
4. Peuvent-ils trouver et modifier le contenu existant?

Surveillance post-lancement

Après la mise en ligne, surveillez attentivement ces indicateurs :

  • Erreurs 404 : Vérifiez quotidiennement les journaux du serveur et la Google Search Console
  • Classements de recherche : Suivez les pages clés dans votre outil de classement
  • Vitesse des pages : Surveillez les Core Web Vitals dans la Google Search Console
  • Rétroaction des utilisateurs : Configurez un formulaire de rétroaction pour les éditeurs et les visiteurs

Conclusion

La migration de WordPress vers Craft CMS nécessite une planification minutieuse et une attention aux détails, mais la récompense se présente sous la forme d'un site web plus flexible, performant et facile à maintenir. En suivant les étapes de ce guide, de l'audit initial du contenu jusqu'au suivi post-lancement, vous pouvez préserver votre contenu précieux, maintenir votre design et protéger votre classement dans les moteurs de recherche tout au long de la transition.

Notre expérience démontre que les migrations réussies surviennent lorsque les équipes prennent le temps de bien cartographier les structures de contenu, de tester minutieusement sur des environnements de préproduction et d'avoir des plans de retour en arrière solides. Les outils disponibles aujourd'hui, particulièrement wp-import et Feed Me, rendent les aspects techniques de la migration plus gérables que jamais.

Si vous planifiez une migration de WordPress vers Craft CMS et avez besoin d'aide pour évaluer vos exigences spécifiques, qu'il s'agisse de gérer des champs personnalisés complexes, de préserver des fonctionnalités d'extensions spécialisées ou d'assurer aucune interruption de service pendant le changement, nous pouvons examiner votre configuration actuelle et créer un plan de migration détaillé adapté aux besoins uniques de votre site.

Share this article