# Erreur 404 après une migration ou un changement de permaliens

> Toutes les pages du site renvoient une erreur 404 après une migration vers un nouveau serveur, ou juste après avoir touché aux réglages de permaliens : la cause est presque toujours que la configuration du serveur qui redirige les URL vers WordPress n’a pas suivi le déménagement.

- Source canonique : [https://allaux.fr/wordpress-woocommerce/problemes/erreur-404-apres-migration](https://allaux.fr/wordpress-woocommerce/problemes/erreur-404-apres-migration)
- Langue : FR
- Dernière mise à jour : 2026-08-03

## Réponse directe

> Allez dans Réglages > Permaliens et cliquez sur Enregistrer sans rien changer : WordPress régénère ainsi ses règles de réécriture. Sous Apache, vérifiez que le .htaccess à la racine contient toujours le bloc # BEGIN WordPress et qu’il est accessible en écriture. Sous Nginx, ce fichier n’est pas lu et la directive try_files doit être ajoutée dans la configuration du serveur.

## Comment je procède

1. **Distinction du symptôme** — Je vérifie si seule la page d’accueil fonctionne, typique d’un problème de réécriture d’URL, ou si le site entier boucle en redirection, souvent un problème de siteurl/home plutôt que de permaliens.
2. **Identification du serveur web** — Apache ou Nginx ne se corrigent pas de la même façon : Apache lit un fichier .htaccess à la racine, Nginx a besoin d’un bloc server édité directement dans sa configuration.
3. **Réenregistrement des permaliens** — Sur Apache, je resauvegarde Réglages > Permaliens pour régénérer le .htaccess ; sur Nginx, j’édite le bloc server pour ajouter l’équivalent de try_files, WordPress seul ne peut pas le faire.
4. **Vérification des types de contenu personnalisés** — Si des extensions WooCommerce ou un constructeur de pages enregistrent leurs propres types de contenu, je vérifie qu’elles sont actives au moment du réenregistrement pour que leurs règles de réécriture soient bien reprises.
5. **Vérification de siteurl et home** — Je contrôle que ces deux options en base correspondent au domaine réel après la migration, car un mauvais siteurl produit un 404 ou une boucle de redirection qui n’a rien à voir avec les permaliens.

## Ce que je traite régulièrement

- Toutes les pages du site renvoient une erreur 404 après une migration vers un nouvel hébergeur
- Seule la page d’accueil fonctionne, toutes les autres pages sont en erreur 404
- Les pages produit WooCommerce sont en 404 alors que les pages classiques fonctionnent
- Une boucle de redirection apparaît après un changement de nom de domaine
- Les permaliens fonctionnaient sur l’ancien serveur mais plus sur le nouveau

## Comment fonctionnent les permaliens, et ce qui casse après une migration

Les permaliens « jolis » de WordPress (Réglages > Permaliens) fonctionnent en deux temps : WordPress réécrit les URL brutes en chemins propres, puis le serveur web doit rediriger chaque requête vers index.php pour que WordPress puisse la résoudre. Sur Apache, cette redirection passe par des règles de réécriture dans .htaccess ; sur Nginx, par un bloc équivalent dans la configuration du serveur.

Après une migration vers un nouveau serveur, ce fichier .htaccess, ou ce bloc Nginx, ne suit pas automatiquement. Sur Apache, resauvegarder Réglages > Permaliens régénère le .htaccess et suffit en général. Sur Nginx, il faut éditer directement le bloc server, ce que WordPress ne peut pas faire lui-même.

Les types de contenu personnalisés, utilisés par de nombreuses extensions WooCommerce et par les constructeurs de pages pour leurs templates, ont besoin que leurs propres règles de réécriture soient elles aussi régénérées : réenregistrer les permaliens le fait, mais seulement si l’extension qui les déclare est active au moment de l’opération. Un décalage entre les options siteurl/home et le domaine réel après migration produit un autre type de 404 ou de boucle de redirection, sans rapport avec les permaliens : les deux se ressemblent pour un commerçant mais se corrigent différemment.

## .htaccess

```
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
```

## Réenregistrer les permaliens n’est pas toujours suffisant

> Resauvegarder Réglages > Permaliens ou corriger un bloc Nginx se fait en quelques minutes. Si la structure d’URL a changé par rapport à l’ancien site, il faut aussi mapper les anciennes URL vers les nouvelles avec des redirections 301, un travail à part pour éviter de perdre le référencement acquis.

## Pages liées

- **Migration de boutique** — Une migration complète de plateforme demande bien plus qu’un réenregistrement de permaliens. ([/wordpress-woocommerce/migration](/wordpress-woocommerce/migration))
- **Menu de navigation cassé** — Un autre symptôme fréquent après une mise à jour ou une migration de serveur. ([/wordpress-woocommerce/problemes/menu-navigation-casse](/wordpress-woocommerce/problemes/menu-navigation-casse))
- **Dépannage urgent** — Site totalement en 404, à traiter en priorité. ([/services/depannage-urgent](/services/depannage-urgent))

## FAQ

### Je viens de changer d’hébergeur et tout le site est en 404, c’est grave ?

Non, dans la grande majorité des cas c’est le fichier .htaccess ou la configuration Nginx qui n’a pas suivi la migration. Ça se corrige généralement en quelques minutes une fois identifié.

### Pourquoi seule la page d’accueil fonctionne et pas les autres ?

C’est le signe typique d’un problème de réécriture d’URL : la page d’accueil ne dépend pas des permaliens, les autres pages si.

### J’ai resauvegardé les permaliens et ça n’a rien changé, pourquoi ?

Si le site tourne sur Nginx, resauvegarder les permaliens ne suffit pas : contrairement à Apache, Nginx a besoin que son bloc server soit édité directement, ce que WordPress ne peut pas faire seul.

### Vais-je perdre mon référencement si les URL changent après la migration ?

Pas si les anciennes URL sont redirigées en 301 vers les nouvelles. C’est un travail à prévoir séparément du simple réenregistrement des permaliens, surtout si la structure d’URL a changé.

### Mes fiches produit sont en 404 mais pas mes pages classiques, pourquoi cette différence ?

Les fiches produit dépendent des règles de réécriture spécifiques à WooCommerce, régénérées seulement si l’extension est active au moment où les permaliens sont réenregistrés.
