Refonte PrestaShop : la checklist qui évite la catastrophe SEO
Refonte PrestaShop : la checklist qui évite la catastrophe SEO
Une refonte PrestaShop mal préparée, c'est -40% de trafic organique dès la semaine suivante, dans le meilleur des cas. Dans le pire : Google met 3 mois à comprendre la nouvelle structure, et le CA s'effondre pile au moment où on attendait l'inverse.
Voici la checklist qu'on applique sur chaque refonte. Elle vaut pour PrestaShop 1.7 et 8.x, mais 90% s'applique à tout e-commerce.
J-30 : avant de toucher au code
1. Cartographier l'existant
Exporter de Google Search Console :
- Top 100 pages par impressions sur 12 mois
- Top 50 mots-clés organiques
- Pages avec un CTR anormalement haut (à protéger en priorité)
C'est votre patrimoine SEO. Tout le reste tourne autour.
2. Lister toutes les URLs actives
https://votre-shop.fr/sitemap.xml
Croiser avec un crawl complet (Screaming Frog, Sitebulb) pour ne rien rater :
- Pages catégories
- Fiches produits actives + désactivées (souvent indexées)
- Pages CMS
- URLs filtrées (
?category=...&color=...) qui sont parfois indexées par erreur
3. Décider du sort de chaque URL
Trois cas :
| Cas | Action |
|---|---|
| URL gardée à l'identique | Rien à faire |
| URL changée | 301 vers la nouvelle |
| URL supprimée | 301 vers la catégorie parente, jamais 404 |
J-15 : préparation technique
4. Construire la table de redirections
Un fichier CSV : ancienne_url,nouvelle_url.
Pour PrestaShop, l'idéal est de gérer ça en règles serveur (.htaccess ou nginx) plutôt qu'en plugin - c'est plus rapide et survivra aux mises à jour.
Règle d'or : zéro chaîne de redirections. Une 301 pointe directement sur l'URL finale, pas sur une 301 qui pointe sur une 301.
5. Vérifier le robots.txt
Sur la version de staging : tout doit être bloqué (Disallow: /).
Sur la production : ouvrir l'indexation au moment du go-live, pas avant.
C'est l'erreur la plus fréquente : on oublie d'enlever le Disallow: / au moment de la bascule, et le site reste invisible 3 semaines.
6. Préparer le nouveau sitemap
PrestaShop génère un sitemap natif, mais il faut souvent le compléter :
- Inclure les pages multi-catégories correctement
- Exclure les pages désactivées
- Définir les hreflang si site multilingue
J-7 : tests de performance
7. Lighthouse mobile sur les 5 templates
- Page d'accueil
- Catégorie type
- Fiche produit type
- Panier
- Tunnel de commande
Score cible : ≥85 sur chaque. PrestaShop avec un thème par défaut bien configuré peut atteindre 90+. Avec un thème acheté plein de carrousels, on tombe à 50.
8. Tester le tunnel d'achat
- Ajout au panier (mobile + desktop)
- Création de compte invité
- Paiement test (Stripe / PayPal sandbox)
- Email de confirmation reçu, lisible, mobile-friendly
C'est tellement basique que c'est souvent oublié.
9. Vérifier le tracking GA4 + Ads
- Évènements e-commerce GA4 :
view_item,add_to_cart,begin_checkout,purchase - Conversions Google Ads importées
- Pixel Meta branché si Facebook Ads
- Consent Mode v2 activé pour le RGPD
J-1 : revue finale
10. Backup complet
- Base de données (mysqldump complet)
- Fichiers du site (tarball)
- Fichier de redirections versionné quelque part
Si la bascule explose, on doit pouvoir revenir à l'état initial en moins de 30 minutes.
11. Plan de bascule horodaté
| Heure | Action | Responsable |
|---|---|---|
| 21:00 | Activation page maintenance | Dev |
| 21:15 | Déploiement nouveau code | Dev |
| 21:30 | Bascule DNS | Hébergeur |
| 21:45 | Vérif redirections (sample) | SEO |
| 22:00 | Désactivation maintenance | Dev |
| 22:05 | Re-vérif tracking | Marketing |
| 22:15 | Soumission sitemap GSC | SEO |
J+1 à J+30 : surveillance
12. Monitoring quotidien
- Google Search Console : pic de 404, pic d'erreurs serveur, pages indexées
- GA4 : trafic organique, taux de conversion
- Logs serveur : Googlebot crawle-t-il bien les nouvelles URLs ?
Une bonne refonte se voit à J+45 : Google a digéré, les positions sont restaurées, le CA repart.
On accompagne ce type de bascule sur PrestaShop régulièrement, en e-commerce vitrine et catalogue technique. Un projet en cours ? Parlons-en.